ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ графичСский стандарт Vulkan 1.3

ПослС Π΄Π²ΡƒΡ… Π»Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ консорциум 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