Π Π΅Π»ΠΈΠ· Mesa 24.1, свободной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ OpenGL ΠΈ Vulkan

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· свободной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API OpenGL ΠΈ Vulkan — Mesa 24.1.0. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ выпуск Π²Π΅Ρ‚ΠΊΠΈ Mesa 24.1.0 ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ статус — послС провСдСния ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стабилизации ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ вСрсия 24.1.1.

Π’ Mesa 24.0 доступна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° графичСского API Vulkan 1.3 Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… anv для GPU Intel, radv для GPU AMD, NVK для GPU NVIDIA, tu для GPU Qualcomm, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ растСризаторС lavapipe (lvp) ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ эмулятора (vn). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Vulkan 1.0 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… v3dv (GPU Broadcom VideoCore VI ΠΈΠ· Raspberry Pi 4) ΠΈ dzn (рСализация Vulkan ΠΏΠΎΠ²Π΅Ρ€Ρ… Direct3D 12).

Π’ Mesa Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСтся полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL 4.6 для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (старыС GPU Intel Gen4-Gen7), zink, llvmpipe, virgl (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ GPU Virgil3D для QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ OpenGL ΠΏΠΎΠ²Π΅Ρ€Ρ… DirectX 12) ΠΈ asahi (GPU AGX, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Ρ‡ΠΈΠΏΠ°Ρ… Apple M1 ΠΈ M2). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL 4.5 доступна для GPU AMD (r600) ΠΈ NVIDIA (nvc0). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL 3.3 присутствуСт Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… softpipe (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ растСризатор) ΠΈ nv50 (NVIDIA NV50).

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

  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ asahi, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ для GPU AGX, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ Π² ARM-Ρ‡ΠΈΠΏΠ°Ρ… Apple, обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL 4.6 ΠΈ OpenGL ES 3.2.
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NVK для GPU NVIDIA Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Turing (сСрии GeForce GTX 16xx, RTX 20xx ΠΈ Quadro RTX), Ampere (сСрии GeForce RTX 30xx ΠΈ RTX A2000/4000/5000/6000) ΠΈ Ada (сСрии GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΡ€ΠΈΠ·Π½Π°Π½ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ повсСднСвному использованию ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ ΠΊΡ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Vulkan 1.3 Π² NVK сСртифицирована консорциумом Khronos. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… NVK прослойки DXVK, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Direct3D 9, 10 ΠΈ 11.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Zink (рСализация OpenGL ΠΏΠΎΠ²Π΅Ρ€Ρ… Vulkan) для обСспСчСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL 4.6 Π½Π° систСмах с Π½ΠΎΠ²Ρ‹ΠΌΠΈ сСриями Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA (начиная с GeForce RTX 20xx), с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Nouveau (NVC0). Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Zink вмСсто NVC0 слСдуСт Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния «NOUVEAU_USE_ZINK=1».
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Panfrost Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU Mali G610, Mali G310 ΠΈ Mali T600.
  • Π’ΠΎ всСх Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° явной синхронизации (Explicit Sync) для Wayland ΠΈ X11. Explicit Sync позволяСт прилоТСниям ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΎ готовности Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°Π΄Ρ€Π° Π½Π° экран, Ρ‡Ρ‚ΠΎ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ сниТСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ появлСния Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° d3d12, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ прослойку с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ OpenGL ΠΏΠΎΠ²Π΅Ρ€Ρ… DirectX 12.
  • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ V3DV, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ для GPU Broadcom VideoCore (примСняСтся Π² ΠΏΠ»Π°Ρ‚Π°Ρ… Raspberry Pi), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° динамичСской отрисовки.
  • Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ANV (Intel) ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π½Π° использованиС асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° видСопамяти (Asynchronous VM_BIND). Для GPU Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Intel Xe, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°Ρ… Intel сСмСйства Arc ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, начиная с процСссоров Tiger Lake, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сброса Π΄Π°ΠΌΠΏΠΎΠ² состояния для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ зависаний GPU. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ GPU Ρ‡ΠΈΠΏΠΎΠ² Intel LunarLake (Xe 2).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Vulkan:
    • VK_EXT_map_memory_placed для Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² RADV, ANV ΠΈ NVK
    • VK_KHR_shader_subgroup_rotate для RADV, ANV ΠΈ NVK
    • VK_KHR_load_store_op_none для RADV, ANV, NVK ΠΈ Turnip
    • VK_KHR_line_rasterization для RADV, ANV, NVK ΠΈ Turnip
    • VK_KHR_index_type_uint8 для RADV, ANV, NVK ΠΈ Turnip
    • VK_KHR_shader_expect_assume для всСх Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ²
    • VK_KHR_shader_maximal_reconvergence для RADV, ANV ΠΈ NVK
    • VK_KHR_shader_quad_control для RADV
    • VK_KHR_shader_subgroup_uniform_control_flow для NVK
    • VK_EXT_device_address_binding_report для RADV
    • VK_EXT_external_memory_dma_buf для lavapipe
    • VK_EXT_queue_family_foreign для lavapipe
    • VK_EXT_shader_object для RADV
    • VK_EXT_nested_command_buffer для NVK ΠΈ RADV
    • VK_EXT_queue_family_foreign для NVK
    • VK_EXT_image_drm_format_modifier для NVK

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru