summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2021-02-01 11:52:12 -0800
committerMarge Bot <eric+marge@anholt.net>2021-02-04 19:31:30 +0000
commit75a43866769620f9ade6f71e7d1d9e7d9d4f9ac7 (patch)
tree3fa66c6428ae27dc8084462cef580eb40e3f0c10
parent50bac9f3fb267de993aa00bf00f6f6e4461d6ab9 (diff)
freedreno: Make sure that queries are disabled during shadow blits.
They shouldn't count toward occlusion queries. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8789>
-rw-r--r--src/gallium/drivers/freedreno/freedreno_resource.c6
1 files changed, 6 insertions, 0 deletions
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);