i965/meta: Expose non-fast clear rectangle calculation
authorTopi Pohjolainen <topi.pohjolainen@intel.com>
Mon, 4 Apr 2016 10:43:24 +0000 (13:43 +0300)
committerTopi Pohjolainen <topi.pohjolainen@intel.com>
Thu, 21 Apr 2016 07:20:02 +0000 (10:20 +0300)
Signed-off-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_meta_fast_clear.c
src/mesa/drivers/dri/i965/brw_meta_util.h

index be6d5845c025e25ca112f47c302c67825564f34e..409e0216e4a606e0968d0c7c4fec0c9c82dd2500 100644 (file)
@@ -343,17 +343,19 @@ brw_get_fast_clear_rect(const struct brw_context *brw,
    *y1 = ALIGN(*y1, y_align) / y_scaledown;
 }
 
-static void
-get_buffer_rect(const struct gl_framebuffer *fb, struct rect *rect)
+void
+brw_meta_get_buffer_rect(const struct gl_framebuffer *fb,
+                         unsigned *x0, unsigned *y0,
+                         unsigned *x1, unsigned *y1)
 {
-   rect->x0 = fb->_Xmin;
-   rect->x1 = fb->_Xmax;
+   *x0 = fb->_Xmin;
+   *x1 = fb->_Xmax;
    if (fb->Name != 0) {
-      rect->y0 = fb->_Ymin;
-      rect->y1 = fb->_Ymax;
+      *y0 = fb->_Ymin;
+      *y1 = fb->_Ymax;
    } else {
-      rect->y0 = fb->Height - fb->_Ymax;
-      rect->y1 = fb->Height - fb->_Ymin;
+      *y0 = fb->Height - fb->_Ymax;
+      *y1 = fb->Height - fb->_Ymin;
    }
 }
 
@@ -689,12 +691,16 @@ brw_meta_fast_clear(struct brw_context *brw, struct gl_framebuffer *fb,
 
       case REP_CLEAR:
          rep_clear_buffers |= 1 << index;
-         get_buffer_rect(fb, &clear_rect);
+         brw_meta_get_buffer_rect(fb,
+                                  &clear_rect.x0, &clear_rect.y0,
+                                  &clear_rect.x1, &clear_rect.y1);
          break;
 
       case PLAIN_CLEAR:
          plain_clear_buffers |= 1 << index;
-         get_buffer_rect(fb, &clear_rect);
+         brw_meta_get_buffer_rect(fb,
+                                  &clear_rect.x0, &clear_rect.y0,
+                                  &clear_rect.x1, &clear_rect.y1);
          continue;
       }
    }
index 35222d239fcc520bc0cdc53090b3329dad586d7d..c43810871c1133aa220b19b6d70590143884b7de 100644 (file)
@@ -55,6 +55,11 @@ brw_get_resolve_rect(const struct brw_context *brw,
                      unsigned *x0, unsigned *y0,
                      unsigned *x1, unsigned *y1);
 
+void
+brw_meta_get_buffer_rect(const struct gl_framebuffer *fb, 
+                         unsigned *x0, unsigned *y0,
+                         unsigned *x1, unsigned *y1);
+
 #ifdef __cplusplus
 }
 #endif