Hirdetés

Már szabványosan is jöhetnek a gyors kódok a Vulkan API-hoz

A Vulkan 1.0.39-es verzió más újításokat is tartalmaz, többek között az első Nintendo kiterjesztést is.

A következő generációs Vulkan előtt frissen befutott a 1.0.39-es API, amely egy meglehetősen nagy frissítés lett, hasonlóan a múlt nyári 1.0.25-ös változathoz. Az új, viszonylag sokat késő API verzió főleg a funkciók tekintetében javult, kiemelve azt, hogy végre beépült pár szabványos shader intrinsics függvény.

A shader intrinsics komoly figyelmet kap a Khronos Group által, hiszen számos utasítás már eleve benne volt a SPIR-V első verziójában. Ezeket azonban korábban nem volt egyszerű elérni, mivel külön fordítókiegészítéseken keresztül, gyártói kiterjesztésekkel voltak hozzáférhetők. Ilyeneket pedig csak az AMD csinált, így például a Doom című játék Vulkan módja is csak a GCN architektúrára épülő Radeonokon tudott gyors kódokat futtatni, míg a többi hardvernek be kellett érnie a hagyományos, lényegesen lassabb megközelítéssel.

A Vulkan 1.0.39 két kiterjesztést hoz VK_EXT_shader_subgroup_ballot és VK_EXT_shader_subgroup_vote néven, amelyek a SPIR-V SPV_KHR_shader_ballot és SPV_KHR_subgroup_vote kiterjesztéseit teszik kihasználhatóvá. Ezek mostantól szabványos formának biztosítanak bizonyos shader intrinsics függvényeket, így az előbbi kiterjesztés egyenletes folyamatirányítási esetekben jelentősen növeli a végrehajtási tempót, míg az utóbbi a shaderek hatékonyabb futtatását teheti lehetővé.

Természetesen ehhez új shader kódok is szükségesek az adott alkalmazásba, azaz például a Doom aktuális gyors kódjai nem kompatibilisek a friss lehetőségekkel, viszont a jövőben az ID Software szabványos megközelítést is alkalmazhat bizonyos shader intrinsics függvényekhez, ami végeredményben lehetővé teszi, hogy a gyors kódok előnyeiből a lehető legtöbb gyártó részesüljön.

Szintén fontos újítás még az új VK_KHR_maintenance1 kiterjesztés, amelynek a támogatása kötelező. Itt a Khronos Group egy hiányosságot pótolt, ugyanis az eddigi Vulkan verziókból kimaradt pár fontos funkció, amit pusztán időszűke miatt nem tudtak az 1.0-s specifikációban biztosítani. A VK_KHR_maintenance1 lényegében ezeket tartalmazza. Hasonlóan fontos és természetesen megkerülhetetlen kiegészítés a VK_KHR_get_physical_device_properties2, ami a korábbinál jobb lehetőségeket biztosít az erőforrás létrehozása előtt az adott hardver képességeinek lekérdezésére.

Feltűnt a Nintendo első fejlesztése is a Vulkan új verziójában. A japán cég, Switch nevű kézikonzoljáról már régóta tudni, hogy támogatni fogja a Vulkan API-t, és meg is érkezett a VK_NN_vi_surface kiterjesztés, amely lehetővé teszi a surface objektumok létrehozását a Nintendo operációs rendszerének saját, vi nevű protokolljához igazítva. Ez tulajdonképpen az alapvető feltétele, hogy a Vulkan fusson egy adott platformon.

Az 1.0.39-es Vulkan API implementációkat a gyártók egyelőre tesztelik, viszont pár héten belül valószínűleg már végleges formában is beépítik a támogatást a grafikus eszközillesztőkbe.

Azóta történt

Előzmények

Hirdetés