freedreno: Avoid staging blits with stencil on older gens

This avoids infinite recursion with fallback to
util_resource_copy_region()

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10444>
This commit is contained in:
Rob Clark
2021-04-23 16:47:47 -07:00
committed by Marge Bot
parent 224dbd77d5
commit cb058a8922
@@ -508,10 +508,18 @@ fd_resource_dump(struct fd_resource *rsc, const char *name)
static struct fd_resource *
fd_alloc_staging(struct fd_context *ctx, struct fd_resource *rsc,
unsigned level, const struct pipe_box *box)
assert_dt
{
struct pipe_context *pctx = &ctx->base;
struct pipe_resource tmpl = rsc->b.b;
/* We cannot currently do stencil export on earlier gens, and
* u_blitter cannot do blits involving stencil otherwise:
*/
if ((ctx->screen->gpu_id < 600) && !ctx->blit &&
(util_format_get_mask(tmpl.format) & PIPE_MASK_S))
return NULL;
tmpl.width0 = box->width;
tmpl.height0 = box->height;
/* for array textures, box->depth is the array_size, otherwise