Hirdetés

Linuxon is futtathatóvá tenné a gyártóspecifikus shadereket a DXVK

A vezető fejlesztő a DXVK-AGS projekt részeként kísérletezik ezzel, amivel az AMD szervizkönyvtárát portolnák Linuxra.

A Valve Proton kódnevű projektje egyre jobban kiterjeszti a Windows operációs rendszerre írt játékok futtathatóságát Linuxon. Ez a végül Steam Play névre keresztelt rendszer több komponensből áll, nagyrészt a Wine-ra építkezik, de a DXVK is egy fontos eleme. Utóbbi a Wine segítségével képes Direct3D 10 és 11 API-t használó alkalmazásokat futtatni a linuxos Vulkan implementációkon.

Maga a rendszer kellemes kezdeményezés, a lehetőségeket figyelembe véve elég jól működik, de gondok azért vannak bőven. A legnagyobb problémákat a gyártók szervizkönyvtárai okozzák, ugyanis az AMD és az NVIDIA az elmúlt években kiterjesztette a DirectX 11 és 12 API-k lehetőségeit. Előbbi cég az AGS, míg utóbbi az NVAPI segítségével tesz kihasználhatóvá bizonyos, előbb megnevezett API-kban szabványosan nem elérhető képességeket. Ezek részben lefedik egymást, tehát függetlenül attól, hogy nem szabványos shaderekre van szükség a működésükhöz, a céljuk nagyjából ugyanaz. Windowson ebből nincs is gond, de egyik szervizkönyvtárnak sincs Linux portja, ami megnehezíti az olyan projekteket, mint amilyen a Valve Steam Play.

Némi öröm az ürömben, hogy az AMD AGS szervizkönyvtára nyílt forráskódú, így a Steam Play például úgy próbálja megkerülni a problémákat, hogy Radeonnak hazudja a GeForce-okat, amivel az AGS még mindig gondot jelent, de ez a forráskód módosíthatósága miatt sokkal kellemesebb ezt felvállalni, mint a teljesen zárt NVAPI-val küzdeni. Utóbbit sem lenne lehetetlen Linuxra implementálni, de az NVIDIA anyatigrisként védi a technológiáit, és azok visszafejtése esetén nem restek belengetni a jogi lehetőségeket sem.

A fenti koncepció viszont nagyjából működik, és nem kell tartani attól sem, hogy az NVIDIA egy szép nagy pert akaszt a projektek nyakába, amelyek a felhasznált komponensek miatt továbbra is teljesen nyílt forráskódúak maradhatnak.

A DXVK azonban továbblépne, és a projektet vezető Philip Rebohle elkezdte Linuxra portolni az AMD AGS szervizkönyvtárának egyes képességeit. Ez már így lényegesen többet biztosítana, mint a Windowsra írt játékok szimpla működése, de azért gond itt is lesz bőven. Például az egyik nehézség, hogy az AGS nem kompatibilis visszafelé. Minden egyes verziója önálló, akár szimplán a támogatást kínáló program szintjén is, amire a meghajtókban szintén van direkt implementáció. Ez ugyan a Linux esetében részletkérdés, mert úgyis a Vulkan implementáción futna az alkalmazás, de a működéshez az AGS-t használó játékokhoz egyedi állományt kell fordítani, amire ki kell cserélni az alkalmazás által szállított amd_ags_x64.dll fájlt. Ha ez nem található meg, akkor egyszerűbb a helyzet, hiszen ilyenkor az alapértelmezett AGS csomag lesz meghívva, de ez ritkának számít.

A DXVK-AGS aktuális verziója a depth bounds test, a multi-draw indirect, a multi-Draw indirect with indirect count és a UAV overlap funkciókat implementálta a Resident Evil 2 (Remake) és a Devil May Cry 5 című játékok DirectX 11-es módjainak megfelelően. A fejlesztők szerint ezzel Linuxon 1-3%-ot gyorsul a Resident Evil 2 futtatási sebessége, de eléggé kezdetleges még a rendszer, így előfordulhatnak stabilitási problémák.

Elméletben egyébként a DXVK-AGS működhet GeForce-okon is, ha a felhasznált funkciók szabványos Vulkan kiterjesztésekre vannak átfordítva, hiszen így csak Radeonnak kell hazudni az NVIDIA hardvereit, a Vulkan implementáció pedig Linuxon adott. Ugyanakkor még ha le is fut a nem szabványos shader, ezeket sose tesztelték a fejlesztők GeForce-okon, tehát jó esély van arra, hogy inkább csak lassítana a beépített, teljesen Radeonokra szabott optimalizálás. Emiatt eléggé kicsi az esély arra, hogy DXVK-AGS valaha is a Steam Play része lesz, de külön természetesen lehet használni.

Azóta történt

Előzmények

Hirdetés