ΠΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΡΡ 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 Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ. - ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ API Π½Π° Vulkan Π²ΠΊΠ»ΡΡΠ²Π° 23 ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. Π‘ΡΠ΅Π΄ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ:
-
Π₯ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ (Π‘Π΅ΠΌΠ°ΡΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π²Π°ΡΠ° Π»ΠΈΠ½ΠΈΡ), ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°ΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡΡΠ° Ρ ΠΎΠΏΠ°ΡΠΊΠΈΡΠ΅ Π½Π° Ρ ΠΎΡΡΠ° ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π²ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ ΠΈ Ρ ΠΎΡΡΠ°, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ VkFence ΠΈ VkSemaphore). ΠΠΎΠ²ΠΈΡΠ΅ ΡΠ΅ΠΌΠ°ΡΠΎΡΠΈ ΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½ΠΎ Π½Π°ΡΠ°ΡΡΠ²Π°ΡΠ° 64-Π±ΠΈΡΠΎΠ²Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ»Π΅Π΄Π΅Π½Π° ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½ΠΈΡΠΊΠΈ.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΠ»ΠΎΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Ρ Π½Π°ΠΌΠ°Π»Π΅Π½Π° ΡΠΎΡΠ½ΠΎΡΡ Π² ΡΠ΅ΠΉΠ΄ΡΡΠΈΡΠ΅;
- HLSL ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° ΠΎΠΏΡΠΈΡ Π·Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°;
- ΠΠ΅ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ (Π±Π΅Π· ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅), ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° Π±ΡΠΎΡ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΎΡΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ GPU ΠΏΠ°ΠΌΠ΅ΡΡΠ°;
-
Π€ΠΎΡΠΌΠ°Π»Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° , ΠΊΠΎΠ΅ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠ°ΠΊ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ Π½ΠΈΡΠΊΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½Π΅; -
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ Π½Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΉΠ΄ΡΡΠΈ; - ΠΡΡΠ΅ΡΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ.
ΠΡΠ»Π΅Π½ ΡΠΏΠΈΡΡΠΊ Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ:
-
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_ΡΠΏΠΈΡΡΠΊ_ΡΠΎΡΠΌΠ°ΡΠΈ_Π½Π°_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ -
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_ΡΠ΅ΠΌΠ°ΡΠΎΡ -
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.
- Π Π°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡ Ρ Π΄ΡΡΠ³ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ API. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Vulkan ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ OpenGL ΠΏΡΠ΅Π²ΠΎΠ΄ (
Π¦ΠΈΠ½ΠΊ ), OpenCL (clspv ,clvk ), OpenGL ES (Π ΠͺΠΠΠΠΠ¦Π, ΠͺΠ³ΡΠ») ΠΈ 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 (Π·Π°ΡΠ΅Π½ΡΠ²Π°Π½Π΅ Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΡΠΊΠΎΡΠΎΡΡ) ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΡΠ΅ΠΉΠ΄ΡΡΠΈ.
Π‘ΠΏΠΎΠΌΠ½Π΅ΡΠ΅ ΡΠΈ, ΡΠ΅ API Π½Π° Vulkan
Vulkan ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΅Π΄ΠΈΠ½Π΅Π½ API Π·Π° Π΄Π΅ΡΠΊΡΠΎΠΏ, ΠΌΠΎΠ±ΠΈΠ»Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈ ΡΠ΅Π±, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ API Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ GPU ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Vulkan, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ Ρ Π²ΡΠ΅ΠΊΠΈ GPU, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π·Π° ΠΈΠ½Π΄ΡΡΡΡΠΈΡΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΊΠΎΠ΄, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°. ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΠΎΠ²ΠΎ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅, 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