Show Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained on a daily basis for the past 18+ years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium.
Freedreno Lands An A2xx NIR Backend, Other Improvements For Mesa 19.0
Freedreno, for the uninformed, is the open-source driver for Qualcomm Adreno hardware. It's been a community-based, reverse-engineering led effort with the MSM DRM kernel driver that is mainlined as well as the Freedreno Gallium3D driver in Mesa for OpenGL support. While it supports the latest Adreno hardware, recently there has been a bit of resurgence in going back to support the original A2xx series hardware.
In 2018 the mainline kernel picked up A2xx support in the MSM Direct Rendering Manager code and improvements to user-space. Merged this week to Mesa now was the A2xx NIR back-end that had been available in patch form in recent weeks.
For those using this driver stack on the likes of the Snapdragon S1/S2 or Freescale i.MX51/i.MX53, the Freedreno Gallium3D driver has been relying upon its "classic" TGSI compiler back-end rather than the NIR back-end used by newer generations of hardware. Culminating with this commit, there is now NIR compiler support for A2xx to replace its TGSI intermediate representation usage. This also ends up providing more functionality over the old back-end including control flow, texture related features, and other bits.
For those more interested in newer hardware or Freedreno at a macro level, this week it also landed texture tiling by default for the latest Adreno 600 series. It has also enabled core buffer modifier support following several DMA-BUF related commits.
The latest Freedreno activity inside Mesa can be found here.