Pagkatapos ng ideya ay tinalakay nang humigit-kumulang isang taon, ang Mesa 22.3 ay nakakuha ng bagong opsyon sa pagganap na tinatawag na”block_on_depleted_buffers”upang maghintay sa mga buffer sa pagtatapos ng isang swap upang mabawasan ang latency–isang posibleng isang bentahe ng frame.

Kapag pinagana ang bagong opsyon na”i-block sa mga naubos na buffer”, ang kliyente ay haharangin hanggang sa magkaroon ng bagong buffer. Pinipigilan nito ang pagpapatupad ng kliyente hanggang sa isang bagong buffer ay magagamit at sa puntong iyon ang kliyente ay nagpapatuloy sa pagguhit. Sa pamamagitan ng pag-block sa dulo ng swap sa halip na ang default na gawi ng pagharang sa buffer na nagiging available, ang frame na ipinakita ay bahagyang mas bago na may posibleng pagbabawas ng latency ng isang frame.

Gumawa ang open-source developer na si Roman Gilg sa patch na ito batay sa isang sinimulan ni Michel Danzer na siya namang nagsimula dito pagkatapos ng Valve’s Pierre-Loup A. Griffais”Plagman”nagbukas ng Mesa ticket isang taon na ang nakakaraan tungkol sa pagtiyak sa susunod na buffer sa dulo ng SwapBuffers() para sa pagbabawas ng nakikitang latency. Ibinuod ng kilalang inhinyero ng Valve na nakatuon sa Linux ang sitwasyon bilang:

Ang karaniwang pattern na sinusundan ng mga karaniwang walang muwang na app ng kliyente (na totoo para sa karamihan ng mga laro) ay”sample time, simulate, draw, present, ulitin”. Sa mga sitwasyong nakasalalay sa GPU, ang haba ng swapchain ay ang pangunahing paraan kung saan natatapos ang pagharang ng isang app para hindi masyadong mauna sa GPU. Kung sa halip na nasa itaas, ang susunod na framebuffer ay na-validate kaagad sa dulo ng SwapBuffers(), bago bumalik sa client app, magkakaroon ng isang mas kaunting frame worth ng latency na makikita ng user sa senaryo sa itaas. Tutugma din ito sa ginagawa ng iba pang mga driver at graphics stack.

Ang opsyon na block_on_depleted_buffers ay hindi pinagana bilang default dahil maaari itong magbunga ng mga napalampas na frame kung ang kliyente ay masyadong nagtatagal para sa paggawa ng bagong frame. Ginagamit na ng Valve ang opsyon/patch na ito sa SteamOS at sa Steam Deck para sa pagtulong na bawasan ang nakikitang latency.

Ipinapakita ni Roman Gilg ang pagkakaiba sa visualization ng GPUVis para sa patch na ito na pinagana ang block_on_depleted_buffers.

Higit pang mga detalye sa opsyong ito sa pamamagitan ng ang kahilingan sa pagsasanib na ito ay binuksan walong buwan na ang nakalipas ni Roman Gilg at ngayon ay pinagsama-sama simula kahapon para sa Mesa 22.3. Nakakaapekto ang pagbabago sa karaniwang DRI3 code ng Mesa at sa gayon ay hindi limitado sa anumang partikular na driver ng hardware ng Mesa.

Ang Mesa 22.3 na may opsyong ito ay dapat maging matatag sa huling bahagi ng Nobyembre o Disyembre depende sa kung paano magpe-play ang ikot ng paglabas kapag nagsimula ang feature freeze/release na yugto ng kandidato sa unang bahagi ng Nobyembre.

Categories: IT Info