á¡áá¯ááºáá¯ááºááŒá®áž ááŸá áºááŸá áºá¡ááŒá¬ááœááºá ááááºáá áºá á¶áá»áááºá á¶ááœáŸááºážáá¯ááºáááºážá ᯠKhronos ááẠGPU áá»á¬ážá ááááºáá áºááŸáá·áº ááœááºáá»ááºááŸá¯á áœááºážáááºáá»á¬ážááᯠááá°áááºá¡ááœáẠAPI áá áºáá¯áááºááŸááºáá±ážááá·áº Vulkan 1.3 áááºááŸááºáá»ááºááᯠáá¯ááºááŒááºáá²á·áááºá áááºááŸááºáá»ááºá¡áá áºááœáẠááŸá áºááŸá áºá¡ááœááºáž á á¯áá±á¬ááºážáá¬ážáá±á¬ ááŒááºáááºááŸá¯áá»á¬ážááŸáá·áº áááºáááºážááá¯ážááŸá¯áá»á¬áž áá«áááºáááºá Vulkan 1.3 áááºááŸááºáá»ááºáá»á¬ážá ááá¯á¡ááºáá»ááºáá»á¬ážááẠOpenGL ES 3.1 á¡áááºážá¡á á¬áž ááááºáá áºáá á¹á ááºážáá»á¬ážá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒá®áž Vulkan 1.2 ááᯠáá¶á·ááá¯ážáá±ážááá·áº GPU á¡áá áºáá»á¬ážá¡á¬ážáá¯á¶ážááœáẠááááºáá ẠAPI á¡áá áºá¡ááœáẠáá¶á·ááá¯ážááŸá¯áá±áá»á¬á á±ááẠááŒá áºááŒá±á¬ááºáž ááŸááºáá¬ážááá«áááºá Vulkan SDK áááááá¬áá»á¬ážááᯠáá±áá±á¬áºáá«áá® ááááºááœáẠáá¯ááºáá±ááẠá á®á ááºáá¬ážáááºá áááºááááºááŸááºáá»ááºá¡ááŒáẠáááºážááẠ"Vulkan Milestone" áá¯ááºáá±ááŸá¯á áá áºá áááºáá áºááá¯ááºážá¡ááŒá Ạáá¶á·ááá¯ážáá±ážááá·áº á¡áááºá¡áááºáááºážá á¬ážááŸáá·áº á áœááºážáá±á¬ááºáááºááŒáá·áº ááá¯ááá¯ááºážááŸáá·áº áááºá áá±á¬á·áááááá¬áá»á¬ážá¡ááœáẠá¡ááá¯áááºáá±á¬ááºážááá¯ážáá»á²á·ááŸá¯áá»á¬ážááᯠáááºážááŸááºážááẠá á®á ááºáá¬ážáááºá
áá áºáá»áááºáááºážááŸá¬áááºá ááááºáá áºáááºáá»á¬ážááŸáá·áº á ááºáá á¹á ááºážáááá¯ááºáá¬áá»á¬ážááŸá áááºááŸááºáá»ááºá¡áá áºáá»á¬ážááŸáá·áº á¡ááá¯áááºáá±á¬ááºážááá¯ážáá»á²á·ááŸá¯áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡á á®á¡á ááºáá áºáá¯ááᯠáááºááŒáá¬ážáááºá Intelá AMDá ARM ááŸáá·áº NVIDIA ááá¯á·ááẠVulkan 1.3 ááᯠáá¶á·ááá¯ážáá±ážááá·áº áá¯ááºáá¯ááºáá»á¬ážááᯠáá¯ááºááœáŸááºááẠááŒááºáááºáá±áá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá AMD ááẠáááŒá¬áá® AMD Radeon RX Vega á á®ážáá®ážááááºáá áºáááºáá»á¬ážááœáẠVulkan 1.3 ááᯠáá¶á·ááá¯ážáá±ážáááºááŒá áºááŒá®áž AMD RDNA áááá¯áá¬ááá¯á¡ááŒá±áá¶ááá·áº áááºáá»á¬ážá¡á¬ážáá¯á¶ážááœááºáá«ááŸááááºáᯠááŒá±áá¬áá²á·áááºá NVIDIA ááẠLinux ááŸáá·áº Windows á¡ááœáẠVulkan 1.3 á¡ááœáẠáá¶á·ááá¯ážááŸá¯ááŒáá·áº áá¬ááºáá±á¬ááºážáá»á¬ážááᯠáá¯ááºáá±ááẠááŒááºáááºáá±áá«áááºá ARM ááẠMali GPUs ááá¯á· Vulkan 1.3 á¡ááœáẠá¡áá±á¬ááºá¡áá¶á·ááᯠáá±á«ááºážááá·áºáááºááŒá áºáááºá
á¡ááá áá®ááœááºáááºážáá áºááŸá¯áá»á¬áž-
- ááá¯ážááŸááºážáá±á¬ rendering passes áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážáá°áá®ááŸá¯ (Streamlining Render Passes, VK_KHR_dynamic_rendering) ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááŒá®ážá áááºááẠrendering passes áá»á¬ážááŸáá·áº framebuffer objects áá»á¬ážááᯠááááºáá®ážáá² rendering á áááºááá¯ááºá á±áá«áááºá
- ááááºáá
áºááá¯ááºááá¯ááºážá
á¯á
ááºážááŸá¯ááᯠááá¯ážááŸááºážááœááºáá°á
á±ááẠááá¯ážáá»á²á·ááŸá¯á¡áá
áºáá»á¬áž (ááá¯ááºááá¯ááºážá vector graphic primitives ááŸáá·áº textures áá»á¬ážááᯠpixel ááá¯ááºá
á¬ážááŒá¯ááŸá¯áá»á¬ážá¡ááŒá
áºááá¯á· ááŒá±á¬ááºážáá²áá±ážáá±á¬ áááºáááºááŸá¯á¡á
á¯áá
áºáá¯)á
- VK_EXT_extended_dynamic_stateá VK_EXT_extended_dynamic_state2 - á á¯á ááºážááŒá®áž áá°ážááœá²áá«ááŸáááá·áº á¡ááŒá±á¡áá±á¡áá¬ááá¹áá¯áá»á¬ážá á¡áá±á¡ááœááºááᯠáá»áŸá±á¬á·áá»áááºá¡ááœáẠáááºáá±á¬ááºáž dynamic state áá»á¬ážááᯠááá·áºáá«á
- VK_EXT_pipeline_creation_cache_control - ááá¯ááºááá¯ááºážáá»á¬ážááᯠáááºááá·áºá¡áá»áááºááŸáá·áºáááºáá²á·ááá¯á· á á¯á ááºážáá¬ážááŸá¯á¡áá±á«áº á¡ááá·áºááŒáá·áºááááºážáá»á¯ááºááŸá¯áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá
- VK_EXT_pipeline_creation_feedback - áááá¯ááá¯ááºážááœá²ááŒááºážááŸáá·áº á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááᯠááá¯ááá¯ááœááºáá°á á±ááẠá á¯á ááºážáá¬ážáá±á¬ ááá¯ááºááá¯ááºážáá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºááᯠáá±ážáá«áááºá
- á¡ááºá¹áá«áááºáá»á¬ážá áœá¬ááᯠááœá±ážáá»ááºááœáá·áºá០áááŒá áºááá±ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá±ážáá²á·áááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŒá¬ážáá¶á¡ááá¯ážá¡áá¬ážáá»á¬áž (VK_KHR_buffer_device_address) ááŸáá·áº áá áºááŒáá¯ááºáááºáááºážááœá²áá»á¬ážá០áá»áŸáá±áá¬ážáá±á¬áá±áá¬ááŸáá·áº áááºáá°ááŒá¯ááŒááºážáá¯ááºáááºážáá»á¬ážááᯠáááºááá¯á·áááºáá±á¬ááºááá¯ááºáááºááᯠáááºááŸááºáá±ážááá·áº Vulkan memory model ááẠááá¯á¡áá« áááŒá áºááá±ááá¯á¡ááºáá«áááºá
- á¡áá¯á áááºá¡á¯ááºá á¯ááœá²ááááºážáá»á¯ááºááŸá¯ (VK_EXT_subgroup_size_control) ááᯠáá¶á·ááá¯ážáá±ážáá±á¬ááŒá±á¬áá·áº áá±á¬ááºážáá»áá°áá»á¬ážááẠá¡á¯ááºá á¯ááœá²á¡ááœááºá¡á á¬ážáá»á¬ážá áœá¬á¡ááœáẠáá¶á·ááá¯ážáá±ážááá¯ááºááŒá®áž developer áá»á¬ážááẠáááºážááá¯á·ááá¯á¡ááºááá·áºá¡ááœááºá¡á á¬ážááᯠááœá±ážáá»ááºááá¯ááºáááºá
- VK_KHR_shader_integer_dot_product ááá¯ážáá»á²á·ááŸá¯á¡á¬áž áá¶á·ááá¯ážáá±ážáá¬ážááŒá®ážá áááºážááẠá ááºáááºáá°ááŸá¯áá±á¬ááºáá»á¬ážá á áœááºážáá±á¬ááºáááºááᯠááá¯áá±á¬ááºážá¡á±á¬ááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á¡á ááºá áẠáá¯ááºáá¯ááºáá»á¬ážá áá¬á·ááºáá²á á¡ááŸáááºááŒáŸáá·áºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŒá±á¬áá·áº ááŒá áºáááºá
- ááá¯ážáá»á²á·ááŸá¯á¡áá
Ạá
á¯á
á¯áá±á«ááºáž áá áᯠáá«áááºáááº-
- VK_KHR_copy_commandsá
- VK_KHR_dynamic_rendering
- VK_KHR_format_feature_flagsá
- VK_KHR_maintenanceá
- VK_KHR_shader_integer_dot_áá¯ááºáá¯ááº
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_terminate_invocation
- VK_KHR_synchronizationá
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_ áá¯á¶á á¶áá»á¬áž
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_image_ááŒá¶á·ááá¯ááºááŸá¯
- VK_EXT_inline_uniform_block
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- VK_EXT_ ááá¯ááºááá¯áẠ_ áá±áá¬
- 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
- á¡áá¬ááá¹áá¯á¡áá ẠVkPrivateDataSlot á¡áá»áá¯ážá¡á á¬ážááᯠáá±á«ááºážááá·áºáá²á·áááºá á¡áááá·áºá¡áá Ạáá áá¯ááŸáá·áº ááœá²á·á ááºážáá¯á¶ áá áá»á±á¬áºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·áááºá
- SPIR-V 1.6 áááºááŸááºáá»ááºááẠááááºáá±á¬ááºážá¡á¬ážáá¯á¶ážá¡ááœáẠuniversal ááŒá áºááŒá®áž ááááºáá áºááŸáá·áº á¡ááŒáá¯ááºááœááºáá»ááºááŒááºážááŸá áºáá»áá¯ážáá¯á¶ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á¡áááºá¡áááºá¡ááááºá¡á¬áá«áááá¯ááºá á¬ážááŒá¯ááŸá¯ááᯠáááºááŸááºááẠSPIR-V XNUMX áááºááŸááºáá»ááºááᯠá¡ááºááááºáá¯ááºáá¬ážáá«áááºá SPIR-V ááẠáá®ážááŒá¬áž á¡ááááºá¡á¬áá«á á á¯á ááºážááŸá¯ á¡ááá·áºááᯠá¡áááºá¡ááẠááá¯ááºá á¬ážááŒá¯ááŸá¯á¡ááŒá Ạááá¯ááºážááŒá¬ážááŒááºáž áá«áááºáááºá áááºážááẠá¡ááá·áºááŒáá·áº áá¬áá¬á áá¬áž á¡áá»áá¯ážáá»áá¯ážá¡ááœáẠááŸá±á·áááºážááᯠáááºáá®ážááá¯ááºá á±áá«áááºá á¡áá»áá¯ážáá»áá¯ážáá±á¬á¡ááá·áºááŒáá·áºá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯áá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á built-in shader compiler ááá¯á¡áá¯á¶ážáááŒá¯áá² OpenGLá Vulkan ááŸáá·áº OpenCL áááá¯ááºáá¬áá»á¬ážááŸá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬á¡áááºá¡áááºáá¯ááºáá áºáá¯á¡á¬ážáá®ážááŒá¬ážáá¯ááºáá±ážáááºá
- ááá¯ááºáááºáá®áá±á¬ áááá¯ááá¯ááºáá»á¬ážá ááá±á¬ááá¬ážááᯠá¡ááá¯ááŒá¯áá¬ážáááºá Google ááẠVulkan 1.0 áááºááŸááºáá»ááºáááºáá»á±á¬áºááœááºá á ááºáá á¹á ááºážáá áºáá¯áá±á«áºááŸá á¡ááá·áºááŒáá·áº Vulkan á áœááºážáááºáá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡ááá·áºááᯠáá¯á¶ážááŒááºááẠááá¯ááá¯ááœááºáá°á á±ááá·áº Android ááááºáá±á¬ááºážá¡ááœáẠá¡ááŒá±áá¶áááá¯ááá¯ááºááᯠááááá¯á¶áž áá¯ááºááŒááºááá¯ááºáá«áááºá á ááºá¡áá»á¬ážá á¯á¡ááœááºá OTA á¡ááºááááºáá»á¬ážááᯠáááá·áºááœááºážáá² áááá¯ááá¯ááºáá¶á·ááá¯ážááŸá¯ááᯠáá±ážááá¯ááºáá«áááºá
Vulkan API ááẠáááá¯ááºáá¬áá»á¬ážá á¡á áœááºážáá±á¬ááºááá¯ážááŸááºážááŸá¯á GPU ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá¡ááá®áá±ážááŸááºážáááºááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒááºážá á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážá¡ááœáŸá¬áá»á¬áž áá»áááºáááºááá¯ááºááŸá¯á á¡áá»áá¯ážáá»áá¯ážáá±á¬ ááááºáá±á¬ááºážáá»á¬ážá¡ááœáẠAPI áá±á«ááºážá ááºážááŒááºážááŸáá·áº ááŒáá¯áááºá á¯á ááºážáá¬ážáá±á¬ á¡áá¯á¶ážááŒá¯ááŒááºážááá¯á·á¡ááœáẠáááºááŸá¬ážááŒá±á¬ááºáž ááááááŒáá«á áá¯á·á GPU áááºááŒááºážááœáẠáá¯ááºáá±á¬ááºáááºá¡ááœáẠáá¯ááºáá¡áááºá¡áááºááá¯ááºá á¬ážááŒá¯ááŸá¯á ááŒáá·áºáá¬ážáá±á¬á áœááºážáá±á¬ááºáááºááŸáá·áº ááŒáá¯áááºááŸááºážáááá¯ááºááŸá¯áá±áá»á¬á á±áááºá Vulkan ááẠGPU áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡áá±á«áº ááá¯ááºááá¯ááºááááºážáá»á¯ááºááŸá¯ááŸáá·áº GPU multi-threading á¡ááœáẠáá°áááºážáá¶á·ááá¯ážááŸá¯ááŒáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºá áááºážááẠáá¬ááºáá±á¬ááºážá¡áá±á«áºááá¯ááºážááᯠáá»áŸá±á¬á·áá»áá±ážááŒá®áž áááá¯ááºáá¬áá±ážááœááºá áœááºážáááºáá»á¬ážááᯠááá¯ááá¯ááá¯ážááŸááºážáᬠááá·áºááŸááºážááá¯ááºá á±áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá¬ááºáá±á¬ááºážáááºááŒááºážááŸá OpenGL ááœáẠáá¯ááºáá±á¬ááºáá²á·ááá·áº ááŸááºáá¬ááºá á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº á¡ááŸá¬ážá¡ááœááºážááá¯ááºááœááºááŒááºážáá²á·ááá¯á·áá±á¬ áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠVulkan ááŸá á¡ááá®áá±ážááŸááºážá¡ááá·áºááá¯á· ááœáŸá±á·áá¬ážáááºá
Vulkan ááẠáááŸáááá¯ááºáá±á¬ ááááºáá±á¬ááºážá¡á¬ážáá¯á¶ážááᯠááŒáá·áºáá»ááºááŒá®áž áááºá
áºáá±á¬á·á ááá¯ááá¯ááºážááŸáá·áº áááºá¡ááœáẠAPI áá
áºáá¯áááºážááᯠáá¶á·ááá¯ážáá±ážáᬠáá¯á¶ API áá
áºáá¯á¡á¬áž GPU ááŸáá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá
áœá¬ááœáẠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá áááºááá·áº GPU ááŸáá·áºáááᯠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áááááá¬áá»á¬ážááᯠááá¯ááá¯ááá·áº Vulkan á á¡ááœáŸá¬áá±á«ááºážá
á¯á¶ áááá¯áá¬áááºáá¬ááŒá±á¬áá·áº OEM áá»á¬ážááẠááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¬áá¡ááœááºáž áá¯ááºááŒááºáááºáá¯á¶ážáááºááŒááºážá á¡ááŸá¬ážááŒááºáááºááŒááºážááŸáá·áº áááá¯ááá¯ááºááŒá¯áá¯ááºááŒááºážá¡ááœáẠá
ááºááŸá¯áá¯ááºáááºážá
á¶áá°ážááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá Shaders áá»á¬ážááá¯áááºáá®ážáááºá¡ááœááºá áááºáá±á¬ááºáááœááºáá°áá±á¬á¡áááºá¡áááºááá¯ááºá
á¬ážááŒá¯ááŸá¯á¡áá
áºááŒá
áºáá±á¬ SPIR-V ááᯠLLVM ááá¯á¡ááŒá±áá¶á OpenCL ááŸáá·áº áááºááááºážááá¬áá»á¬ážááá¯áá»áŸáá±ááẠá¡ááá¯ááŒá¯áá¬ážáááºá á
ááºáá
á¹á
ááºážáá»á¬ážááŸáá·áº áááºáá¬ážááŒááºáá»á¬ážááᯠááááºážáá»á¯ááºáááºá¡ááœááºá Vulkan ááẠOpenGL ES ááœáẠEGL áá²á·ááá¯á· ááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº á¡áá¬ážáá°ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáá±ážááá·áº WSI (Window System Integration) á¡ááºáá¬áá±á·á
áºááᯠáá¶á·ááá¯ážáá±ážáá«áááºá WSI áá¶á·ááá¯ážááŸá¯ááᯠWayland ááœáẠááœááºáááºá¡ááŒááºááœáẠáááá¯ááºááẠ- Vulkan ááᯠá¡áá¯á¶ážááŒá¯ááá·áº á¡ááá®áá±ážááŸááºážáá»á¬ážá¡á¬ážáá¯á¶ážááẠááœááºážáá¶áá¬ážáá±á¬ Wayland áá¬áá¬áá»á¬ážá áááºáááºážáá»ááºááœáẠáá¯ááºáá±á¬ááºááá¯ááºáááºá WSI ááŸáá
áºááá·áº áá¯ááºáá±á¬ááºááá¯ááºááá·áºá
áœááºážáááºááᯠAndroidá X11 (DRI3 ááŒáá·áº)á Windowsá Tizená macOS ááŸáá·áº iOS á¡ááœááºáááºáž áá¶á·ááá¯ážáá±ážáá¬ážáááºá
source: opennet.ru