Jön a javítás a DirectX 12 API-val előforduló fagyásokra

Az elmúlt két hónap jól alakult a DirectX 12 szempontjából, mivel már öt olyan játék érhető el, amely az említett API-t támogatja. Ugyanakkor ahogy terjed a felhasználók körében a rendszer, úgy érkezik egyre több panasz egy olyan hibára, amelytől megáll a számítás, összeomlik az adott program, majd a Windows TDR (Timeout Detection and Recovery) modulja visszahozza a munkaasztalt, valamelyest mentve a helyzetet. Ez a probléma a Hitman tesztünknél is előjött, amiről az alábbi oldal harmadik bekezdésében beszámoltunk.

A rettegett hiba
A rettegett hiba (forrás: Eurogamer.net) [+]

Nehezítette a problémakeresést, hogy főleg két játék kapcsán érkeztek panaszok, nevezetesen a Quantum Break és a Hitman, emiatt leginkább alkalmazás, esetleg meghajtóhibára lehetett gondolni, de szűkíti a kört, hogy a Broadwell és Skylake IGP-vel, illetve a GCN architektúrára épülő Radeonokkal nem jön elő a hiba. A jó hír, hogy az iparágban érintettek tudják miről van szó, tehát a probléma oka már ismert. Rossz hír azonban, hogy nem a programokban és a meghajtókban, hanem magában az operációs rendszerben van a hiba. Információink szerint a hibát a WDDM 2.0 GPUMMU módjának egy problémás helyzetkezelése okozza, ami akkor jelentkezik, ha az adott GPU 64 kB-os lapokkal menedzseli a memóriaszegmenst.

Mint ismeretes a GPUMMU mód a DDI interfészen belül fix 4 kB-os lapokkal dolgozik annak érdekében, hogy igazodjon a rendszermemória 4 kB-os lapméretéhez. Ezeket a lapokat a grafikus meghajtó allokációs rutinja változtatás nélkül kezelheti, amennyiben az adott GPU fizikailag is képes 4 kB-os lapméretet kezelni. Ilyen hardvernek tekinthető az összes GCN architektúrára épülő Radeon, illetve az Intel Broadwell (Gen8) és Skylake (Gen9) IGP generáció. A némileg régebbi elvek szerint tervezett GPU-k azonban fizikailag 64 kB-os lapmérettel dolgoznak, és ebben a kategóriába tartozik az összes GeForce, illetve a Haswell (Gen7.5) IGP generáció. Elméletben ebből nem lehetne gond, mert a GPUMMU mód lehetővé teszi a grafikus meghajtónak a 4 kB-os lapméretek összefűzését, és abból lesz egy nagy 64 kB-os lapméret, ami tökéletesen megfelel a régebbi elvek szerint tervezett hardvereknek. Valami azonban elcsúszik a gyakorlatban, és egy idő után a program érvénytelen címtartományra hivatkozik, ami természetesen TDR-t szül az alkalmazás összeomlása után. Emiatt nem tudják orvosolni a programfejlesztők és a meghajtókat író rendszerprogramozók a programösszeomlásokat, mivel nem rajtuk múlik.

Tekintve, hogy a javítás már kvázi készen várja a tesztelést sejthető, hogy a Microsoft megfejtette a hiba okát, így egy későbbi frissítésben szállítani is fogják a hibás működést korrigáló rendszerkomponenst. Valószínűleg a programokat és a meghajtókat nem kell módosítani, mivel ezek automatikusan jól fognak működni, amint az alattuk keletkező hiba ki lesz javítva.

Előzmények

Hirdetés