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

ืงื•ื ืกื•ืจืฆื™ื•ื Khronos, ื”ืžืคืชื— ืกื˜ื ื“ืจื˜ื™ื ื’ืจืคื™ื™ื,
ืคื•ืจืกื ืžึดืคืจึธื˜ ื•ื•ืœืงืŸ 1.2, ื”ืžื’ื“ื™ืจ API ืœื’ื™ืฉื” ืœื™ื›ื•ืœื•ืช ื”ื’ืจืคื™ืงื” ื•ื”ืžื—ืฉื•ื‘ ืฉืœ ื”-GPU. ื”ืžืคืจื˜ ื”ื—ื“ืฉ ืžืฉืœื‘ ืชื™ืงื•ื ื™ื ืฉื ืฆื‘ืจื• ื‘ืžืฉืš ืฉื ืชื™ื™ื ื• ื”ืจื—ื‘ื•ืช. ืžื ื”ืœื™ ื”ืชืงื ื™ื ื”ืชื•ืžื›ื™ื ื‘ื’ืจืกื” ื”ื—ื“ืฉื” ืฉืœ Vulkan ื›ื‘ืจ ื ืžืฆืื™ื ืžึฐืฉืื•ึผื—ืจึธืจ ื—ื‘ืจืช ืื™ื ื˜ืœ, AMD, ARM, Imagination Technologies ื• NVIDIA. Mesa ืžืฆื™ืขื” ืชืžื™ื›ื” ื‘-Vulkan 1.2 ืขื‘ื•ืจ ืžื ื”ืœื™ ื”ืชืงื ื™ื RADV (ื›ืจื˜ื™ืกื™ AMD) ื• ANV (ืื™ื ื˜ืœ). ืชืžื™ื›ื” ื‘-Vulkan 1.2 ืžื™ื•ืฉืžืช ื’ื ื‘-debugger RenderDoc 1.6, LunarG Vulkan SDK ื•ืื•ืกืฃ ืฉืœ ื“ื•ื’ืžืื•ืช ื•ื•ืœืงืŸ-ื“ื’ื™ืžื•ืช.

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

  • ื”ื•ื‘ื ืืœื™ืš ื”ื˜ืžืขืช ืฉืคืช ืชื›ื ื•ืช Shader ืขื“ ืฉื”ื™ื ืžื•ื›ื ื” ืœืฉื™ืžื•ืฉ ื ืจื—ื‘ HLSL, ืฉืคื•ืชื—ื” ืขืœ ื™ื“ื™ Microsoft ืขื‘ื•ืจ DirectX. ืชืžื™ื›ืช HLSL ื‘-Vulkan ืžืืคืฉืจืช ืœื”ืฉืชืžืฉ ื‘ืื•ืชื ื”ืฆืœืœื•ืช HLSL ื‘ืืคืœื™ืงืฆื™ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ Vulkan ื•-DirectX, ื•ื’ื ืžืคืฉื˜ืช ืืช ื”ืชืจื’ื•ื ืž-HLSL ืœ-SPIR-V. ื›ื“ื™ ืœื”ื“ืจ ื”ืฆืœืœื•ืช, ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ืžื”ื“ืจ ืกื˜ื ื“ืจื˜ื™
    DXC, ืฉื ืคืชื—ื” ืขืœ ื™ื“ื™ ืžื™ืงืจื•ืกื•ืคื˜ ื‘-2017 ื•ืžื‘ื•ืกืกืช ืขืœ ื˜ื›ื ื•ืœื•ื’ื™ื™ืช LLVM. ืชืžื™ื›ืช Vulkan ืžื™ื•ืฉืžืช ื‘ืืžืฆืขื•ืช backend ื ืคืจื“, ื”ืžืืคืฉืจ ืœืš ืœืชืจื’ื HLSL ืœื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ืฉืœ ื”ืฆืœืœื•ืช SPIR-V. ื”ื™ื™ืฉื•ื ืžื›ืกื” ืœื ืจืง ืืช ื›ืœ ื”ื™ื›ื•ืœื•ืช ื”ืžื•ื‘ื ื•ืช
    HLSL, ื›ื•ืœืœ ืกื•ื’ื™ื ืžืชืžื˜ื™ื™ื, ื–ืจื™ืžื•ืช ื‘ืงืจื”, ืคื•ื ืงืฆื™ื•ืช, ืกื˜ื™ื, ืกื•ื’ื™ ืžืฉืื‘ื™ื, ืžืจื—ื‘ื™ ืฉืžื•ืช, Shader Model 6.2, ืžื‘ื ื™ื ื•ืฉื™ื˜ื•ืช, ืืš ื’ื ืžืืคืฉืจ ืฉื™ืžื•ืฉ ื‘ื”ืจื—ื‘ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœื•ื•ืœืงืŸ ื›ื’ื•ืŸ VKRay ืž-NVIDIA. ื‘ืžืฆื‘ HLSL ืขืœ ื’ื‘ื™ Vulkan, ื ื™ืชืŸ ื”ื™ื” ืœืืจื’ืŸ ืืช ืขื‘ื•ื“ืชื ืฉืœ ืžืฉื—ืงื™ื ื›ืžื• Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey ื•-Tomb Raider.

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

  • ื”ืžืคืจื˜ ืขื•ื“ื›ืŸ SPIR-V 1.5, ื”ืžื’ื“ื™ืจ ื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ืฉืœ ื”ืฆืœืœื•ืช ืฉื”ื•ื ืื•ื ื™ื‘ืจืกืœื™ ืขื‘ื•ืจ ื›ืœ ื”ืคืœื˜ืคื•ืจืžื•ืช ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื’ื ืœื’ืจืคื™ืงื” ื•ื’ื ืœืžื—ืฉื•ื‘ ืžืงื‘ื™ืœ.
    SPIR-V ื›ื•ืœืœ ื”ืคืจื“ืช ืฉืœื‘ ื”ื™ื“ื•ืจ ื”ืฆืœืœื” ื ืคืจื“ ืœื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื, ื”ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ื—ื–ื™ืชื•ืช ืœืฉืคื•ืช ืฉื•ื ื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื”. ื‘ื”ืชื‘ืกืก ืขืœ ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ื‘ืจืžื” ื’ื‘ื•ื”ื”, ื ื•ืฆืจ ื‘ื ืคืจื“ ืงื•ื“ ื‘ื™ื ื™ื™ื ื‘ื•ื“ื“, ืฉื™ื›ื•ืœ ืœืฉืžืฉ ืžื ื”ืœื™ ื”ืชืงื ื™ื ืฉืœ OpenGL, Vulkan ื•-OpenCL ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ืžื”ื“ืจ ื”ืฆืœืœื” ื”ืžื•ื‘ื ื”.

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

  • ื”ืœื™ื‘ื” ืฉืœ Vulkan API ื›ื•ืœืœืช 23 ื”ืจื—ื‘ื•ืช ืฉืžื’ื‘ื™ืจื•ืช ืืช ื”ื‘ื™ืฆื•ืขื™ื, ืžืฉืคืจื™ื ืืช ืื™ื›ื•ืช ื”ืขื™ื‘ื•ื“ ื•ืžืคืฉื˜ื•ืช ืืช ื”ืคื™ืชื•ื—. ื‘ื™ืŸ ื”ื”ืจื—ื‘ื•ืช ืฉื ื•ืกืคื•:
    • ืกืžืคื•ืจื•ืช ื›ืจื•ื ื•ืœื•ื’ื™ื•ืช (ืกืžืคื•ืจ ืฆื™ืจ ื–ืžืŸ), ืžืื—ื“ ืกื ื›ืจื•ืŸ ืขื ืชื•ืจื™ ื”ืžืืจื— ื•ื”ืžื›ืฉื™ืจ (ื”ืžืืคืฉืจ ืœืš ืœื”ืฉืชืžืฉ ืคืจื™ืžื™ื˜ื™ื‘ื™ ืื—ื“ ืœืกื ื›ืจื•ืŸ ื›ืœ-ื›ื™ื•ื•ื ื™ ื‘ื™ืŸ ื”ืžื›ืฉื™ืจ ืœืžืืจื—, ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ืคืจื™ืžื™ื˜ื™ื‘ื™ื ื ืคืจื“ื™ื ืฉืœ VkFence ื•-VkSemaphore). ืกืžืคื•ืจื•ืช ื—ื“ืฉื•ืช ืžื™ื•ืฆื’ื•ืช ืขืœ ื™ื“ื™ ืขืจืš ืžื•ื ื•ื˜ื•ื ื™ ืฉืœ 64 ืกื™ื‘ื™ื•ืช ืฉื ื™ืชืŸ ืœืขืงื•ื‘ ื•ืœืขื“ื›ืŸ ืขืœ ืคื ื™ ืฉืจืฉื•ืจื™ื ืžืจื•ื‘ื™ื.
      ืชืงืŸ ื’ืจืคื™ืงื” Vulkan 1.2 ืคื•ืจืกื

    • ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืกื•ื’ื™ื ืžืกืคืจื™ื™ื ืขื ื“ื™ื•ืง ืžื•ืคื—ืช ื‘ื”ืฆืœืœื•ืช;
    • ืืคืฉืจื•ืช ืคืจื™ืกืช ื–ื™ื›ืจื•ืŸ ืชื•ืืžืช HLSL;
    • ืžืฉืื‘ื™ื ืœื ืงืฉื•ืจื™ื (ืœืœื ืงืฉืจ), ืืฉืจ ืžืกื™ืจ ืืช ื”ืžื’ื‘ืœื” ืขืœ ืžืกืคืจ ื”ืžืฉืื‘ื™ื ื”ื–ืžื™ื ื™ื ืœ-shaders ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ืžืจื—ื‘ ื”ื•ื™ืจื˜ื•ืืœื™ ื”ืžืฉื•ืชืฃ ืฉืœ ื–ื™ื›ืจื•ืŸ ื”ืžืขืจื›ืช ื•ื–ื™ื›ืจื•ืŸ GPU;
    • ืžื•ื“ืœ ื–ื™ื›ืจื•ืŸ ืคื•ืจืžืœื™, ื”ืžื’ื“ื™ืจ ื›ื™ืฆื“ ืฉืจืฉื•ืจื™ื ื‘ืžืงื‘ื™ืœ ื™ื›ื•ืœื™ื ืœื’ืฉืช ืœื ืชื•ื ื™ื ืžืฉื•ืชืคื™ื ื•ืœืคืขื•ืœื•ืช ืกื ื›ืจื•ืŸ;
    • ืื™ื ื“ืงืก ืžืชืืจ ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืชื™ืื•ืจื™ ืคืจื™ืกื” ืขืœ ืคื ื™ ื”ืฆืœืœื•ืช ืžืจื•ื‘ื•ืช;
    • ืงื™ืฉื•ืจื™ ืžืื’ืจ.

    ืจืฉื™ืžื” ืžืœืื” ืฉืœ ืชื•ืกืคื™ื ืฉื ื•ืกืคื•:

  • ื ื•ืกืฃ ื™ื•ืชืจ ืž-50 ืžื‘ื ื™ื ื—ื“ืฉื™ื ื•-13 ืคื•ื ืงืฆื™ื•ืช;
  • ื’ืจืกืื•ืช ืžืงื•ืฆืจื•ืช ืฉืœ ื”ืžืคืจื˜ ื”ื•ื›ื ื• ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ื™ืขื“ ื˜ื™ืคื•ืกื™ื•ืช, ืžืคืฉื˜ื•ืช ืืช ื”ืขื‘ื•ื“ื” ืขืœ ืคืœื˜ืคื•ืจืžื•ืช ืฉืขื“ื™ื™ืŸ ืœื ื ืชืžื›ื•ืช ืœื”ืŸ ื›ืœ ื”ื”ืจื—ื‘ื•ืช, ื•ืžืืคืฉืจื•ืช ืื—ืช ืœื”ืกืชื“ืจ ืœืœื ื”ืคืขืœื” ืกืœืงื˜ื™ื‘ื™ืช ืฉืœ ื”ื™ื›ื•ืœื•ืช ื”ื‘ืกื™ืกื™ื•ืช ืฉืœ Vulkan API.
  • ื”ืขื‘ื•ื“ื” ื ืžืฉื›ืช ืขืœ ื”ืคืจื•ื™ืงื˜ ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ื ื™ื™ื“ื•ืช ืขื ืžืžืฉืงื™ API ื’ืจืคื™ื™ื ืื—ืจื™ื. ืœื“ื•ื’ืžื”, Vulkan ืžืฆื™ืขื” ื”ืจื—ื‘ื•ืช ื”ืžืืคืฉืจื•ืช ืชืจื’ื•ื OpenGL (ืื‘ืฅ), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) ื•-DirectX (DXVK, vkd3d) ื“ืจืš ื”-API ืฉืœ Vulkan, ื•ื’ื, ืœื”ื™ืคืš, ื›ื“ื™ ืœืืคืฉืจ ืœ-Vulkan ืœืขื‘ื•ื“ ืขืœ ืคืœื˜ืคื•ืจืžื•ืช ืœืœื ื”ืชืžื™ื›ื” ื”ืžืงื•ืจื™ืช ืฉืœื• (gfx-rs ะธ ืืคืจ ืœืขื‘ื•ื“ื” ืขืœ ื’ื‘ื™ OpenGL ื•-DirectX, MoltenVK ื•-gfx-rs ืœืขื‘ื•ื“ ืขืœ ื’ื‘ื™ Metal).
    ื ื•ืกืคื• ื”ืจื—ื‘ื•ืช ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืชืื™ืžื•ืช ืขื DirectX ื•-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 ื•-SPIR-V ืžื™ื™ืฉืžื™ื ื™ื›ื•ืœื•ืช HLSL ืกืคืฆื™ืคื™ื•ืช.

ื”ืชื•ื›ื ื™ื•ืช ืœืขืชื™ื“ ื›ื•ืœืœื•ืช ืคื™ืชื•ื— ื”ืจื—ื‘ื•ืช ืœืœืžื™ื“ืช ืžื›ื•ื ื”, ืžืขืงื‘ ืื—ืจ ืงืจื ื™ื™ื, ืงื™ื“ื•ื“ ื•ืคืขื ื•ื— ื•ื™ื“ืื•, ืชืžื™ื›ื” ื‘-VRS (ื”ืฆืœืœื” ื‘ืงืฆื‘ ืžืฉืชื ื”) ื•ื”ืฆืœืœื•ืช Mesh.

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

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

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