[Mesa-dev] [PATCH 01/12] i965/rbc: Allow integer formats as advertised in isl_format.c

Topi Pohjolainen topi.pohjolainen at intel.com
Wed Aug 31 15:17:50 UTC 2016


From: Topi Pohjolainen <topi.pohjolainen at gmail.com>

Blorp consults brw_is_color_fast_clear_compatible() to see if any
restrictions apply for fast clear in addition to the capablities
advertised in isl_format.c::format_info[]. On Gen8+ integer formats
are backlisted for plain old fast clear but there is no reason why
lossless compression shouldn't be supported. In fact, lossless
compression of integer formats is already supported for normal
render paths.

This patch prepares for dropping the delayed allocating of the mcs
buffer for lossless compression. Until now the skip of fast clear
also prevented the mcs being allocated and hence the lossless
compression being effectively turned off for integer formats.
Once the mcs buffer is allocated beforehand, the assertion addressed
here would start triggering.

Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 src/mesa/drivers/dri/i965/brw_blorp.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c
index c902f2e..7e257e9 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp.c
+++ b/src/mesa/drivers/dri/i965/brw_blorp.c
@@ -761,8 +761,12 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
          /* Compressed buffers can be cleared also using normal rep-clear. In
           * such case they bahave such as if they were drawn using normal 3D
           * render pipeline, and we simply mark the mcs as dirty.
+          *
+          * Fast clear of integer formats is not supported on Gen8+. See
+          * brw_is_color_fast_clear_compatible(). This, however, doesn't
+          * prevent lossless compression on Gen9+.
           */
-         assert(partial_clear);
+         assert(partial_clear || _mesa_is_format_integer_color(format));
          irb->mt->fast_clear_state = INTEL_FAST_CLEAR_STATE_UNRESOLVED;
       }
    }
-- 
2.5.5



More information about the mesa-dev mailing list