diff options
author | Rob Clark <[email protected]> | 2017-04-21 11:31:20 -0400 |
---|---|---|
committer | Rob Clark <[email protected]> | 2017-04-22 10:03:02 -0400 |
commit | 935623af141930db8cbe1089e448cde4066da114 (patch) | |
tree | c427926a58365ce0ed4aa54395e687f650b987dd /src/gallium/drivers/freedreno/freedreno_context.h | |
parent | df63ff4d8248d81ecb8d0f3059bf2c67431e6f2f (diff) |
freedreno: a bit of query refactor
Move a bit more of the logic shared by all query types (active tracking,
etc) into common code. This avoids introducing a 3rd copy of that logic
for a5xx.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_context.h')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_context.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_context.h b/src/gallium/drivers/freedreno/freedreno_context.h index fe685e1767d..041e2260561 100644 --- a/src/gallium/drivers/freedreno/freedreno_context.h +++ b/src/gallium/drivers/freedreno/freedreno_context.h @@ -381,8 +381,21 @@ fd_batch_set_stage(struct fd_batch *batch, struct fd_ringbuffer *ring, enum fd_render_stage stage) { struct fd_context *ctx = batch->ctx; + + /* special case: internal blits (like mipmap level generation) + * go through normal draw path (via util_blitter_blit()).. but + * we need to ignore the FD_STAGE_DRAW which will be set, so we + * don't enable queries which should be paused during internal + * blits: + */ + if ((batch->stage == FD_STAGE_BLIT) && + (stage != FD_STAGE_NULL)) + return; + if (ctx->query_set_stage) ctx->query_set_stage(batch, ring, stage); + + batch->stage = stage; } void fd_context_setup_common_vbos(struct fd_context *ctx); |