Új hozzászólás Aktív témák

  • Abu85

    HÁZIGAZDA

    válasz PuMbA #2 üzenetére

    Azért nem látta mindenki, mert bizonyos játékokban van kompatibilis swapchain erre. De akkor röviden a mögöttes ok... kezdjük ott, hogy se a DLSS, se az FSR, se az XeSS frame generation modul nem rendelkezik frame pacinggel. Ennek az oka az, hogy a futószalagnak nem azon a pontján dogoznak, ahol bármit is számítana maga a frame pacing.

    Magát a frame pacinget a grafikus motor biztosítja DirectX 12 API-val, és Vulkan alatt is. Most pusztán a közérthetőség miatt maradjunk a DirectX 12-nél, és itt elmondható, hogy a frame pacingért a Windows operációs rendszer alapértelmezett DXGI swapchainje felel. A gondot az jelenti, hogy a Windows DXGI swapchain nem tudja értelmezni a generált képkockákat, tehát ezeket ugyan a driver be tudja szúrni megjelenítésre, de a swapchain ezen kívül nem tud vele mit kezdeni, képtelen a motorba épített frame pacinget alkalmazni rájuk.

    Erre találták ki a cégek a frame generation swapchaint, ami lecseréli a DXGI swapchaint egy olyanra, ami tudja értelmezni a generált képkockákat is. Mind a DLSS, mind az XeSS és mind az FSR rendelkezik egy ilyen modullal, amit implementálni lehet a játékokba. Na most eleinte azért nem volt ebből semmi gond, mert eleve natív frame generation támogatás jött, viszont ahogy az NVIDIA, az Intel és az AMD elkezdte ezt a technikát fejleszteni, lehetővé vált magát a képgenerálót driverből felülírni. És ez tökéletesen megoldható, mivel látható, hogy a DLSS, XeSS és FSR frame generation régebbi módjait ki lehet váltani a driverből újabb módokkal a megfelelő állományokat és egyedi API-kat használó címekben. Viszont ez csak a frame generationt cseréli le, a swapchain nem kiváltható. Helyette ott van a DXGI swapchain fallbacknek, vagy lehet implementálni alternatív megoldást, de driverből nem lehet csak úgy cserélgetni ezt.

    A fentiek miatt az történik, hogy egy játék beépíti a DLSS, XeSS és FSR frame generationt. Minden megy pöpecül, hozzájuk beépítik a szükséges alternatív swapchaint, ami biztosítja a frame pacinget. Utána ez addig így is lesz, amíg a driver le nem cseréli a játékba beépített frame generation eljárást egy olyanra, ami már nem kompatibilis az eredetileg szállított swapchainnel, és így a program kénytelen a DXGI fallback swapchaint használni, ami viszont nem kezeli a generált képkockákat és megszűnik a frame pacing. Emiatt van az, hogy az NV, az Intel és az AMD ezt a kényszerítést opcionálissá teszi, mert a frame gent le tudják cserélni driverből, de ha a swapchainnel nem kompatibilis, akkor a driveres kényszerítéssel elveszítik ezek a technikák a frame pacinget. Hosszabb távon mindegyik játék így fog járni, mert egy ponton túl a fejlesztők nem támogatják ezeket tovább, így az újabb frame gen verziókhoz nem fogják hozzáigazítani a specifikus swapchaint. Emiatt egy ideje az NVIDIA, az Intel és az AMD is nyúzza a Microsoftot, hogy jó lenne, ha az alapértelmezett DXGI swapchain fel tudná ismerni a generált képkockát, és meg tudná oldani rá a frame pacinget, csak egyelőre ezzel a Microsoft nem foglalkozik. Emiatt a DLSS, XeSS és FSR esetében, ha a frame generation új verzióját a driver kényszeríti, akkor van esély rá, hogy a régebbi, natívan implementált verzióval jól működő frame pacing nem fog tovább működni, minden attól függ, hogy a játékban használt swapchain implementáció kompatibilis-e az aktuális frame generation verzióval. Sajnos a jelenlegi működési modellel mindegyik technikánál ki lehet választani nem egy olyan játékot, ahol a frame pacing nem működik, és ennek nem a DLSS, XeSS vagy FSR az oka, hanem az, hogy a driver olyan verzióra cserélte natív módot, ami a játékba rakott alternatív swapchainnel nem kompatibilis.

    Ezzel az NVIDIA, az AMD és az Intel annyit tehet, hogy rágja a fejlesztők fülét, hogy a swapchain implementációt cseréljék egy patch-ben, de egyik cég sem képes megoldani ezt a gondot driverből, és ha egy játék beleesik ebbe a problémába, akkor mindegy, hogy DLSS vagy FSR vagy XeSS képgenerálást használsz, egyik generált képkockáját sem fogja jól kezelni a Windows DXGI swapchain.

  • PuMbA

    titán

    válasz elde55 #1 üzenetére

    Nem mindenkinél, de biztos jön javítás a következő driverben :) Sajnos az FSR 3.1 is így indult, hogy frame pacing baja volt, de megcsinálták.

  • elde55

    csendes tag

    Szuper, csak a frame generation egy rakás szerencsétlenség inkonzisztens frame timing-al

Új hozzászólás Aktív témák