ืื ืืจืึธื ืึธืก ืงืึธื ืกืึธืจืืืื, ืืืึธืก ืืขืืืขืืึธืคึผืก ืืจืึทืคืืงืก ืกืืึทื ืืึทืจืืก,
ืืืืคึผื
-
ืืขืืจืืื ืฆื ืืืจ ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืึท ืฉืึทืืขืจ ืคึผืจืึธืืจืึทืืืื ื ืฉืคึผืจืึทื ืืื ืืจืืื ืคึฟืึทืจ ืืืืืืกืคึผืจืขื ื ืืฆืHLSL , ืืขืืืขืืึธืคึผืขื ืืืจื ืืืืงืจืึธืกืึธืคึฟื ืคึฟืึทืจ ืืืจืขืงืืงืก. HLSL ืฉืืืฆื ืืื Vulkan ืืืื ืขืก ืืขืืืขื ืฆื ื ืืฆื ืื ืืขืืืข HLSL ืฉืึทืืขืจื ืืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืืืจื ืืืืฃ Vulkan ืืื DirectX, ืืื ืืืื ืกืืืคึผืืึทืคืืื ืื ืืืืขืจืืขืฆืื ื ืคืื HLSL ืฆื SPIR-V. ืฆื ืฆืื ืืืคื ืขืืขื ืฉืึทืืขืจื, ืขืก ืืื ืกืึทืืืืฉืขืกืืื ืฆื ื ืืฆื ืึท ื ืึธืจืืึทื ืงืึทืืคึผืืืืขืจ
ืืงืกืง , ืืืึธืก ืืื ืืขืขืคื ื ืืขืืืืจื ืืืจื ืืืืงืจืึธืกืึธืคึฟื ืืื 2017 ืืื ืืื ืืืืืจื ืืืืฃ LLVM ืืขืื ืึธืืึธืืืข. ืืืืืงืึทื ืฉืืืฆื ืืื ืืืคึผืืึทืืขื ืึทื ืืืจื ืึท ืืึทืืื ืืขืจ ืืึทืงืขื ื, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืืืืขืจืืขืฆื HLSL ืืื ืึท ืื ืืขืจืืืืืื ืคืึทืจืืจืขืืื ื ืคืื SPIR-V ืฉืึทืืขืจื. ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืงืึธืืืขืจืก ื ืื ืืืืื ืึทืืข ืื ืืขืืืื-ืืื ืงืืืคึผืึทืืืืึทืืื
HLSL, ืึทืจืืึทื ืืขืจืขืื ื ืืึทืืึทืืึทืืืงืึทื ืืืืคึผืก, ืงืึธื ืืจืึธื ืคืืึธืื, ืคืึทื ืืงืฉืึทื ื, ืฉืืขืื, ืืืื ืืืืคึผืก, ื ืึธืืขื ืกืคึผืืืกืึทื, ืฉืึทืืขืจ ืืึธืืขื 6.2, ืกืืจืึทืงืืฉืขืจื ืืื ืืขืืืึธืืก, ืึธืืขืจ ืืืื ืึทืืึทืื ืื ื ืืฆื ืคืื ืืืืืงืึทื-ืกืคึผืขืฆืืคืืฉ ืืงืกืืขื ืฉืึทื ื ืึทืืึท ืืื VKRay ืคึฟืื NVIDIA. ืืื HLSL ืืึธืืข ืืืืฃ ืฉืคึผืืฅ ืคืื ืืืืืงืึทื, ืขืก ืืื ืืขืืืขื ืืขืืืขื ืฆื ืึธืจืืึทื ืืืืจื ืื ืึทืจืืขื ืคืื ืฉืคึผืืืขืจืืึท ืึทืืึท ืืื ืืขืกืืื ื 2, Red Dead Redemption II, Assassin's Creed Odyssey ืืื Tomb Raider. - ืกืคึผืขืกืืคืืงืึทืืืึธื ืืขืจืืืึทื ืืืงื
SPIR-V 1.5 , ืืืึธืก ืืืคืืื ื ืึท ืื ืืขืจืืืืืื ืคืึทืจืืจืขืืื ื ืคืื ืฉืึทืืขืจื ืืืึธืก ืืื ืื ืืืืขืจืกืึทื ืคึฟืึทืจ ืึทืืข ืคึผืืึทืืคืึธืจืืก ืืื ืงืขื ืขื ืืืื ืืขืืืืื ื ืคึฟืึทืจ ืืืืืข ืืจืึทืคืืงืก ืืื ืคึผืึทืจืึทืืขื ืงืึทืืคึผืืืืื ื.
SPIR-V ืื ืืืึทืืืื ืกืขืคึผืขืจืืืืื ื ืึท ืืึทืืื ืืขืจ ืฉืึทืืขืจ ืืึทืืืื ื ืคืึทืกืข ืืื ืึท ืื ืืขืจืืืืืื ืคืึทืจืืจืขืืื ื, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืฉืึทืคึฟื ืคืจืึธื ืืขื ืืก ืคึฟืึทืจ ืคืึทืจืฉืืื ืืืื-ืืืจืื ืฉืคึผืจืึทืื. ืืึทืืืจื ืืืืฃ ืคืึทืจืฉืืื ืืืคึผืืึทืืขื ืืืืฉืึทื ื ืืืืฃ ืืืื ืืืจืื, ืึท ืืืื ืื ืืขืจืืืืืื ืงืึธื ืืื ืกืขืคึผืขืจืึทืืื ืืืฉืขื ืขืจืืืืึทื, ืืืึธืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืืืจื OpenGL, Vulkan ืืื OpenCL ืืจืืืืขืจืก ืึธื ื ืืฆื ืื ืืขืืืื-ืืื ืฉืึทืืขืจ ืงืึทืืคึผืืืืขืจ. - ืื ืืึทืจืฅ Vulkan API ืืืื 23 ืืงืกืืขื ืฉืึทื ื ืืืึธืก ืคืึทืจืืจืขืกืขืจื ืคืึธืจืฉืืขืืื ื, ืคึฟืึทืจืืขืกืขืจื ืจืขื ืืขืจืื ื ืงืืืึทืืืืขื ืืื ืคืึทืจืคึผืึธืฉืขืืขืจื ืึทื ืืืืืงืืื ื. ืฆืืืืฉื ืื ืฆืืืขืืืืื ืืงืกืืขื ืฉืึทื ื:
-
ืืจืึธื ืึธืืึธืืืงืึทื ืกืขืืึทืคืึธืจืขืก (ืืืืืืืื ืกืขืืึทืคืึธืจ), ืืื ืึทืคืืืื ื ืกืื ืืงืจืึทื ืึทืืืืฉืึทื ืืื ืืขืจ ืืึทืืขืืึธืก ืืื ืืืื ืงืืื (ืึทืืึทืืื ื ืืืจ ืฆื ื ืืฆื ืืืื ืคึผืจืืืืืืื ืคึฟืึทืจ ืึธืื ืืืืจืขืงืืืึธื ืึทื ืกืื ืืงืจืึทื ืึทืืืืฉืึทื ืฆืืืืฉื ืื ืืืื ืืื ืืขืจ ืืึทืืขืืึธืก, ืึธื ื ืืฆื ืืึทืืื ืืขืจ VkFence ืืื VkSemaphore ืคึผืจืืืืืืืื). ื ืื ืกืขืืึทืคืึธืจืขืก ืืขื ืขื ืจืขืคึผืจืืืขื ืืื ืืืจื ืึท ืืึทื ืึทืืึธื ืืงืึทืืื ืื ืงืจืืกืื ื 64-ืืืกื ืืืขืจื ืืืึธืก ืงืขื ืขื ืืืื ืืจืึทืงื ืืื ืืขืจืืืึทื ืืืงื ืืืืขืจ ืงืืืคื ืคึฟืขืืขื.
- ืคืืืืงืืื ืฆื ื ืืฆื ื ืืืขืจืืง ืืืืคึผืก ืืื ืจืืืืกื ืคึผืื ืืืขืืงืืึทื ืืื ืฉืึทืืขืจื;
- HLSL ืงืึทืืคึผืึทืืึทืืึทื ืืึผืจืื ืืืืกืืืื ืึธืคึผืฆืืข;
- ืื ืืึทืื ื ืจืขืกืืจืกื (ืืืื ืืืขืกืก), ืืืึธืก ืจืืืืืื ืื ืืึทืืจืขื ืขืฆืื ื ืคืื ืื ื ืืืขืจ ืคืื ืจืขืกืืจืกื ืื ืืืฆื ืฆื ืฉืึทืืขืจื ืืืจื ื ืืฆื ืื ืฉืขืจื ืืืืจืืืึทื ืคึผืืึทืฅ ืคืื ืกืืกืืขื ืืึผืจืื ืืื ืืคึผื ืืึผืจืื;
-
ืคืึธืจืืึทื ืืึผืจืื ืืึธืืขื , ืืืึธืก ืืืคืืื ื ืืื ืงืึทื ืงืขืจืึทื ื ืคึฟืขืืขื ืงืขื ืขื ืฆืืืจืื ืฉืขืจื ืืึทืื ืืื ืกืื ืืงืจืึทื ืึทืืืืฉืึทื ืึทืคึผืขืจืืืฉืึทื ื; -
ืืขืกืงืจืืคึผืืึธืจ ืื ืืขืงืกืื ื ืฆื ืจืืืืก ืืืืกืืืื ืืืกืงืจืืคึผืืึธืจืก ืึทืจืืืขืจ ืงืืืคื ืฉืึทืืขืจื; - ืืึทืคืขืจ ืืื ืงืก.
ืืึทื ืฅ ืจืฉืืื ืคืื ืฆืืืขืืืืื ืืงืกืืขื ืฉืึทื ื:
-
VK_KHR_8bit_storage -
VK_KHR_buffer_device_address -
VK_KHR_create_renderpass2 -
VK_KHR_depth_stencil_resolve -
VK_KHR_draw_indirect_count -
VK_KHR_driver_properties -
VK_KHR_image_format_list -
VK_KHR_imageless_framebuffer -
VK_KHR_sampler_mirror_clamp_to_edge -
VK_KHR_separate_depth_stencil_layouts -
VK_KHR_shader_atomic_int64 -
VK_KHR_shader_float16_int8 -
VK_KHR_shader_float_controls -
VK_KHR_shader_subgroup_extended_types -
VK_KHR_spirv_1_4 -
VK_KHR_timeline_semaphore -
VK_KHR_uniform_buffer_standard_layout -
VK_KHR_vulkan_memory_model -
VK_EXT_descriptor_indexing -
VK_EXT_host_query_reset -
VK_EXT_sampler_filter_minmax -
VK_EXT_scalar_block_layout -
VK_EXT_separate_stencil_usage -
VK_EXT_shader_viewport_index_layer
-
-
ืฆืืืขืืขืื ืืขืจ ืืื 50 ื ืืึท ืกืืจืึทืงืืฉืขืจื ืืื 13 ืคืึทื ืืงืฉืึทื ื; - ืคืึทืจืงืืจืฆื ืืืขืจืกืืขืก ืคืื ืื ืกืคึผืขืกืืคืืงืึทืืืึธื ืืขื ืขื ืฆืืืขืืจืืื ืคึฟืึทืจ ืืืคึผืืฉ ืฆืื ืคึผืืึทืืคืึธืจืืก, ืกืืืคึผืืึทืคืืืื ื ืึทืจืืขื ืืืืฃ ืคึผืืึทืืคืึธืจืืก ืคึฟืึทืจ ืืืึธืก ืึทืืข ืืงืกืืขื ืฉืึทื ื ืืขื ืขื ื ืึธื ื ืืฉื ืืขืฉืืืฆื, ืืื ืึทืืึทืืื ื ืืืื ืขืจ ืฆื ืืึธื ืึธื ืกืขืืขืงืืืื ืึทืงืืึทืืืืืฉืึทื ืคืื ืื ืืงืขืจืืืง ืงืืืคึผืึทืืืืึทืืื ืคืื ืื Vulkan API.
- ืึทืจืืขื ืืืื ืืืืฃ ืื ืคึผืจืืืขืงื ืฆื ืขื ืฉืืจ ืคึผืึธืจืืึทืืืืืื ืืื ืื ืืขืจืข ืืจืึทืคืืงืก ืึทืคึผืืก. ืคึฟืึทืจ ืืืึทืฉืคึผืื, Vulkan ืึธืคืคืขืจืก ืืงืกืืขื ืฉืึทื ื ืืืึธืก ืืึธืื OpenGL ืืืืขืจืืขืฆืื ื (
ืืื ืง ), OpenCL (clspv ,clvk ), OpenGL ES (Handel, ืืืื ืงื) ืืื ืืืจืขืงืืงืก (ืืงืกืืืง ,vkd3d ) ืืืจื ืื Vulkan API, ืืื ืืืื, ืงืึทื ืืืขืจืกืื, ืฆื ืืขืื Vulkan ืฆื ืึทืจืืขืื ืืืืฃ ืคึผืืึทืืคืึธืจืืก ืึธื ืืืื ืืขืืืืจื ืฉืืืฆื (gfx-rs ะธืืฉ ืคึฟืึทืจ ืืจืืขืื ืืืืฃ ืฉืคึผืืฅ ืคืื OpenGL ืืื DirectX,MoltenVK ืืื gfx-rs ืคึฟืึทืจ ืืจืืขืื ืืืืฃ ืฉืคึผืืฅ ืคืื ืืขืืึทื).
ืฆืืืขืืืืื ืืงืกืืขื ืฉืึทื ื ืฆื ืคึฟืึทืจืืขืกืขืจื ืงืึทืืคึผืึทืืึทืืืืึทืื ืืื 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 (ืืืืืึทืืึทื-ืงืืจืก ืฉืืืืื ื) ืืื ืืขืฉ ืฉืึทืืขืจื.
ืฆืืจืืงืจืืคื ืึทื ืื Vulkan API
Vulkan ืกืคึผืึทื ืก ืึทืืข ืคืึทืจืึทื ืขื ืคึผืืึทืืคืึธืจืืก ืืื ืืื ืึท ืืืื ืึทืคึผื ืคึฟืึทืจ ืืขืกืงืืึทืคึผ, ืจืืจืขืืืืืง ืืื ืืืขื, ืึทืืึทืืื ื ืืืื ืคึผืจืึธืกื ืึทืคึผื ืฆื ืืืื ืืขืืืืื ื ืืื ืงืืืคื ืืคึผืืก ืืื ืึทืคึผืืึทืงืืืฉืึทื ื. ืืึทื ืง ืฆื Vulkan ืก ืืืืื-ืฉืืืืข ืึทืจืงืึทืืขืงืืฉืขืจ, ืืืึธืก ืืืื ืืืฉืืจืื ืืืึธืก ืึทืจืืขื ืืื ืงืืื ืืคึผื, ืึธืขื ืงืขื ืขื ื ืืฆื ืื ืืึทืกืืจื ื ืึธืจืืึทื ืืืฉืืจืื ืคึฟืึทืจ ืงืึธื ืึธืคึผืฉืึทืฆืื ื, ืืืืึทืืื ื ืืื ืคึผืจืึธืคืืืื ื ืืขืฉืึทืก ืึทื ืืืืืงืืื ื. ืคึฟืึทืจ ืงืจืืืืืื ื ืฉืึทืืขืจื, ืึท ื ืืึทืข ืคึผืึธืจืืึทืืืื ืื ืืขืจืืืืืื ืคืึทืจืืจืขืืื ื, SPIR-V, ืืื ืคืืจืืขืืืืื, ืืืืืจื ืืืืฃ LLVM ืืื ืืึทื ืืืืืื ื ืืึทืจืฅ ืืขืงื ืึทืืึทืืืฉืื ืืื OpenCL. ืฆื ืงืึธื ืืจืึธืืืจื ืืขืืืืกืขืก ืืื ืกืงืจืื ื, Vulkan ืึธืคืคืขืจืก ืื WSI (ืืืื ืืึธืื ืกืืกืืขื ืื ืืขืืจืึทืืืึธื) ืฆืืืื ื, ืืืึธืก ืกืึทืืืื ืืขืขืจืขื ืื ืืขืืืข ืคึผืจืึธืืืขืืก ืืื EGL ืืื OpenGL ES. WSI ืฉืืืฆื ืืื ืื ืืืฆื ืืืืก ืคืื ืื ืงืขืกืื ืืื Wayland - ืึทืืข ืึทืคึผืืึทืงืืืฉืึทื ื ื ืืฆื Vulkan ืงืขื ืขื ืืืืคื ืืื ืึท ืกืืืืืืข ืคืื โโืึทื ืืึธืืืคืืขื Wayland ืกืขืจืืืขืจืก. ืื ืคืืืืงืืื ืฆื ืึทืจืืขืื ืืืจื WSI ืืื ืืืื ืฆืืืขืฉืืขืื ืคึฟืึทืจ ืึทื ืืจืืื, X11 (ืืื DRI3), Windows, Tizen, macOS ืืื iOS.
ืืงืืจ: opennet.ru