Mesa 19.1 Panfrost Driver Gets Pantrace & Pandecode Support To Help Reverse Engineering
Since being added to Mesa 19.1 at the start of this month, the Panfrost driver has continued speeding along with bringing up this ARM Mali T600/T700/T860 open-source graphics driver support. The latest batch of code was merged overnight, including support for some reverse-engineering helpers.
The Panfrost driver has been getting worked into shape for Mali Midgard and Bifrost graphics hardware found on numerous ARM SoCs. It's still not suitable for end-users yet especially with the mainline kernel bits having yet to be squared away, but good progress is being made in freeing up these recent generations of ARM Mali graphics hardware.
Tonight's code drop landed various Panfrost improvements, but most notable is adding Pandecode and Pantrace. With another two thousand lines of code added to the Mesa code-base, Pandecode is the command stream debugger used by the Panfrost driver. After the separate Panwrap utility intercepts the communication between the OpenGL ES driver and the kernel, the Pandecode utility takes that output to re-construct the mapped memory and job commands to then beautify the output presenting the developer with the command stream with disassembled shaders. This is useful for reverse engineering and the debugging of driver problems.
Pantrace meanwhile was added as the command stream dumper to dump the command stream regardless of the kernel driver being used.
These additions and the many other recent commits to the Panfrost open-source Mali 3D driver can be explored via Mesa CGit.
The Panfrost driver has been getting worked into shape for Mali Midgard and Bifrost graphics hardware found on numerous ARM SoCs. It's still not suitable for end-users yet especially with the mainline kernel bits having yet to be squared away, but good progress is being made in freeing up these recent generations of ARM Mali graphics hardware.
Tonight's code drop landed various Panfrost improvements, but most notable is adding Pandecode and Pantrace. With another two thousand lines of code added to the Mesa code-base, Pandecode is the command stream debugger used by the Panfrost driver. After the separate Panwrap utility intercepts the communication between the OpenGL ES driver and the kernel, the Pandecode utility takes that output to re-construct the mapped memory and job commands to then beautify the output presenting the developer with the command stream with disassembled shaders. This is useful for reverse engineering and the debugging of driver problems.
Pantrace meanwhile was added as the command stream dumper to dump the command stream regardless of the kernel driver being used.
These additions and the many other recent commits to the Panfrost open-source Mali 3D driver can be explored via Mesa CGit.
4 Comments