i965: Roll brw_get_ccs_resolve_rect into blorp_ccs_resolve
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 19 Aug 2016 10:49:45 +0000 (03:49 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 29 Aug 2016 19:17:34 +0000 (12:17 -0700)
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/mesa/drivers/dri/i965/blorp_clear.c
src/mesa/drivers/dri/i965/brw_meta_util.c
src/mesa/drivers/dri/i965/brw_meta_util.h

index 9f57d9a7775e75c4cc0d964d25468bdd747f4629..60e40e9771e116b8bd566b9980ba744b71a76f85 100644 (file)
@@ -171,9 +171,35 @@ brw_blorp_ccs_resolve(struct blorp_batch *batch,
    brw_blorp_surface_info_init(batch->blorp, &params.dst, surf,
                                0 /* level */, 0 /* layer */, format, true);
 
-   brw_get_ccs_resolve_rect(batch->blorp->isl_dev, &params.dst.aux_surf,
-                            &params.x0, &params.y0,
-                            &params.x1, &params.y1);
+   /* From the Ivy Bridge PRM, Vol2 Part1 11.9 "Render Target Resolve":
+    *
+    *     A rectangle primitive must be scaled down by the following factors
+    *     with respect to render target being resolved.
+    *
+    * The scaledown factors in the table that follows are related to the block
+    * size of the CCS format.  For IVB and HSW, we divide by two, for BDW we
+    * multiply by 8 and 16. On Sky Lake, we multiply by 8.
+    */
+   const struct isl_format_layout *aux_fmtl =
+      isl_format_get_layout(params.dst.aux_surf.format);
+   assert(aux_fmtl->txc == ISL_TXC_CCS);
+
+   unsigned x_scaledown, y_scaledown;
+   if (ISL_DEV_GEN(batch->blorp->isl_dev) >= 9) {
+      x_scaledown = aux_fmtl->bw * 8;
+      y_scaledown = aux_fmtl->bh * 8;
+   } else if (ISL_DEV_GEN(batch->blorp->isl_dev) >= 8) {
+      x_scaledown = aux_fmtl->bw * 8;
+      y_scaledown = aux_fmtl->bh * 16;
+   } else {
+      x_scaledown = aux_fmtl->bw / 2;
+      y_scaledown = aux_fmtl->bh / 2;
+   }
+   params.x0 = params.y0 = 0;
+   params.x1 = params.dst.aux_surf.logical_level0_px.width;
+   params.y1 = params.dst.aux_surf.logical_level0_px.height;
+   params.x1 = ALIGN(params.x1, x_scaledown) / x_scaledown;
+   params.y1 = ALIGN(params.y1, y_scaledown) / y_scaledown;
 
    if (batch->blorp->isl_dev->info->gen >= 9) {
       if (params.dst.aux_usage == ISL_AUX_USAGE_CCS_E)
index bc3a62d631921e65acd10813d697c04502d27a0e..52b7be4b6939a7b56a5c51b7a3a2390b1c649975 100644 (file)
@@ -563,39 +563,3 @@ brw_get_fast_clear_rect(const struct isl_device *dev,
    *x1 = ALIGN(*x1, x_align) / x_scaledown;
    *y1 = ALIGN(*y1, y_align) / y_scaledown;
 }
-
-void
-brw_get_ccs_resolve_rect(const struct isl_device *dev,
-                         const struct isl_surf *ccs_surf,
-                         unsigned *x0, unsigned *y0,
-                         unsigned *x1, unsigned *y1)
-{
-   unsigned x_scaledown, y_scaledown;
-
-   /* From the Ivy Bridge PRM, Vol2 Part1 11.9 "Render Target Resolve":
-    *
-    *     A rectangle primitive must be scaled down by the following factors
-    *     with respect to render target being resolved.
-    *
-    * The scaledown factors in the table that follows are related to the block
-    * size of the CCS format.  For IVB and HSW, we divide by two, for BDW we
-    * multiply by 8 and 16. On Sky Lake, we multiply by 8.
-    */
-   const struct isl_format_layout *fmtl =
-      isl_format_get_layout(ccs_surf->format);
-   assert(fmtl->txc == ISL_TXC_CCS);
-
-   if (ISL_DEV_GEN(dev) >= 9) {
-      x_scaledown = fmtl->bw * 8;
-      y_scaledown = fmtl->bh * 8;
-   } else if (ISL_DEV_GEN(dev) >= 8) {
-      x_scaledown = fmtl->bw * 8;
-      y_scaledown = fmtl->bh * 16;
-   } else {
-      x_scaledown = fmtl->bw / 2;
-      y_scaledown = fmtl->bh / 2;
-   }
-   *x0 = *y0 = 0;
-   *x1 = ALIGN(ccs_surf->logical_level0_px.width, x_scaledown) / x_scaledown;
-   *y1 = ALIGN(ccs_surf->logical_level0_px.height, y_scaledown) / y_scaledown;
-}
index 79a777f991b0701f7c8222b2891506facb3e972c..d517237333192da9a85bde20686baf75c38cc64f 100644 (file)
@@ -48,12 +48,6 @@ brw_get_fast_clear_rect(const struct isl_device *dev,
                         unsigned *x0, unsigned *y0,
                         unsigned *x1, unsigned *y1);
 
-void
-brw_get_ccs_resolve_rect(const struct isl_device *dev,
-                         const struct isl_surf *ccs_surf,
-                         unsigned *x0, unsigned *y0,
-                         unsigned *x1, unsigned *y1);
-
 bool
 brw_meta_set_fast_clear_color(struct brw_context *brw,
                               struct intel_mipmap_tree *mt,