intel/blorp: Move the gen7 stencil format workaround to blorp_blit
authorJason Ekstrand <jason.ekstrand@intel.com>
Sun, 14 May 2017 00:00:39 +0000 (17:00 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Fri, 26 May 2017 14:58:01 +0000 (07:58 -0700)
It's not needed for blorp_copy because it already overrides formats.
It's also not needed for blorp_clear because it clears stencil as
stencil.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/intel/blorp/blorp.c
src/intel/blorp/blorp_blit.c

index 983427552940cc05d82265985ee8b3c2486055eb..f9727f7e557527004105ad17068cc317b5593fd8 100644 (file)
@@ -81,11 +81,6 @@ brw_blorp_surface_info_init(struct blorp_context *blorp,
        * map it as 8-bit BGRA.
        */
       format = ISL_FORMAT_B8G8R8A8_UNORM;
-   } else if (surf->surf->usage & ISL_SURF_USAGE_STENCIL_BIT) {
-      assert(surf->surf->format == ISL_FORMAT_R8_UINT);
-      /* Prior to Broadwell, we can't render to R8_UINT */
-      if (blorp->isl_dev->info->gen < 8)
-         format = ISL_FORMAT_R8_UNORM;
    }
 
    info->surf = *surf->surf;
index 04ea98aaf5b8ba751b8102c6badf48b0aafda68f..144bfb3ebedbc701a9e3a8c2149a739acafb5f60 100644 (file)
@@ -2020,6 +2020,15 @@ blorp_blit(struct blorp_batch *batch,
    struct blorp_params params;
    blorp_params_init(&params);
 
+   if (dst_surf->surf->usage & ISL_SURF_USAGE_STENCIL_BIT) {
+      assert(src_surf->surf->usage & ISL_SURF_USAGE_STENCIL_BIT);
+      /* Prior to Broadwell, we can't render to R8_UINT */
+      if (batch->blorp->isl_dev->info->gen < 8) {
+         src_format = ISL_FORMAT_R8_UNORM;
+         dst_format = ISL_FORMAT_R8_UNORM;
+      }
+   }
+
    brw_blorp_surface_info_init(batch->blorp, &params.src, src_surf, src_level,
                                src_layer, src_format, false);
    brw_blorp_surface_info_init(batch->blorp, &params.dst, dst_surf, dst_level,