intel/blorp: Use wide formats for nicely aligned stencil clears
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 3 Feb 2018 17:12:15 +0000 (09:12 -0800)
committerJason Ekstrand <jason@jlekstrand.net>
Fri, 6 Sep 2019 23:35:09 +0000 (23:35 +0000)
commit34541be7b04d76c5589600553995467daca6c30d
tree99e414562ea7050ededeaac678c541deb730f200
parentd62ca48c31f8dcbc90c6ae9a8e01a668cc9fe68e
intel/blorp: Use wide formats for nicely aligned stencil clears

In the case where the stencil clear is nicely aligned, we can clear
stencil much more efficiently by mapping it as a wide format (say
RGBA32_UINT) and blasting out the stencil clear value with a repclear.
On Unigine Heaven, this makes one stencil clear go from non-trivial to
unnoticeable when looking at per-draw timings.

In order for this change to work properly, ANV needs to do a bit more
flushing around depth and stencil clears.  i965 and iris already have
the cache tracking logic to handle this so no changes are required
there.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
src/intel/blorp/blorp_clear.c
src/intel/vulkan/anv_blorp.c