Skip to content

freedreno: Suballocate our long-lived ring objects.

Emma Anholt requested to merge anholt/mesa:fd-suballoc-state into main

On drawoverhead -test 9 (8 texture changes), this saves us 172kb of memory. That's only ~1% of the GEM memory while the test is running, but more importantly it saves us 29% of the gem BO allocations.

non-TC drawoverhead -test 9 (8 texture change) throughput +1.20135% +/- 0.707056% (n=30), but this gets better as we get better suballocation density.

Note that this means that all fd_ringbuffer_new_object calls can now return data aligned to 64 bytes, instead of 4k. We may find that we need to increase it if some of our objects (tex consts, sampler consts, etc.) require more alignment than that. But, this may help non-drawoverhead perf if any of our RB objects have a cache in front of them (indirect consts?) and we don't have most of our data in the same cache set any more.

Edited by Emma Anholt

Merge request reports