
A Vulkan 1.4.325 verzió pénteken jelent meg, és egy fontos újdonságot hozott: a VK_KHR_shader_untyped_pointers kiterjesztést, amely lehetővé teszi a típus nélküli mutatók (untyped pointers) használatát a shaderekben. A kiterjesztés a SPIR-V SPV_KHR_untyped_pointers bővítményre épül, és alternatívát kínál az eddigi szigorúan típushoz kötött mutatókkal szemben. A típus nélküli mutatók lényege, hogy a shader-kód átértelmezheti (reinterpretálhatja) a memóriában tárolt adatokat és atomi műveleteket anélkül, hogy a változó deklarált adattípusához kellene ragaszkodnia, és mindezt extra konverziós utasítások nélkül.
Ez többek között:
- Hatékonyabbá teszi a magas szintű nyelvek sablonos (templated) betöltési/mentési műveleteinek fordítását.
- Egyszerűsíti azon shaderek írását, amelyek támogatják bizonyos műveleteket, de nem rendelkeznek közvetlen tárolási támogatással kisebb adattípusokra (például 16 bites lebegőpontos típusokra).
Fejlesztői együttműködés
A kiterjesztés fejlesztésében több iparági szereplő vett részt, köztük a Google, az Arm, a LunarG és az AMD mérnökei. A SPIR-V regiszter hivatalos leírása kiemeli, hogy a típus nélküli mutatók hasonló rugalmasságot nyújtanak, mint a magas szintű nyelvekben alkalmazott pointer casting technika, vagyis a mutatók típusának futásidőben történő újraértelmezése.
Például lehetőség nyílik lebegőpontos vektor betöltésére egy olyan változóból, amely eredetileg egész számok tömbjeként lett deklarálva.
Illesztőprogram-támogatás
A kiadás után azonnal megjelent a támogatás a Mesa NVK (NVIDIA) és ANV (Intel) illesztőprogramokban. A RADV (AMD) meghajtóhoz szükséges merge request még függőben van, de várhatóan napokon belül elérhető lesz.
A Vulkan 1.4.325 frissítés kisebb hibajavításokat is tartalmaz, amelyek a specifikáció pontosítását szolgálják, de a legnagyobb figyelmet egyértelműen az új típus nélküli mutatókat lehetővé tevő kiterjesztés kapta.
