diff options
author | Topi Pohjolainen <topi.pohjolainen@intel.com> | 2016-06-13 10:51:10 +0300 |
---|---|---|
committer | Topi Pohjolainen <topi.pohjolainen@intel.com> | 2016-11-25 16:57:07 +0200 |
commit | 96dbe765e1c06566a50393714dcbe86ebde5195a (patch) | |
tree | 304a5a1b76b5d2f58d0e000aa744e832942579e9 | |
parent | dea8e7fb07888959f9ea4f361744ba6b47e8bf9d (diff) |
i965: Resolve non-compressed fast clears prior layered rendering
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_draw.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 0e0bc2700f5..d4cc2235a45 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -411,6 +411,19 @@ brw_predraw_set_aux_buffers(struct brw_context *brw) if (!irb) { continue; } + + /* For layered rendering non-compressed fast cleared buffers need to be + * resolved. Surface state can carry only one fast color clear value + * while each layer may have its own fast clear color value. For + * compressed buffers color value is available in the color buffer. + */ + if (irb->layer_count > 1 && !irb->mt->no_ccs && + !intel_miptree_is_lossless_compressed(brw, irb->mt)) { + assert(brw->gen >= 8); + + intel_miptree_resolve_color(brw, irb->mt, irb->mt_level, + irb->mt_layer, irb->layer_count, 0); + } } } |