mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 01:50:10 +01:00
radv: suspend/resume XFB queries with NGG for meta operations
XFB queries enable primitives generated queries with NGG and meta
operations shouldn't be counted.
Reproduced on GFX10.3 by forcing NGG streamout.
Cc: 22.3 mesa-stable
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/19785>
(cherry picked from commit 62356e71f4)
This commit is contained in:
parent
bbcde41cb2
commit
7964efaa97
3 changed files with 14 additions and 1 deletions
|
|
@ -13,7 +13,7 @@
|
|||
"description": "radv: suspend/resume XFB queries with NGG for meta operations",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -62,6 +62,12 @@ radv_suspend_queries(struct radv_meta_saved_state *state, struct radv_cmd_buffer
|
|||
state->active_prims_gen_gds_queries = cmd_buffer->state.active_prims_gen_gds_queries;
|
||||
cmd_buffer->state.active_prims_gen_gds_queries = 0;
|
||||
}
|
||||
|
||||
/* Transform feedback queries (NGG). */
|
||||
if (cmd_buffer->state.active_prims_xfb_gds_queries) {
|
||||
state->active_prims_xfb_gds_queries = cmd_buffer->state.active_prims_xfb_gds_queries;
|
||||
cmd_buffer->state.active_prims_xfb_gds_queries = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -90,6 +96,11 @@ radv_resume_queries(const struct radv_meta_saved_state *state, struct radv_cmd_b
|
|||
if (state->active_prims_gen_gds_queries) {
|
||||
cmd_buffer->state.active_prims_gen_gds_queries = state->active_prims_gen_gds_queries;
|
||||
}
|
||||
|
||||
/* Transform feedback queries (NGG). */
|
||||
if (state->active_prims_xfb_gds_queries) {
|
||||
cmd_buffer->state.active_prims_xfb_gds_queries = state->active_prims_xfb_gds_queries;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -106,6 +117,7 @@ radv_meta_save(struct radv_meta_saved_state *state, struct radv_cmd_buffer *cmd_
|
|||
|
||||
state->flags = flags;
|
||||
state->active_prims_gen_gds_queries = 0;
|
||||
state->active_prims_xfb_gds_queries = 0;
|
||||
|
||||
if (state->flags & RADV_META_SAVE_GRAPHICS_PIPELINE) {
|
||||
assert(!(state->flags & RADV_META_SAVE_COMPUTE_PIPELINE));
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ struct radv_meta_saved_state {
|
|||
|
||||
unsigned active_pipeline_gds_queries;
|
||||
unsigned active_prims_gen_gds_queries;
|
||||
unsigned active_prims_xfb_gds_queries;
|
||||
|
||||
bool predicating;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue