radv: fix suspending/resuming pipeline statistics queries with GDS

This probably doesn't fix anything in practice because GDS is only
used for the number of generated primitives by GS and meta operations
don't use GS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19348>
This commit is contained in:
Samuel Pitoiset
2022-10-26 17:59:31 +02:00
committed by Marge Bot
parent cf687e88ce
commit c41997f29f
+5 -3
View File
@@ -41,6 +41,9 @@ radv_suspend_queries(struct radv_meta_saved_state *state, struct radv_cmd_buffer
if (cmd_buffer->state.active_pipeline_queries > 0) {
cmd_buffer->state.flush_bits &= ~RADV_CMD_FLAG_START_PIPELINE_STATS;
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_STOP_PIPELINE_STATS;
state->active_pipeline_gds_queries = cmd_buffer->state.active_pipeline_gds_queries;
cmd_buffer->state.active_pipeline_gds_queries = 0;
}
/* Occlusion queries. */
@@ -56,9 +59,7 @@ radv_suspend_queries(struct radv_meta_saved_state *state, struct radv_cmd_buffer
/* Save the number of active GDS queries and reset it to make sure internal operations won't
* increment the counters via GDS.
*/
state->active_pipeline_gds_queries = cmd_buffer->state.active_pipeline_gds_queries;
state->active_prims_gen_gds_queries = cmd_buffer->state.active_prims_gen_gds_queries;
cmd_buffer->state.active_pipeline_gds_queries = 0;
cmd_buffer->state.active_prims_gen_gds_queries = 0;
}
}
@@ -70,6 +71,8 @@ radv_resume_queries(const struct radv_meta_saved_state *state, struct radv_cmd_b
if (cmd_buffer->state.active_pipeline_queries > 0) {
cmd_buffer->state.flush_bits &= ~RADV_CMD_FLAG_STOP_PIPELINE_STATS;
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_START_PIPELINE_STATS;
cmd_buffer->state.active_pipeline_gds_queries = state->active_pipeline_gds_queries;
}
/* Occlusion queries. */
@@ -83,7 +86,6 @@ radv_resume_queries(const struct radv_meta_saved_state *state, struct radv_cmd_b
radv_emit_streamout_enable(cmd_buffer);
/* Restore the number of active GDS queries to resume counting. */
cmd_buffer->state.active_pipeline_gds_queries = state->active_pipeline_gds_queries;
cmd_buffer->state.active_prims_gen_gds_queries = state->active_prims_gen_gds_queries;
}
}