Differences between revisions 3 and 4
Revision 3 as of 2020-06-16 05:39:08
Size: 5299
Comment: Document the experimental Bifrost support and how to manually enable it
Revision 4 as of 2020-06-16 05:56:31
Size: 5334
Comment: use semantic newlines, to easier edit and to easier parse emailed diffs
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
Panfrost and Lima are only included in Debian 11 and newer, which is currently unreleased. All information here is tentative, and is subject to change as Debian 11 is developed.  Panfrost and Lima are only included in Debian 11 and newer, which is currently unreleased.
All information here is tentative, and is subject to change as Debian 11 is developed.
Line 9: Line 10:
Detailed information on Mali GPUs, and instructions on installing the proprietary drivers, can be found on the MaliGraphics page. This page is dedicated to documenting the new open-source Panfrost and Lima drivers introduced in Debian 11, including any tweaks and issue workarounds. Detailed information on Mali GPUs,
and instructions on installing the proprietary drivers,
can be found on the MaliGraphics page.
This page is dedicated to documenting the new open-source Panfrost and Lima drivers introduced in Debian 11,
including any tweaks and issue workarounds.
Line 11: Line 16:
The free and open-source Panfrost and Lima drivers for Mali GPUs are part of Mesa and are fully free software. Compared to the proprietary drivers, they have much better stability and software compatibility and are recommended for the average user. The free and open-source Panfrost and Lima drivers for Mali GPUs are part of Mesa and are fully free software.
Compared to the proprietary drivers, they have much better stability and software compatibility
and are recommended for the average user.
Line 13: Line 20:
The Lima driver provides support for the older "Utgard" Mali GPUs, while Panfrost provides support for the newer Midgard and Bifrost GPUs. Valhall support is pending. The Lima driver provides support for the older "Utgard" Mali GPUs,
while Panfrost provides support for the newer Midgard and Bifrost GPUs.
Valhall support is pending.
Line 17: Line 26:
Debian 11 comes with Mesa 20.1 which supports the Mali 400 and 450 GPUs via the Lima driver, and Mali Gxx/T6xx/T7xx/T8xx GPUs via the Panfrost driver. This will cover most modern ARM !SoCs, including those found in the Pinebook and Pinebook Pro devices. Mali Gxx devices (also known as "Bifrost" chips) are supported experimentally and require an extra environment variable to be set before they'll use the Panfrost driver, as documented in the Configuration section below. Debian 11 comes with Mesa 20.1 which supports the Mali 400 and 450 GPUs via the Lima driver,
and Mali Gxx/T6xx/T7xx/T8xx GPUs via the Panfrost driver.
This will cover most modern ARM !SoCs, including those found in the Pinebook and Pinebook Pro devices.
Mali Gxx devices (also known as "Bifrost" chips) are supported experimentally
and require an extra environment variable to be set before they'll use the Panfrost driver,
as documented in the Configuration section below.
Line 19: Line 33:
In terms of specifically supported !SoCs, anything using an RK3288, RK3399, S912, Exynos 7580, MT6735, or MT6753 chip should certainly work without any issues. But as long as your GPU isn't too particularly new or old (Midgard and Bifrost being the most comprehensively supported revisions), you should expect it to function. In terms of specifically supported !SoCs,
anything using an RK3288, RK3399, S912, Exynos 7580, MT6735, or MT6753 chip should certainly work without any issues.
But as long as your GPU isn't too particularly new or old
(Midgard and Bifrost being the most comprehensively supported revisions),
you should expect it to function.
Line 22: Line 40:
Most of the hardware in question theoretically supports OpenGL ES 3.0, Vulkan 1.1, and OpenGL 4.6. In reality, the drivers have mainly targeted and optimized for OpenGL 2.1 and OpenGL ES 2.0 so far. Most of the hardware in question theoretically supports OpenGL ES 3.0, Vulkan 1.1, and OpenGL 4.6.
In reality, the drivers have mainly targeted and optimized for OpenGL 2.1 and OpenGL ES 2.0 so far.
Line 24: Line 43:
OpenGL ES 3.0 is experimentally available but may have worse performance than OpenGL ES 2.0 and may not support the full specification, leading to strange rendering issues in applications expecting certain features to be available. See the "Configuration" section below for instructions on how to use it. OpenGL ES 3.0 is experimentally available
but may have worse performance than OpenGL ES 2.0 and may not support the full specification,
leading to strange rendering issues in applications expecting certain features to be available.
See the "Configuration" section below for instructions on how to use it.
Line 27: Line 49:
Between the Panfrost/Lima driver and the binary drivers also packaged in Debian, the Panfrost/Lima driver is almost always recommended. However, incomplete support for OpenGL ES 3.0 and nonexistent support for Vulkan may be a concern for some use-cases. Some workloads may also see better performance with the binary driver, though successive Mesa versions are closing this gap and even demonstrating better performance than the binary driver in Panfrost/Lima with many workloads. Between the Panfrost/Lima driver and the binary drivers also packaged in Debian,
the Panfrost/Lima driver is almost always recommended.
However, incomplete support for OpenGL ES 3.0 and nonexistent support for Vulkan may be a concern for some use-cases.
Some workloads may also see better performance with the binary driver,
though successive Mesa versions are closing this gap
and even demonstrating better performance than the binary driver in Panfrost/Lima with many workloads.
Line 29: Line 56:
Experimentation is recommended if you're in a performance or compatibility-critical environment, however average desktop users should stick with the Panfrost/Lima drivers to see the best stability. Experimentation is recommended if you're in a performance or compatibility-critical environment,
however average desktop users should stick with the Panfrost/Lima drivers to see the best stability.
Line 32: Line 60:
Both the Panfrost and Lima drivers are included in Mesa and should work out-of-the-box after installing the relevant packages (which are, in practice, DebianPkg:libglx-mesa0 and DebianPkg:libgl1-mesa-dri). Both the Panfrost and Lima drivers are included in Mesa
and should work out-of-the-box after installing the relevant packages
(which are, in practice, DebianPkg:libglx-mesa0 and DebianPkg:libgl1-mesa-dri).
Line 34: Line 64:
For OpenCL support, you'll need to also install the DebianPkg:mesa-opencl-icd package. Install the DebianPkg:mesa-va-drivers and DebianPkg:mesa-vdpau-drivers packages for hardware video acceleration. For OpenCL support, you'll need to also install the DebianPkg:mesa-opencl-icd package.
Install the DebianPkg:mesa-va-drivers and DebianPkg:mesa-vdpau-drivers packages for hardware video acceleration.
Line 38: Line 69:
Support for GPUs from the Bifrost series, often the Mali-Gxx chips, is still in-development and requires some extra effort to enable. All major features should be there, and a typical GNOME or KDE Plasma desktop running on Xorg or Wayland should have no issues. OpenGL ES 3.0 support is currently unimplemented however, restricting it to only OpenGL ES 2.0 and OpenGL 2.1.  Support for GPUs from the Bifrost series, often the Mali-Gxx chips, is still in-development
and requires some extra effort to enable.
All major features should be there,
and a typical GNOME or KDE Plasma desktop running on Xorg or Wayland should have no issues.
OpenGL ES 3.0 support is currently unimplemented however,
restricting it to only OpenGL ES 2.0 and OpenGL 2.1.
Line 40: Line 76:
It's best to enable system-wide support by setting the appropriate environment variable in your {{{/etc/environment}}} file. Open the file, and on a new line, add: It's best to enable system-wide support
by setting the appropriate environment variable in your {{{/etc/environment}}} file.
Open the file, and on a new line, add:
Line 47: Line 85:
In the version of Mesa that comes with Debian 11 (Mesa 20.1), Panfrost supports OpenGL 2.1 and OpenGL ES 2.0 without any further tweaks necessary. Support for OpenGL ES 3.0 is available albeit unfinished, and does require a tweak to enable. In the version of Mesa that comes with Debian 11 (Mesa 20.1),
Panfrost supports OpenGL 2.1 and OpenGL ES 2.0 without any further tweaks necessary.
Support for OpenGL ES 3.0 is available albeit unfinished, and does require a tweak to enable.
Line 49: Line 89:
Set the {{{PAN_MESA_DEBUG}}} environment variable to {{{gles3}}}. This can be done temporarily for a given terminal session by running Set the {{{PAN_MESA_DEBUG}}} environment variable to {{{gles3}}}.
This can be done temporarily for a given terminal session by running
Line 56: Line 97:
To set it persistently across your whole system, you can edit the {{{/etc/environment}}} file and, on a new line, add the text then reboot your PC:
{{{
To set it persistently across your whole system,
you can edit the {{{/etc/environment}}} file and, on a new line, add the text then reboot your PC:
{{{ 
Line 63: Line 105:
Line 65: Line 106:
Line 67: Line 107:

Translation(s): none


Applies to an unreleased Debian version

Panfrost and Lima are only included in Debian 11 and newer, which is currently unreleased. All information here is tentative, and is subject to change as Debian 11 is developed.

Detailed information on Mali GPUs, and instructions on installing the proprietary drivers, can be found on the MaliGraphics page. This page is dedicated to documenting the new open-source Panfrost and Lima drivers introduced in Debian 11, including any tweaks and issue workarounds.

The free and open-source Panfrost and Lima drivers for Mali GPUs are part of Mesa and are fully free software. Compared to the proprietary drivers, they have much better stability and software compatibility and are recommended for the average user.

The Lima driver provides support for the older "Utgard" Mali GPUs, while Panfrost provides support for the newer Midgard and Bifrost GPUs. Valhall support is pending.

Hardware support

Debian 11 comes with Mesa 20.1 which supports the Mali 400 and 450 GPUs via the Lima driver, and Mali Gxx/T6xx/T7xx/T8xx GPUs via the Panfrost driver. This will cover most modern ARM SoCs, including those found in the Pinebook and Pinebook Pro devices. Mali Gxx devices (also known as "Bifrost" chips) are supported experimentally and require an extra environment variable to be set before they'll use the Panfrost driver, as documented in the Configuration section below.

In terms of specifically supported SoCs, anything using an RK3288, RK3399, S912, Exynos 7580, MT6735, or MT6753 chip should certainly work without any issues. But as long as your GPU isn't too particularly new or old (Midgard and Bifrost being the most comprehensively supported revisions), you should expect it to function.


Software support

Most of the hardware in question theoretically supports OpenGL ES 3.0, Vulkan 1.1, and OpenGL 4.6. In reality, the drivers have mainly targeted and optimized for OpenGL 2.1 and OpenGL ES 2.0 so far.

OpenGL ES 3.0 is experimentally available but may have worse performance than OpenGL ES 2.0 and may not support the full specification, leading to strange rendering issues in applications expecting certain features to be available. See the "Configuration" section below for instructions on how to use it.


Which driver should I use?

Between the Panfrost/Lima driver and the binary drivers also packaged in Debian, the Panfrost/Lima driver is almost always recommended. However, incomplete support for OpenGL ES 3.0 and nonexistent support for Vulkan may be a concern for some use-cases. Some workloads may also see better performance with the binary driver, though successive Mesa versions are closing this gap and even demonstrating better performance than the binary driver in Panfrost/Lima with many workloads.

Experimentation is recommended if you're in a performance or compatibility-critical environment, however average desktop users should stick with the Panfrost/Lima drivers to see the best stability.


Installation

Both the Panfrost and Lima drivers are included in Mesa and should work out-of-the-box after installing the relevant packages (which are, in practice, libglx-mesa0 and libgl1-mesa-dri).

For OpenCL support, you'll need to also install the mesa-opencl-icd package. Install the mesa-va-drivers and mesa-vdpau-drivers packages for hardware video acceleration.


Configuration

Enable support for Mali "Bifrost" GPUs

Support for GPUs from the Bifrost series, often the Mali-Gxx chips, is still in-development and requires some extra effort to enable. All major features should be there, and a typical GNOME or KDE Plasma desktop running on Xorg or Wayland should have no issues. OpenGL ES 3.0 support is currently unimplemented however, restricting it to only OpenGL ES 2.0 and OpenGL 2.1.

It's best to enable system-wide support by setting the appropriate environment variable in your /etc/environment file. Open the file, and on a new line, add:

PAN_MESA_DEBUG="bifrost"

Then reboot your system to activate your GPU.

Enable OpenGL ES 3.0 support

In the version of Mesa that comes with Debian 11 (Mesa 20.1), Panfrost supports OpenGL 2.1 and OpenGL ES 2.0 without any further tweaks necessary. Support for OpenGL ES 3.0 is available albeit unfinished, and does require a tweak to enable.

Set the PAN_MESA_DEBUG environment variable to gles3. This can be done temporarily for a given terminal session by running

export PAN_MESA_DEBUG=gles3

Or by prefixing a single command with it in order to apply it just for that application, as with:

PAN_MESA_DEBUG=gles3 supertuxkart

To set it persistently across your whole system, you can edit the /etc/environment file and, on a new line, add the text then reboot your PC:

PAN_MESA_DEBUG="gles3"


See also


CategoryHardware CategoryVideo