Pas dy vjetësh, konsorciumi Khronos, i angazhuar në zhvillimin e standardeve grafike, publikoi specifikimin Vulkan 1.3, i cili përcakton API-në për qasje në kapacitetet grafike dhe llogaritëse të GPU-ve. Specifikimi i ri përfshin përmirësimet dhe zgjerimet e grumbulluara gjatë dy viteve të kaluar. Kërkesat e specifikimit Vulkan 1.3 janë të dizajnuara për pajisje grafike të klasës OpenGL ES 3.1, duke mundësuar mbështetje të re për API-në grafike në të gjitha GPU-të që mbështetin Vulkan 1.2. Mjetet Vulkan SDK pritet të publikohen në mes të shkurtit. Përveç specifikimit kryesor, pritet të ofrohen zgjerime të tjera për pajisje mobile dhe desktop të mesme dhe të larta, mbështetje e të cilave do të ofrohet në kuadër të edicionit 'Vulkan Milestone'.
Në të njëjtën kohë është paraqitur një plan për realizimin e mbështetjes së specifikimit të ri dhe zgjerimeve të tjera në kartat grafike dhe driverët e pajisjeve. Produkte me mbështetje për Vulkan 1.3 priten të lëshohen nga kompanitë Intel, AMD, ARM dhe NVIDIA. Për shembull, kompania AMD njoftoi për mbështetje të shpejtë për 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. Kompania NVIDIA është duke u përgatitur për publikimin e driverëve me mbështetje për Vulkan 1.3 për Linux dhe Windows. Kompania ARM do të shtojë mbështetje për Vulkan 1.3 në GPU Mali.
TĂ« rejat kryesore:
- Janë realizuar mbështetje për kalimet e thjeshta të renderimit (Streamlining Render Passes, VK_KHR_dynamic_rendering), të cilat lejojnë fillimin e renderimit pa krijimin e kalimeve të renderimit dhe objekteve të framebuffer-it.
- Janë shtuar zgjerime të reja për të thjeshtuar menaxhimin e kompilimit të konvejerëve grafikë (pipeline, një set operacionesh që kthen primitivat grafike vektoriale dhe teksturat në përfaqësimin pikselor).
- VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 â shtojnĂ« shtetet dinamike shtesĂ« pĂ«r tĂ« reduktuar numrin e objekteve tĂ« kompiluara dhe tĂ« lidhura tĂ« shtetit.
- VK_EXT_pipeline_creation_cache_control â ofron mjete tĂ« shtrira pĂ«r menaxhimin e kohĂ«s dhe mĂ«nyrĂ«s se si tĂ« kompilohen konvejerĂ«t.
- VK_EXT_pipeline_creation_feedback â ofron informacion mbi konvejerĂ«t e kompiluar pĂ«r tĂ« lehtĂ«suar profilimin dhe debugimin.
- Një sërë mundësish janë kaluar nga opsionale në të detyrueshme. Për shembull, tani realizimi i referencave të tamponëve (VK_KHR_buffer_device_address) dhe modeli i memories Vulkan, që përcakton si rrjedhave të ekzekutuar paralelisht mund t'u qasen të dhënave të njëjta dhe operacioneve të sinkronizimit është bërë i detyrueshëm.
- Janë ofruar mjete për kontrollin e saktë të nëngrupeve (VK_EXT_subgroup_size_control), me ndihmën e të cilave prodhuesit mund të ofrojnë mbështetje për disa madhësi nëngrupesh, ndërsa zhvilluesit të zgjedhin madhësinë e kërkuar.
- Shtohet zgjerimi VK_KHR_shader_integer_dot_product, i cili mund të përdoret për optimizimin e punës së kornizave të mësimit të makinerisë, falë accelerimit harduerik të operacioneve të produktit skalar.
- Në total, janë përfshirë 23 zgjerime të reja:
- VK_KHR_copy_commands2
- VK_KHR_dynamic_rendering
- VK_KHR_format_feature_flags2
- VK_KHR_maintenance4
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_terminate_invocation
- VK_KHR_synchronization2
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_formats
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_image_robustness
- VK_EXT_inline_uniform_block
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- VK_EXT_private_data
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_subgroup_size_control
- VK_EXT_texel_buffer_alignment
- VK_EXT_texture_compression_astc_hdr
- VK_EXT_tooling_info
- VK_EXT_ycbcr_2plane_444_formats
- ĂshtĂ« shtuar njĂ« lloj i ri objektesh VkPrivateDataSlot. JanĂ« realizuar 37 komanda tĂ« reja dhe mĂ« shumĂ« se 60 struktura.
- Specifikimi SPIR-V 1.6 është përditësuar, duke përcaktuar një përfaqësim të përbashkët për të gjitha platformat të shenjave, që mund të përdoret për grafika dhe llogaritje paralele. SPIR-V nënkupton ndarjen e një faze të veçantë të kompilimit të shenjave në përfaqësimin e mesëm, që lejon krijimin e frontendeve për gjuhë të ndryshme të nivelit të lartë. Në bazë të realizimeve të ndryshme të nivelit të lartë, gjenerohet një kod i vetëm përfaqësues që mund të përdoret nga driverët OpenGL, Vulkan dhe OpenCL pa përdorimin e një kompilatori të integruar të shenjave.
- Koncepti i profileve të pajtueshmërisë është propozuar. Profilin themelor (baseline profile) për platformën Android e ka përgatitur së pari kompania Google, e cila do të lehtësojë përcaktimin në pajisje të nivelit të mbështetjes për funksionalitetet e zgjeruara të Vulkan, që shkojnë përtej specifikimit Vulkan 1.0. Për shumicën e pajisjeve, mbështetje për profilin do të mund të ofrohet pa instaluar përditësime OTA.
Kujtojmë se API Vulkan karakterizohet nga thjeshtësimi radikal i drivereve, kalimi i gjenerimit të komandave GPU në anën e aplikacionit, mundësia e lidhjes së shtresave të debug-it, unifikimi i API-ve për platforma të ndryshme dhe përdorimi i një përfaqësimi ndërmjetës të parakomplikuar të kodit për ekzekutimin në anën e GPU. Për të siguruar performancë të lartë dhe parashikueshmëri, Vulkan u ofron aplikacioneve mjete për menaxhimin e drejtpërdrejtë të operacioneve të GPU-së dhe mbështetje të ndërtuar për përpunimin me shumë procese të komandave GPU, çka minimizon shpenzimet që sjell driveri, dhe mundësitë e implementuara në anën e driverit bëhen dukshëm më të thjeshta dhe më parashikueshëm. Për shembull, operacione si menaxhimi i memories dhe trajtimi i gabimeve, të implementuara në OpenGL në anën e driverit, në Vulkan janë kaluar në nivelin e aplikacionit.
Vulkan mbulon tĂ« gjitha platformat nĂ« dispozicion dhe ofron njĂ« API tĂ« vetme pĂ«r sistemet desktop, mobile dhe Web, duke bĂ«rĂ« tĂ« mundur pĂ«rdorimin e njĂ« API tĂ« pĂ«rbashkĂ«t pĂ«r procesorĂ« grafikĂ« dhe fusha tĂ« ndryshme aplikimi. FalĂ« arkitekturĂ«s shumĂ«-layer tĂ« Vulkan, e cila parashikon krijimin e mjeteve qĂ« funksionojnĂ« me çdo GPU, prodhuesit e pajisjeve mund tĂ« pĂ«rdorin mjete standard pĂ«r verifikimin e kodit, debugimin dhe profilimin gjatĂ« zhvillimit. PĂ«r krijimin e shader-ave ofrohet njĂ« pĂ«rfaqĂ«sim tĂ« ri tĂ« pĂ«rbashkĂ«t SPIR-V, i bazuar nĂ« LLVM dhe duke pĂ«rdorur teknologjitĂ« themelore tĂ« pĂ«rbashkĂ«ta me OpenCL. PĂ«r menaxhimin e pajisjeve dhe ekranĂ«ve nĂ« Vulkan, ofrohet njĂ« ndĂ«rfaqe WSI (Integrimi i Sistemave tĂ« Dritareve), e cila zgjidh rreth tĂ« njĂ«jtave probleme si EGL nĂ« OpenGL ES. MbĂ«shtetje WSI Ă«shtĂ« e disponueshme me kuti nĂ« Wayland â tĂ« gjitha aplikacionet qĂ« pĂ«rdorin Vulkan mund tĂ« nisin nĂ« njĂ« ambient pa modifikime. servera Wayland. MundĂ«sia e funksionimit pĂ«rmes WSI gjithashtu Ă«shtĂ« e siguruar pĂ«r Android, X11 (me DRI3), Windows, Tizen, macOS dhe iOS.
Burimi: opennet.ru
