GTK bibliotÄkas izstrÄdÄtÄji ir paziÅojuÅ”i par divu jaunu renderÄÅ”anas dzinÄju ā ānglā un āvulkanā ā pieejamÄ«bu, izmantojot OpenGL (GL 3.3+ un GLES 3.0+) un Vulkan grafikas API. Jauni dzinÄji ir iekļauti GTK 4.13.6 eksperimentÄlajÄ izlaidumÄ. EksperimentÄlajÄ GTK zarÄ tagad pÄc noklusÄjuma tiek izmantots ngl dzinÄjs, taÄu, ja nÄkamajÄ stabilajÄ zarÄ 4.14 tiks konstatÄtas bÅ«tiskas problÄmas, vecais "gl" renderÄÅ”anas dzinÄjs tiks atgriezts.
Jaunie dzinÄji ir novietoti kÄ vienoti un samontÄti no vienas koda bÄzes. UnifikÄcijas bÅ«tÄ«ba ir tÄda, ka par pamatu tiek izmantots Vulkan API, kuram virsÅ« ir izveidots atseviŔķs abstrakcijas lÄ«menis OpenGL, Åemot vÄrÄ atŔķirÄ«bas starp OpenGL un Vulkan. Å Ä« pieeja ļÄva izmantot kopÄ«gu infrastruktÅ«ru abos dzinÄjos, lai apstrÄdÄtu ainas grafiku, transformÄcijas, keÅ”atmiÅas tekstÅ«ras un glifus. UnifikÄcija arÄ« ievÄrojami vienkÄrÅ”oja abu dzinÄju kodu bÄzes uzturÄÅ”anu un to atjauninÄÅ”anu un sinhronizÄciju.
AtŔķirÄ«bÄ no vecÄ gl dzinÄja, kas izmantoja atseviŔķu vienkÄrÅ”u ÄnotÄju katram renderÄÅ”anas mezgla veidam un periodiski pÄrkÄrtoja datus ÄrpusekrÄna renderÄÅ”anas laikÄ, jaunie dzinÄji ÄrpusekrÄna renderÄÅ”anas vietÄ izmanto sarežģītu ÄnotÄju (ubershader), kas interpretÄ datus no bufera. . PaÅ”reizÄjÄ formÄ jaunÄ ievieÅ”ana joprojÄm atpaliek no vecÄs optimizÄcijas lÄ«meÅa ziÅÄ, jo paÅ”reizÄjÄ posmÄ galvenÄ uzmanÄ«ba tiek pievÄrsta pareizai darbÄ«bai un apkopes vienkÄrŔībai.
Jaunas funkcijas, kuru trÅ«kst vecajÄ gl dzinÄjÄ:
- KontÅ«ru izlÄ«dzinÄÅ”ana ā ļauj saglabÄt smalkas detaļas un panÄkt gludÄkas kontÅ«ras.
- Patvaļīgu gradientu veidoÅ”ana, kas var izmantot jebkuru krÄsu skaitu un pretapstrÄdi (gl dzinÄjÄ tika atbalstÄ«ti tikai lineÄri, radiÄli un koniski gradienti ar 6 pieturas krÄsÄm).
- FrakcionÄlÄ skala, kas ļauj iestatÄ«t skalas vÄrtÄ«bas, kas nav veseli skaitļi, piemÄram, izmantojot 125% skalu logam 1200x800, tiks pieŔķirts buferis 1500x1000, nevis 2400x1600 kÄ vecajÄ dzinÄjÄ.
- DMA-BUF tehnoloÄ£ijas atbalsts vairÄku GPU lietoÅ”anai un atseviŔķu darbÄ«bu pÄrsÅ«tÄ«Å”anai uz citu GPU.
- Daudzi renderÄÅ”anas mezgli, kuriem bija problÄmas vecajÄ implementÄcijÄ, tiek apstrÄdÄti pareizi.
Jauno dzinÄju ierobežojumi ietver atbalsta trÅ«kumu pozicionÄÅ”anai pÄc vÄrtÄ«bÄm, kas nav veseli skaitļi (frakcionÄta pozÄ«cija) un glshader mezgliem, kas bija cieÅ”i saistÄ«ti ar vecÄ dzinÄja funkcijÄm un kas vairs nebija nepiecieÅ”ami pÄc atbalsta pievienoÅ”anas mezgli ar maskÄm (maska) un faktÅ«ras ar caurspÄ«dÄ«gumu. TÄpat tiek minÄts, ka ir iespÄjamas problÄmas ar grafikas draiveriem, kas var rasties sakarÄ ar izmaiÅÄm darbÄ ar draiveriem.
NÄkotnÄ, pamatojoties uz jauno vienoto modeli, nav izslÄgta renderÄÅ”anas dzinÄju izveide, izmantojot Metal operÄtÄjsistÄmÄ MacOS un DirectX operÄtÄjsistÄmÄ Windows, taÄu Å”Ädu dzinÄju izveidi sarežģī citu valodu izmantoÅ”ana ÄnotÄjiem (āngl ā un āvulkanā dzinÄji izmanto GLSL valodu, tÄpÄc Metal un Direct bÅ«s vai nu jÄdublÄ ÄnotÄji, vai jÄizmanto slÄnis, kura pamatÄ ir SPIRV-Cross rÄ«kkopa).
NÄkotnes plÄnos ietilpst nodroÅ”inÄt HDR atbalstu un rÄ«kus pareizai krÄsu pÄrvaldÄ«bai, atbalstu ceļa renderÄÅ”anai GPU pusÄ, spÄju renderÄt glifus, Ärpus plÅ«smas renderÄÅ”anu un veiktspÄjas optimizÄciju vecÄkÄm un mazjaudas ierÄ«cÄm. PaÅ”reizÄjÄ formÄ "vulkan" dzinÄja veiktspÄja ir tuvu vecÄ "gl" dzinÄja veiktspÄjai. "ngl" dzinÄja veiktspÄja ir zemÄka par veco "gl" dzinÄju, taÄu pieejamÄ veiktspÄja ir pietiekama, lai renderÄtu ar 60 vai 144 FPS. Paredzams, ka pÄc optimizÄcijas situÄcija mainÄ«sies.
Avots: opennet.ru