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

ΠšΠΎΠ½ΡΠΎΡ€Ρ†ΠΈΡƒΠΌ Khronos, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ графичСских стандартов,
ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Vulkan 1.2, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ API для доступа ΠΊ графичСским ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ возмоТностям GPU. Новая спСцификация Π²ΠΎΠ±Ρ€Π°Π»Π° Π² сСбя накопившиСся Π·Π° Π΄Π²Π° Π³ΠΎΠ΄Π° исправлСния ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ вСрсии Vulkan ΡƒΠΆΠ΅ выпустили ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Intel, AMD, ARM, Imagination Technologies ΠΈ NVIDIA. Π’ Mesa ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Vulkan 1.2 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² RADV (ΠΊΠ°Ρ€Ρ‚Ρ‹ AMD) ΠΈ ANV (Intel). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Vulkan 1.2 Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ RenderDoc 1.6, LunarG Vulkan SDK ΠΈ Π½Π°Π±ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Vulkan-Samples.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Π”ΠΎΠ²Π΅Π΄Π΅Π½Π° Π΄ΠΎ готовности ΠΊ повсСмСстному ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ рСализация языка программирования ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² 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.

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

  • ОбновлСна спСцификация SPIR-V 1.5, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ΅ для всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ для Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний.
    SPIR-V ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°Π·Ρ‹ компиляции ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ прСдставлСниС, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ фронтэнды для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… высокоуровнСвых языков. На основС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… высокоуровнСвых Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ гСнСрируСтся Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ OpenGL, Vulkan ΠΈ OpenCL Π±Π΅Π· примСнСния встроСнного компилятора ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².

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

  • Π’ основной API Vulkan Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ 23 Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, позволившиС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ качСство Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Π‘Ρ€Π΅Π΄ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ:
    • Π₯ронологичСскиС сСмафоры (Timeline semaphore), ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ синхронизации c хостом ΠΈ очСрСдями устройств (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠΌ для всСнаправлСнной синхронизации ΠΌΠ΅ΠΆΠ΄Ρƒ устройством ΠΈ хостом, Π±Π΅Π· примСнСния Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² VkFence ΠΈ VkSemaphore). НовыС сСмафоры прСдставлСны ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΡΡ 64-разрядным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ….
      ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ графичСский стандарт Vulkan 1.2

    • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°Ρ… числовых Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ;
    • БовмСстимый с HLSL Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ раскладки памяти;
    • НСсвязанныС рСсурcΡ‹ (bindless), ΡΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° число доступных для ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ² рСсурсов Π·Π° счёт использования ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ пространства систСмной памяти ΠΈ памяти GPU;
    • Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ модСль памяти, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ выполняСмыС ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ опСрациям синхронизации;
    • Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ дСскрипторов для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования дСскрипторов раскладок Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Π°Ρ…;
    • Π‘ΡƒΡ„Π΅Ρ€Π½Ρ‹Π΅ ссылки.

    ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 50 Π½ΠΎΠ²Ρ‹Ρ… структур ΠΈ 13 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;
  • ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ сокращённыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ спСцификации для Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… возмоТностСй API Vulkan.
  • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ пСрСносимости с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ графичСскими API. НапримСр, Π² Vulkan ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) ΠΈ DirectX (DXVK, vkd3d) Ρ‡Π΅Ρ€Π΅Π· API Vulkan, Π° Ρ‚Π°ΠΊΠΆΠ΅, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, для обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Vulkan Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Π±Π΅Π· Π΅Π³ΠΎ Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ (gfx-rs ΠΈ Ashes для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… OpenGL ΠΈ DirectX, MoltenVK ΠΈ gfx-rs для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Metal).
    Для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ совмСстимости с DirectX ΠΈ HLSL Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layou, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² SPIR-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ спСцифичныС возмоТности HLSL.

Из ΠΏΠ»Π°Π½ΠΎΠ² Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ отмСчаСтся Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для машинного обучСния, трассировки Π»ΡƒΡ‡Π΅ΠΉ, кодирования ΠΈ дСкодирования Π²ΠΈΠ΄Π΅ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ VRS (variable-rate shading) ΠΈ Mesh-ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ΠΎΠ².

Напомним, Ρ‡Ρ‚ΠΎ 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ