Mesa 18.0 Features Include Many OpenGL/Vulkan Improvements, Intel Shader Cache & Extras

Written by Michael Larabel in Display Drivers on 28 January 2018 at 09:40 AM EST. Page 1 of 1. 4 Comments.

Mesa 18.0 is currently being prepared for release by mid-February and is yet another feature-packaged, quarterly update to this open-source 3D graphics driver stack with significant improvements for OpenGL and Vulkan support and performance.

Among all the work that made it into Mesa 18.0 (formerly Mesa 17.4-dev) this past three months include:

- Some renewed attention on the mature R600 Gallium3D driver including ARB_shader_clock / ARB_shader_atomic_counters / ARB_shader_image_load_store / ARB_shader_image_size / ARB_compute_shader / ARB_enhanced_layouts support, various R600g SB back-end improvements, and experimental SB tessellation support. R600 Gallium3D is now at OpenGL 4.3 support for hardware having native FP64 capabilities (HD 5800 / HD 6900 series) and nearly to OpenGL 4.4.

- RadeonSI's NIR back-end now supports GLSL 4.50. There's been a lot of work on the NIR back-end by Valve and AMD. This NIR code-path is needed for eventually getting SPIR-V ingestion working in order to reach OpenGL 4.6 compliance and better code re-use between OpenGL and Vulkan. In the future, RadeonSI may default to NIR as its preferred intermediate representation, but a lot of work is still needed before it's at parity to the TGSI code state. There was also Gallium3D NIR optimizations too.

- ARB_get_program_binary for Gallium3D now allowing Dead Island and other select software to play nicely with this extension for obtaining a compiled/IR representation of shaders.

- New RADV Vulkan driver support including VK_EXT_debug_report, VK_EXT_discard_rectangles, external fences, and ETC2 texture support. On the performance side RADV now enables sisched for Talos Principle.

- The Intel ANV Vulkan driver meanwhile picked up support for 16-bit storage and variable pointers. Also there is PRIME support for ANV Vulkan now.

- The Intel OpenGL driver now supports the disjoint timer query extension for accurate timing information.

- The Intel OpenGL driver notably also landed its on-disk shader cache support is finally all buttoned up and ready to go but disabled by default. To use the Intel GLSL on-disk cache you need to run with the MESA_GLSL_CACHE_DISABLE=0 environment variable.

- KHR_no_error support is considered done as one of the work items for OpenGL 4.6 albeit it's been in good shape for months.

- There was also a lot of common Vulkan code improvements including windowing system integration improvements, external memory DMA-BUF support, and more.

- Nouveau NVC0 now has ARB_bindless_texture support. This is one of the OpenGL AZDO extensions and also required by the Dawn of War III OpenGL Linux game port.

- Various OpenSWR software rasterizer improvements including SIMD16 support and more. OpenSWR is Intel's alternative to LLVMpipe.

- 10-bit color support was plumbed into Mesa.

- The Freedreno Gallium3D driver for Qualcomm Adreno graphics hardware now has context priority support. Freedreno also picked up support for more OpenGL extensions.

- Meanwhile on the ARM Gallium3D side, Etnaviv has OpenGL 2.1 support in this release. Etnaviv is getting more attention with this slated to be the driver for use in the upcoming Purism Librem 5 smartphone.

- Radeon VCN encode infrastructure landed too this cycle for Raven Ridge although the H.265/HEVC encode support didn't land in time.

Notably absent from Mesa 18.0 is no OpenGL 4.6 support but a majority of the work is in place for Intel i965 and RadeonSI. The Intel/Radeon drivers just need to finish up ARB_gl_spirv and the related ARB_spirv_extensions for SPIR-V ingestion with the OpenGL drivers. There are patches available for that work by both parties but nothing merged yet. Hopefully it will be ironed out by Mesa 18.1. Also on the possible roadmap for Mesa 18.1 is R600g hitting OpenGL 4.5 support and potentially the "soft" FP64 support for allowing more R600g hardware to get onto OpenGL 4.x compliance.

Stay tuned for more Mesa 18.0 comparison benchmarks shortly on Phoronix. Look for the Mesa 18.0.0 release to come around mid-February while until then are weekly release candidates.

If you enjoyed this article consider joining Phoronix Premium to view this site ad-free, multi-page articles on a single page, and other benefits. PayPal or Stripe tips are also graciously accepted. Thanks for your support.


Related Articles
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.