Dopo due mesi di sviluppo, è stata pubblicata la prima versione dell'implementazione open source dell'API OpenGL e Vulkan — Mesa 22.1.0. La prima release della serie Mesa 22.1.0 ha uno stato sperimentale; verrà rilasciata una versione stabile 22.1.1 dopo la stabilizzazione finale del codice.
Mesa 22.1 offre il supporto per l'API grafica Vulkan 1.3 nei driver anv per GPU Intel, radv per GPU AMD e nel rasterizzatore software lavapipe. Il supporto per Vulkan 1.2 è implementato in modalità emulatore (vn), Vulkan 1.1 nel driver per GPU Qualcomm (tu) e Vulkan 1.0 nel driver per GPU Broadcom VideoCore VI (Raspberry Pi 4). Mesa fornisce anche un supporto completo per OpenGL 4.6 nei driver 965, iris (Intel), radeonsi (AMD), zink e llvmpipe. Il supporto per OpenGL 4.5 è disponibile per GPU AMD (r600) e NVIDIA (nvc0), mentre OpenGL 4.3 è supportato per virgl (GPU virtuale Virgil3D per QEMU/KVM) e vmwgfx (VMware).
Novità principali:
- Nel driver Vulkan ANV (Intel) e nel driver OpenGL Iris è stato implementato il supporto per le schede grafiche discrete Intel DG2 (Arc Alchemist) e Arctic Sound-M.
- Nel driver D3D12 con interfaccia per l'organizzazione dell'esecuzione di OpenGL sopra l'API DirectX 12 (D3D12) è garantita la compatibilità con OpenGL 4.2. Il driver viene utilizzato nell'interfaccia WSL2 per eseguire applicazioni grafiche Linux su Windows.
- Nel driver lavapipe con implementazione del rasterizzatore software per l'API Vulkan (analogo a llvmpipe, ma per Vulkan, che esegue la traduzione delle chiamate API Vulkan in API Gallium) è stato implementato il supporto per Vulkan 1.3.
- È stato aggiunto il supporto per le GPU AMD GFX1036 e GFX1037.
- Nel driver RADV (AMD) è stata implementata la possibilità di culling dei primitivi durante il ray tracing, migliorando il supporto per il ray tracing in giochi come DOOM Eternal.
- È stata proposta un'implementazione iniziale del driver Vulkan per GPU basate sull'architettura PowerVR Rogue, sviluppata da Imagination.
- Il driver Nouveau per le vecchie GPU GeForce 6/7/8 è stato convertito all'utilizzo di rappresentazioni intermedie senza tipo (IR) per gli shader NIR. Il supporto per NIR permette anche di ottenere supporto per la rappresentazione intermedia TGSI (Tungsten Graphics Shader Infrastructure) tramite l'uso di uno strato per la traduzione da NIR a TGSI.
- È stato incluso un compilatore OpenCL compatto, proposto da Intel e utilizzato per il ray tracing.
- Nel driver OpenGL v3d, sviluppato per l'acceleratore grafico VideoCore VI, utilizzato a partire dal modello Raspberry Pi 4, è stata implementata la supporto per la memorizzazione nella cache degli shader su disco.
- Per le GPU AMD equipaggiate con il motore di elaborazione video VCN 2.0, è stato implementato il supporto per l'EFC (Encoder Format Conversion), che consente l'utilizzo dell'encoder video hardware per la lettura diretta delle superfici RGB senza la conversione RGB->YUV effettuata dagli shader.
- Nel driver Crocus, sviluppato per le vecchie GPU Intel basate sulle microarchitetture Gen4-Gen7, non supportate dal driver Iris, è inclusa una compatibilità con le versioni precedenti di OpenGL.
- Nel driver PanVk, che fornisce supporto per l'API grafica Vulkan per le GPU ARM Mali Midgard e Bifrost, sono iniziati i lavori per supportare gli shader di calcolo.
- Nel driver Venus, con implementazione di GPU virtuale (virtio-gpu) basato sull'API Vulkan, è stato aggiunto il supporto per il livello ANGLE, che si occupa della traduzione delle chiamate OpenGL ES in OpenGL, Direct3D 9/11, Desktop GL e Vulkan.
- È stato aggiunto il supporto per l'estensione OpenGL proposta da NVIDIA, GL_NV_pack_subimage, destinata all'aggiornamento di rettangoli in memoria host utilizzando dati dal framebuffer o dalla texture.
- Aggiunto supporto per le estensioni nei driver Vulkan RADV (AMD), ANV (Intel) e lavapipe:
- VK_EXT_depth_clip_control per lavapipe e RADV.
- VK_EXT_graphics_pipeline_library per lavapipe.
- VK_EXT_primitives_generated_query per lavapipe.
- VK_EXT_image_2d_view_of_3d per ANV e lavapipe.
- VK_KHR_swapchain_mutable_format per lavapipe.
Fonte: opennet.ru
