A Valve-nél dolgozó Marek Olšák RADV-kódja bizonyos VRS-esetekben akár megduplázhatja a teljesítményt

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

Marek Olšák idén év elején csatlakozott a Valve-hoz, azóta pedig inkább a RADV-re koncentrál, mint a RadeonSI Gallium3D driverre. Néhány friss munkáját mostanra beolvasztották a Mesa 26.2-be. Marek alaposan átdolgozta a variable rate shading (VRS) kódot, ami egyes esetekben akár kétszeres teljesítményt is hozhat.

A variable rate shading egy modern grafikus funkció, amely lehetővé teszi, hogy a képkocka kevésbé fontos részein csökkentsék a pixel shaderek futtatási gyakoriságát. Marek részben újraírta a VRS állapotkezelő kódját a Radeon RADV Vulkan driverben, hogy kijavítson néhány régóta fennálló hibát, javítsa a teljesítményt, és közben egyszerűsítse is a kódot. Ez a RADV VRS-munka a VKD3D-nek is kedvez, vagyis annak a Direct3D 12 API-nak, amely Vulkanra épül, és például a Steam Play (Proton) is használja.

Marek a merge requestben így foglalta össze a figyelemre méltó teljesítménybeli változásokat:

- Az, hogy a VRS dinamikus állapotként szerepel, vagy statikusan engedélyezik a pipeline objektumban, már nem akadályozza meg a VRS flat shading optimalizáció bekapcsolását. Ez az adott esetekben akár megduplázhatja a teljesítményt. Főleg a VKD3D profitál ebből. Ehhez továbbra is szükség van arra, hogy a fragment shaderek flat shadinget használjanak.

- Ha a VRS-t korábban kényszerből letiltották SampleMaskIn miatt, vagy akkor, amikor a sample shading engedélyezve volt MSAA nélkül, az mostantól nem tiltja le az RB+-t. Ez is akár kétszeres teljesítményt hozhat ezekben az esetekben, bár ez annyira speciális szituáció, hogy valószínűleg kevés alkalmazás fut bele.

- Mivel fordítási időben néha előre tudható, hogy a VRS állapotot felül fogják írni, ilyen esetekben a VRS rate shader kimenetet most már eltávolítjuk, és ugyanígy a per-vertex VRS rate kimenetet sem adjuk hozzá.

A mindezt megvalósító 22 javítást tartalmazó merge request már bekerült az augusztusra várható Mesa 26.2 kiadásba.