A múlt héten megjelent az OpenCL 3.1 kiadás és a Vulkan SC SDK, a Khronos Group pedig a Vulkan 1.4.351-gyel zárta a hetet. Ez az új Vulkan-specifikációfrissítés hat új kiterjesztést hoz. Az újdonságok: VK_KHR_opacity_micromap, VK_EXT_shader_split_barrier, VK_AMD_gpa_interface, VK_QCOM_elapsed_timer_query, VK_QCOM_image_processing3 és VK_QCOM_shader_multiple_wait_queues.
VK_KHR_opacity_micromap – A VK_KHR_opacity_micromap kiterjesztésen számos mérnök dolgozott több különböző szervezettől, köztük a Valve-os Hans-Kristian Arntzen, valamint az összes nagy hardvergyártó. A kiterjesztés célja a Vulkan ray tracinggel készült jelenetek fejlesztése: lehetővé teszi, hogy az acceleration structure építésekor a geometriához opacity micromapet adjanak. A kiterjesztés leírása szerint:
"Amikor egy ray tracinggel készült jelenethez átlátszóságot adunk, az alkalmazás választhat: tovább tesszellálja a geometriát, vagy any-hit shadert használ, hogy a sugár a geometria bizonyos részein áthaladhasson. Ezeknek a megoldásoknak az a hátrányuk, hogy vagy jelentősen növelik a memóriahasználatot, vagy futásidőben többletterhelést okoznak, mert a bejárás közben shaderkódot kell futtatni.
Ez a kiterjesztés lehetővé teszi, hogy az acceleration structure építésekor a geometriához opacity micromapet adjanak. Az opacity micromap tömören kódolja az átlátszósági információkat, amelyeket a megvalósítás ki tud olvasni, és ennek alapján a háromszögek egyes részeit átlátszatlannak vagy átlátszónak jelölheti. A formátum kívülről is látható, így az alkalmazás előre, időben tömörítheti a belső geometriai és felületreprezentációit a tömörített formátumba.
A tömörített formátum minden háromszöget rész-háromszögek halmazára oszt, amelyekhez két vagy négy átlátszósági érték rendelhető. Ezek az értékek szabályozhatják, hogy az adott rész-háromszöget eltaláló sugár átlátszatlan találatnak, teljes mellélövésnek vagy lehetséges találatnak számítson, a Ray Opacity Micromapben leírt vezérlők szerint."
- VK_EXT_shader_split_barrier – A Qualcomm, az Intel és az NVIDIA mérnökei a VK_EXT_shader_split_barrier kiterjesztést azért dolgozták ki, hogy a SPIR-V-ben az OpControlBarrier két új barrier művelettel szétbontható legyen: OpControlBarrierArriveEXT és OpControlBarrierWaitEXT. Ezzel a funkcióval az alkalmazások úgy szinkronizálhatják a workgroupon belüli subgroupok végrehajtási folyamatát, hogy nem kell minden subgroupnak megvárnia az „érkezési” feltételt, mielőtt egymástól függetlenül folytatnák a saját munkájuk végrehajtását.
- VK_AMD_gpa_interface – Ez az AMD gyártói kiterjesztés hozzáadja a GPU Performance API („GPA”) felületet az AMD Radeon GPU-kon elérhető globális teljesítményszámlálókhoz, streaming performance monitorokhoz és SQTT thread trace-ekhez.
- VK_QCOM_elapsed_timer_query – Ez az új Qualcomm gyártói kiterjesztés az OpenGL ARB_timery_query-hoz hasonló funkciót ad: egy új query típussal kiírható a parancsok egy adott halmaza között eltelt idő.
- VK_QCOM_image_processing3 – Egy új SPIR-V beépített funkciót ad, amely előre definiált image gather műveleteket támogat. Ilyeneket többféle képfeldolgozó algoritmus használ, például super resolution felskálázásnál és kontraszt-adaptive élesítésnél.
- VK_QCOM_shader_multiple_wait_queues – A mostani kör harmadik, egyben utolsó új Qualcomm kiterjesztése a VK_QCOM_shader_multiple_wait_queues. Ez egy új loop control hint a SPIR-V futtatási környezetéhez. A fordító ezt a jelzést arra használhatja, hogy több wait queue-t vessen be egy ciklus optimalizálásához.
A Vulkan 1.4.351 specifikációfrissítésről további részletek itt találhatók: GitHub.

