Injini nyowani dzekupa dzeOpenGL neVulkan dzakawedzerwa kuGTK

Vagadziri veraibhurari yeGTK vazivisa kuwanikwa kweinjini mbiri nyowani - "ngl" uye "vulkan", vachishandisa OpenGL (GL 3.3+ uye GLES 3.0+) uye Vulkan graphics APIs. Injini itsva dzinosanganisirwa mukuedzwa kuburitswa kweGTK 4.13.6. Mubazi rekuedza GTK, injini yengl ikozvino inoshandiswa nekusingaperi, asi kana matambudziko makuru akaonekwa mubazi rinotevera rakagadzikana 4.14, injini yekare ye "gl" inodzoserwa.

Injini nyowani dzakamisikidzwa dzakabatana uye dzakaunganidzwa kubva kune imwechete kodhi base. Chakakosha chekubatana ndechekuti iyo Vulkan API inoshandiswa sehwaro, pamusoro payo iyo yakaparadzana nhanho yekubvisa yakagadzirwa yeOpenGL, tichitarisa mutsauko uripo pakati peOpenGL neVulkan. Iyi nzira yakaita kuti zvikwanise kushandisa yakajairwa zvivakwa mumainjini ese maviri ekugadzirisa chiitiko girafu, shanduko, caching mameseji uye glyphs. Kubatana zvakare kwakarerutsa zvakanyanya kuchengetedza kweiyo kodhi base yeinjini mbiri uye kuichengeta ichiri kufambidzana uye yakawiriraniswa.

Kusiyana neiyo yekare gl injini, iyo yaishandisa yakaparadzana yakapusa shader yemhando yega yega render node uye nguva nenguva yakarongedza data panguva yekuburitsa kunze kwescreen, injini nyowani pachinzvimbo chekupa offscreen inoshandisa yakaoma shader (ubershader) inodudzira data kubva kubhafa. . Mune chimiro chayo chazvino, iyo nyowani yekushandisa ichiri kuseri kweiyo yekare maererano nehuwandu hwekugadzirisa, sezvo chinonyanya kutariswa padanho razvino chiri pakushanda kwakaringana uye nyore kugadzirisa.

Zvinyowani zvisipo mune yekare gl injini:

  • Contour smoothing - inokutendera kuti uchengetedze zvakanaka uye uwane makonari akapfava.
    Injini nyowani dzekupa dzeOpenGL neVulkan dzakawedzerwa kuGTK
  • Kuumbwa kwezvipo zvemagradients, izvo zvinogona kushandisa chero nhamba yemavara uye anti-aliasing (muiyo gl injini, chete mutsara, radial uye conical gradients ane 6 kumira kwemavara akatsigirwa).
    Injini nyowani dzekupa dzeOpenGL neVulkan dzakawedzerwa kuGTK
  • Fractional scale, iyo inokubvumira kuti uise maitiro asina-integer scale, somuenzaniso, paunenge uchishandisa chiyero che 125% pahwindo re 1200x800, buffer ye 1500x1000 ichagoverwa, uye kwete 2400x1600 semuinjini yekare.
  • Tsigiro yeDMA-BUF tekinoroji yekushandisa akawanda maGPU uye kurodha mabasa ega kune imwe GPU.
  • Mazhinji ekupa node aive nematambudziko mukuitwa kwekare anogadziriswa nemazvo.

Izvo zvisingakwanisi injini itsva zvinosanganisira kushaikwa kwerutsigiro rwekumisikidzwa neasiri-integer values ​​(fractional position) uye glshader node, dzaive dzakasungirirwa zvakanyanya kuzvinhu zveinjini yekare, uye dzaive dzisisadiwe mushure mekuwedzera rutsigiro. nodes ane masiki (mask) uye manyorerwo ane pachena. Zvinotaurwawo kuti pane mukana wezvinobvira matambudziko ane graphics vatyairi vanomuka nekuda kwekuchinja kwemaitiro ekushanda nevatyairi.

Mune ramangwana, zvichibva paiyo nyowani yakabatana modhi, kusikwa kweinjini dzekupa uchishandisa Metal muMacOS uye DirectX muWindows hakuna kuisirwa, asi kusikwa kweinjini dzakadaro kunoomeswa nekushandiswa kwemimwe mitauro kune shaders (iyo "ngl ” uye β€œvulkan” injini dzinoshandisa mutauro weGLSL, saka kuMetal neDirect zvinofanirwa kupeta shader kana kushandisa layer yakavakirwa paSPIRV-Cross toolkit).

Zvirongwa zveramangwana zvinosanganisira kupa HDR rutsigiro uye maturusi ekwakaringana manejimendi eruvara, tsigiro yeNzira inopa kudivi reGPU, kugona kupa glyphs, off-stream rendering, uye optimizations yemashandiro emidziyo yekare uye yakaderera-simba. Mune chimiro chayo chazvino, kuita kweinjini ye "vulkan" iri padyo nekuita kweinjini yekare "gl". Injini ye "ngl" yakaderera mukushanda kune yekare "gl" injini, asi maitiro aripo anokwana kupa pa60 kana 144 FPS. Zvinotarisirwa kuti mamiriro acho achachinja mushure mekugadzirisa.

Source: opennet.ru

Voeg