Struct wgpu_profiler::GpuProfiler [−][src]
pub struct GpuProfiler {
pub enable_timer: bool,
pub enable_debug_marker: bool,
// some fields omitted
}
Fields
enable_timer: bool
enable_debug_marker: bool
Implementations
Required wgpu features for timer scopes.
Creates a new Profiler object.
There is nothing preventing the use of several independent profiler objects.
In order to use profiler scopes later on, the device passed needs to have the [wgpu::Features::TIMESTAMP_QUERY
] feature enabled.
(see GpuProfiler::REQUIRED_WGPU_FEATURES
)
A profiler queues up to max_num_pending_frames
“profiler-frames” at a time.
A profiler-frame is in-flight until its queries have been successfully resolved using GpuProfiler::process_finished_frame
.
If this threshold is reached, GpuProfiler::end_frame
will drop frames.
(Typical values for max_num_pending_frames
are 2~4)
timestamp_period
needs to be set to the result of wgpu::Queue::get_timestamp_period
pub fn begin_scope<Recorder: ProfilerCommandRecorder>(
&mut self,
label: &str,
encoder_or_pass: &mut Recorder,
device: &Device
)
pub fn begin_scope<Recorder: ProfilerCommandRecorder>(
&mut self,
label: &str,
encoder_or_pass: &mut Recorder,
device: &Device
)
Starts a new debug/timer scope on a given encoder or rendering/compute pass.
Scopes can be arbitrarily nested.
May create new wgpu query objects (which is why it needs a wgpu::Device
reference)
See also wgpu_profiler!
, GpuProfiler::end_scope
pub fn end_scope<Recorder: ProfilerCommandRecorder>(
&mut self,
encoder_or_pass: &mut Recorder
)
pub fn end_scope<Recorder: ProfilerCommandRecorder>(
&mut self,
encoder_or_pass: &mut Recorder
)
Ends a debug/timer scope.
Panics if no scope has been open previously.
See also wgpu_profiler!
, GpuProfiler::begin_scope
Puts query resolve commands in the encoder for all unresolved, pending queries of the current profiler frame.
Marks the end of a frame. Needs to be called AFTER submitting any encoder used in the current frame.
Checks if all timer queries for the oldest pending finished frame are done and returns that snapshot if any.