Nach drei Monaten Entwicklung wurde die freie Implementierung der OpenGL- und Vulkan-API veröffentlicht — Mesa 25.0.0. Die erste Version der Reihe Mesa 25.0.0 hat den Status experimentell — nach der abschließenden Stabilisierung des Codes wird die stabile Version 25.0.1 veröffentlicht.
In Mesa 25.0 ist Unterstützung für die Grafik-API Vulkan 1.4 in den ANV-Treibern für Intel-GPUs, RADV für AMD-GPUs, NVK für NVIDIA-GPUs, Asahi für Apple-GPUs, Turnip für Qualcomm-GPUs und im Software-Rasterizer lavapipe (lvp) verfügbar. Im Emulator-Modus (vn) wird die API Vulkan 1.3 unterstützt, im PanVK-Treiber für ARM Mali-GPUs — Vulkan 1.1, und in den Treibern v3dv (GPU Broadcom VideoCore für Raspberry Pi 4+) und dzn (Implementierung von Vulkan über Direct3D 12) — Vulkan 1.0.
Mesa bietet ebenfalls umfassende Unterstützung für OpenGL 4.6 in den Treibern iris (Intel Gen 8+ GPU), radeonsi (AMD), Crocus (ältere Intel Gen 4-7 GPUs), zink, llvmpipe, virgl (virtuelle GPU Virgil3D für QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (Schicht zur Verwendung von OpenGL über DirectX 12) und asahi (GPU AGX, die in Apple M1- und M2-Chips verwendet wird). Die Unterstützung von OpenGL 4.5 ist für AMD-GPUs (r600) und NVIDIA (nvc0) verfügbar. OpenGL 3.3 wird in den Treibern softpipe (Software-Rasterizer) und nv50 (NVIDIA NV50) unterstützt.
Hauptneuheiten:
- Die Funktion "Transaktionseliminierung" ist standardmäßig aktiviert, die überflüssige Vorgänge (z. B. das Überschreiben von Fragmenten, die sich seit der letzten Darstellung nicht geändert haben) verwirft.
- Die Unterstützung für inkrementelles Rendering wurde hinzugefügt, was den Speicherverbrauch beim Rendern einer großen Anzahl von Objekten durch getrennte Verarbeitung von Fragmenten (Tiles) reduziert.
- Die Unterstützung für den AFBC 32×8 Modus wurde hinzugefügt, der zur Optimierung der Arbeit mit dem Scan-Out-Puffer in bestimmten Display-Controllern verwendet wird.
- Die maximal unterstützte Breite und Höhe von Texturen wurde von 8192 auf 32768 Pixel erhöht.
- Die Unterstützung für den Texturierungsmodus MTK_FMT_MOD_TILE_16L32S wurde hinzugefügt, bei dem fragmentierte Daten vor der Darstellung in einen temporären nicht fragmentierten Puffer kopiert werden (dies wird für die Arbeit mit den in SoC MediaTek vorhandenen Hardware-Videodekodierern verwendet).
- VK_KHR_8bit_storage
- VK_KHR_dedicated_allocation
- VK_KHR_global_priority
- VK_KHR_index_type_uint8
- VK_KHR_map_memory2
- VK_KHR_multiview
- VK_KHR_shader_draw_parameters
- VK_KHR_shader_float16_int8
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_vertex_attribute_divisor
- VK_KHR_zero_initialize_workgroup_memory
- VK_EXT_4444_formats
- VK_EXT_global_priority_query
- VK_EXT_global_priority
- VK_EXT_host_query_reset
- VK_EXT_image_robustness
- VK_EXT_pipeline_robustness
- VK_EXT_provoking_vertex
- VK_EXT_queue_family_foreign
- VK_EXT_sampler_filter_minmax
- VK_EXT_scalar_block_layout
- VK_EXT_subgroup_size_control
- VK_EXT_tooling_info
- VK_EXT_subgroup_size_control
Quelle: opennet.ru
