Mae peiriannau rendro newydd ar gyfer OpenGL a Vulkan wedi'u hychwanegu at GTK

Mae datblygwyr llyfrgell GTK wedi cyhoeddi bod dwy injan rendro newydd ar gael - “ngl” a “vulkan”, gan ddefnyddio APIs graffeg OpenGL (GL 3.3+ a GLES 3.0+) a Vulkan. Mae peiriannau newydd wedi'u cynnwys yn y datganiad arbrofol o GTK 4.13.6. Yn y gangen GTK arbrofol, mae'r injan ngl bellach yn cael ei ddefnyddio yn ddiofyn, ond os nodir problemau sylweddol yn y gangen sefydlog nesaf 4.14, bydd yr hen injan rendro "gl" yn cael ei ddychwelyd.

Mae peiriannau newydd yn cael eu gosod fel rhai unedig a'u cydosod o un sylfaen cod. Hanfod yr uno yw bod yr API Vulkan yn cael ei ddefnyddio fel sail, ac ar ben hynny mae lefel tynnu dŵr ar wahân wedi'i chreu ar gyfer OpenGL, gan ystyried y gwahaniaethau rhwng OpenGL a Vulkan. Roedd y dull hwn yn ei gwneud hi'n bosibl defnyddio seilwaith cyffredin yn y ddwy injan ar gyfer prosesu'r graff golygfa, trawsnewidiadau, caching gwead a glyffau. Fe wnaeth uno hefyd symleiddio'n sylweddol y gwaith o gynnal a chadw sylfaen cod y ddwy injan a'u cadw'n gyfredol ac wedi'u cysoni.

Yn wahanol i'r hen injan gl, a ddefnyddiodd arlliwiwr syml ar wahân ar gyfer pob math o nôd rendrad ac yn ail-ddidoli'r data o bryd i'w gilydd yn ystod rendro oddi ar y sgrin, mae'r peiriannau newydd yn lle rendrad oddi ar y sgrin yn defnyddio arlliwiwr cymhleth (ubershader) sy'n dehongli'r data o'r byffer . Yn ei ffurf bresennol, mae'r gweithrediad newydd yn dal i lusgo y tu ôl i'r hen un o ran lefel y optimizations, gan fod y prif ffocws ar hyn o bryd ar weithrediad cywir a rhwyddineb cynnal a chadw.

Nodweddion newydd sydd ar goll yn yr hen injan gl:

  • Llyfnhau cyfuchlin - yn caniatáu ichi gadw manylion manwl a chyflawni cyfuchliniau llyfnach.
    Mae peiriannau rendro newydd ar gyfer OpenGL a Vulkan wedi'u hychwanegu at GTK
  • Ffurfio graddiannau mympwyol, a all ddefnyddio unrhyw nifer o liwiau a gwrth-aliasing (yn yr injan gl, dim ond graddiannau llinellol, rheiddiol a chonigol gyda 6 lliw stop a gefnogwyd).
    Mae peiriannau rendro newydd ar gyfer OpenGL a Vulkan wedi'u hychwanegu at GTK
  • Graddfa ffracsiynol, sy'n eich galluogi i osod gwerthoedd graddfa nad ydynt yn gyfanrif, er enghraifft, wrth ddefnyddio graddfa o 125% ar gyfer ffenestr o 1200x800, bydd byffer o 1500x1000 yn cael ei ddyrannu, ac nid 2400x1600 fel yn yr hen injan.
  • Cefnogaeth i dechnoleg DMA-BUF ar gyfer defnyddio GPUs lluosog a dadlwytho gweithrediadau unigol i GPU arall.
  • Mae llawer o nodau rendro a gafodd broblemau yn yr hen weithrediad yn cael eu prosesu'n gywir.

Mae cyfyngiadau'r peiriannau newydd yn cynnwys y diffyg cefnogaeth ar gyfer lleoli yn ôl gwerthoedd nad ydynt yn gyfanrif (safle ffracsiynol) a nodau glshader, a oedd ynghlwm yn drwm â nodweddion yr hen injan, ac nad oedd eu hangen mwyach ar ôl ychwanegu cefnogaeth i nodau gyda mygydau (mwgwd) a gweadau gyda thryloywder. Sonnir hefyd bod posibilrwydd o broblemau posibl gyda gyrwyr graffeg oherwydd newidiadau yn y dull o weithio gyda gyrwyr.

Yn y dyfodol, yn seiliedig ar y model unedig newydd, nid yw creu peiriannau rendro gan ddefnyddio Metal in macOS a DirectX yn Windows yn cael ei eithrio, ond mae creu peiriannau o'r fath yn cael ei gymhlethu gan ddefnyddio ieithoedd eraill ar gyfer shaders (y “ngl ” a “vulkan” mae peiriannau'n defnyddio'r iaith GLSL, felly ar gyfer Metal and Direct bydd yn rhaid i naill ai ddyblygu lliwwyr neu ddefnyddio haen yn seiliedig ar becyn cymorth SPIRV-Cross).

Mae cynlluniau ar gyfer y dyfodol yn cynnwys darparu cefnogaeth HDR ac offer ar gyfer rheoli lliw yn gywir, cefnogaeth ar gyfer rendrad Llwybr ar ochr GPU, y gallu i rendro glyffs, rendro oddi ar y ffrwd, ac optimeiddio perfformiad ar gyfer dyfeisiau hŷn a phŵer isel. Yn ei ffurf bresennol, mae perfformiad yr injan "vulkan" yn agos at berfformiad yr hen injan "gl". Mae'r injan "ngl" yn israddol mewn perfformiad i'r hen injan "gl", ond mae'r perfformiad sydd ar gael yn ddigonol ar gyfer rendro ar 60 neu 144 FPS. Disgwylir y bydd y sefyllfa'n newid ar ôl optimeiddio.

Ffynhonnell: opennet.ru

Ychwanegu sylw