Csak a Vulkan API-t fogják támogatni a Quantic Dream PC-s portjai

A shaderek más nyelvre portolása túl nagy munka lett volna, így inkább fordítót írtak SPIR-V-re.

A Quantic Dream nemrég jelentette be, hogy a PlayStation 3 és 4 konzolokra megjelent, ikonikus játékait PC-re portolja, így az említett platformon hamarosan lehet játszani a Heavy Rain, a Beyond Two Souls és a Detroit: Become Human címekkel.

A portokról nemrég kiderült, hogy a PlayStation 4-re kiadott verziókból készülnek, és a grafikus API szempontjából a Vulkan került bejelentésre. Ugyanakkor arra nem volt válasz, hogy lesz-e mellette alternatív API. Ezzel kapcsolatban utánakérdeztünk, és megtudtuk, hogy ez jelenleg nincs tervbe véve, így a fentebb említett három játék Vulkan implementációkon fog futni.

Az okok tekintetében kiderítettük, hogy rengeteg shader kódot kellene HLSL-re portolni például a DirectX 11 vagy 12 támogatásához, ezek azonban PSSL-ben vannak megírva, ami egy speciálisan PlayStation 4 generációra kialakított shader nyelv. Ugyan a HLSL-re való konvertálást a Sony külön kiemelte még a konzol bemutatásakor, és valóban ügyeltek arra, hogy függvények a Microsoft shader nyelvéhez hasonlóan működjenek, ez leginkább akkor működik jól, ha az adott programot eleve multiplatform szinten fejlesztik. Azoknál a shader kódoknál viszont, amelyek rengeteg specifikus optimalizálást tartalmaznak a PlayStation 4 grafikus vezérlőjére vonatkozóan, a konvertálás igencsak nehézkessé válik, márpedig a Quantic Dream a PSSL shaderek megírásánál nem vette számításba, hogy valaha készülhet port más platformra.

Szerencsére azonban a Vulkan shader nyelvének számító SPIR-V rendkívül rugalmas, illetve nyílt is, vagyis bármilyen fordító írható rá. A PC-s portolás tekintetében ezt használja ki a Quantic Dream, és csak minimálisan módosítják a meglévő PSSL kódokat, majd azokból egy saját fejlesztésű fordító segítségével SPIR-V bájtkódot generálnak. Innen már egyszerű a képlet, ugyanis a SPIR-V egy szabványos IR, amit minden Vulkan implementációnak támogatnia kell.

A módosítások egyébként a tempó növelését célozzák, ugyanis az eredeti kódok tekintetében ez nem portolható. A konzolhoz szabott optimalizálás lényegében jól működik a PlayStation 4 generáció grafikus vezérlőin, de semmilyen más architektúrán nem hatékony. Ezen igazából nem kell meglepődni, amikor az érintett játékok készültek egyszerűen nem számított, hogy működjön más gépeken. Emiatt az igazán teljesítménykritikus részekbe muszáj belenyúlni, mivel szimpla fordítással nem lenne hatékony a kódok futtatása a legtöbb PC-s hardveren. És itt nem csak az Intel, illetve az NVIDIA grafikus vezérlőire kell gondolni, ugyanúgy probléma lenne az AMD Radeon GPU-ival is. Hiába van azokban GCN architektúra, az újabb fejlesztéseknél ez már modernebb, így bizonyos szempontok alapján nem úgy működik, ahogy a PlayStation 4 konzolok GCN2-es dizájnja.

A Quantic Dream egyébként a későbbiekben multiplatform szintre fejleszt majd, így a mostani helyzet amolyan egyszeri alkalom, amolyan kényszermegoldásokkal, amihez végül nagy segítség lesz a SPIR-V és a Vulkan.

Előzmények

Hirdetés