ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API OpenGL ΠΈ Vulkan — Mesa 21.0.0. ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Π²Π΅ΡΠΊΠΈ Mesa 21.0.0 ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ — ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 21.0.1. Π Mesa 21.0 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 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.0 Π΄Π»Ρ VideoCore VI (Raspberry Pi 4).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Zink (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ API OpenGL ΠΏΠΎΠ²Π΅ΡΡ Vulkan) ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6. Zink ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½Π½ΡΠΉ OpenGL ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ API Vulkan. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Zink Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ΄Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ OpenGL.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ llvmpipe, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Freedreno, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² Qualcomm, Π΄Π»Ρ GPU Adreno a6xx ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL ES 3.0.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Panfrost Π΄Π»Ρ GPU Midgard (Mali-T7xx, Mali-T8xx) ΠΈ Bifrost (Mali G3x, G5x, G7x) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 3.1, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL ES 3.0 Π΄Π»Ρ GPU Bifrost.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ radeonsi ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ OpenGL GL_EXT_demote_to_helper_invocation ΠΈ GL_NV_compute_shader_derivatives. ΠΠ»Ρ ΠΈΠ³ΡΡ «Counter-Strike: Global Offensive» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΡΠ½ ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ «mesa_glthread», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° 10-20%. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² SPECViewPerf. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Radeon GPU Profiler (RGP). ΠΠ»Ρ GPU Zen 3 ΠΈ RDNA 2 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Smart Access Memory. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² HEVC SAO (Sample Adaptive Offset, Π΄Π»Ρ GPU Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π΄Π²ΠΈΠΆΠΊΠΎΠ² VCN2, VCN2.5 ΠΈ VCN3) ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² AV1 (Π΄Π»Ρ RDNA 2/RX 6000 ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ OpenMAX).
- Π Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅Ρ RADV (Π΄Π»Ρ ΠΊΠ°ΡΡ AMD) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Rapid packed math (16-ΡΠ°Π·ΡΡΠ΄Π½Π°Ρ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΡ) ΠΈ Sparse-ΠΏΠ°ΠΌΡΡΠΈ (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΊΡΡΡΡΡ, Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΠΈΡ ΠΊ ΡΠ°Π·Π½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ). ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠ°ΡΡ ΡΠ΅ΡΠΈΠΈ RX 6000. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ VK_VALVE_mutable_descriptor_type ΠΈ VK_KHR_fragment_shading_rate (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ RDNA2).
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ Intel ANV ΠΈ Iris Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Vulkan Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°Ρ Xe HPG.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ EGL_MESA_platform_xcb, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΡΡΡΡ EGL ΠΈΠ· ΡΠ΅ΡΡΡΡΠΎΠ² X11 Π±Π΅Π· ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Xlib.
- Π Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅Ρ V3DV, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΠΉ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ VideoCore VI, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΠΏΠ»Π°ΡΠ°Ρ Raspberry Pi 4 Π½Π° Π±Π°Π·Π΅ ΡΠΈΠΏΠ° Broadcom BCM2711, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Wayland WSI (Windowing System Integration), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ API Vulkan ΠΈΠ· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Wayland.
- ΠΡΠΈΠ½ΡΡΠ° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ, ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΠ΅ΠΉ Π²ΡΠ·ΠΎΠ²Ρ OpenGL Π² API DirectX 12, Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ WSL (Windows Subsystem for Linux). ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° spirv_to_dxil Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² SPIR-V Π² DXIL (DirectX Intermediate Language), ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ Π² Microsoft.
- ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΠ‘ Haiku.
- ΠΠ· driconf ΡΠ΄Π°Π»Π΅Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ glx_disable_oml_sync_control, glx_disable_sgi_video_sync ΠΈ glx_disable_ext_buffer_age.
- Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° DRI1 ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² DRI ΠΈΠ· Π²Π΅ΡΡΠΈΠΉ Mesa Π½ΠΈΠΆΠ΅ 8.0.
- Π£Π΄Π°Π»ΡΠ½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ swrast, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π½Π° Π±Π°Π·Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° DRI ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ OpenGL (ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ llvmpipe ΠΈ softpipe Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°ΡΡ swrast ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ). Π£Π΄Π°Π»Π΅Π½ΠΈΡ swrast ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π½Π΅ΡΠ΅ΡΡΠ½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΉ, ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠΆΠ΅ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ .
- Π£Π΄Π°Π»ΡΠ½ ΡΡΠ°ΡΡΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° OSMesa (ΠΎΡΡΠ°Π²Π»Π΅Π½ OSMesa Π½Π° Π±Π°Π·Π΅ Gallium), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π½Π΅ Π½Π° ΡΠΊΡΠ°Π½, Π° Π² Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΡΠ΅Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru