Π‘Π»Π΅Π΄ Π΄Π²Π° Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΡΡ Khronos, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π° Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Vulkan 1.3, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ API Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° GPU. ΠΠΎΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° Π½Π°ΡΡΡΠΏΠ°Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Vulkan 1.3 ΡΠ° Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π³ΡΠ°ΡΠΈΡΠ½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ ΠΎΡ ΠΊΠ»Π°Ρ OpenGL ES 3.1, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅Π½ API Π½Π° Π²ΡΠΈΡΠΊΠΈ GPU, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Vulkan 1.2. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΡΡ Vulkan SDK ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π² ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° ΡΠ΅Π²ΡΡΠ°ΡΠΈ. ΠΡΠ²Π΅Π½ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΎΡ ΡΡΠ΅Π΄Π΅Π½ ΠΈ Π²ΠΈΡΠΎΠΊ ΠΊΠ»Π°Ρ, ΡΠΈΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠ° βVulkan Milestoneβ.
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ ΠΏΠ»Π°Π½ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π² Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΠΊΠΈ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°. ΠΡΠΎΠ΄ΡΠΊΡΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan 1.3 ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΡ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΡΠ½Π°ΡΠΈ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Intel, AMD, ARM ΠΈ NVIDIA. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° AMD ΠΎΠ±ΡΠ²ΠΈ, ΡΠ΅ ΡΠΊΠΎΡΠΎ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan 1.3 Π² ΡΠ΅ΡΠΈΡΡΠ° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΊΠ°ΡΡΠΈ AMD Radeon RX Vega, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΊΠ°ΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° AMD RDNA. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° NVIDIA ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Ρ Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan 1.3 Π·Π° Linux ΠΈ Windows. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° ARM Π΄ΠΎΠ±Π°Π²Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan 1.3 Π² GPU Mali.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈ Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅ (Streamlining Render Passes, VK_KHR_dynamic_rendering), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ Π·Π°ΠΏΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅ Π±Π΅Π· ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡ ΠΎΠ΄ΠΈ Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ (pipeline, Π½Π°Π±ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π²ΡΡΡΠ°ΡΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΈ ΠΈ ΡΠ΅ΠΊΡΡΡΡΠΈ Π² ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅).
- 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_dynamic_rendering
- VK_KHR_format_feature_flags2
- VK_KHR_maintenance4
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_terminate_invocation
- VK_KHR_synchronization2
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_formats
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_image_robustness
- VK_EXT_inline_uniform_block
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- VK_EXT_private_data
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_subgroup_size_control
- VK_EXT_texel_buffer_alignment
- 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 ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΏΡΠΎΡΠΈΠ» (baseline profile) Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Android, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ»Π΅ΡΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Vulkan, Π½Π°Π΄Ρ Π²ΡΡΠ»ΡΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Vulkan 1.0. ΠΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΈΠ»Π° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° Π±Π΅Π· ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° OTA Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ API Vulkan ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅, ΠΈΠ·ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° GPU ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΡΠ»ΠΎΠ΅Π²Π΅, ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° API Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° GPU. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡ, Vulkan ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° GPU ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° GPU ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅, Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π°ΡΡΡΠ°Π½Π° ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, ΡΡΠ°Π²Π°Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠΏΡΠΎΡΡΠ΅Π½ΠΈ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊΠ°ΡΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² OpenGL Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°, Π² Vulkan ΡΠ° ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Vulkan ΠΎΠ±Ρ
Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π΅Π΄ΠΈΠ½Π΅Π½ API Π·Π° Π½Π°ΡΡΠΎΠ»Π½ΠΈ, ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ Web, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ API Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠΉΠ½Π°ΡΠ° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° Vulkan, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Ρ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ GPU, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ΄, ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅. ΠΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π½ΠΎΠ²ΠΎ ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΎ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ SPIR-V, ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° LLVM ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΎ ΠΎΠ±ΡΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Ρ OpenCL. ΠΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Π΅ΠΊΡΠ°Π½ΠΈ Π² Vulkan Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ WSI (ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΡΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΊΠ°ΡΠΎ EGL Π² OpenGL ES. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° WSI Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² Wayland - Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Vulkan, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈ Π² ΡΡΠ΅Π΄Π° Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΡΡΡΠ²ΡΡΠΈ ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΡΠ΅Π· WSI Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΈ Π·Π° Android, X11 (Ρ DRI3), Windows, Tizen, macOS ΠΈ iOS.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
