Remove pending_query_resets from CommandBufferMutable (#8187)

It is emptied by `reset_queries` at the end of every render pass, so
it's just keeping an allocation alive, not holding any state. It seems
unlikely that there is sufficient performance gain from reusing the
memory allocation to justify the complexity of additional state at
higher layers.
This commit is contained in:
Andy Leiserson 2025-09-09 10:03:12 -07:00 committed by GitHub
parent f7e81f26fd
commit a9638c8e3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 11 deletions

View File

@ -645,8 +645,6 @@ pub struct CommandBufferMutable {
buffer_memory_init_actions: Vec<BufferInitTrackerAction>,
texture_memory_actions: CommandBufferTextureMemoryActions,
pub(crate) pending_query_resets: QueryResetMap,
as_actions: Vec<AsAction>,
temp_resources: Vec<TempResource>,
@ -722,7 +720,6 @@ impl CommandEncoder {
trackers: Tracker::new(),
buffer_memory_init_actions: Default::default(),
texture_memory_actions: Default::default(),
pending_query_resets: QueryResetMap::new(),
as_actions: Default::default(),
temp_resources: Default::default(),
indirect_draw_validation_resources:

View File

@ -1848,12 +1848,11 @@ impl Global {
let mut indirect_draw_validation_batcher =
crate::indirect_validation::DrawBatcher::new();
let (scope, pending_discard_init_fixups) = {
let (scope, pending_discard_init_fixups, mut pending_query_resets) = {
let encoder = &mut cmd_buf_data.encoder;
let tracker = &mut cmd_buf_data.trackers;
let buffer_memory_init_actions = &mut cmd_buf_data.buffer_memory_init_actions;
let texture_memory_actions = &mut cmd_buf_data.texture_memory_actions;
let pending_query_resets = &mut cmd_buf_data.pending_query_resets;
let indirect_draw_validation_resources =
&mut cmd_buf_data.indirect_draw_validation_resources;
@ -1865,6 +1864,7 @@ impl Global {
.open_pass(base.label.as_deref())
.map_pass_err(pass_scope)?;
let mut pending_query_resets = QueryResetMap::new();
let mut pending_discard_init_fixups = SurfacesInDiscardState::new();
let info = RenderPassInfo::start(
@ -1879,7 +1879,7 @@ impl Global {
encoder,
tracker,
texture_memory_actions,
pending_query_resets,
&mut pending_query_resets,
&mut pending_discard_init_fixups,
snatch_guard,
)
@ -2139,7 +2139,7 @@ impl Global {
pass::write_timestamp::<RenderPassErrorInner>(
&mut state.general,
cmd_enc.as_ref(),
Some(&mut cmd_buf_data.pending_query_resets),
Some(&mut pending_query_resets),
query_set,
query_index,
)
@ -2160,7 +2160,7 @@ impl Global {
state.general.raw_encoder,
&mut state.general.tracker.query_sets,
query_index,
Some(&mut cmd_buf_data.pending_query_resets),
Some(&mut pending_query_resets),
&mut state.active_occlusion_query,
)
.map_pass_err(scope)?;
@ -2191,7 +2191,7 @@ impl Global {
&mut state.general.tracker.query_sets,
cmd_enc.as_ref(),
query_index,
Some(&mut cmd_buf_data.pending_query_resets),
Some(&mut pending_query_resets),
&mut state.active_pipeline_statistics_query,
)
.map_pass_err(scope)?;
@ -2243,7 +2243,7 @@ impl Global {
let pending_discard_init_fixups = state.general.pending_discard_init_fixups;
encoder.close().map_pass_err(pass_scope)?;
(trackers, pending_discard_init_fixups)
(trackers, pending_discard_init_fixups, pending_query_resets)
};
let encoder = &mut cmd_buf_data.encoder;
@ -2265,7 +2265,7 @@ impl Global {
snatch_guard,
);
cmd_buf_data.pending_query_resets.reset_queries(transit);
pending_query_resets.reset_queries(transit);
CommandEncoder::insert_barriers_from_scope(transit, tracker, &scope, snatch_guard);