När AMD introducerade lågnivågränssnittet Mantle under 2013 sparkade det igång ett intensivt fokus på hårdvarunära utveckling, där Microsoft snart hoppade på tåget med DirectX 12. År 2016 var det dags för gamla konkurrenten OpenGL att närma sig hårdvaran, vilket skedde i form av Vulkan.

Vulkan 12 Press Deck_02.jpg
Vulkan 12 Press Deck_07.jpg
Vulkan 12 Press Deck_08.jpg

Khronos Group, organisationen bakom gränssnittet, släpper nu version 1.2 av Vulkan. Nyheterna denna gång består i att 23 tidigare tillgängliga tillägg nu blir officiell del av specifikationen, vilket i praktiken innebär att de utgör grundstommen för vad utvecklare kan jobba mot på alla tillgängliga plattformar. Detta är signifikant då Vulkan finns tillgängligt på en rad olika plattformar, som Microsoft Windows, Mac OS och Linux.

Vulkan 12 Press Deck_15.jpg
Vulkan 12 Press Deck_12.jpg

Bland de mer uppseendeväckande nyheterna är att tillägg för emulering av DirectX-gränssnittet på Linux nu är en del av specifikationen. Detta kommer i form av stöd för shader-språket HLSL, vilket är det språk Microsoft använder i just DirectX. Med Vulkan 1.2 får gränssnittet fullt stöd för HLSL, som kompletterar Vulkans egen motsvarighet GLSL.

Tack vare att Microsoft tidigare släppt HLSL-kompilatorn DXC som öppen källkod kan HLSL-kod konverteras till Vulkans interna dataformat SPIR-V, och täcker därmed in all funktionalitet hos DirectX med undantag för ray tracing-gränssnittet DXR. Det här innebär att utvecklare nu med större enkelhet kan flytta spelutveckling mellan Windows, Linux och Xbox-spelkonsolerna.

Vulkan 12 Press Deck_09.jpg
Vulkan 12 Press Deck_10.jpg

Den andra stora nyheten i Vulkan 1.2 är utformad för att underlätta för programmerare. Inom programmering finns något som kallas semaforer, vilket är mekanismer för att begränsa åtkomst till resurser eller processer. I tidigare versioner av gränssnittet fanns två olika mekanismer för detta, vilket orsakar huvudbry för utvecklare som försöker styra åtkomst till parallella beräkningsköer.

I Vulkan 1.2 introduceras istället tidslinjebaserade semaforer. Här får utvecklare tillgång till ett enhetligt system för hantering av resurser över parallella beräkningsköer. Trådar i dessa köer kan också hantera väsentligt större värden, 64-bitars kontra tidigare 1-bitars, vilket tillsammans med den enhetliga resurshanteringen är en väsentlig modernisering av utvecklingsmodellen.

Vulkan 1.2 är utöver detta fokuserad på optimeringar och förbättringar, men då nyheterna inte ställer nya krav på stöd i hårdvaran är gränssnittet redan kompatibelt med befintliga grafikarkitekturer på marknaden. Drivrutiner från AMD, ARM, Imagination, Intel och Nvidia har redan passerat Khronos Groups kompatibilitetstest.

Nvidia erbjuder stöd för Vulkan 1.2 i den senaste betaversionen för Geforce-drivrutinen för Windows 10 samt Linux.

Läs mer om lågnivågränssnitt: