ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ Π»Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌ 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, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΌΡ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ cΠΊΠ°Π»ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ.
- ΠΡΠ΅Π³ΠΎ Π² ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΠ΅Π½Ρ 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 (Window System Integration), ΡΠ΅ΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ΅ ΠΆΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΡΡΠΎ ΠΈ EGL Π² OpenGL ES. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° WSI ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° Π² Wayland — Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Vulkan, ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Wayland. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· WSI ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π΄Π»Ρ Android, X11 (c DRI3), Windows, Tizen, macOS ΠΈ iOS.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru