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@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13524>
This commit is contained in:
Kenneth Graunke 2021-10-04 11:27:19 -07:00 committed by Marge Bot
parent d832209a78
commit 5dc36e5e93

View file

@ -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;