Konsorciumi Khronos, i cili zhvillon standardet grafike,
Specifikim , i cili përcakton një API për të aksesuar aftësitë grafike dhe llogaritëse të GPU-së. Specifikimi i ri përfshin korrigjimet e grumbulluara gjatë dy viteve dhe . Drejtuesit që mbështesin versionin e ri të Vulkan janë tashmë Kompania Intel, , ARM, Imagination Technologies dhe . Mesa ofron mbështetje Vulkan 1.2 për drejtuesit (kartat AMD) dhe (Intel). Mbështetja Vulkan 1.2 zbatohet gjithashtu në korrigjuesin , dhe një sërë shembujsh .
Kryesore :
- zbatimi i një gjuhe programimi shader derisa të jetë gati për përdorim të gjerë , zhvilluar nga Microsoft për DirectX. Mbështetja HLSL në Vulkan bën të mundur përdorimin e të njëjtëve shader HLSL në aplikacionet e bazuara në Vulkan dhe DirectX, dhe gjithashtu thjeshton përkthimin nga HLSL në SPIR-V. Për të përpiluar shader, sugjerohet përdorimi i një përpiluesi standard
, e cila u hap nga Microsoft në vitin 2017 dhe bazohet në teknologjinë LLVM. Mbështetja Vulkan zbatohet përmes një backend të veçantë, i cili ju lejon të përktheni HLSL në një përfaqësim të ndërmjetëm të shaderëve SPIR-V. Zbatimi mbulon jo vetëm të gjitha aftësitë e integruara
HLSL, duke përfshirë llojet matematikore, flukset e kontrollit, funksionet, grupet, llojet e burimeve, hapësirat e emrave, Shader Model 6.2, strukturat dhe metodat, por gjithashtu lejon përdorimin e shtesave specifike të Vulkanit si VKRay nga NVIDIA. Në modalitetin HLSL në krye të Vulkan, ishte e mundur të organizohej puna e lojërave të tilla si Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey dhe Tomb Raider. - Specifikimi u përditësua , i cili përcakton një paraqitje të ndërmjetme të shaderëve që është universale për të gjitha platformat dhe mund të përdoret si për grafikë ashtu edhe për llogaritje paralele.
SPIR-V përfshin ndarjen e një faze të veçantë përpilimi shader në një paraqitje të ndërmjetme, e cila ju lejon të krijoni frontend për gjuhë të ndryshme të nivelit të lartë. Bazuar në implementime të ndryshme të nivelit të lartë, gjenerohet veçmas një kod i vetëm i ndërmjetëm, i cili mund të përdoret nga drejtuesit OpenGL, Vulkan dhe OpenCL pa përdorur përpiluesin e integruar të shader.
- API bazë Vulkan përfshin 23 shtesa që rrisin performancën, përmirësojnë cilësinë e paraqitjes dhe thjeshtojnë zhvillimin. Ndër shtesat e shtuara:
- (Semafori i linjës kohore), duke unifikuar sinkronizimin me radhët e hostit dhe pajisjes (duke ju lejuar të përdorni një primitiv për sinkronizimin gjithëdrejtues midis pajisjes dhe hostit, pa përdorur primitivë të veçantë VkFence dhe VkSemaphore). Semaforët e rinj përfaqësohen nga një vlerë monotonike në rritje 64-bit, e cila mund të gjurmohet dhe përditësohet nëpër fije të shumta.

- Aftësia për të përdorur lloje numerike me saktësi të reduktuar në shader;
- Opsioni i paraqitjes së memories së pajtueshme HLSL;
- Burime të palidhura (të palidhura), që heq kufizimin në numrin e burimeve të disponueshme për shader duke përdorur hapësirën e përbashkët virtuale të memories së sistemit dhe memorjes GPU;
- , i cili përcakton se si thread-et e njëkohshme mund të aksesojnë të dhënat e përbashkëta dhe operacionet e sinkronizimit;
- për të ripërdorur përshkruesit e paraqitjes nëpër shader të shumtë;
- Lidhje buferike.
Lista e plotë e shtesave të shtuara:
- (Semafori i linjës kohore), duke unifikuar sinkronizimin me radhët e hostit dhe pajisjes (duke ju lejuar të përdorni një primitiv për sinkronizimin gjithëdrejtues midis pajisjes dhe hostit, pa përdorur primitivë të veçantë VkFence dhe VkSemaphore). Semaforët e rinj përfaqësohen nga një vlerë monotonike në rritje 64-bit, e cila mund të gjurmohet dhe përditësohet nëpër fije të shumta.
- më shumë se 50 struktura të reja dhe 13 funksione;
- Versionet e shkurtuara të specifikimeve janë përgatitur për platformat tipike të synuara, duke thjeshtuar punën në platformat për të cilat të gjitha shtesat nuk janë ende të mbështetura dhe duke na lejuar të bëjmë pa aktivizim selektiv të aftësive bazë të Vulkan API.
- Puna vazhdon për projektin për të siguruar transportueshmëri me API-të e tjera grafike. Për shembull, Vulkan ofron shtesa që lejojnë përkthimin OpenGL (), OpenCL (, ), OpenGL ES (GLOVE, Angle) dhe DirectX (, ) përmes Vulkan API, dhe gjithashtu, anasjelltas, për të mundësuar Vulkan të punojë në platforma pa mbështetjen e tij amtare ( и për të punuar në krye të OpenGL dhe DirectX, dhe gfx-rs për të punuar në majë të Metalit).
Shtesa të shtuara për të përmirësuar përputhshmërinë me DirectX dhe HLSL
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 dhe SPIR-V zbaton kapacitete specifike HR.
Planet për të ardhmen përfshijnë zhvillimin e shtesave për mësimin e makinerive, gjurmimin e rrezeve, kodimin dhe dekodimin e videove, mbështetjen për VRS (hije me shpejtësi të ndryshueshme) dhe shaderat Mesh.
Kujtojmë se Vulkan API thjeshtimi rrënjësor i drejtuesve, zhvendosja e gjenerimit të komandave GPU në anën e aplikacionit, aftësia për të lidhur shtresat e korrigjimit, unifikimi i API-së për platforma të ndryshme dhe përdorimi i një përfaqësimi të ndërmjetëm të parakompiluar të kodit për ekzekutim në anën e GPU-së. Për të siguruar performancë të lartë dhe parashikueshmëri, Vulkan u ofron aplikacioneve kontroll të drejtpërdrejtë mbi operacionet e GPU-së dhe mbështetje vendase për multi-threading të GPU-së, e cila minimizon shpenzimet e përgjithshme të drejtuesit dhe i bën aftësitë nga ana e drejtuesit shumë më të thjeshta dhe më të parashikueshme. Për shembull, operacione të tilla si menaxhimi i kujtesës dhe trajtimi i gabimeve, të zbatuara në OpenGL në anën e drejtuesit, zhvendosen në nivelin e aplikacionit në Vulkan.
Vulkan охватывает все доступные платформы и предоставляет единый API для настольных, мобильных систем и Web, позволяя использовать один общий API для различных графических процессоров и областей применения. Благодаря многослойной архитектуре Vulkan, подразумевающей создание инструментов, работающих с любыми GPU, производители оборудования могут использовать при разработке типовые инструменты для проверки кода, отладки и профилирования. Для создания шейдеров предлагается новое переносимое промежуточное представление SPIR-V, основанное на LLVM и использующее общие с OpenCL базовые технологии. Для управления устройствами и экранами в Vulkan предлагается интерфейс WSI (Window System Integration), решающий примерно те же задачи, что и EGL в OpenGL ES. Поддержка WSI из коробки доступна в Wayland — все приложения, использующие Vulkan, могут запускаться в окружении немодифицированных серверов Wayland. Возможность работы через WSI также обеспечена для Android, X11 (me DRI3), Windows, Tizen, macOS dhe iOS.
Burimi: opennet.ru


