pub struct GpuOutput {Show 43 fields
pub wanted: bool,
pub on: bool,
pub building: bool,
pub pending: bool,
pub never: bool,
pub adapter: String,
pub present_mode: &'static str,
pub error: Option<String>,
pub reserved: u64,
pub frames: u64,
pub cpu_frames: u64,
pub upload_bytes: u64,
pub upload_base: u64,
pub base_px: u64,
pub split_frames: u64,
pub layer_textures: u32,
pub layer_bytes: u64,
pub layer_store: u64,
pub image_quads: u32,
pub image_textures: u32,
pub image_bytes: u64,
pub image_uploads: u64,
pub image_hits: u64,
pub image_evicted: u64,
pub canvas_apart: u32,
pub canvas_quads: u32,
pub canvas_frames: u64,
pub canvas_tiles: u32,
pub canvas_bytes: u64,
pub canvas_fills: u64,
pub canvas_fill_us: u64,
pub canvas_evicted: u64,
pub canvas_settles: u64,
pub canvas_diff_frames: u64,
pub canvas_diff_px: u64,
pub canvas_diff_sum: u64,
pub canvas_diff_max: u32,
pub render_us: u64,
pub present_us: u64,
pub switches: u32,
pub leaves: u32,
pub verified: u64,
pub verify_bad: u64,
}Expand description
what a window shows through (Ui::gpu_output): status and counters of the GPU output, for tests and measurements
Fields§
§wanted: boolthe output is switched on for this run (jfgui_GPU, the gpu on of a script)
on: boolthe window’s frames go through its swapchain now
building: boolits swapchain is being built
pending: boola frame waits for a free image, or for the window to come back
never: boolno output in this run: no Vulkan, no usable adapter or surface, this target
adapter: Stringthe adapter (empty: none yet) and the present mode in use
present_mode: &'static str§error: Option<String>what the last failure said (None: the last switch went well)
reserved: u64bytes of GPU and staging memory the device holds in blocks
frames: u64frames presented through the swapchain / the CPU path
cpu_frames: u64§upload_bytes: u64bytes uploaded to the window’s textures, those of them to the base texture
upload_base: u64§base_px: u64pixels of the base layer drawn again (what a layer above it no longer costs)
split_frames: u64frames drawn layer by layer
layer_textures: u32the layers above the base with a texture now, its bytes, and the bytes kept of the pixels below them
layer_bytes: u64§layer_store: u64§image_quads: u32images drawn as textures in the window’s last frame; of all windows: textures, their bytes, uploads, frames that drew one, textures evicted
image_textures: u32§image_bytes: u64§image_uploads: u64§image_hits: u64§image_evicted: u64§canvas_apart: u32canvases (canvas.rs): those whose view comes from tiles now in this window, those drawn so in its last frame, its frames that moved one; of all windows: tiles, their bytes, tiles drawn and the time that took (us), tiles evicted, gestures ended by the CPU’s picture
canvas_quads: u32§canvas_frames: u64§canvas_tiles: u32§canvas_bytes: u64§canvas_fills: u64§canvas_fill_us: u64§canvas_evicted: u64§canvas_settles: u64§canvas_diff_frames: u64jfgui_GPU_VERIFY: where the tiles’ picture differed from the CPU’s during a gesture: frames, pixels, the sum of the largest channel difference per pixel, the largest one
canvas_diff_px: u64§canvas_diff_sum: u64§canvas_diff_max: u32§render_us: u64time in the window’s renders and presents (us)
present_us: u64§switches: u32switches to the swapchain, and back to the CPU path
leaves: u32§verified: u64jfgui_GPU_VERIFY: images read back and compared, those that differed
verify_bad: u64