Π‘Π»Π΅Π΄ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΡΡ Π·Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ Khronos ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Vulkan 1.3, ΠΊΠΎΡΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° API Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° GPU. ΠΠΎΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, Π½Π°ΡΡΡΠΏΠ°Π½ΠΈ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Vulkan 1.3 ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π·Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ ΠΎΡ ΠΊΠ»Π°Ρ OpenGL ES 3.1, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅Π½ API Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Vulkan 1.2. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° Vulkan SDK ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ Π² ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΡΠ΅Π²ΡΡΠ°ΡΠΈ. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ°Ρ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ ΡΡΠ΅Π΄Π΅Π½ ΠΈ Π²ΠΈΡΠΎΠΊ ΠΊΠ»Π°Ρ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ βVulkan Milestoneβ.
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΏΠ»Π°Π½ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π² Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΡΡΠΈ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Intel, AMD, ARM ΠΈ NVIDIA ΡΠ΅ Π³ΠΎΡΠ²ΡΡ Π΄Π° ΠΏΡΡΠ½Π°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ Vulkan 1.3. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, AMD ΠΎΠ±ΡΠ²ΠΈ, ΡΠ΅ ΡΠΊΠΎΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Vulkan 1.3 Π² ΡΠ΅ΡΠΈΡΡΠ° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΊΠ°ΡΡΠΈ AMD Radeon RX Vega, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΊΠ°ΡΡΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° AMD RDNA. NVIDIA ΡΠ΅ Π³ΠΎΡΠ²ΠΈ Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan 1.3 Π·Π° Linux ΠΈ Windows. ARM ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Vulkan 1.3 ΠΊΡΠΌ Mali GPU.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- ΠΡΠ²Π΅Π΄Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ (ΠΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅, VK_KHR_dynamic_rendering), ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅, Π±Π΅Π· Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠΈ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° Π±ΡΡΠ΅Ρ Π·Π° ΠΊΠ°Π΄ΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄ (ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄, Π½Π°Π±ΠΎΡ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π²ΡΡΡΠ°Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ ΠΈ ΡΠ΅ΠΊΡΡΡΡΠΈ Π² ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½ΠΈΡ).
- 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_Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ_ΡΠ΅Π½Π΄ΡΡΠΈΡΠ°Π½Π΅
- VK_KHR_format_feature_flags2
- VK_KHR_ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°4
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_terminate_invocation
- VK_KHR_ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ2
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_ΡΠΎΡΠΌΠ°ΡΠΈ
- VK_EXT_ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΎ_Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ_ΡΡΡΡΠΎΡΠ½ΠΈΠ΅
- VK_EXT_extended_dynamic_state2
- VK_EXT_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅_ΡΠΎΠ±Π°ΡΡ
- VK_EXT_inline_uniform_block
- VK_EXT_ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΡΡΠ±ΠΎΠΏΡΠΎΠ²ΠΎΠ΄_ΡΡΠ·Π΄Π°Π²Π°Π½Π΅_ΠΊΠ΅Ρ_
- VK_EXT_pipeline_creation_feedback
- VK_EXT_ΠΏΡΠΈΠ²Π°ΡΠ½ΠΈ_Π΄Π°Π½Π½ΠΈ
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_ΠΏΠΎΠ΄Π³ΡΡΠΏΠ°_ΡΠ°Π·ΠΌΠ΅Ρ_ΠΊΠΎΠ½ΡΡΠΎΠ»
- VK_EXT_ΡΠ΅ΠΊΡΠ΅Π»_Π±ΡΡΠ΅Ρ_ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅
- 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 Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° ΠΏΡΠΎΡΠΈΠ»ΠΈ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ. Google Π΅ ΠΏΡΡΠ²ΠΈΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ½Π° ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΏΡΠΎΡΠΈΠ» Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Android, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Vulkan Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ·Π²ΡΠ½ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Vulkan 1.0. ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΈΠ»ΠΈ Π±Π΅Π· ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° OTA Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ΅ΠΊΠ° ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΠ΅ Vulkan API ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π½ΠΎΡΠΎ ΡΠΈ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅, ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° GPU ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΡΠΌ ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° API Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° GPU. ΠΠ° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡ, Vulkan ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π²ΡΡΡ Ρ GPU ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° GPU multi-threading, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² OpenGL ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Ρ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ² 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