ืชืงืŸ ื’ืจืคื™ืงื” Vulkan 1.3 ืคื•ืจืกื

ืœืื—ืจ ืฉื ืชื™ื™ื ืฉืœ ืขื‘ื•ื“ื”, ืงื•ื ืกื•ืจืฆื™ื•ื ืชืงื ื™ ื”ื’ืจืคื™ืงื” Khronos ืคืจืกื ืืช ืžืคืจื˜ Vulkan 1.3, ื”ืžื’ื“ื™ืจ API ืœื’ื™ืฉื” ืœื™ื›ื•ืœื•ืช ื”ื’ืจืคื™ืงื” ื•ื”ืžื—ืฉื•ื‘ ืฉืœ GPUs. ื”ืžืคืจื˜ ื”ื—ื“ืฉ ืžืฉืœื‘ ืชื™ืงื•ื ื™ื ื•ื”ืจื—ื‘ื•ืช ืฉื ืฆื‘ืจื• ื‘ืžืฉืš ืฉื ืชื™ื™ื. ื™ืฆื•ื™ืŸ ื›ื™ ื”ื“ืจื™ืฉื•ืช ืฉืœ ืžืคืจื˜ Vulkan 1.3 ืžื™ื•ืขื“ื•ืช ืœืฆื™ื•ื“ ื’ืจืคื™ ืžืกื•ื’ OpenGL ES 3.1, ืžื” ืฉื™ื‘ื˜ื™ื— ืชืžื™ื›ื” ื‘-API ื”ื’ืจืคื™ ื”ื—ื“ืฉ ื‘ื›ืœ ื”-GPUs ื”ืชื•ืžื›ื™ื ื‘-Vulkan 1.2. ื”ื›ืœื™ื ืฉืœ Vulkan SDK ืžืชื•ื›ื ื ื™ื ืœื”ืชืคืจืกื ื‘ืืžืฆืข ืคื‘ืจื•ืืจ. ื‘ื ื•ืกืฃ ืœืžืคืจื˜ ื”ืจืืฉื™, ืžืชื•ื›ื ืŸ ืœื”ืฆื™ืข ื”ืจื—ื‘ื•ืช ื ื•ืกืคื•ืช ืœืžื›ืฉื™ืจื™ื ื ื™ื™ื“ื™ื ื•ืฉื•ืœื—ื ื™ื™ื ื‘ืจืžื” ื‘ื™ื ื•ื ื™ืช ื•ื’ื‘ื•ื”ื”, ืืฉืจ ื™ื™ืชืžื›ื• ื‘ืžืกื’ืจืช ืžื”ื“ื•ืจืช "ื•ื•ืœืงืŸ ืžื™ืœืกื˜ื•ืŸ".

ื‘ืžืงื‘ื™ืœ, ืžื•ืฆื’ืช ืชื•ื›ื ื™ืช ืœื™ื™ืฉื•ื ืชืžื™ื›ื” ื‘ืžืคืจื˜ ื”ื—ื“ืฉ ื•ื”ืจื—ื‘ื•ืช ื ื•ืกืคื•ืช ื‘ื›ืจื˜ื™ืกื™ื ื’ืจืคื™ื™ื ื•ื‘ืžื ื”ืœื™ ื”ืชืงื ื™ื. ืื™ื ื˜ืœ, AMD, ARM ื•-NVIDIA ืžืชื›ื•ื ื ื•ืช ืœืฉื—ืจืจ ืžื•ืฆืจื™ื ื”ืชื•ืžื›ื™ื ื‘ื•ื•ืœืงืŸ 1.3. ื›ืš ืœืžืฉืœ, AMD ื”ื•ื“ื™ืขื” ื›ื™ ืชืชืžื•ืš ื‘ืงืจื•ื‘ ื‘-Vulkan 1.3 ื‘ืกื“ืจืช ื›ืจื˜ื™ืกื™ ื”ืžืกืš AMD Radeon RX Vega, ื•ื›ืŸ ื‘ื›ืœ ื”ื›ืจื˜ื™ืกื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช AMD RDNA. NVIDIA ืžืชื›ื•ื ื ืช ืœืคืจืกื ืžื ื”ืœื™ ื”ืชืงื ื™ื ืขื ืชืžื™ื›ื” ื‘-Vulkan 1.3 ืขื‘ื•ืจ ืœื™ื ื•ืงืก ื•-Windows. ARM ืชื•ืกื™ืฃ ืชืžื™ื›ื” ื‘-Vulkan 1.3 ืœ-Mali GPUs.

ื—ื™ื“ื•ืฉื™ื ืขื™ืงืจื™ื™ื:

  • ื”ื•ื˜ืžืขื” ืชืžื™ื›ื” ื‘ืžืขื‘ืจื™ ืจื™ื ื“ื•ืจ ืคืฉื•ื˜ื™ื (Streamlining Render Passes, VK_KHR_dynamic_rendering), ื•ืžืืคืฉืจืช ืœืš ืœื”ืชื—ื™ืœ ื‘ืขื™ื‘ื•ื“ ืžื‘ืœื™ ืœื™ืฆื•ืจ ืžืขื‘ืจื™ ืจื™ื ื“ื•ืจ ื•ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ framebuffer.
  • ื”ืจื—ื‘ื•ืช ื—ื“ืฉื•ืช ื ื•ืกืคื• ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ื ื™ื”ื•ืœ ืฉืœ ืงื•ืžืคื™ืœืฆื™ื” ืฉืœ ืฆื™ื ื•ืจื•ืช ื’ืจืคื™ื™ื (pipeline, ืžืขืจื›ืช ืคืขื•ืœื•ืช ืฉื”ื•ืคื›ืช ืคืจื™ืžื™ื˜ื™ื‘ื™ื™ื ื•ืžืจืงืžื™ื ืฉืœ ื’ืจืคื™ืงื” ื•ืงื˜ื•ืจื™ืช ืœื™ื™ืฆื•ื’ื™ ืคื™ืงืกืœื™ื).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - ื”ื•ืกืฃ ืžืฆื‘ื™ื ื“ื™ื ืžื™ื™ื ื ื•ืกืคื™ื ื›ื“ื™ ืœืฆืžืฆื ืืช ืžืกืคืจ ืื•ื‘ื™ื™ืงื˜ื™ ื”ืžืฆื‘ ื”ืžืงื•ืฉืจื™ื ื•ื”ืžืฆื•ืจืคื™ื.
    • VK_EXT_pipeline_creation_cache_control - ืžืกืคืง ื‘ืงืจื•ืช ืžืชืงื“ืžื•ืช ืขืœ ืžืชื™ ื•ืื™ืš ืฆื™ื ื•ืจื•ืช ืžื‘ื•ืฆืขื™ื.
    • VK_EXT_pipeline_creation_feedback - ืžืกืคืง ืžื™ื“ืข ืขืœ ืฆื™ื ื•ืจื•ืช ื”ื™ื“ื•ืจ ื›ื“ื™ ืœื”ืงืœ ืขืœ ื™ืฆื™ืจืช ืคืจื•ืคื™ืœื™ื ื•ื ื™ืคื•ื™ ื‘ืื’ื™ื.
  • ืžืกืคืจ ืชื›ื•ื ื•ืช ื”ื•ืขื‘ืจื• ืžืื•ืคืฆื™ื•ื ืœื™ ืœื—ื•ื‘ื”. ืœื“ื•ื’ืžื”, ื”ื™ื™ืฉื•ื ืฉืœ ื”ืคื ื™ื•ืช ืœืžืื’ืจ (VK_KHR_buffer_device_address) ื•ืžื•ื“ืœ ื”ื–ื™ื›ืจื•ืŸ ืฉืœ Vulkan, ื”ืžื’ื“ื™ืจ ื›ื™ืฆื“ ื—ื•ื˜ื™ื ื‘ืžืงื‘ื™ืœ ื™ื›ื•ืœื™ื ืœื’ืฉืช ืœื ืชื•ื ื™ื ืžืฉื•ืชืคื™ื ื•ืœืคืขื•ืœื•ืช ืกื ื›ืจื•ืŸ, ื”ื ื›ืขืช ื—ื•ื‘ื”.
  • ื‘ืงืจืช ืชืช-ืงื‘ื•ืฆื•ืช ืžืขื•ื“ื ืช (VK_EXT_subgroup_size_control) ืžืกื•ืคืงืช ื›ืš ืฉืกืคืงื™ื ื™ื›ื•ืœื™ื ืœืกืคืง ืชืžื™ื›ื” ืขื‘ื•ืจ ืžืกืคืจ ื’ื“ืœื™ื ืฉืœ ืชืช-ืงื‘ื•ืฆื•ืช ื•ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื‘ื—ื•ืจ ืืช ื”ื’ื•ื“ืœ ืฉื”ื ื“ื•ืจืฉื™ื.
  • ืกื•ืคืง ืชื•ืกืฃ VK_KHR_shader_integer_dot_product, ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื™ื™ืขืœ ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžืกื’ืจื•ืช ืœืžื™ื“ืช ืžื›ื•ื ื” ื”ื•ื“ื•ืช ืœื”ืืฆืช ื—ื•ืžืจื” ืฉืœ ืคืขื•ืœื•ืช ืžื•ืฆืจ ื“ื•ื˜.
  • ืกื”"ื› 23 ื”ืจื—ื‘ื•ืช ื—ื“ืฉื•ืช ื›ืœื•ืœื•ืช:
    • VK_KHR_copy_commands2
    • VK_KHR_rendering_dynamic
    • 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_ ืคื•ืจืžื˜ื™ื
    • VK_EXT_ ืžืฆื‘ ืžื•ืจื—ื‘_ื“ื™ื ืžื™
    • 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
  • ื ื•ืกืฃ ืกื•ื’ ืื•ื‘ื™ื™ืงื˜ ื—ื“ืฉ VkPrivateDataSlot. ื™ื•ืฉืžื• 37 ืคืงื•ื“ื•ืช ื—ื“ืฉื•ืช ื•ื™ื•ืชืจ ืž-60 ืžื‘ื ื™ื.
  • ืžืคืจื˜ SPIR-V 1.6 ืขื•ื“ื›ืŸ ื›ื“ื™ ืœื”ื’ื“ื™ืจ ื™ื™ืฆื•ื’ ื”ืฆืœืœื” ื‘ื™ื ื™ื™ื ืฉื”ื•ื ืื•ื ื™ื‘ืจืกืœื™ ืขื‘ื•ืจ ื›ืœ ื”ืคืœื˜ืคื•ืจืžื•ืช ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื”ืŸ ืขื‘ื•ืจ ื’ืจืคื™ืงื” ื•ื”ืŸ ืขื‘ื•ืจ ืžื—ืฉื•ื‘ ืžืงื‘ื™ืœื™. SPIR-V ื›ื•ืœืœ ื”ืคืจื“ืช ืฉืœื‘ ื”ื™ื“ื•ืจ ื”ืฆืœืœื” ื ืคืจื“ ืœื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื, ื”ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ื—ื–ื™ืชื•ืช ืœืฉืคื•ืช ืฉื•ื ื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื”. ื‘ื”ืชื‘ืกืก ืขืœ ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ื‘ืจืžื” ื’ื‘ื•ื”ื”, ื ื•ืฆืจ ื‘ื ืคืจื“ ืงื•ื“ ื‘ื™ื ื™ื™ื ื‘ื•ื“ื“, ืฉื™ื›ื•ืœ ืœืฉืžืฉ ืžื ื”ืœื™ ื”ืชืงื ื™ื ืฉืœ OpenGL, Vulkan ื•-OpenCL ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ืžื”ื“ืจ ื”ืฆืœืœื” ื”ืžื•ื‘ื ื”.
  • ื”ืจืขื™ื•ืŸ ืฉืœ ืคืจื•ืคื™ืœื™ ืชืื™ืžื•ืช ืžื•ืฆืข. ื’ื•ื’ืœ ื”ื™ื ื”ืจืืฉื•ื ื” ืœืฉื—ืจืจ ืคืจื•ืคื™ืœ ื‘ืกื™ืก ืœืคืœื˜ืคื•ืจืžืช ืื ื“ืจื•ืื™ื“, ืžื” ืฉื™ืงืœ ืขืœ ืงื‘ื™ืขืช ืจืžืช ื”ืชืžื™ื›ื” ื‘ื™ื›ื•ืœื•ืช ืžืชืงื“ืžื•ืช ืฉืœ Vulkan ื‘ืžื›ืฉื™ืจ ืžืขื‘ืจ ืœืžืคืจื˜ Vulkan 1.0. ืขื‘ื•ืจ ืจื•ื‘ ื”ืžื›ืฉื™ืจื™ื, ื ื™ืชืŸ ืœืกืคืง ืชืžื™ื›ื” ื‘ืคืจื•ืคื™ืœ ืžื‘ืœื™ ืœื”ืชืงื™ืŸ ืขื“ื›ื•ื ื™ OTA.

ื ื–ื›ื™ืจ ืฉื”-Vulkan API ื‘ื•ืœื˜ ื‘ืคื™ืฉื•ื˜ ื”ืจื“ื™ืงืœื™ ืฉืœ ืžื ื”ืœื™ ื”ืชืงื ื™ื, ื”ืขื‘ืจืช ื™ืฆื™ืจืช ืคืงื•ื“ื•ืช GPU ืœืฆื“ ื”ืืคืœื™ืงืฆื™ื”, ื”ื™ื›ื•ืœืช ืœื—ื‘ืจ ืฉื›ื‘ื•ืช ื‘ืื’ื™ื, ืื™ื—ื•ื“ ื”-API ืœืคืœื˜ืคื•ืจืžื•ืช ืฉื•ื ื•ืช ื•ืฉื™ืžื•ืฉ ื‘-precompiled ื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ืฉืœ ืงื•ื“ ืœื‘ื™ืฆื•ืข ื‘ืฆื“ ื”-GPU. ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื•ื™ื›ื•ืœืช ื—ื™ื–ื•ื™, Vulkan ืžืกืคืงืช ืœื™ื™ืฉื•ืžื™ื ืฉืœื™ื˜ื” ื™ืฉื™ืจื” ืขืœ ืคืขื•ืœื•ืช GPU ื•ืชืžื™ื›ื” ืžืงื•ืจื™ืช ื‘ืจื™ื‘ื•ื™ ื”ืœื™ื›ื™ GPU, ืžื” ืฉืžืžื–ืขืจ ืืช ืชืงื•ืจื” ืฉืœ ืžื ื”ืœ ื”ื”ืชืงืŸ ื•ื”ื•ืคื›ืช ืืช ื™ื›ื•ืœื•ืช ืฆื“ ื”ื ื”ื’ ืœืคืฉื•ื˜ื•ืช ื•ืฆืคื•ื™ื•ืช ื”ืจื‘ื” ื™ื•ืชืจ. ืœื“ื•ื’ืžื”, ืคืขื•ืœื•ืช ื›ืžื• ื ื™ื”ื•ืœ ื–ื™ื›ืจื•ืŸ ื•ื˜ื™ืคื•ืœ ื‘ืฉื’ื™ืื•ืช, ื”ืžื™ื•ืฉืžื•ืช ื‘-OpenGL ื‘ืฆื“ ื”ื ื”ื’, ืžื•ืขื‘ืจื•ืช ืœืจืžืช ื”ืืคืœื™ืงืฆื™ื” ื‘ื•ื•ืœืงืŸ.

Vulkan ืžืฉืชืจืขืช ืขืœ ื›ืœ ื”ืคืœื˜ืคื•ืจืžื•ืช ื”ื–ืžื™ื ื•ืช ื•ืžืกืคืงืช API ื™ื—ื™ื“ ืขื‘ื•ืจ ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื”, ื”ื ื™ื™ื“ ื•ื”ืื™ื ื˜ืจื ื˜, ื”ืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘-API ืื—ื“ ืžืฉื•ืชืฃ ืขืœ ืคื ื™ ืžืกืคืจ GPUs ื•ื™ื™ืฉื•ืžื™ื. ื”ื•ื“ื•ืช ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืจื‘-ืฉื›ื‘ืชื™ืช ืฉืœ Vulkan, ืฉืžืฉืžืขื•ืชื” ื›ืœื™ื ืฉืขื•ื‘ื“ื™ื ืขื ื›ืœ GPU, ื™ืฆืจื ื™ OEM ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ื‘ืชืขืฉื™ื™ื” ืขื‘ื•ืจ ืกืงื™ืจืช ืงื•ื“, ื ื™ืคื•ื™ ื‘ืื’ื™ื ื•ืคืจื•ืคื™ืœื™ื ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—. ืœื™ืฆื™ืจืช ื”ืฆืœืœื•ืช, ืžื•ืฆืข ื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ื ื™ื™ื“ ื—ื“ืฉ, SPIR-V, ื”ืžื‘ื•ืกืก ืขืœ LLVM ื•ืฉื™ืชื•ืฃ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืœื™ื‘ื” ืขื OpenCL. ืœืฉืœื™ื˜ื” ื‘ืžื›ืฉื™ืจื™ื ื•ื‘ืžืกื›ื™ื, Vulkan ืžืฆื™ืขื” ืืช ืžืžืฉืง WSI (Window System Integration), ืืฉืจ ืคื•ืชืจ ื‘ืขืจืš ืืช ืื•ืชืŸ ื‘ืขื™ื•ืช ื›ืžื• EGL ื‘-OpenGL ES. ืชืžื™ื›ืช WSI ื–ืžื™ื ื” ืžื”ืงื•ืคืกื” ื‘-Wayland - ื›ืœ ื”ืืคืœื™ืงืฆื™ื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘-Vulkan ื™ื›ื•ืœื•ืช ืœืคืขื•ืœ ื‘ืกื‘ื™ื‘ื” ืฉืœ ืฉืจืชื™ Wayland ืœืœื ืฉื™ื ื•ื™. ื”ื™ื›ื•ืœืช ืœืขื‘ื•ื“ ื‘ืืžืฆืขื•ืช WSI ืžืกื•ืคืงืช ื’ื ืขื‘ื•ืจ ืื ื“ืจื•ืื™ื“, X11 (ืขื DRI3), Windows, Tizen, macOS ื•-iOS.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”