[Mesa-dev] [PATCH 00/14] AMD winsys cleanups, heaps, suballocation for textures

Marek Olšák maraeo at gmail.com
Thu Jun 29 19:47:35 UTC 2017


Hi,

This is mainly a cleanup series.

RADEON_FLAG_CPU_ACCESS(_REQUIRED) is no longer used. CPU access can
only be disallowed from now on, but it can't be enforced. See amd-gfx
for more discussion.

If we stay conservative, we only need 5 memory heaps, including the
VRAM_GTT heap, which isn't used with the current kernel driver.

The series defines 5 heaps and a bijective mapping between heaps and
(domain, flags) combinations. The list of heaps:
- VRAM_NO_CPU_ACCESS, VRAM, VRAM_GTT, GTT_WC, GTT

Those map nicely to pb_slab heaps, pb_cache usage flags, and pb_cache
buckets. No crazy playing with bits needed.

Finally, there are 3 changes to our suballocation code:
- suballocations are allowed for VRAM with no CPU access
- suballocations are allowed for textures
- the slab size increased to 128 KB with at most 64 KB suballocations;
  in the future, we might increase the slab size to 2 MB.

Here's a comparison of BO list sizes using a Borderlands 2 trace with
various suballocation changes. Note that the gameplay portion is the
hilly part on the far right!

https://people.freedesktop.org/~mareko/suballoc.svg

Please review.

Thanks,
Marek


More information about the mesa-dev mailing list