diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c index 84335c004e9..b1bf7ef9ef7 100644 --- a/src/gallium/drivers/freedreno/freedreno_resource.c +++ b/src/gallium/drivers/freedreno/freedreno_resource.c @@ -346,6 +346,10 @@ fd_try_shadow_resource(struct fd_context *ctx, struct fd_resource *rsc, blit.src.field = (val); \ } while (0) + /* Disable occlusion queries during shadow blits. */ + bool saved_active_queries = ctx->active_queries; + pctx->set_active_query_state(pctx, false); + /* blit the other levels in their entirety: */ for (unsigned l = 0; l <= prsc->last_level; l++) { if (box && l == level) @@ -397,6 +401,8 @@ fd_try_shadow_resource(struct fd_context *ctx, struct fd_resource *rsc, } } + pctx->set_active_query_state(pctx, saved_active_queries); + ctx->in_shadow = false; pipe_resource_reference(&pshadow, NULL);