Skip to content

Commit 9e17e32

Browse files
committed
extract Queue.maintain
1 parent 5061ae3 commit 9e17e32

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

wgpu-core/src/device/queue.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ use crate::{
2121
ParentDevice, ResourceErrorIdent, StagingBuffer, Texture, TextureInner, Trackable,
2222
},
2323
resource_log,
24+
snatch::SnatchGuard,
2425
track::{self, Tracker, TrackerIndex},
2526
FastHashMap, SubmissionIndex,
2627
};
@@ -107,6 +108,26 @@ impl Queue {
107108
pub(crate) fn lock_life<'a>(&'a self) -> MutexGuard<'a, LifetimeTracker> {
108109
self.life_tracker.lock()
109110
}
111+
112+
pub(crate) fn maintain(
113+
&self,
114+
submission_index: u64,
115+
snatch_guard: &SnatchGuard,
116+
) -> (
117+
SmallVec<[SubmittedWorkDoneClosure; 1]>,
118+
Vec<super::BufferMapPendingClosure>,
119+
bool,
120+
) {
121+
let mut life_tracker = self.lock_life();
122+
let submission_closures =
123+
life_tracker.triage_submissions(submission_index, &self.device.command_allocator);
124+
125+
let mapping_closures = life_tracker.handle_mapping(snatch_guard);
126+
127+
let queue_empty = life_tracker.queue_empty();
128+
129+
(submission_closures, mapping_closures, queue_empty)
130+
}
110131
}
111132

112133
crate::impl_resource_type!(Queue);
@@ -1505,7 +1526,7 @@ fn validate_command_buffer(
15051526
command_buffer: &CommandBuffer,
15061527
queue: &Queue,
15071528
cmd_buf_data: &crate::command::CommandBufferMutable,
1508-
snatch_guard: &crate::snatch::SnatchGuard<'_>,
1529+
snatch_guard: &SnatchGuard,
15091530
submit_surface_textures_owned: &mut FastHashMap<*const Texture, Arc<Texture>>,
15101531
used_surface_textures: &mut track::TextureUsageScope,
15111532
) -> Result<(), QueueSubmitError> {

wgpu-core/src/device/resource.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -443,15 +443,7 @@ impl Device {
443443

444444
let (submission_closures, mapping_closures, queue_empty) =
445445
if let Some(queue) = self.get_queue() {
446-
let mut life_tracker = queue.lock_life();
447-
let submission_closures =
448-
life_tracker.triage_submissions(submission_index, &self.command_allocator);
449-
450-
let mapping_closures = life_tracker.handle_mapping(&snatch_guard);
451-
452-
let queue_empty = life_tracker.queue_empty();
453-
454-
(submission_closures, mapping_closures, queue_empty)
446+
queue.maintain(submission_index, &snatch_guard)
455447
} else {
456448
(SmallVec::new(), Vec::new(), true)
457449
};

0 commit comments

Comments
 (0)