Zhvilluesit e bibliotekës GTK shpallën gatishmërinë e dy motorëve të rinj të renderimit - "ngl" dhe "vulkan", të cilët përdorin API-grafik OpenGL (GL 3.3+ dhe GLES 3.0+) dhe Vulkan. Motorët e rinj janë të përfshirë në publikimin eksperimental GTK 4.13.6. Në degën eksperimentale të GTK, motori ngl tani përdoret si default, por në rast se do të identifikohen probleme të rëndësishme në degën e ardhshme stabile 4.14, do të rikthehet motori i vjetër i renderimit "gl".
Motorët e rinj pozicionohen si të unifikuar dhe mbështeten në një bazë të vetme kodimi. Thelbi i unifikimit është që si bazë të përdoret API Vulkan, mbi të cilin është krijuar një nivel i veçantë abstrakt për OpenGL, duke marrë parasysh ndryshimet midis OpenGL dhe Vulkan. Ky qasje ka lejuar angazhimin e një infrastrukture të përbashkët për të dy motorët për procesimin e grafikës së skenës (scene graph), transformimeve, caching të teksteve dhe glyph-eve. Unifikimi gjithashtu ka thjeshtuar dukshëm mbështetjes së bazës së kodit të të dy motorëve dhe mbajtjen e saj në një gjendje të përditësuar dhe të sinkronizuar.
Në kundërshtim me motorin e vjetër "gl", ku për çdo lloj nyje renderimi (rendernode) përdorej një shenues i thjeshtë i veçantë dhe kishte riciklim të rregullt të të dhënave gjatë renderimit offscreen, në motorët e rinj përdoret një shenues kompleks (ubershader), i cili interpreton të dhënat nga bufferi. Në formën aktuale, implementimi i ri ende mbetet pas atij të vjetër në nivelin e optimizimeve, pasi fokusi kryesor në këtë fazë është te saktësia e funksionimit dhe thjeshtësia e mirëmbajtjes.
Funksionet e reja, të cilat mungojnë në motorin e vjetër "gl":
- Anti-aliasing - lejon ruajtjen e detajeve të vogla dhe arritjen e kontureve më të lëmuara.

- Krijimi i gradienteve të rastësishëm, ku mund të përdoren çdo numër ngjyrash dhe anti-aliasing (në motorin "gl" ishin të mbështetur vetëm gradientet linjare, radiale dhe konike me 6 ngjyra ndalimi).

- Skalimi i fraksionuar (fractional scale), i cili lejon vendosjen e vlerave tĂ« paqĂ«ndrueshme tĂ« shkallĂ«s, pĂ«r shembull, duke pĂ«rdorur shkallĂ«n 125% pĂ«r njĂ« dritare 1200Ă800 do tĂ« caktohet njĂ« buffer 1500Ă1000, dhe jo 2400Ă1600 si nĂ« motorin e vjetĂ«r.
- Mbështetje për teknologjinë DMA-BUF për përdorimin e disa GPU-ve dhe shpërndarjen e operacioneve të veçanta në një GPU tjetër.
- Trajtohen saktësisht shumë nyje renderimi me të cilat kishte probleme në implementimin e vjetër.
Midis kufizimeve të motorëve të rinj është mungesa e mbështetjes për pozicionimin me vlera të pa të plota (fractional position) dhe nyjet glshader, të cilat ishin shumë të lidhura me karakteristikat e motorit të vjetër, dhe për të cilat nuk ka nevojë pas shtimit të mbështetjes për nyjet me maska (mask) dhe tekste me transparencë. Gjithashtu, shfaqet mundësia e problemeve të mundshme me shoferët grafikë, si rezultat i ndryshimit të metodës së punës me shoferët.
Në të ardhmen, mbi bazën e modelit të unifikuar të ri, nuk përjashtohet krijimi i motorëve të renderimit që përdorin Metal në macOS dhe DirectX në Windows, por krijimi i tillë motorëve e komplikon përdorimi i gjuhëve të tjera për shenuesit (në motorët "ngl" dhe "vulkan" është përdorur gjuha GLSL, kështu që për Metal dhe Direct do të duhet ose të dyfishohen shenuesit, ose të përdoret një ndërmjetës bazuar në mjetin SPIRV-Cross).
NĂ« planet pĂ«r tĂ« ardhmen pĂ«rmendet sigurimi i mbĂ«shtetjes pĂ«r HDR dhe mjete pĂ«r menaxhimin e saktĂ« tĂ« ngjyrĂ«s, mbĂ«shtetje pĂ«r rrugĂ«n e renderimit (Path rendering) nga ana e GPU-sĂ«, mundĂ«sia e renderimit tĂ« glyph-Ă«ve, renderimi jashtĂ« rrjedhĂ«s kryesore dhe optimizimi i performancĂ«s pĂ«r pajisjet e vjetra dhe me kapacitete tĂ« ulĂ«ta. NĂ« formĂ«n aktuale, performanca e motorit "vulkan" Ă«shtĂ« afĂ«r performancĂ«s sĂ« motorit tĂ« vjetĂ«r "gl". Motori "ngl" mbetet pas nĂ« performancĂ« nga motori i vjetĂ«r "gl", por treguesit e tanishĂ«m janĂ« tĂ« mjaftueshĂ«m pĂ«r renderim me shkallĂ« 60 ose 144âFPS. Pritet qĂ« situata tĂ« ndryshojĂ« pas optimizimeve.
Burimi: opennet.ru

