intel/blorp: Add a swizzle parameter to blorp_clear
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 31 Aug 2016 01:01:27 +0000 (18:01 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 13 Sep 2016 02:42:57 +0000 (19:42 -0700)
While we're here, we also re-arrange the parameters to better match the
parameter order of blorp_blit.

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/blorp/blorp.h
src/intel/blorp/blorp_clear.c
src/mesa/drivers/dri/i965/brw_blorp.c

index 72cac202162f0e09441ec02213867ad575df80b9..480f1bb104fc77cb8a6dd137e46f416fbc105b15 100644 (file)
@@ -127,9 +127,10 @@ blorp_fast_clear(struct blorp_batch *batch,
 void
 blorp_clear(struct blorp_batch *batch,
             const struct blorp_surf *surf,
+            enum isl_format format, struct isl_swizzle swizzle,
             uint32_t level, uint32_t start_layer, uint32_t num_layers,
             uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1,
-            enum isl_format format, union isl_color_value clear_color,
+            union isl_color_value clear_color,
             const bool color_write_disable[4]);
 
 void
index d16933cc6fcc2eeef7ba8fbc1d0a7d9d9b1fe2bc..a8f29fd382f95d2c238d24b87c27e1df17fba946 100644 (file)
@@ -242,9 +242,10 @@ blorp_fast_clear(struct blorp_batch *batch,
 void
 blorp_clear(struct blorp_batch *batch,
             const struct blorp_surf *surf,
+            enum isl_format format, struct isl_swizzle swizzle,
             uint32_t level, uint32_t start_layer, uint32_t num_layers,
             uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1,
-            enum isl_format format, union isl_color_value clear_color,
+            union isl_color_value clear_color,
             const bool color_write_disable[4])
 {
    struct blorp_params params;
@@ -290,6 +291,7 @@ blorp_clear(struct blorp_batch *batch,
    while (num_layers > 0) {
       brw_blorp_surface_info_init(batch->blorp, &params.dst, surf, level,
                                   start_layer, format, true);
+      params.dst.view.swizzle = swizzle;
 
       /* We may be restricted on the number of layers we can bind at any one
        * time.  In particular, Sandy Bridge has a maximum number of layers of
index cc17c98d4980bc67fae7523790ea98fe6a11a305..38938d47cc613625eafd5bf3d6fe56d200c25597 100644 (file)
@@ -781,9 +781,11 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
 
       struct blorp_batch batch;
       blorp_batch_init(&brw->blorp, &batch, brw);
-      blorp_clear(&batch, &surf, level, irb->mt_layer, num_layers,
-                  x0, y0, x1, y1,
+      blorp_clear(&batch, &surf,
                   (enum isl_format)brw->render_target_format[format],
+                  ISL_SWIZZLE_IDENTITY,
+                  level, irb->mt_layer, num_layers,
+                  x0, y0, x1, y1,
                   clear_color, color_write_disable);
       blorp_batch_finish(&batch);