Rilascio di Mesa 21.2, un'implementazione gratuita di OpenGL e Vulkan

Dopo tre mesi di sviluppo è stata pubblicata la versione gratuita dell'implementazione delle API OpenGL e Vulkan, Mesa 21.2.0. La prima versione del ramo Mesa 21.2.0 ha uno stato sperimentale: dopo la stabilizzazione finale del codice verrà rilasciata una versione stabile 21.2.1.

Mesa 21.2 include il supporto completo per OpenGL 4.6 per i driver 965, iris (Intel), radeonsi (AMD), zink e llvmpipe. Il supporto OpenGL 4.5 è disponibile per le GPU AMD (r600) e NVIDIA (nvc0) e il supporto OpenGL 4.3 per virgl (GPU virtuale Virgil3D per QEMU/KVM). Il supporto Vulkan 1.2 è disponibile per le schede Intel e AMD, nonché in modalità emulatore (vn), il supporto Vulkan 1.1 è disponibile per le GPU Qualcomm e il rasterizzatore software lavapipe e Vulkan 1.0 è disponibile per le GPU Broadcom VideoCore VI (Raspberry Pi 4) .

Principali innovazioni:

  • Il driver asahi OpenGL è incluso con il supporto iniziale per la GPU inclusa nei chip Apple M1. Il driver utilizza l'interfaccia Gallium e supporta la maggior parte delle features di OpenGL 2.1 e OpenGL ES 2.0, ma non è ancora adatto per eseguire la maggior parte dei giochi. Il codice del driver è basato sul driver noop di riferimento Gallium, con parte del codice trasferito dal driver Panfrost sviluppato per la GPU ARM Mali.
  • Il driver Crocus OpenGL è incluso con il supporto per le GPU Intel meno recenti (basate su microarchitetture Gen4-Gen7), che non sono supportate dal driver Iris. A differenza del driver i965, il nuovo driver si basa sull'architettura Gallium3D, che esternalizza le attività di gestione della memoria al driver DRI nel kernel Linux e fornisce un tracker di stato già pronto con supporto per una cache di riutilizzo degli oggetti di output.
  • È incluso il driver PanVk, che fornisce supporto per l'API grafica Vulkan per le GPU ARM Mali Midgard e Bifrost. PanVk è sviluppato dai dipendenti di Collabora e si posiziona come una continuazione dello sviluppo del progetto Panfrost, che fornisce supporto per OpenGL.
  • Il driver Panfrost per GPU Midgard (Mali T760 e successive) e GPU Bifrost (Mali G31, G52, G76) supporta OpenGL ES 3.1. I piani futuri includono il lavoro per aumentare le prestazioni sui chip Bifrost e l'implementazione del supporto GPU basato sull'architettura Valhall (Mali G77 e successivi).
  • Le build x32 a 86 bit utilizzano istruzioni sse87 anziché istruzioni x2 per i calcoli matematici.
  • Il driver Nouveau nv50 per la GPU NVIDIA GT21x (GeForce GT 2×0) supporta OpenGL ES 3.1.
  • Il driver Vulkan TURNIP e il driver OpenGL Freedreno, sviluppati per la GPU Qualcomm Adreno, hanno il supporto iniziale per la GPU Adreno a6xx gen4 (a660, a635).
  • Il driver Vulkan RADV (AMD) ha aggiunto il supporto per l'abbattimento primitivo utilizzando i motori shader NGG (Next-Gen Geometry). È stata implementata la possibilità di creare il driver RADV sulla piattaforma Windows utilizzando il compilatore MSVC.
  • È stato svolto un lavoro preparatorio sul driver ANV Vulkan (Intel) e sul driver Iris OpenGL per fornire supporto per le prossime schede grafiche Intel Xe-HPG (DG2). Ciò include le funzionalità iniziali relative al ray tracing e il supporto per gli shader del ray tracing.
  • Il driver lavapipe, che implementa un rasterizzatore software per l'API Vulkan (analogo a llvmpipe, ma per Vulkan, traduce le chiamate API Vulkan all'API Gallium), supporta la modalità "wideLines" (fornisce supporto per linee con una larghezza superiore a 1.0).
  • È stato implementato il supporto per il rilevamento dinamico e il caricamento di backend GBM (Generic Buffer Manager) alternativi. La modifica ha lo scopo di migliorare il supporto Wayland sui sistemi con driver NVIDIA.
  • Il driver Zink (un'implementazione dell'API OpenGL su Vulkan, che consente di ottenere OpenGL con accelerazione hardware se il sistema ha driver limitati a supportare solo l'API Vulkan) supporta le estensioni OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax e GL_ARB_shader_clock. Aggiunti modificatori del formato DRM (Direct Rendering Manager, estensione VK_EXT_image_drm_format_modifier abilitata).
  • Aggiunto il supporto per le estensioni ai driver Vulkan RADV (AMD), ANV (Intel) e lavapipe:
    • VK_EXT_provocatorio_vertice (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_drm (RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquisire_drm_display (RADV, ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_separate_ Depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

Fonte: opennet.ru

Aggiungi un commento