Release of Mesa 24.3, a free implementation of OpenGL and Vulkan

After three months of development, the release of the free implementation of the OpenGL and Vulkan APIs, Mesa 24.3.0, has been published. The first release of the Mesa 24.3.0 branch has an experimental status - after the final stabilization of the code, a stable version 24.3.1 will be released.

Mesa 24.3 adds support for the Vulkan 1.3 graphics API in the anv drivers for Intel GPUs, radv for AMD GPUs, NVK for NVIDIA GPUs, tu for Qualcomm GPUs, the lavapipe software rasterizer (lvp), emulator mode (vn), and v3dv (Broadcom VideoCore GPU for Raspberry Pi 4+). Vulkan 1.0 support is available in the dzn (Vulkan implementation on top of Direct3D 12) and panvk (ARM Mali GPU) drivers.

Mesa also provides full OpenGL 4.6 support for iris (Intel Gen 8+ GPUs), radeonsi (AMD), Crocus (older Intel Gen4-Gen7 GPUs), zink, llvmpipe, virgl (Virgil3D virtual GPU for QEMU/KVM), freedreno drivers (Qualcomm Adreno), d3d12 (a layer for organizing OpenGL work on top of DirectX 12) and asahi (AGX GPU used in Apple M1 and M2 chips). OpenGL 4.5 support is available for AMD (r600) and NVIDIA (nvc0) GPUs. OpenGL 3.3 support is present in the softpipe (software rasterizer) and nv50 (NVIDIA NV50) drivers.

Main innovations:

  • The v3dv driver provides full support for the Vulkan 1.3 graphics API for the VideoCore GPUs used on the Raspberry Pi 4 and Raspberry Pi 5 boards.
  • Added a new Vulkan driver gfxstream-vk, which can be used to virtualize the Vulkan API and access this graphics API from Linux, Android, and Fuchsia-based guests. The driver is used by Google in the Android emulator, Fuchsia emulator, Android cloud services, and Android Automotive OS (AAOS).
  • The Vulkan Windowing System Integration (WSI) API now supports the Vulkan extension VK_PRESENT_MODE_FIFO_KHR for use in Wayland-based environments, which allows rendering to wait for vertical blanking (vblank) to complete instead of calling callbacks every time a new frame is ready to be displayed, which solves the problem of high GPU load when using VSync.
  • On systems with Intel Xe2 architecture GPUs, z-buffers compression is enabled by default.
  • The OpenGL driver iris and the Vulkan driver ANV have added initial support for Intel GPUs based on the Xe3 architecture, used in Panther Lake processors.
  • The NVK driver (NVIDIA) has added support for Vulkan extensions:
    • VK_EXT_descriptor_buffer
    • VK_EXT_post_depth_coverage
    • VK_EXT_legacy_vertex_attributes
    • VK_KHR_maintenance7
    • VK_KHR_dynamic_rendering_local_read
    • VK_NV_compute_shader_derivatives
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_float_controls2
    • VK_EXT_host_image_copy (for GPU Turing+)
    • VK_KHR_shader_quad_control
    • VK_KHR_fragment_shading_rate
    • VK_EXT_depth_clamp_zero_one
    • VK_EXT_device_generated_commands
  • The RADV driver (AMD) has added support for Vulkan extensions:
    • VK_KHR_video_maintenance1
    • VK_KHR_pipeline_binary
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_float_controls2
    • VK_EXT_device_generated_commands
    • VK_KHR_shader_relaxed_extended_instruction
  • Vulkan extensions support added to ANV driver (Intel)
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_relaxed_extended_instruction
    • VK_EXT_depth_clamp_control
  • The hasvk driver (Intel Ivy Bridge, Haswell and Broadwell) has added support for Vulkan extensions:
    • VK_EXT_depth_clamp_control
    • VK_KHR_shader_relaxed_extended_instruction
  • Added support for the Vulkan extension VK_KHR_shader_relaxed_extended_instruction to the hk, tu, v3dv and lvp drivers.
  • Added support for new OpenGL extensions:
    • GL_KHR_shader_subgroup in radeonsi driver
    • GL_OVR_multiview in zink driver
    • GL_OVR_multiview2 in zink driver
    • GL_ARB_draw_indirect to etnaviv/HALTI5+ driver
    • GL_EXT_draw_buffers2 in etnaviv/HALTI5+ driver
    • GL_ARB_draw_buffers_blend in etnaviv/HALTI5+ driver
    • GL_ARB_framebuffer_no_attachments in etnaviv driver
    • GL_ARB_timer_query in Panfrost driver
    • GL_EXT_disjoint_timer_query in Panfrost driver

Source: opennet.ru

Add a comment