pub struct Profiler {Show 19 fields
counters: Vec<Counter>,
gpu_frames: ProfilerFrameCollection,
frame_stats: ProfilerFrameCollection,
slow_scroll_frames: ProfilerFrameCollection,
start: u64,
avg_over_period: u64,
num_graph_samples: usize,
slow_cpu_frame_threshold: f32,
frame_timestamps_within_last_second: Vec<u64>,
slow_frame_cpu_count: u64,
slow_frame_gpu_count: u64,
slow_frame_build_count: u64,
slow_render_count: u64,
slow_upload_count: u64,
slow_draw_calls_count: u64,
slow_targets_count: u64,
slow_blob_count: u64,
slow_scroll_after_scene_count: u64,
ui: Vec<Item>,
}Fields§
§counters: Vec<Counter>§gpu_frames: ProfilerFrameCollection§frame_stats: ProfilerFrameCollection§slow_scroll_frames: ProfilerFrameCollection§start: u64§avg_over_period: u64§num_graph_samples: usize§slow_cpu_frame_threshold: f32§frame_timestamps_within_last_second: Vec<u64>§slow_frame_cpu_count: u64Total number of slow frames on the CPU.
slow_frame_gpu_count: u64Total number of slow frames on the GPU.
slow_frame_build_count: u64Slow frames dominated by frame building.
slow_render_count: u64Slow frames dominated by draw call submission.
slow_upload_count: u64Slow frames dominated by texture uploads.
slow_draw_calls_count: u64Slow renders with a high number of draw calls.
slow_targets_count: u64Slow renders with a high number of render targets.
slow_blob_count: u64Slow uploads with a high number of blob tiles.
slow_scroll_after_scene_count: u64Slow scrolling or animation frame after a scene build.
ui: Vec<Item>Implementations§
Source§impl Profiler
impl Profiler
pub fn new() -> Self
pub fn set_parameter(&mut self, param: &Parameter)
Sourcefn update_slow_event(
&mut self,
dst_counter: usize,
counters: &[usize],
threshold: f64,
) -> bool
fn update_slow_event( &mut self, dst_counter: usize, counters: &[usize], threshold: f64, ) -> bool
Sum a few counters and if the total amount is larger than a threshold, update a specific counter.
This is useful to monitor slow frame and slow transactions.
fn classify_slow_cpu_frame(&mut self)
pub fn update(&mut self)
pub fn update_frame_stats(&mut self, stats: FullFrameStats)
pub fn update_total_gpu_mem(&mut self)
pub fn set_gpu_time_queries(&mut self, gpu_queries: Vec<GpuTimer>)
pub fn index_of(&self, name: &str) -> Option<usize>
pub fn set_ui(&mut self, names: &str)
fn append_to_ui(&mut self, selection: &mut Vec<Item>, names: &str)
pub fn set_counters(&mut self, counters: &mut TransactionProfile)
pub fn get(&self, id: usize) -> Option<f64>
fn draw_counters( counters: &[Counter], selected: &[usize], x: f32, y: f32, text_buffer: &mut String, debug_renderer: &mut DebugRenderer, ) -> Rect<f32>
fn draw_graph( counter: &Counter, x: f32, y: f32, text_buffer: &mut String, debug_renderer: &mut DebugRenderer, ) -> Rect<f32>
fn draw_change_indicator( counter: &Counter, x: f32, y: f32, debug_renderer: &mut DebugRenderer, ) -> Rect<f32>
fn draw_bar( label: &str, label_color: ColorU, counters: &[(ColorU, usize)], x: f32, y: f32, debug_renderer: &mut DebugRenderer, ) -> Rect<f32>
fn draw_gpu_cache_bars( &self, x: f32, y: f32, text_buffer: &mut String, debug_renderer: &mut DebugRenderer, ) -> Rect<f32>
fn draw_frame_graph( frame_collection: &ProfilerFrameCollection, x: f32, y: f32, debug_renderer: &mut DebugRenderer, ) -> Rect<f32>
pub fn draw_profile( &mut self, _frame_index: u64, debug_renderer: &mut DebugRenderer, device_size: DeviceIntSize, )
pub fn dump_stats(&self, sink: &mut dyn Write) -> Result<()>
Auto Trait Implementations§
impl Freeze for Profiler
impl RefUnwindSafe for Profiler
impl Send for Profiler
impl Sync for Profiler
impl Unpin for Profiler
impl UnsafeUnpin for Profiler
impl UnwindSafe for Profiler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more