Freedreno Lands An A2xx NIR Backend, Other Improvements For Mesa 19.0
While we are most often focused on the Radeon and Intel drivers within Mesa as being the most commonly used Mesa-based drivers on Linux systems, Freedreno and friends have also been seeing some nice improvements for Mesa 19.0 with its feature freeze quickly coming upon us.
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.
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.
11 Comments