GTK жүйесіне OpenGL және Vulkan үшін жаңа рендеринг қозғалтқыштары қосылды

GTK кітапханасының әзірлеушілері OpenGL (GL 3.3+ және GLES 3.0+) және Vulkan графикалық API интерфейстерін пайдалана отырып, екі жаңа рендеринг қозғалтқышының - «ngl» және «vulkan» қолжетімділігін жариялады. Жаңа қозғалтқыштар GTK 4.13.6 эксперименттік шығарылымына енгізілген. Эксперименттік GTK тармағында ngl қозғалтқышы енді әдепкі бойынша пайдаланылады, бірақ келесі тұрақты 4.14 тармағында маңызды мәселелер анықталса, ескі «gl» көрсету қозғалтқышы қайтарылады.

Жаңа қозғалтқыштар біртұтас ретінде орналастырылған және бір кодтық базадан жиналған. Біріктірудің мәні мынада: Vulkan API негізі ретінде пайдаланылады, оның үстіне OpenGL және Vulkan арасындағы айырмашылықтарды ескере отырып, OpenGL үшін бөлек абстракция деңгейі жасалды. Бұл тәсіл көрініс графигін, түрлендірулерді, кэштеу текстураларын және глифтерді өңдеу үшін екі қозғалтқышта да ортақ инфрақұрылымды пайдалануға мүмкіндік берді. Унификация екі қозғалтқыштың да кодтық базасына техникалық қызмет көрсетуді және оларды жаңартып, синхрондауды айтарлықтай жеңілдетті.

Көрсету түйінінің әрбір түрі үшін жеке қарапайым шейдерді пайдаланатын және экраннан тыс көрсету кезінде деректерді мерзімді түрде қайта сұрыптайтын ескі gl қозғалтқышынан айырмашылығы, жаңа қозғалтқыштар экраннан тыс көрсетудің орнына буфердегі деректерді түсіндіретін күрделі шейдерді (ubershader) пайдаланады. . Қазіргі түрінде жаңа енгізу бұрынғысынша оңтайландыру деңгейі бойынша артта қалды, өйткені қазіргі кезеңде негізгі назар дұрыс жұмыс пен техникалық қызмет көрсетудің қарапайымдылығы болып табылады.

Ескі gl қозғалтқышында жоқ жаңа мүмкіндіктер:

  • Контурды тегістеу - ұсақ бөлшектерді сақтауға және тегіс контурларға қол жеткізуге мүмкіндік береді.
    GTK жүйесіне OpenGL және Vulkan үшін жаңа рендеринг қозғалтқыштары қосылды
  • Түстердің кез келген санын және антиалиазингті қолдана алатын ерікті градиенттерді қалыптастыру (gl қозғалтқышында 6 тоқтау түсі бар сызықтық, радиалды және конустық градиенттер ғана қолдау тапты).
    GTK жүйесіне OpenGL және Vulkan үшін жаңа рендеринг қозғалтқыштары қосылды
  • Бүтін емес шкала мәндерін орнатуға мүмкіндік беретін бөлшек шкала, мысалы, 125x1200 терезе үшін 800% масштабты пайдаланған кезде, ескі қозғалтқыштағыдай 1500x1000 емес, 2400x1600 буфер бөлінеді.
  • Бірнеше GPU пайдалану және жеке операцияларды басқа GPU-ге түсіру үшін DMA-BUF технологиясын қолдау.
  • Ескі іске асыруда проблемалары бар көптеген көрсету түйіндері дұрыс өңделеді.

Жаңа қозғалтқыштардың шектеулеріне бүтін емес мәндер (бөлшек позиция) және ескі қозғалтқыштың мүмкіндіктерімен қатты байланыстырылған және қолдауды қосқаннан кейін қажет болмайтын глшадер түйіндері бойынша орналастыруды қолдаудың болмауы кіреді. бетперделері бар түйіндер (маска) және мөлдірлігі бар текстуралар. Сондай-ақ, драйверлермен жұмыс істеу әдісінің өзгеруіне байланысты туындайтын графикалық драйверлермен ықтимал проблемалардың болуы мүмкін екендігі айтылған.

Болашақта жаңа бірыңғай модель негізінде macOS жүйесінде Metal және Windows жүйесінде DirectX көмегімен рендеринг қозғалтқыштарын жасау жоққа шығарылмайды, бірақ мұндай қозғалтқыштарды жасау шейдерлерге арналған басқа тілдерді қолданумен қиындайды («ngl » және «vulkan» қозғалтқыштары GLSL тілін пайдаланады, сондықтан Metal және Direct үшін шейдерлерді қайталау немесе SPIRV-Cross құралдар жинағы негізіндегі қабатты пайдалану қажет болады).

Болашақ жоспарларға HDR қолдауын және түстерді дұрыс басқаруға арналған құралдарды, GPU жағында жолды көрсетуге қолдау көрсетуді, глифтерді көрсету мүмкіндігін, ағынсыз көрсетуді және ескі және қуатты құрылғылардың өнімділігін оңтайландыруды қамтиды. Қазіргі түрінде «vulkan» қозғалтқышының өнімділігі ескі «gl» қозғалтқышының өнімділігіне жақын. «ngl» қозғалтқышы ескі «gl» қозғалтқышынан өнімділігі жағынан төмен, бірақ қол жетімді өнімділік 60 немесе 144 FPS жиілігінде көрсету үшін жеткілікті. Оңтайландырудан кейін жағдай өзгереді деп күтілуде.

Ақпарат көзі: opennet.ru

пікір қалдыру