intel/blorp: Add a CCS ambiguation pass

This pass performs an "ambiguate" operation on a CCS-compressed surface
by manually writing zeros into the CCS.  On gen8+, ISL gives us a fairly
detailed notion of how the CCS is laid out so this is fairly simple to
do.  On gen7, the CCS tiling is quite crazy but that isn't an issue
because we can only do CCS on single-slice images so we can just blast
over the entire CCS buffer if we want to.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com>
This commit is contained in:
Jason Ekstrand
2017-05-17 20:33:21 -07:00
parent 13b621d6fd
commit 857b5b5a7f
2 changed files with 158 additions and 0 deletions

View File

@@ -203,6 +203,11 @@ blorp_ccs_resolve(struct blorp_batch *batch,
enum isl_format format,
enum blorp_fast_clear_op resolve_op);
void
blorp_ccs_ambiguate(struct blorp_batch *batch,
struct blorp_surf *surf,
uint32_t level, uint32_t layer);
void
blorp_mcs_partial_resolve(struct blorp_batch *batch,
struct blorp_surf *surf,