Setelah tiga bulan pengembangan, implementasi open source dari API OpenGL dan Vulkan, Mesa 26.1.0, telah dirilis. Rilis pertama dari cabang Mesa 26.1.0 bersifat eksperimental; setelah kode sepenuhnya stabil, versi stabil, 26.1.1, akan dirilis.
Mesa 26.1 menambahkan dukungan untuk API grafis Vulkan 1.4 pada driver ANV untuk GPU Intel, RADV untuk GPU AMD, NVK untuk GPU NVIDIA, HoneyKrisp (hk) untuk GPU Apple, Turnip untuk GPU Qualcomm, PanVK untuk GPU ARM Mali, rasterizer perangkat lunak lavapipe (lvp), dan mode emulator (vn). Driver v3dv (GPU Broadcom VideoCore untuk Raspberry Pi 4+) dan dzn (Vulkan melalui Direct3D 12) mendukung Vulkan 1.0, driver kk (KosmicKrisp, Vulkan melalui Metal) mendukung Vulkan 1.1, dan driver pvr (GPU Imagination PowerVR) mendukung Vulkan 1.2.
Mesa juga menyediakan dukungan penuh OpenGL 4.6 untuk iris (GPU Intel Gen 8+), Radeonsi (AMD), Crocus (GPU Intel Gen4-Gen7 yang lebih lama), AMD (r600), zink, llvmpipe, virgl (GPU virtual virgil3D untuk QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (lapisan OpenGL di atas DirectX 12), dan asahi (GPU AGX yang digunakan dalam chip Apple M1 dan M2). Dukungan OpenGL 4.5 tersedia untuk GPU NVIDIA (nvc0). Dukungan OpenGL 3.3 tersedia pada driver softpipe (rasterizer perangkat lunak) dan nv50 (NVIDIA NV50). OpenGL 3 didukung pada driver panfrost (GPU ARM Mali) dan v3.1d (GPU Broadcom VideoCore).
Inovasi utama:
- Driver untuk GPU Intel (Iris, Crocus, dan ANV) kini mendukung akses GPU langsung dari mesin virtual menggunakan konteks asli di VirtIO-GPU. Konteks asli meningkatkan kinerja saat bekerja dengan GPU virtual (virtio-gpu-gl) di sistem tamu dengan mengirimkan perintah langsung ke GPU host yang sebenarnya.
- Dukungan OpenGL ES 2.0 telah ditambahkan untuk GPU PowerVR melalui driver Zink, memungkinkan akselerasi perangkat keras OpenGL pada perangkat yang mendukung API Vulkan.
- Driver OpenCL rusticl sekarang membutuhkan stdlib C++ yang ditautkan secara statis agar dapat berfungsi dengan benar dengan aplikasi yang menggunakan stdlib C++ asli.
- Driver radeonsi (AMD) telah menambahkan dukungan untuk ekstensi OpenGL GL_NV_timeline_semaphore.
- Driver panfrost (ARM Mali) sekarang mendukung ekstensi OpenGL GL_EXT_shader_image_load_store.
- Driver v3d (Broadcom VideoCore) sekarang mendukung ekstensi OpenGL GL_ARB_sample_shading.
- Dukungan tambahan untuk ekstensi Vulkan:
- Kontrol penjadwalan VK_ARM untuk panvk
- VK_EXT_acquire_drm_display untuk panvk
- VK_EXT_astc_decode_mode untuk panvk
- VK_EXT_attachment_feedback_loop_dynamic_state untuk panvk
- VK_EXT_attachment_feedback_loop_layout untuk panvk
- VK_EXT_blend_operation_advanced untuk lavapipe
- VK_EXT_color_write_enable untuk panvk
- VK_EXT_conditional_rendering untuk panvk
- VK_EXT_depth_clamp_control untuk panvk
- VK_EXT_descriptor_heap untuk RADV (saat mengatur 'export RADV_EXPERIMENTAL=heap')
- VK_EXT_hdr_metadata untuk v3dv
- VK_EXT_image_drm_format_modifier untuk pvr
- VK_EXT_image_view_min_lod untuk panvk
- VK_EXT_legacy_dithering untuk panvk
- VK_EXT_map_memory_placed untuk panvk
- VK_EXT_nested_command_buffer untuk panvk
- VK_EXT_non_seamless_cube_map untuk pvr
- VK_EXT_present_timing untuk RADV, NVK, Turnip, ANV, Honeykrisp, panvk
- VK_EXT_primitive_restart_index untuk RADV
- VK_EXT_rgba10x6_formats untuk panvk
- VK_EXT_shader_atomic_float untuk panvk
- VK_EXT_shader_stencil_export untuk panvk
- VK_EXT_zero_initialize_device_memory untuk panvk
- VK_KHR_copy_memory_indirect untuk nvk, RADV/GFX8+
- Perintah alamat perangkat VK_KHR untuk RADV
- VK_{KHR,EXT}_{surface,swapchain}_maintenance1 untuk panvk
- VK_KHR_get_display_properties2 untuk panvk
- VK_KHR_get_surface_capabilities2 untuk panvk
- Antrian yang disinkronkan secara internal VK_KHR untuk RADV
- VK_KHR_maintenance4 untuk pvr
- Properti eksekusi pipeline VK_KHR untuk pvr
- VK_KHR_present_id untuk panvk, v3dv
- VK_KHR_present_tunggu panvk, v3dv
- Konversi VK_KHR_sampler_ycbcr untuk pvr
- VK_KHR_shader_integer_dot_product untuk pvr
- VK_KHR_shader_untyped_pointers untuk panvk
- VK_KHR_swapchain_mutable_format untuk panvk
- VK_QCOM_pemrosesan_gambar untuk Turnip
- VK_VALVE_mutable_descriptor_type untuk panvk
- VK_VALVE_shader_mixed_float_dot_product untuk RADV (Vega20, Navi14, RDNA2+)
- Ekstensi OpenCL yang diimplementasikan:
- cl_khr_subgroup_ballot untuk asahi, iris, llvmpipe, radeonsi dan zink
- cl_xr_subgroup_clustered_reduce untuk asahi, llvmpipe, radeonsi, dan zink
- cl_khr_subgroup_extended_types untuk asahi, iris, llvmpipe, radeonsi dan zink
- cl_khr_subgroup_non_uniform_arithmetic untuk asahi, llvmpipe, radeonsi dan zink
- cl_khr_subgroup_non_uniform_vote untuk asahi, iris, llvmpipe, radeonsi dan zink
- cl_khr_subgroup_rotate untuk asahi, llvmpipe dan zink
- Driver VirGL, yang mengimplementasikan GPU virtual untuk QEMU, sudah tidak lagi dipelihara dan akan dihapus kecuali ada yang bersedia mengambil alih pemeliharaannya.
Sumber: opennet.ru
