De Khronos Group heeft vandaag versie 1.1 van zijn cross-platform Vulkan-api uitgebracht. De update implementeert een aantal functies die voorheen als extensies beschikbaar waren, zoals het gelijktijdig renderen van meerdere views, voor bijvoorbeeld virtual reality, en het gebruik van meerdere videokaarten.
Dit laatste heeft echter wel nog een nadeel ten opzichte van DirectX 12: Vulkan 1.1 ondersteunt alleen gelijke gpu-chips, zogeheten homogene gpu-opstellingen, waar DirectX 12 verschillende gpu's kan combineren, ook wel een heterogene opstelling genoemd. Het grote verschil met sli en crossfire is echter dat de verdeling van het rekenwerk gebeurt op api-niveau, in plaats van op driver-niveau.
Hierdoor heeft de ontwikkelaar meer controle en kan hij zelf het werk verdelen over de videokaarten. In het geval van Vulkan kunnen de ontwikkelaars de videokaarten in één zogenaamde virtuele apparaatgroep steken. In deze groep zijn de resources van de ene kaart beschikbaar voor de andere en kan de ontwikkelaar zijn verwerkingsregels vastleggen. De virtuele groep is vanuit de code dan aan te sturen zoals men een gewone videokaart zou aansturen.
Ook voegt versie 1.1 zoals eerder gezegd ondersteuning voor meerdere views toe. De meeste vr-applicaties lossen het verschil in perspectief op door de generatie van het beeld voor elk oog apart aan te roepen. De nieuwe multiview-functie combineert dit in één commando, die dan meerdere perspectieven aanlevert.
Vanaf nu heeft de Vulkan-api ook ondersteuning voor Microsofts HLSL-shaders. Eén van de verschillen tussen OpenGL/Vulkan en Direct3D is de geheugenlayout. Voorheen vereiste Vulkan zijn eigen layout, maar update 1.1 voegt nu ondersteuning voor de Direct3D geheugenlayout toe. Hierdoor zou het voor ontwikkelaars makkelijker moeten zijn om bestaande Direct3D-code om te zetten naar de Vulkan-api.
Om deze ondersteuning toe te voegen is er ook een update van SPIR-V (Standard Portable Intermediate Representation) uitgebracht, versie 1.3. SPIR-V heeft ook een aantal interessante veranderingen ondergaan: een samenwerking tussen Adobe, Google en Codeplay heeft geresulteerd in Clspv. Dit is een compiler die OpenCL programma's hercompileert naar SPIR-V. Dit betekend dat OpenCL-applicaties ook nu ook gedraaid kunnen worden op systemen die geen OpenCL-ondersteuning hebben, maar wel Vulkan ondersteunen.
Het volledige persbericht is terug te vinden op Khronos' website, waar je ook de volledige specificatie en introductiepresentatie kan terugvinden.
Bronnen: Ars Techica, Khronos