Google Developer Contributes Universal Bandwidth Compression To Freedreno Driver

Written by Michael Larabel in Mesa on 2 March 2019 at 12:09 AM EST. Add A Comment
A new feature addition to the Freedreno Gallium3D driver for open-source Qualcomm Adreno 3D graphics capabilities is UBWC, or Universal Bandwidth Compression.

Fritz Koenig of Google has contributed UBWC support to the Freedreno driver with it being for the latest-generation Adreno 600 series graphics. UBWC reduces memory bandwidth via buffer compression. This may end up helping to increase performance or help with DDR memory power usage though no numbers were shared as part of the commit.

Qualcomm's official documentation has cited "significant" power-savings potential with UBWC. It also appears UBWC works for Adreno 500 series hardware too albeit not implemented by the current Freedreno patches.

Wiring up this UBWC support to the Freedreno driver for the A6xx hardware and also enabling support for UBWC buffers to go directly to the scan-out amounted to just about 200 lines of new code.

The work is now in Mesa Git for next quarter's Mesa 19.1 release.

Google has been helping out with the MSM/Freedreno open-source driver stack as its partially used by the new Pixel devices. Qualcomm's Code Aurora has been mostly helping on the kernel side with the MSM DRM driver code. And, of course, Freedreno development continues to be spearheaded by its founder Rob Clark, working for Red Hat.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of 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 automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week