Az ötlet után Körülbelül egy éve vitatják, a Mesa 22.3 új teljesítményopciót kapott, a”block_on_depleted_buffers”néven, hogy a csere végén a pufferekre várjon a késleltetés csökkentése érdekében – ez egy lehetséges egy képkocka előny.

Ha az új”letiltás a kimerült puffereken”opció engedélyezve van, az ügyfél blokkolva lesz, amíg új puffer nem áll rendelkezésre. Ez leállítja az ügyfél végrehajtását, amíg új puffer nem áll rendelkezésre, és ekkor az ügyfél folytatja a rajzolást. A csere végén történő blokkolással, nem pedig az alapértelmezett blokkolási viselkedéssel a pufferen, a bemutatott képkocka valamivel újabb lesz, egy képkockás késleltetéssel.

A nyílt forráskódú fejlesztő Roman Gilg dolgozott ezen a javításon, amely Michel Danzer által elindított javításon alapult, aki viszont a Valve-féle Pierre-Loup A. Griffais”Plagman”után kezdte el. egy évvel ezelőtt megnyitott egy Mesa jegyet arról, hogy biztosítsa a következő puffert a SwapBuffers() végén az észlelt késleltetés csökkentése érdekében. A tekintélyes Linux-központú Valve mérnök a következőképpen foglalta össze a helyzetet:

A tipikus naiv kliens alkalmazásoknál megszokott minta (ami a legtöbb játékra igaz) a következő:”mintavételezés, szimuláció, rajzolás, bemutatás, ismétlés”. GPU-hoz kötött forgatókönyvekben a cserelánc hossza az elsődleges módja annak, hogy egy alkalmazás blokkolja, hogy ne kerüljön túlságosan a GPU elé. Ha a fentiek helyett a SwapBuffers() végén azonnal érvényesítené a következő framebuffert, mielőtt visszatérne az ügyfélalkalmazáshoz, akkor a fenti forgatókönyvben eggyel kevesebb képkocka értékű késleltetés lenne látható a felhasználó számára. Ez is megegyezik más illesztőprogramok és grafikus veremekkel.

A block_on_depleted_buffers opció alapértelmezés szerint nincs engedélyezve, mivel kihagyott képkockákat eredményezhet, ha a kliensnek túl sokáig tart egy új keret létrehozása. A Valve már használta ezt az opciót/javítást a SteamOS és a Steam Deck rendszeren, hogy segítsen csökkenteni az észlelt késleltetést.

Roman Gilg bemutatja a GPUVis vizualizációs különbségeit ehhez a javításhoz, és a block_on_depleted_buffers engedélyezve van.

További információ erről a lehetőségről: ezt az egyesítési kérelmet nyolc hónapja nyitotta meg Roman Gilg, és tegnaptól összevonták a Mesa 22.3-as verzióhoz. A változás a Mesa közös DRI3 kódját érinti, így nem korlátozódik egyetlen Mesa hardver-illesztőprogramra sem.

Az ezzel a beállítással rendelkező Mesa 22.3 stabilnak kell lennie november végén vagy decemberben, attól függően, hogy a megjelenési ciklus hogyan zajlik, miután november elején elkezdődik a funkció befagyasztása/kiadásjelölt fázis.

Categories: IT Info