Skip to content

ir3: Calculate occupancy and threadsize

This adds a bunch of data about the shader cores to ir3, which enables us to finally calculate some basic performance-related information, in particular the occupancy, while also moving some calculations about when to use the larger threadsize since this can be done in ir3. It turns out that something similar is also needed on A650, so this also fixes hangs for compute shaders and fragment shaders using r32.x and above on A650. Currently we aren't feeding this info into register allocation, but that will be done later.

Note that for older gen's where we don't have the time or inclination to test things, there are a lot of TODO's where I just put in my best guess about the values of some parameters. I tried to at least keep everything working the same as before on a3xx-a5xx.

This is based on !9493 (merged) so that I can set the threadsize correctly on turnip.

Edited by Connor Abbott

Merge request reports