Resolve any pending GPU queries into the readback buffer. Call once per frame, after all passes are encoded and before submit.
(&mut self, encoder: &mut wgpu::CommandEncoder)
| 214 | /// Resolve any pending GPU queries into the readback buffer. Call once |
| 215 | /// per frame, after all passes are encoded and before submit. |
| 216 | pub fn resolve(&mut self, encoder: &mut wgpu::CommandEncoder) { |
| 217 | if !self.enabled || !self.gpu_enabled || self.next_query == 0 { return; } |
| 218 | let (Some(qs), Some(resolve)) = (&self.query_set, &self.resolve_buffer) else { return; }; |
| 219 | encoder.resolve_query_set(qs, 0..self.next_query, resolve, 0); |
| 220 | if let Some(readback) = &self.readback_buffer { |
| 221 | let byte_count = (self.next_query as u64) * 8; |
| 222 | encoder.copy_buffer_to_buffer(resolve, 0, readback, 0, byte_count); |
| 223 | } |
| 224 | } |
| 225 | |
| 226 | /// End-of-frame bookkeeping. Reads back GPU timestamps from the |
| 227 | /// previous frame (non-blocking map), folds samples into rolling |
no outgoing calls
no test coverage detected