Skip to content

freedreno/decode: Various rddecompiler improvements

Mark Collins requested to merge PixelyIon/mesa:rddecomp into main

This MR introduces three major improvements in rddecompiler:

  • Emitting an explicit scope for any conditionally executed blocks
    • This makes newer prop traces significantly more readable due to the vastly increased amount of predication
  • Handling ELSE condition blocks behind NOPs
    • Newer proprietary drivers emit ELSE blocks for conditional execution after the conditionally executed block while depending on a NOP at the end of the conditional
    • This can lead to a substantial difference in the decoded trace, many conditional sequences were almost entirely skipped prior
    • An example of this: else-eg.txt
  • Add a function to read a GPU memory into a file
    • Very useful to dump buffers or images for observing changes from the updated CS
    • Note: This is unsequenced at the moment unlike prints

The first two changes are also desired in cffdump as they improve trace readability and correct decoding but are difficult to add without a minor/major refactor which is out of the scope of these changes.

Merge request reports