The long-delayed major update to the Linux graphics stack has parallel shader compiling for all drivers and many new GL extensions for AMD and Intel GPUs. There is also a whole lot of new Vulkan features added, many of which are specific to AMD GPUs. The two blocker-bugs which cased this release to be delayed are finally resolved.

It's easy to forget how important the Mesa graphics stack is; it just works in the background. There would be no SuperTuxKart , no fancy window manager effects, no 3D, no nothing without it. It is a vital part of modern Linux-based operating systems.

There's also conservative rasterization for those who want to experiment with the new Intel Iris graphics driver which will eventually replace the currently-used i965 driver.

More than 3700 commits from 158 different developers went into this major Mesa update.

The highlights [ edit ]

GL_ARB_parallel_shader_compile for all drivers.

GL_EXT_gpu_shader4 on all GL 3.1 drivers.

GL_EXT_shader_image_load_formatted on radeonsi.

GL_EXT_texture_buffer_object on all GL 3.1 drivers.

GL_EXT_texture_compression_s3tc_srgb on Gallium and i965 drivers (ES extension).

GL_NV_compute_shader_derivatives on Iris and i965 drivers.

GL_KHR_parallel_shader_compile on all drivers.

GL_INTEL_conservative_rasterization on Iris.

The New Vulkan Features [ edit ]

VK_EXT_buffer_device_address

VK_EXT_depth_clip_enable

VK_KHR_ycbcr_image_arrays

VK_EXT_inline_uniform_block

VK_EXT_external_memory_host

VK_EXT_host_query_reset

VK_KHR_surface_protected_capabilities

VK_EXT_pipeline_creation_feedback

VK_NV_compute_shader_derivatives

VK_KHR_shader_float16_int8

VK_KHR_shader_atomic_int64

VK_EXT_descriptor_indexing

VK_EXT_memory_budget

The New AMD GPU-specific Vulkan Features [ edit ]

VK_EXT_buffer_device_address

VK_EXT_depth_clip_enable

VK_EXT_inline_uniform_block

VK_EXT_host_query_reset

VK_KHR_surface_protected_capabilities

VK_EXT_pipeline_creation_feedback

VK_KHR_8bit_storage

VK_AMD_gpu_shader_int16

VK_AMD_gpu_shader_half_float

VK_KHR_shader_float16_int8

The changes since the release of 19.1.0 RC5 are as follows:

radv: Prevent out of bound shift on 32-bit builds.

svga: Remove unnecessary check for the pre flush bit for setting vertex buffers

winsys/drm: Fix out of scope variable usage

winsys/svga/drm: Fix 32-bit RPCI send message

egl/dri: flesh out and use dri2_create_drawable()

mapi: add static_date offset to MaxShaderCompilerThreadsKHR

mapi: correctly handle the full offset table

util/os_file: actually return the error read() gave us

nir/propagate_invariant: Don't add NULL vars to the hash table

Update version to 19.1.0

docs: Add release notes for 19.1.0

egl/x11: calloc dri2_surf so it's properly zeroed

intel/perf: fix EuThreadsCount value in performance equations

intel/perf: improve dynamic loading config detection

anv/cmd_buffer: Initalize the clear color struct for CNL+

anv: Fix check for isl_fmt in assert

freedreno/a6xx: fix issues with gallium HUD

freedreno/a6xx: fix hangs with newer sqe fw

radv: fix alpha-to-coverage when there is unused color attachments

radv: fix setting CB_SHADER_MASK for dual source blending

The new features are not the whole story. There's also many smaller optimizations which should give you more frames per second in fun free games like SuperTuxKart.

There will be one last release of the 19.0.x series, 19.0.7 was not meant to be but will be released due to the delayed release of 19.1.0. Then it's over and 19.0 is done for and distributions will be forced to upgrade to Mesa 19.1.0 and let you and your family have access to this fancy new graphics technology. Expect most distributions to let you have these new graphics features sometime this summer. Some will of course let you have it sooner than others, Manjaro Linux users will probably have Mesa 19.1.0 this week while Debian users may not get it for years.

The Bright Future for 3D Games and Applications on Linux [ edit ]

Mesa 19.2.0 RC1 is scheduled for August 6th and with a final release at the end of August. A complete timeline is available at https://www.mesa3d.org/release-calendar.html

Quick last tip for Fedora 30 users [ edit ]

There is a copr backport of Mesa 19.1 with packages for both Fedrao 29 and Fedora 30.

published 2019-06-11 - last edited 2019-06-26