Mesa 20.2.0 Is Released
There is a lot to of new features in the latest Linux graphics stack. Mesa 20.2 offers Vulkan 1.2 support, OpenGL 4.5 support for llvmpipe, faster NIR performance and the ACO shader compiler for Vulkan on AMD hardware is now the default shader compiler for the AMD RADV Vulkan driver.
written by 윤채경 (Yoon Chae-kyung). published 2020-09-29 - last edited 2020-09-29
Mesa 20.2.0 brings a lot to the table. For one, there's a whole lot of new OpenGL and Vulkan extensions. That is specially true when it comes to the llvmpipe OpenGL graphics driver.
Nothing in the Mesa 20.2 code-base indicates what ray-tracing plans Intel "may or may not have" for their dedicated GPUs currently being mass-produced at TSMC in Chinese Taipei on their 6nm node.
llvmpipe is a special graphics driver for doing OpenGL rendering on the CPU rather than a GPU. Dave Airlie, from the Red Hat graphics team, has done a lot of hard work on the Mesa llvmpipe graphics driver during this Mesa release-cycle. llvmpipe now supports OpenGL 4.5 and GLES 3.2 which means that you can play most OpenGL games using this driver if you happen to have a extremely powerful CPU. The nearly two hundred commits by Dave Airlie were only enough to make team Red Hat the fifth largest Mesa 20.2 contributor thanks to a overall lower score from the other team Red Hat players.
There were a lot of Vulkan improvements in Mesa 20.2. Vulkan 1.2 is now supported by Mesa but actual support varies from driver to drier. The AMD RADV driver says it supports apiVersion 1.2.131 and the Intel ANV drivers says it supports apiVersion 1.2.145.
The ACO shader compiler is the default for AMD graphics cards rendering with Vulkan using the RADV driver as of Mesa 20.2. You should watch the video How the ACO Mesa Vulkan Shader Compiler For AMD GPUs Came To Be: From Prototype To Default with developer Timor Kristóf, recorded at the The X.Org Developers Conference 2020, if you want to know more about ACO. The ACO shader compiler was developed by the Valve corporation who, overall, came in with commit score placing them at third place in this Mesa release.
|ANV (Intel Vulkan)||
|RADV (AMD Vulkan)||
AMD developer Marek Olšák contributed some very cool optimizations to the NIR intermediate representation optimizing compiler that sits in the middle between shaders written in high-level shader languages and the low-level assembly code that run on GPUs. One of them did not make it into Mesa 20.2:
"I have written a simple NIR pass that looks at conditions in ifs and if they only contain uniforms, those uniforms are marked for in-lining at draw time"
The Open Source consulting firm Collabora was the by-far largest contributor to Mesa 20.2 thanks to a very impressive team effort lead by Alyssa Rosenzweig who made a very long list of commits to the Panfrost driver for ARM (soon Nvidia) Mali Midgard and Bifrost GPUs.
Team Google won second place thanks to a lot of code contributions by Rob Clark, Eric Anholt and Bas Nieuwenhuizen.
|Red Hat (IBM)||325||#5|
Intel, who put many improvements to their ANV Vulkan driver for Intel graphics chips in Mesa 20.2, came in at fourth place, ahead of AMD by nearly 200 code commits.
|Valve (and France)||Samuel Pitoiset||235|
|Red Hat Graphics||Dave Airlie||199|
|Intel graphics||Jason Ekstrand||167|
|Datapred (Intel team at time of contributions)||Eric Engestrom||146|
|Collabora / Norway||Erik Faye-Lund||124|
|Intel graphics team||Lionel Landwerlin||60|
|Red Hat Graphics||Karol Herbst||50|
|Intel graphics||Dylan Baker||41|
|Red Hat Graphics||Ben Skeggs||38|
|Red Hat||Michel Dänzer||38|
|Intel graphics team||Caio Marcelo de Oliveira Filho||32|
|Chaos Computing||Christian Gmeiner||31|
|Mesa contributors with less than 30 commits|
Some features in Mesa git master did not make it into Mesa 20.2. There is, for example, support for on-disk shader cache functionality in the Nouveau NVC0 Gallium3D driver in Mesa master. This functionality won't become commonly available until Mesa 20.3.
The Mesa graphics library website is at mesa3d.org and the source code repository is at gitlab.freedesktop.org/mesa/mesa. You can compile it yourself, but you are likely better off waiting until your favorite GNU/Linux distribution makes it available to you in their regular repositories. Most non-LTS distributions will have it available within a week or two.