Friday , October 22 2021

Table 19.1 Released: New 3D Video Drivers for Linux for ARM and Intel


Linux distributions will use a different 3D driver for Intel chips in the medium term. Den introduces the Table and also brings drivers to the popular ARM Mali GPUs. The volcanic driver for AMD's Radeon now supports freesync.

The Mesa project has released version 19.1 of its graphic library. Its 3D drivers are standard on all popular Linux distributions for PCs. New desktop versions therefore have a major impact on the hardware and usability support of Debian, Fedora, Ubuntu, and so on. The 19.1 version now available comes with the new Intel Iris OpenGL driver; It is considered experimental for now, but in the long run it should become the standard driver for the modern Intel GPus.

Of great importance are also the two new drivers for ARM's Mali GPUs because they will help Linux distributions in the medium term, many single board computers and the better Chromebook. The Radeon Radv driver can now dynamically adjust the screen refresh rate using the Variable Refresh Rate (VRR), which contributes to a smooth 3D display. There were also all kinds of fine tuning to improve 3D performance.

In the medium term, the new OpenGL Iris driver will inherit the i965 driver, which supports almost every graphics core that Intel has integrated into motherboard chipsets or processors over the last decade. However, Iris only addresses GPUs in processors since the Broadwell generation introduced in 2015 and therefore supports all Core i 5000 and newer Core i processors. It also requires at least the Linux 4.16 kernel.

The newly developed iris prevents ballast, which has accumulated in the i965 driver. But it's also leaner, because unlike i965, it's based on Gallium3D: a Mesa-based graphics driver programming framework that uses all of the currently relevant OpenGL drivers from the Mesa; such as those for the Raspberry Pi VC4 graphics or the drivers for the modern Radeon and GeForce GPUs from AMD and Nvidia.

Above all, Iris should improve performance and at the same time reduce the load on the main processor. According to the measurements of the responsible developer of Intel, Kenneth Graunke, the driver already performs better in individual benchmarks and, in some cases, it weighs less in the CPU. Iris must master all the essential functions, but it is still considered experimental. Before it can become the default driver, there are still practical tests, bug fixes and fine tuning. This work is now easier, because you no longer need to patch the Iris patch, but only activate explicitly when translating the Table. To use it, you need to set an environment variable – for example, specifying it when calling a program or exporting it to its shell and starting its program there.


Further details on Iris's motivation, characteristics and developmental status are presented in a Merge Request, in which Graunke requested the inclusion of Iris. When distributions will be sent, the OpenGL driver remains to be seen. The same applies to the issue of when developers decide to promote Iris to the standard OpenGL driver for modern Intel GPUs.


Mesa now brings the OpenGL drivers Lima and Panfrost. They take advantage of the 3D acceleration of most ARM-developed Mali GPUs used by a variety of system-on-a-chip (SoC) builders on Android, Chromebooks, embedded systems or single board computers. / SBCs). However, the two drivers require drivers of the same name in the Direct Rendering Manager (DRM) of the kernel, which will bring Linux 5.2 expected to mid-July.

The dual kernel drivers Lima and the OpenGL Lima driver support the "Utgard" GPUs of the mail 400 series. The Panfrost duo, on the other hand, is designed for the new generations Mali "Midgard" and "Bifrost" navigating under the names of Mali models T6xx, T7xx, T8xx and G3x, G5x, G7x respectively – most recently, most recently with the ARM Cortex-A77 and the Mali-G77 introduced Mali's generation "Valhall" currently does not support Panfrost.

Driver for zig to a chip

The kernel drivers Lima and Panfrost are only responsible for 3D acceleration using desktop drivers of the same name via DRM rendering nodes. Drivers have nothing to do with monitor control because the display engine, 3D drives, and video accelerators are not part of a powerful graphics chip design in SoCs, as is the case with PCs; Instead, these three functions are handled by separate components, which SoC manufacturers purchase and combine as IP cores from one or more companies.

In addition to Lima or Panfrost, therefore, another kernel driver is required for the display engine, which directs the screen and often composes the different IP cores again. These kernel-based mode (KMS) configuration drivers are available for most SoCs with Mali GPUs and are also usually open source software. For video accelerators, similar to 3D, the drivers themselves are needed in the kernel and user space.

ARM did not participate in the development of the new drivers, although the company itself provides adequate Linux support for its hardware projects in other areas. The two new drivers were therefore extensively developed using reverse engineering, with developers analyzing the behavior of the hardware and other partially proprietary drivers. The two drivers are therefore only a part of the functions that the hardware offers. In addition, drivers do not support all graphics cores in the above series; Panfrost, for example, has only been tested on the Midgard T760 and T860 GPUs. So there are probably still some problems and pitfalls with the OpenGL drivers. The inclusion of drivers in the Linux and Desktop kernels has, according to experience, signal effects, through which more testers and developers are running – this can improve the quality of the driver and the amount of hardware.

ARM is already watching development closely and is apparently considering getting involved with the kernel drivers at least. Apparently, there are also ARM developers who are pushing the company in-house to get more involved; This can be seen from 23:23 to 28:44 of a video from a recent Linaro conference, where respected Linux developer and Grant Grant of ARM makes some suggestions.

The Radeonsi OpenGL driver for modern AMD GPUs uses the Freesync or Variant Refresh Rate (VRR) technique since Mesa 19.0, which dynamically adjusts the refresh rate of a monitor to match the output of the graphics card; this contributes to fluid 3D visualization and helps prevent glare and delays. With version 19.1, the AMD GPU driver now dominates this technique. Both drivers require Linux 5.0 or newer, since since the kernel version the DRM driver Amdgpu can access Radeonsi and Radv.

AMD developers have also made some optimizations of performance and adapted support for Delta Color Compression (DCC) on Raven GPUs. For some applications, such as Civilization 6, Radeonsi now uses the most modern and NIR abbreviated "New IR (internal representation)" when compiling the shaders. It brings some advantages to modern applications, so the i965 driver and a few others already use NIR by default. Previously, the use of the NIR in Radeonsi had to be explicitly requested through an environment variable, because fine tuning and field testing are still required before a complete change to the NIR. The latter are facilitated by the changes made now because they can be accessed through the configuration file driconfig now, globally and statically, determine which Internal Representation (IR) the shader compiler uses.

The i965 OpenGL driver has been enhanced to improve support for Intel's next-generation GPU (Gen11), which debuted recently with the first Ice-Lake processors. In addition, the i965 driver now supports generations of Comet Lake (Gen9) and Elkhart Lake (Gen11) processors in which Intel operates. Kernel-side support for all these GPUs will come with Linux 5.2.

Intel's Volcano driver Anvil can now show the current frame rate and some other information in a small semi-transparent area, which is displayed in one corner of the screen. Other drivers of volcanoes must assume this function. Many 3D-based gallium-based Desktop OpenGL drivers have long supported a heads-up display (HUD).

For gallium-based drivers, there are no longer two frames between the input of the character request in the driver ("Draw") and the output of the image ("Present"), but only one more – in the image calculation with 60 frames per second (FPS), the user sees the image 16.6 milliseconds before. This is thanks to an AMD employee who optimized the rendering path in the Gallium code.

In addition, there were all sorts of performance optimizations in the Virgl driver, on it a Linux on a virtual machine can use 3D acceleration of the Linux host; The technology is used, among others, by Gnome Boxes and Linux support in ChomeOS.

New is the Turnip volcano driver, which supports modern graphics cores Qualcomm Adreno series; The Desktop has been bringing an OpenGL driver to these graphics cores for a long time.

A Broadcom developer gave the V3D driver all sorts of fine-tuning; It is responsible for the VC5 and VC6 graphics cores that inherit the VC4 used in Raspberry Pi.

The announcement e-mail and release notes mention many other new features in Mesa 19.1. Among other things, there are some OpenGL extensions or Vulcan calls, which are now supported; especially the AMD and Intel drivers have learned more. However, OpenGL 4.6 still does not implement any; but some patch series on mailing lists show that support for the latest OpenGL level is slowly approaching. As always, many developers have made several detailed enhancements to eliminate misrepresentation in games and increase 3D performance.

As a new grand launch, the new Mesa is, as always, a "development launch." According to the developers, users aware of stability should stay with version 19.0 for now and wait for 19.1.1, which should appear in a few weeks; Experience has shown that individual distributions integrate the new Mesa before. Meanwhile, developers have already started working on Table 19.2, which will be released in two or three months.


What distribution of the new Bureau

Release distributions such as Arch Linux or openSUSE Tumbleweed should receive the new Table along with its enhanced OpenGL, volcano and video drivers in the coming days and weeks through regular system update. Fedora and some other distributions usually get a little after the upgrade, just before the end of the support of the previous Mesa launch line.

Ultimately, the new table in these distributions will visibly improve 3D performance, gaming compatibility, video acceleration, and hardware support.

Debian GNU / Linux, Linux Mint, OpenSuse Leap, Ubuntu, and many other conservatively maintained distributions generally do not receive new versions of the Desktop through updates. So it's going to take longer than expected in the fall of Ubuntu 19.10, for example, Canonicals Distribution users benefit from the new desktop enhancements. The Table there (presumably the 19.2 version now prepared) goes along with new versions of Linux, Libdrm, Wayland Biliotheken and X-server and a few months after the Hardware Enablement Stack (HWE) for users of Ubuntu 18.04 and is in February 2020 , then default with Ubuntu 18.04.4. Because Linux Mint developers do not plan a release, which is based on this Minor version of Ubuntu, Linux Mint users should receive enhancements from the new desktop only in the summer of 2020 with Linux Mint 20.

For some distributions, the new table can be adapted through backports repositories, which by default are inactive because they have different service policies; For example, security fixes are generally not guaranteed, even if they are generally available in a timely manner.

Often, however, new versions of the Table can be obtained from fans or developers who publicly maintain packages with repositories to facilitate the adaptation of newer versions of the Table. Users should be aware that they are using these repositories to exchange one or more building blocks on the basis of their distribution. Anyone who takes advantage of these offers should therefore rely on the repository providers in a manner similar to their distributor because these deposit installments can be easily used to enter backdoors. After incorporating such repositories, it is also the responsibility of the creators of these repositories to provide the packages exchanged with security patches from now on. Enabling these repositories can also cause dependency problems in later updates to the distribution. As the centralized software is changed, these packages can easily lead to instabilities or a system that may not be working.

Importance of Table Drivers for PC GPUs

The included OpenGL and Vulkan drivers on the Desktop are the best and only relevant Linux 3D drivers for the graphics cores of the current Intel processors. 3D Table and video drivers are almost always the best and fastest for AMD Radeon GPUs. That's why the company even uses derived drivers in its own Linux driver package. However, this is especially aimed at corporate clients seeking certifications; therefore, the driver collection does not work on all distributions, but only a handful that attracts enterprise customers.

The AMD and Intel desktop drivers primarily target the developers of their respective companies, as well as the Radv driver, from the Radeon volcano. Nvidia, on the other hand, is hardly involved in developing the desktop driver for Nvidia's GPUs. That's one reason Mesa is badly enduring GeForce GPUs and providing only a fraction of the performance potential of Nvidia's proprietary Linux drivers.

An additional background for this rough classification describes the free-access "graphic hardware for Linux users" article; a follow-up article with the same name in ct 23/2018, p. 124 clarifies some more recent aspects.

Incidentally, desktop drivers do not decide alone on 3D performance and hardware support, after all, they are just part of a united family of drivers. Other members determine 3D performance and hardware support – especially the graphics drivers used in the Linux kernel, because all other drivers in a family of drivers communicate with graphics hardware – that is, those using techniques such as OpenGL, Vulkan, Video -Decoding, video encoding or OpenCL are responsible. Details on the interaction of these various drivers provide the one published in the fall of 2014 and the free update article "The Linux graphics driver architecture."

The main reason for the poor 3D performance of the Nouveau OpenGL Table driver, therefore, is not the driver itself, but the underlying driver and also called Nouveau in the Linux kernel. The driver's deficits are mainly due to a restrictive information policy by Nvidia and the inadequate firmware the company provides to the open source world.

Source link