Skip to content

turnip: Sub-allocate pipelines and autotune results out of a device-global BO pool.

Emma Anholt requested to merge anholt/mesa:tu-pipeline-suballoc into main
Allocating a BO for each pipeline meant that for apps with many pipelines
(such as Asphalt9 under ANGLE), we would end up spending too much time in
the kernel tracking the BO references.

Looking at CS:Source on zink, before we had 85 BOs for the pipelines for a
total of 1036 kb, and now we have 7 BOs for a total of 896 kb.

todo:

  • Check if we can easily crank down the "2048" in tu_pipeline_allocate_cs() which is 8kb per pipeline that we could maybe get back and improve our suballocation efficiency
  • Should this be part of tu_cs.c, or pulled out? Is overloading SUB_STREAM like this how we want the CS emit part to work?
  • Should we move any other BOs over to the device allocator?
  • Is this useful for #5990 (closed) or should the interface be different?
  • Have I cleaned up everything after rewriting the patch a few times?
  • Maybe get some actual perf stats from the change
Edited by Emma Anholt

Merge request reports