ΠΠΎΠ½Π·ΠΎΡΡΠΈΡΠΌΠΎΡ Khronos, ΠΊΠΎΡ ΡΠ°Π·Π²ΠΈΠ²Π° Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈ,
ΠΠ»Π°Π²Π½ΠΈΡΠ΅
-
ΠΠΎΠ½Π΅ΡΠ΅Π½ Π΄ΠΎ Π²Π°Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΠΊ ΡΠ΅ΡΠ΄Π΅Ρ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π·Π° ΡΠΈΡΠΎΠΊΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°HLSL , ΡΠ°Π·Π²ΠΈΠ΅Π½ ΠΎΠ΄ Microsoft Π·Π° DirectX. ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° HLSL Π²ΠΎ Vulkan ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΈΡΡΠΈΡΠ΅ HLSL ΡΠ΅ΡΠ΄Π΅ΡΠΈ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Vulkan ΠΈ DirectX, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π³ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΡΠ²Π° ΠΏΡΠ΅Π²ΠΎΠ΄ΠΎΡ ΠΎΠ΄ HLSL Π²ΠΎ SPIR-V. ΠΠ° ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΄Π΅ΡΠΈ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅Ρ
DXC , ΠΊΠΎΡΠ° Π±Π΅ΡΠ΅ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΠΎΠ΄ Microsoft Π²ΠΎ 2017 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΡΠ΅ Π±Π°Π·ΠΈΡΠ° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ°ΡΠ° LLVM. ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π½Π° Vulkan ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΏΠΎΡΠ΅Π±Π΅Π½ Π·Π°Π΄Π΅Π½ Π΄Π΅Π», ΠΊΠΎΡ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π²Π΅Π΄Π΅ΡΠ΅ HLSL Π²ΠΎ ΡΡΠ΅Π΄Π½ΠΎ ΠΏΡΠ΅ΡΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΡΠ΄Π΅ΡΠΈΡΠ΅ Π½Π° SPIR-V. ΠΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π³ΠΈ ΠΎΠΏΡΠ°ΡΠ° Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠΈΡΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ
HLSL, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΠ΅ΠΊΠΎΠ²ΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΡΠ΅ΡΡΡΡΠΈ, ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡΠΈ, Shader Model 6.2, ΡΡΡΡΠΊΡΡΡΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Π½ΠΎ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° Vulkan, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ VKRay ΠΎΠ΄ NVIDIA. ΠΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΡ HLSL Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° Vulkan, Π±Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΈΠ³ΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Destiny 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_ Π΄Π»Π°Π±ΠΎΡΠΈΠ½Π°_ΠΌΠ°ΡΡΠ΅Π»ΠΈΠ½_ΡΠ΅ΡΠ°Π²Π° -
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_ ΠΏΡΠΎΡΠΈΡΠ΅Π½ΠΈ_ ΡΠΈΠΏΠΎΠ²ΠΈ -
VK_KHR_spirv_1_4 -
VK_KHR_timeline_semaphore -
VK_KHR_ΡΠ½ΠΈΡΠΎΡΠΌΠ΅Π½_Π±Π°ΡΠ΅Ρ_ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½_ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ -
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.
- Π Π°Π±ΠΎΡΠ°ΡΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΡΠ²Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π·Π° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΏΡΠ΅Π½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡ ΡΠΎ Π΄ΡΡΠ³ΠΈ Π³ΡΠ°ΡΠΈΡΠΊΠΈ API. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Vulkan Π½ΡΠ΄ΠΈ Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ ΠΊΠΎΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ ΠΏΡΠ΅Π²ΠΎΠ΄ Π½Π° OpenGL (
Π¦ΠΈΠ½ΠΊ ), OpenCL (clspv ,clvk ), OpenGL ES (ΡΠ°ΠΊΠ°Π²ΠΈΡΠ°, Π°Π³ΠΎΠ») ΠΈ DirectX (DXVK ,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 ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅ΡΠΈ Π·Π° HL.
ΠΠ»Π°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π° ΠΈΠ΄Π½ΠΈΠ½Π°ΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΡΠ°Π·Π²ΠΎΡ Π½Π° Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½ΡΠΊΠΎ ΡΡΠ΅ΡΠ΅, ΡΠ»Π΅Π΄Π΅ΡΠ΅ Π·ΡΠ°ΡΠΈ, ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° VRS (Π·Π°ΡΠ΅Π½ΡΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΡΠ°ΠΏΠΊΠ°) ΠΈ Mesh shader.
ΠΠΎΡΡΠ΅ΡΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Vulkan API
Vulkan Π³ΠΈ ΠΎΠΏΡΠ°ΡΠ° ΡΠΈΡΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ API Π·Π° Π΄Π΅ΡΠΊΡΠΎΠΏ, ΠΌΠΎΠ±ΠΈΠ»Π΅Π½ ΠΈ Π²Π΅Π±, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°ΡΡΠΈ Π΅Π΄Π΅Π½ Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΈ API Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠ»ΠΎΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Vulkan, ΡΡΠΎ Π·Π½Π°ΡΠΈ Π°Π»Π°ΡΠΊΠΈ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠΎ ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ Π³ΡΠ°ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ, ΠΠΠ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΈΠ½Π΄ΡΡΡΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠΎΠ΄, Π΄Π΅Π±Π°Π³ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°ΡΠ΅ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ. ΠΠ° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ΅ΡΠ΄Π΅ΡΠΈ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΠΏΡΠ΅Π½ΠΎΡΠ»ΠΈΠ²Π° ΠΏΠΎΡΡΠ΅Π΄Π½Π° ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΠ°, SPIR-V, Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° LLVM ΠΈ ΡΠΏΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠΎ OpenCL. ΠΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΡΡΠ΅Π΄ΠΈΡΠ΅ ΠΈ Π΅ΠΊΡΠ°Π½ΠΈΡΠ΅, Vulkan Π½ΡΠ΄ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ WSI (Window System Integration), ΠΊΠΎΡ Π³ΠΈ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΈΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΊΠ°ΠΊΠΎ EGL Π²ΠΎ OpenGL ES. ΠΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° WSI Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΡΡΠΈΡΠ°ΡΠ° Π²ΠΎ Wayland - ΡΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠ°Ρ Vulkan ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ Π²ΠΎ ΡΡΠ΅Π΄ΠΈΠ½Π° Π½Π° Π½Π΅ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ Wayland ΡΠ΅ΡΠ²Π΅ΡΠΈ. ΠΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠ΅ΠΊΡ WSI Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΈ Π·Π° Android, X11 (ΡΠΎ DRI3), Windows, Tizen, macOS ΠΈ iOS.
ΠΠ·Π²ΠΎΡ: opennet.ru