#[non_exhaustive]pub struct GpuViewInfo {Show 15 fields
pub device: bool,
pub output: bool,
pub level: Option<Level>,
pub generation: u32,
pub apart: bool,
pub attaches: u32,
pub detaches: u32,
pub frames: u64,
pub draw_us: u64,
pub reads: u64,
pub read_us: u64,
pub read_frame: u64,
pub held: u64,
pub size: (u32, u32),
pub error: Option<String>,
}Expand description
what a view does now (Ui::gpu_view_info; tests and measurements)
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.device: boolits content is attached to a device: its frames come from the GPU
output: boolthat device is the UI output’s (else the views’ own: no output in this run)
level: Option<Level>the device’s level
generation: u32the device’s generation (a new one after a lost device; 0: none)
apart: boolthe output’s render pass drew it in the window’s last frame (else the CPU copies the frame read back)
attaches: u32the content attached and detached so far
detaches: u32§frames: u64frames drawn, the CPU time recording and submitting them took (us)
draw_us: u64§reads: u64frames read back into the CPU’s copy, the time that took (us: submit, wait, copy)
read_us: u64§read_frame: u64(G5e2) the newest frame read back into the CPU’s copy (1, 2, ..; 0: none): the framebuffer can hold the view’s
newest frame once it equals frames (in the browser a read-back comes later)
held: u64(G5e3) frames that had to wait: a new ver (size, device) came while the view’s window had not shown its last frame yet, so the content was not asked to draw then (each ver counted once; the newest is drawn when the window’s frame has arrived)
size: (u32, u32)the size of its target (px)
error: Option<String>what the last failure said