Mesa (main): blorp: Don't try to use the 3D stencil write hardware for compute

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Nov 30 12:47:56 UTC 2021


Module: Mesa
Branch: main
Commit: 5dc36e5e93ae84182a3ab3eeeb3c569778eb3f07
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5dc36e5e93ae84182a3ab3eeeb3c569778eb3f07

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Mon Oct  4 11:27:19 2021 -0700

blorp: Don't try to use the 3D stencil write hardware for compute

When we're doing a stencil blit via a fragment shader, we can avoid
W-tiling shenanigans by using the stencil write hardware on Skylake
and later.

Of course, the compute engine doesn't have stencil fragment writes,
so it can't do that.  Just fall back to the detiling shenanigans.

Caught by Piglit's arb_copy_image-formats when forcing iris to use
BLOCS for resource_copy_region on Icelake.

Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13524>

---

 src/intel/blorp/blorp_blit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index c8fabb01a08..e15bad15b4b 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -1906,7 +1906,7 @@ try_blorp_blit(struct blorp_batch *batch,
       }
    } else if (params->dst.surf.usage & ISL_SURF_USAGE_STENCIL_BIT) {
       assert(params->dst.surf.format == ISL_FORMAT_R8_UINT);
-      if (devinfo->ver >= 9) {
+      if (devinfo->ver >= 9 && !(batch->flags & BLORP_BATCH_USE_COMPUTE)) {
          key->dst_usage = ISL_SURF_USAGE_STENCIL_BIT;
       } else {
          key->dst_usage = ISL_SURF_USAGE_RENDER_TARGET_BIT;



More information about the mesa-commit mailing list