Konsorciumi Khronos, i angazhuar në zhvillimin e standardeve grafike,
specifikimin , e cila përcakton API për akses në mundësitë grafike dhe të llogaritjes të GPU. Specifikimi i ri përfshin korrigjimet e akumuluara gjatë dy viteve të fundit dhe . Drivarët që mbështesin versionin e ri të Vulkan janë tashmë kompania Intel, , ARM, Imagination Technologies dhe . Në Mesa, mbështetja për Vulkan 1.2 ofrohet për drivarët (kartat AMD) dhe (Intel). Mbështetja për Vulkan 1.2 është gjithashtu implementuar në debugin , dhe grupin e shembujve .
Ndryshimet kryesore :
- në përfundimin e implementimit të gjuhës së programimit për shenjat , e zhvilluar nga kompania Microsoft për DirectX. Mbështetja e HLSL në Vulkan ofron mundësinë e përdorimit të të njëjtave shenjat HLSL në aplikacione të bazuara në Vulkan dhe DirectX, duke e thjeshtuar gjithashtu përkthimin nga HLSL në SPIR-V. Për kompilimin e shenjave, rekomandohet të përdoret kompilerin standard
, i cili u hap nga kompania Microsoft në vitin 2017 dhe është bazuar në teknologjinë LLVM. Mbështetja për Vulkan është realizuar përmes një backend-i të veçantë që lejon përkthimin e HLSL në përfaqësim të ndërmjetëm të shenjave SPIR-V. Implementimi mbulon jo vetëm të gjitha mundësitë e ndërtuara
HLSL, duke pĂ«rfshirĂ« tipet matematikore, rrjedhat e kontrollit, funksionet, grupet, tipet e burimeve, hapĂ«sirat e emrave, Shader Model 6.2, strukturat dhe metodat, por gjithashtu lejon pĂ«rdorimin e zgjerimeve specifike pĂ«r Vulkan, si VKRay nga NVIDIA. NĂ« modin HLSL mbi Vulkan Ă«shtĂ« arritur tĂ« organizohet puna e lojrave si Destiny 2, Red Dead Redemption II, Assassinâs Creed Odyssey dhe Tomb Raider. - Specifikimi Ă«shtĂ« pĂ«rditĂ«suar , e cila pĂ«rcakton njĂ« pĂ«rfaqĂ«sim tĂ« ndĂ«rmjetĂ«m universale pĂ«r tĂ« gjitha platformat, e cila mund tĂ« pĂ«rdoret si pĂ«r grafikat ashtu edhe pĂ«r llogaritjet e paralel.
SPIR-V parashikon ndarjen e një fazë të veçantë të kompilimit të shenjave në përfaqësimin e ndërmjetëm, gjë që lejon krijimin e front-end-eve për gjuhë të ndryshme të nivelit të lartë. Bazuar në implementime të ndryshme të nivelit të lartë, gjenerohet një kod i përbashkët ndërmjetës që mund të përdoret nga drivarët OpenGL, Vulkan dhe OpenCL pa përdorimin e kompilerëve të ndërtuar të shenjave.
- Në API-në kryesore të Vulkan janë përfshirë 23 zgjerime, të cilat lejojnë rritjen e performancës, përmirësimin e cilësisë vizuale dhe thjeshtimin e zhvillimit. Në mesin e zgjerimeve të shtuar:
- (Timeline semaphore), që unifikojnë sinkronizimin me hostin dhe radhët e pajisjeve (lejojnë një primitiv të vetëm për sinkronizimin shumëanshëm midis pajisjes dhe hostit, pa nevojën për primitivët e ndarë VkFence dhe VkSemaphore). Semaforët e rinj paraqiten si një vlerë 64-bit që rritet monotone, e cila mund të ndjeket dhe përditësohet në disa rrjedha.

- Mundësia e përdorimit në shenjat e tipeve numerike me saktësi të ulur;
- Varianti i përputhshëm me HLSL për ndarjen e memories;
- Burimet e lidhura (bindless), që heqin kufizimin për numrin e burimeve të disponueshme për shenjat duke përdorur hapësirën e përbashkët virtuale të memories sistemike dhe memories së GPU;
- , që përcakton se si rrjedhat e ekzekutuara paralelisht mund të qasen në të dhëna të përbashkëta dhe operacione sinkronizimi;
- për ripërdorimin e descriptorëve të ndarjes në disa shenja;
- Referencat e tamponëve.
Lista e plotë e zgjerimeve të shtuar:
- (Timeline semaphore), që unifikojnë sinkronizimin me hostin dhe radhët e pajisjeve (lejojnë një primitiv të vetëm për sinkronizimin shumëanshëm midis pajisjes dhe hostit, pa nevojën për primitivët e ndarë VkFence dhe VkSemaphore). Semaforët e rinj paraqiten si një vlerë 64-bit që rritet monotone, e cila mund të ndjeket dhe përditësohet në disa rrjedha.
- më shumë se 50 struktura të reja dhe 13 funksione;
- Janë përgatitur variante të shkurtra të specifikimit për platformat e zakonshme, që e thjeshtojnë punën në platformat për të cilat ende nuk mbështeten të gjitha zgjerimet dhe lejojnë të shmangen aktivizimet selektive të mundësive bazë të API Vulkan.
- Puna për vazhdimin e projektit që siguron portabilitetin me API të tjera grafike është vazhduar. Për shembull, në Vulkan janë propozuar zgjerime që lejojnë përkthimin e OpenGL (), OpenCL (, ), OpenGL ES (GLOVE, Angle) dhe DirectX (, ) përmes API Vulkan, si dhe, përkundrazi, për të siguruar funksionimin e Vulkan në platformat pa mbështetje të tij origjinale ( dhe për funksionim mbi OpenGL dhe DirectX, dhe gfx-rs për funksionim mbi Metal).
Për të përmirësuar përputhshmërinë me DirectX dhe HLSL, janë shtuar zgjerime
VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, si dhe në SPIR-V janë realizuar mundësi specifike HLSL.
Në planet për të ardhmen, përmendet zhvillimi i zgjerimeve për mësimin e makinerive, gjurmimin e rrezeve, kodimin dhe dekodimin e videove, mbështetje për VRS (variable-rate shading) dhe shenjat Mesh.
Kujtojmë se API Vulkan megjithë thjeshtimin rrënjësor të drejtorëve, duke zhvendosur gjenerimin e komandave GPU në anën e aplikacionit, mundësinë e lidhjes së niveleve të shtrirjes, unifikimin e API për platforma të ndryshme dhe përdorimin e një përfaqësimi të ndërmjetëm të para-kompiluara të kodit për ekzekutimin në anën e GPU. Për të siguruar performancë të lartë dhe parashikueshmëri, Vulkan u jep aplikacioneve mjete për të menaxhuar drejtpërdrejt operacionet e GPU-së dhe mbështetje të integruar për përpunimin shumë-fijor të komandave të GPU, çka minimizon mbingarkesat e paraqitura nga drejtori, ndërsa funksionalitetet e realizuara në anën e drejtuesit thjeshtohen dukshëm dhe bëhen më të parashikueshme. Për shembull, operacione të tilla si menaxhimi i memories dhe trajtimi i gabimeve, të realizuara në OpenGL në anën e drejtuesit, në Vulkan janë zhvendosur në nivelin e aplikacionit.
Vulkan mbulon tĂ« gjitha platformat e disponueshme dhe ofron njĂ« API tĂ« vetĂ«m pĂ«r sisteme desktop, mobile dhe Web, duke lejuar pĂ«rdorimin e njĂ« API tĂ« pĂ«rbashkĂ«t pĂ«r GPU tĂ« ndryshme dhe fusha pĂ«rdorimi. FalĂ« arkitekturĂ«s multilayer tĂ« Vulkan, e cila pĂ«rfshin krijimin e mjeteve qĂ« funksionojnĂ« me çdo GPU, prodhuesit e pajisjeve mund tĂ« pĂ«rdorin mjete tĂ« standardizuara pĂ«r testimin e kodit, debugging dhe profiling. PĂ«r krijimin e shader-ave ofrohet njĂ« pĂ«rfaqĂ«sim i ri ndĂ«rportues SPIR-V, i bazuar nĂ« LLVM dhe pĂ«rdor teknikĂ« tĂ« pĂ«rbashkĂ«t me OpenCL. PĂ«r menaxhimin e pajisjeve dhe ekranĂ«ve nĂ« Vulkan ofrohet njĂ« ndĂ«rfaqe WSI (Window System Integration), e cila zgjidh tĂ« njĂ«jtat probleme si EGL nĂ« OpenGL ES. MbĂ«shtetje pĂ«r WSI Ă«shtĂ« e disponueshme pĂ«rmes Wayland â tĂ« gjitha aplikacionet qĂ« pĂ«rdorin Vulkan mund tĂ« ekzekutohen nĂ« njĂ« mjedis tĂ« serverĂ«ve Wayland tĂ« paprekur. MundĂ«sia pĂ«r tĂ« punuar pĂ«rmes WSI Ă«shtĂ« gjithashtu e siguruar pĂ«r Android, X11 (me DRI3), Windows, Tizen, macOS dhe iOS.
Burimi: opennet.ru


