Publikuar standardi grafik Vulkan 1.2

Konsorciumi Khronos, i cili zhvillon standardet grafike,
publikuar Specifikim Vullkani 1.2, 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 zgjerim. Drejtuesit që mbështesin versionin e ri të Vulkan janë tashmë lëshuar Kompania Intel, AMD, ARM, Imagination Technologies dhe NVIDIA. Mesa ofron mbështetje Vulkan 1.2 për drejtuesit RADV (kartat AMD) dhe ANV (Intel). Mbështetja Vulkan 1.2 zbatohet gjithashtu në korrigjuesin RenderDoc 1.6, LunarG Vulkan SDK dhe një sërë shembujsh Vulkan-Mostra.

Kryesore risitë:

  • Të sjellë tek ju zbatimi i një gjuhe programimi shader derisa të jetë gati për përdorim të gjerë HLSL, 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
    DXC, 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.

    Publikuar standardi grafik Vulkan 1.2

  • Specifikimi u përditësua SPIR-V 1.5, 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.

    Publikuar standardi grafik Vulkan 1.2

  • 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:
    • Semaforë kronologjikë (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.
      Publikuar standardi grafik Vulkan 1.2

    • 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;
    • Modeli i memories formale, 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;
    • Indeksimi i përshkruesit për të ripërdorur përshkruesit e paraqitjes nëpër shader të shumtë;
    • Lidhje buferike.

    Lista e plotë e shtesave të shtuara:

  • shtuar 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 (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) dhe DirectX (DXVK, vkd3d) përmes Vulkan API, dhe gjithashtu, anasjelltas, për të mundësuar Vulkan të punojë në platforma pa mbështetjen e tij amtare (gfx-rs и Ashes për të punuar në krye të OpenGL dhe DirectX, I shkrirëVK 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 jashtëzakonshme 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 përfshin të gjitha platformat e disponueshme dhe ofron një API të vetme për desktop, celular dhe ueb, duke lejuar që një API e përbashkët të përdoret nëpër GPU dhe aplikacione të shumta. Falë arkitekturës me shumë shtresa të Vulkan, që do të thotë mjete që punojnë me çdo GPU, OEM-të mund të përdorin mjete standarde të industrisë për rishikimin e kodit, korrigjimin dhe profilizimin gjatë zhvillimit. Për krijimin e shaderëve, propozohet një përfaqësim i ri i ndërmjetëm portativ, SPIR-V, i bazuar në LLVM dhe ndarjen e teknologjive bazë me OpenCL. Për të kontrolluar pajisjet dhe ekranet, Vulkan ofron ndërfaqen WSI (Window System Integration), e cila zgjidh afërsisht të njëjtat probleme si EGL në OpenGL ES. Mbështetja WSI është e disponueshme jashtë kutisë në Wayland - të gjitha aplikacionet që përdorin Vulkan mund të ekzekutohen në një mjedis me serverë të pamodifikuar Wayland. Mundësia për të punuar përmes WSI ofrohet edhe për Android, X11 (me DRI3), Windows, Tizen, macOS dhe iOS.

Burimi: opennet.ru

Shto një koment