Publikuar standardi grafik Vulkan 1.3

Pas dy vitesh punë, konsorciumi i standardeve grafike Khronos ka publikuar specifikimin Vulkan 1.3, i cili përcakton një API për aksesin në aftësitë grafike dhe llogaritëse të GPU-ve. Specifikimi i ri përfshin korrigjime dhe zgjerime të grumbulluara gjatë dy viteve. Vihet re se kërkesat e specifikimit Vulkan 1.3 janë krijuar për pajisjet grafike të klasës OpenGL ES 3.1, të cilat do të sigurojnë mbështetje për API-në e re grafike në të gjitha GPU-të që mbështesin Vulkan 1.2. Mjetet Vulkan SDK janë planifikuar të publikohen në mes të shkurtit. Përveç specifikimit kryesor, është planifikuar të ofrohen shtesa shtesë për pajisjet mobile dhe desktop të nivelit të mesëm dhe të nivelit të lartë, të cilat do të mbështeten si pjesë e edicionit “Vulkan Milestone”.

Në të njëjtën kohë, është paraqitur një plan për zbatimin e mbështetjes për specifikimet e reja dhe shtesat shtesë në kartat grafike dhe drejtuesit e pajisjeve. Intel, AMD, ARM dhe NVIDIA po përgatiten të lëshojnë produkte që mbështesin Vulkan 1.3. Për shembull, AMD njoftoi se së shpejti do të mbështesë Vulkan 1.3 në serinë e kartave grafike AMD Radeon RX Vega, si dhe në të gjitha kartat e bazuara në arkitekturën AMD RDNA. NVIDIA po përgatitet të publikojë drejtuesit me mbështetje për Vulkan 1.3 për Linux dhe Windows. ARM do të shtojë mbështetje për Vulkan 1.3 në GPU-të e Mali.

Risitë kryesore:

  • Mbështetja për kalimet e thjeshtuara të interpretimit (Rresioning Render Passes, VK_KHR_dynamic_rendering) është zbatuar, duke ju lejuar të filloni të jepni pa krijuar leje rendering dhe objekte framebuffer.
  • Janë shtuar shtesa të reja për të thjeshtuar menaxhimin e përpilimit të tubacioneve grafike (pipeline, një grup operacionesh që i kthen primitivët dhe teksturat e grafikës vektoriale në paraqitje pixel).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - shtoni gjendje dinamike shtesë për të zvogëluar numrin e objekteve të gjendjes së përpiluar dhe të bashkangjitur.
    • VK_EXT_pipeline_creation_cache_control - Ofron kontrolle të avancuara se kur dhe si përpilohen tubacionet.
    • VK_EXT_pipeline_creation_feedback - Ofron informacion në lidhje me tubacionet e përpiluara për të bërë më të lehtë profilizimin dhe korrigjimin.
  • Një numër karakteristikash janë transferuar nga opsionale në të detyrueshme. Për shembull, zbatimi i referencave të buferit (VK_KHR_buffer_device_address) dhe modeli i memories Vulkan, 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, tani janë të detyrueshëm.
  • Kontrolli i hollë i nëngrupit (VK_EXT_subgroup_size_control) ofrohet në mënyrë që shitësit të mund të ofrojnë mbështetje për madhësi të shumta nëngrupesh dhe zhvilluesit të mund të zgjedhin madhësinë që kërkojnë.
  • Është dhënë zgjerimi VK_KHR_shader_integer_dot_product, i cili mund të përdoret për të optimizuar performancën e kornizave të mësimit të makinerive falë përshpejtimit të harduerit të operacioneve të produktit me pika.
  • Përfshihen gjithsej 23 zgjerime të reja:
    • VK_KHR_copy_commands2
    • VK_KHR_dinamike_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_mirëmbajtje4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinkronizimi2
    • VK_KHR_zero_initialize_workgroup_memory
    • Formatet VK_EXT_4444_
    • VK_EXT_shprehur_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_bustness_image
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • Të dhëna VK_EXT_private
    • VK_EXT_shader_demote_ për_ndihmuar_inokimin
    • VK_EXT_nëngrupi_madhësia_kontrolli
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • U shtua një lloj i ri objekti VkPrivateDataSlot. U zbatuan 37 komanda të reja dhe më shumë se 60 struktura.
  • Specifikimi SPIR-V 1.6 është përditësuar për të përcaktuar një paraqitje të ndërmjetme shader 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.
  • Propozohet koncepti i profileve të përputhshmërisë. Google është i pari që lëshon një profil bazë për platformën Android, i cili do ta bëjë më të lehtë përcaktimin e nivelit të mbështetjes për aftësitë e përparuara të Vulkan në një pajisje përtej specifikimit Vulkan 1.0. Për shumicën e pajisjeve, mbështetja e profilit mund të ofrohet pa instaluar përditësime OTA.

Le të kujtojmë se Vulkan API shquhet për thjeshtimin rrënjësor të drejtuesve, transferimin e gjenerimit të komandave GPU në anën e aplikacionit, aftësinë për të lidhur shtresat e korrigjimit, unifikimin e API-së për platforma të ndryshme dhe përdorimin e një të parapërpiluar paraqitje e ndërmjetme e kodit për ekzekutim në anën e GPU. 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