Tshiab rendering xyaw rau OpenGL thiab Vulkan tau ntxiv rau GTK

Cov tsim tawm ntawm lub tsev qiv ntawv GTK tau tshaj tawm tias muaj ob lub tshuab ua haujlwm tshiab - "ngl" thiab "vulkan", siv OpenGL (GL 3.3+ thiab GLES 3.0+) thiab Vulkan graphics APIs. Cov cav tshiab tau suav nrog hauv kev sim tso tawm ntawm GTK 4.13.6. Hauv kev sim GTK ceg, lub cav ngl tam sim no siv los ntawm lub neej ntawd, tab sis yog tias muaj teeb meem tseem ceeb raug txheeb xyuas hauv ceg ruaj khov tom ntej 4.14, lub qub "gl" rendering engine yuav raug xa rov qab.

Cov cav tshiab tau muab tso rau hauv kev sib koom ua ke thiab sib sau ua ke los ntawm ib lub hauv paus code. Lub ntsiab lus ntawm kev sib koom ua ke yog tias Vulkan API yog siv los ua lub hauv paus, nyob rau sab saum toj ntawm qhov sib txawv ntawm cov ntsiab lus tau tsim rau OpenGL, suav nrog qhov sib txawv ntawm OpenGL thiab Vulkan. Txoj hauv kev no ua rau nws muaj peev xwm siv cov txheej txheem sib xws hauv ob lub cav rau kev ua cov duab kos duab, hloov pauv, caching textures thiab glyphs. Kev sib koom ua ke kuj tseem ua kom yooj yim rau kev saib xyuas cov cai hauv paus ntawm ob lub cav thiab ua kom lawv mus txog hnub tim thiab synchronized.

Tsis zoo li qub gl cav, uas siv ib qho yooj yim sib cais shader rau txhua hom render node thiab ib ntus rov txheeb cov ntaub ntawv thaum lub sij hawm offscreen rendering, cov tshiab xyaw es tsis txhob ntawm offscreen rendering siv ib tug complex shader (ubershader) uas txhais cov ntaub ntawv los ntawm tsis. . Nyob rau hauv nws daim ntawv tam sim no, qhov kev siv tshiab tseem poob qab qhov qub nyob rau hauv cov nqe lus ntawm cov theem ntawm optimizations, txij li thaum lub hom phiaj tseem ceeb ntawm cov theem tam sim no yog nyob rau hauv kev ua haujlwm kom raug thiab yooj yim ntawm kev saib xyuas.

Cov yam ntxwv tshiab uas ploj lawm hauv lub cav qub gl:

  • Contour smoothing - tso cai rau koj khaws cov ntsiab lus zoo thiab ua tiav cov duab zoo nkauj.
    Tshiab rendering xyaw rau OpenGL thiab Vulkan tau ntxiv rau GTK
  • Tsim cov gradients arbitrary, uas yuav siv tau ib tug xov tooj ntawm cov xim thiab anti-aliasing (nyob rau hauv lub gl cav, tsuas yog linear, radial thiab conical gradients nrog 6 nres xim tau txais kev txhawb nqa).
    Tshiab rendering xyaw rau OpenGL thiab Vulkan tau ntxiv rau GTK
  • Fractional scale, uas tso cai rau koj los teeb tsa qhov tsis yog tus lej ntsuas qhov tseem ceeb, piv txwv li, thaum siv qhov ntsuas ntawm 125% rau lub qhov rais ntawm 1200x800, qhov tsis ntawm 1500x1000 yuav muab faib, thiab tsis yog 2400x1600 ib yam li hauv lub cav qub.
  • Kev them nyiaj yug rau DMA-BUF thev naus laus zis rau siv ntau lub GPUs thiab tshem tawm ib tus neeg ua haujlwm rau lwm GPU.
  • Ntau qhov kev ua haujlwm uas muaj teeb meem hauv kev ua haujlwm qub tau ua tiav kom raug.

Cov kev txwv ntawm cov cav tshiab suav nrog qhov tsis muaj kev txhawb nqa los ntawm qhov tsis muaj nuj nqis (fractional position) thiab glshader nodes, uas tau khi hnyav rau cov yam ntxwv ntawm lub cav qub, thiab qhov uas tsis tsim nyog tom qab ntxiv kev txhawb nqa rau nodes nrog daim npog qhov ncauj (mask) thiab textures nrog pob tshab. Nws kuj tau hais tias muaj peev xwm ua tau teeb meem nrog cov tsav tsheb graphics tshwm sim vim muaj kev hloov pauv hauv txoj kev ua haujlwm nrog cov tsav tsheb.

Nyob rau hauv lub neej yav tom ntej, raws li kev sib koom ua qauv tshiab, kev tsim cov rendering xyaw siv Hlau hauv macOS thiab DirectX hauv Windows tsis raug cais tawm, tab sis kev tsim cov cav no nyuaj los ntawm kev siv lwm yam lus rau shaders ("ngl "thiab "vulkan" cav siv GLSL cov lus, yog li rau Hlau thiab Direct yuav tsum tau duplicate shaders los yog siv ib txheej raws li SPIRV-Cross toolkit).

Cov phiaj xwm yav tom ntej suav nrog muab kev txhawb nqa HDR thiab cov cuab yeej rau kev tswj cov xim kom raug, kev txhawb nqa rau Path rendering ntawm GPU sab, muaj peev xwm ua rau glyphs, off-kem rendering, thiab kev ua tau zoo rau cov laus thiab cov khoom siv hluav taws xob tsawg. Nyob rau hauv nws daim ntawv tam sim no, kev ua tau zoo ntawm lub cav "vulkan" yog ze rau qhov kev ua tau zoo ntawm lub qub "gl" engine. Lub cav "ngl" yog qhov ua tsis tau zoo rau lub qub "gl" lub cav, tab sis qhov kev ua tau zoo muaj txaus rau kev ua haujlwm ntawm 60 lossis 144 FPS. Nws cia siab tias qhov xwm txheej yuav hloov tom qab kev ua kom zoo.

Tau qhov twg los: opennet.ru

Ntxiv ib saib