How to install Mesa 19.3 in Ubuntu Linux. Mesa is an open-source implementation of the OpenGL specification. OpenGL is a programming library for writing interactive 3D applications.
The Mesa project began as an open-source implementation of the OpenGL specification – a system for rendering interactive 3D graphics.
Over the years the project has grown to implement more graphics APIs, including OpenGL ES (versions 1, 2, 3), OpenCL, OpenMAX, VDPAU, VA API, XvMC and Vulkan.
A variety of device drivers allows the Mesa libraries to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs.
Mesa ties into several other open-source projects: the Direct Rendering Infrastructure and X.org to provide OpenGL support on Linux, FreeBSD and other operating systems.
Hardware-accelerated OpenGL implementations are available for most popular operating systems today. Still, Mesa serves at least these purposes:
- Mesa is used as the core of the open-source X.org DRI hardware drivers.
- Mesa is quite portable and allows OpenGL to be used on systems that have no other OpenGL solution.
- Software rendering with Mesa serves as a reference for validating the hardware drivers.
- A software implementation of OpenGL is useful for experimentation, such as testing new rendering techniques.
- Mesa can render images with deep color channels: 16-bit integer and 32-bit floating point color channels are supported. This capability is only now appearing in hardware.
- Mesa’s internal limits (max lights, clip planes, texture size, etc) can be changed for special needs (hardware limits are hard to overcome).
Mesa 19.3.0
Mesa 19.3.0 implements the OpenGL 4.6 API, but the version reported by glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. Some drivers don’t support all the features required in OpenGL 4.6. OpenGL 4.6 is only available if requested at context creation. Compatibility contexts may report a lower version depending on each driver.
Mesa 19.3.0 implements the Vulkan 1.1 API, but the version reported by the apiVersion property of the VkPhysicalDeviceProperties struct depends on the particular driver being used.
New features
- GL_ARB_gl_spirv on i965, iris.
- GL_ARB_spirv_extensions on i965, iris.
- GL_EXT_demote_to_helper_invocation on iris, i965.
- OpenGL 4.6 on i965, iris.
- EGL_EXT_image_flush_external
- VK_ANDROID_external_memory_android_hardware_buffer on RADV.
- VK_KHR_shader_clock on Intel, RADV.
- VK_KHR_shader_float_controls on Intel, RADV.
- VK_KHR_spirv_1_4 on Intel, RADV.
- VK_KHR_timeline_semaphore on RADV.
- VK_KHR_vulkan_memory_model on Intel.
- VK_EXT_shader_subgroup_ballot on Intel.
- VK_EXT_shader_subgroup_vote on Intel.
- VK_EXT_texel_buffer_alignment on RADV.
- VK_INTEL_performance_query on Intel.
- Meson support for windows using MSVC and MinGW
- scons has been deprecated for non windows
- Initial Intel gen12 (Tigerlake) support on anvil and iris
- New compiler backend “ACO” for RADV (RADV_PERFTEST=aco)
- VK_EXT_shader_demote_to_helper_invocation on RADV/ACO.
Bug fixes
- [RADV] The Dead Rising 4 is causing a GPU hang with LLVM backend
- radeonsi: mpv –vo=vaapi incorrect rendering on gfx9+
- NULL resource when playing VP9 video through VDPAU on RX 570
- gnome-shell overview mode crash in recent mesa
- radv/aco Jedi Fallen Order hair rendering buggy
- [RADV] VK_KHR_timeline_semaphore balloons in runtime
- Shadow of Mordor has randomly dancing black shadows on Talion’s face
- ld.lld: error: duplicate symbol (mesa-19.3.0-rc1)
- triangle strip clipping with GL_FIRST_VERTEX_CONVENTION causes wrong vertex’s attribute to be broadcasted for flat interpolation
- [bisected][regression][g45,g965,ilk] piglit arb_fragment_program kil failures
- textureSize(samplerExternalOES, int) missing in desktop mesa 19.1.7 implementation
- HSW. Tropico 6 and SuperTuxKart have shadows flickering
- glxgears segfaults on POWER / Xvnc
- Objects leaving trails in Firefox with antialias and preserveDrawingBuffer in three.js WebGLRednerer with mesa 19.2
- radv regression after 84d9551b232bdcead017b212cbb3e291486e698c: vk: error: failed to submit CS
- Rename ACO README to README.md
- Steam crash due to commit e137b3a9b71a2711c1f68c8a8b9c0a7407fbcc4b (bisected)
- [Anv regression] SPIR-V abort in Aztec Ruins
- FreeBSD does not have _GNU_SOURCE in util/strtod.c
- glLinkProgram crash when using gcc-9 -O3 -flto due to use of uninitialised value
- KeyError: ‘force_scons’:
- link_shader and deserialize_glsl_program suddenly consume huge amount of RAM
- build errors after “meson: add -Werror=empty-body to disallow `if(x);`”
- performance regression in Heroes of the Storm with Mesa 19.1.1 & Polaris
- Vulkan version of “Middle-earth: Shadow of Mordor” has graphics glitches on RADV driver (part 2)
- swr/rasterizer/core/format_types.h:1183: undefined reference to `_mm256_cvtps_ph’
- Meson: Building osmesa gallium and tests at the same time results in osmesa gallium build failure
- Vulkan version of “Middle-earth: Shadow of Mordor” has graphics glitches on RADV driver
- [amdgpu][Navi][llvm] Minimap problem in Nier Automata
- [bisected] anon_inode:sync_file file descriptor leak
- Cache meson packagecach in appveyor
- Piglit tests regression in gallium drivers
- Black ground in Dirt 4
- Superbibles examples crashing Mesa drivers (radeonsi) and causing gpu reset
- [CTS] dEQP-VK.graphicsfuzz.write-red-in-loop-nest crashes
- mesa and libglvnd install the same headers
- Multiple EGL displays with multiple window systems leads to a crash
- Regression: Doom (2016) crashes on Mesa 19.2 and above and Radeon 380 with Vulkan (worked on Mesa 19.1)
- Rocket League displays corruption when the game starts
- drm.h:50:9: error: unknown type name ‘uint8_t’
- Mesa build breaks when only building radeonsi due to missing llvm coroutines symbols
- radeonsi aborting in LLVM validation test in si_compile_tgsi_shader()
- meson.build:1447:6: ERROR: Problem encountered: libdrm required for gallium video statetrackers when using x11
- Mesa doesn’t build with current Scons version (3.1.0)
- libXvMC-1.0.12 breaks mesa build
- Meson can’t find 32-bit libXvMCW in non-standard path
- Mesa installs gl.pc and egl.pc even with libglvnd >= 1.2.0
Install Mesa 19.3 in Ubuntu
sudo apt-get update
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt-get dist-upgrade
sudo apt-get update
Once installed, check the version of Mesa in Ubuntu System:glxinfo | grep "OpenGL version"
Note that Mesa 19.3.0 is a new development release. People who are concerned with stability and reliability should stick with a previous release or wait for Mesa 19.3.1.