ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API OpenGL ΠΈ Vulkan — Mesa 21.1.0. ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Π²Π΅ΡΠΊΠΈ Mesa 21.1.0 ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ — ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 21.1.1. Π Mesa 21.1 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6 Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² 965, iris (Intel), radeonsi (AMD), zink ΠΈ llvmpipe. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.5 Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ GPU AMD (r600) ΠΈ NVIDIA (nvc0), Π° OpenGL 4.3 Π΄Π»Ρ virgl (Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ GPU Virgil3D Π΄Π»Ρ QEMU/KVM). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan 1.2 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΊΠ°ΡΡ Intel ΠΈ AMD, Vulkan 1.1 Π΄Π»Ρ GPU Qualcomm ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡΠ° lavapipe, Π° Vulkan 1.0 Π΄Π»Ρ GPU Broadcom VideoCore VI (Raspberry Pi 4).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- Π Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ RADV (AMD) ΠΈ ANV (Intel) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ VK_KHR_workgroup_memory_explicit_layout ΠΈ VK_KHR_zero_initialize_workgroup_memory.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ RADV (Π΄Π»Ρ ΠΊΠ°ΡΡ AMD GFX9) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎΡΠΌΠ°ΡΠ° DRM (Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ VK_EXT_image_drm_format_modifier).
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ RADV ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° VRS (Variable Rate Shading) Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ Π»ΡΠ±ΡΠΌΠΈ Π±ΡΡΠ΅ΡΠ°ΠΌΠΈ Π³Π»ΡΠ±ΠΈΠ½Ρ. VRS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π½ΠΎΠΉ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU AMD Aldebaran (gfx90a).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ venus Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ GPU (virtio-gpu) Π½Π° Π±Π°Π·Π΅ API Vulkan.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Zink (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ API OpenGL ΠΏΠΎΠ²Π΅ΡΡ Vulkan) Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6 ΠΈ OpenGL ES 3.1. Zink ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½Π½ΡΠΉ OpenGL ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ API Vulkan. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Zink Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ΄Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ OpenGL.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ lavapipe Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ API Vulkan (Π°Π½Π°Π»ΠΎΠ³ llvmpipe, Π½ΠΎ Π΄Π»Ρ Vulkan) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan 1.1 ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ VK_KHR_copy_commands2. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² lavapipe ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² API Vulkan Π² API Gallium.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΡΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ Virgl (Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ GPU Virgil3D Π΄Π»Ρ QEMU/KVM) ΠΈ Lima (GPU ARM Mali) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅.
- Π Gallium-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ D3D12 Ρ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΎΠΉ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ OpenGL ΠΏΠΎΠ²Π΅ΡΡ API DirectX 12 (D3D12) ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ OpenGL 3.3 ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΡ D3D12-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² WARP (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡ) ΠΈ NVIDIA. ΠΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ΅ WSL2 Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Linux Π² Windows.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ OpenGL:
- GL_EXT_depth_bounds_test Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² softpipe ΠΈ zink
- GL_EXT_texture_filter_minmax Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° nvc0 (gm200+)
- GL_ARB_texture_filter_minmax Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° nvc0 (gm200+)
- GL_ARB_post_depth_coverage Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° zink.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru