summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-05-13 17:00:39 -0700
committerJason Ekstrand <[email protected]>2017-05-26 07:58:01 -0700
commit554a1731a52c287c4c387923fea69a98d3a5fc2c (patch)
tree370e78167eb3374b8fbe038f58f0307f2f4ae107 /src
parentc19150af5cce3ce3a50b818e0869064a26a62f62 (diff)
intel/blorp: Move the gen7 stencil format workaround to blorp_blit
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 <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/intel/blorp/blorp.c5
-rw-r--r--src/intel/blorp/blorp_blit.c9
2 files changed, 9 insertions, 5 deletions
diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c
index 98342755294..f9727f7e557 100644
--- a/src/intel/blorp/blorp.c
+++ b/src/intel/blorp/blorp.c
@@ -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;
diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index 04ea98aaf5b..144bfb3ebed 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -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,