Add puffin into main crate and profile RenderPass calls

This commit is contained in:
mars 2022-05-30 17:56:42 -06:00
parent 45cd80d239
commit 98b811b95a
2 changed files with 8 additions and 4 deletions

View File

@ -16,6 +16,7 @@ noise = "^0.7"
notify = "^4"
parking_lot = "^0.11"
pollster = "0.2"
puffin = "^0.13"
rand = "^0.8"
rayon = "1"
slab = "^0.4"

View File

@ -151,7 +151,7 @@ impl<T: RenderPass> RenderPassBoxTrait for RenderPassBox<T> {
fn begin_frame(&mut self, data_index: usize, phases: &mut Vec<Phase>, queue: &wgpu::Queue) {
let rp = &self.render_pass;
let name = rp.get_name();
println!("{}::begin_frame()", name);
puffin::profile_scope!("RenderPass::begin_frame(...)", name);
let frame_data = &mut self.frame_data[data_index];
rp.begin_frame(frame_data, phases, queue)
}
@ -159,7 +159,8 @@ impl<T: RenderPass> RenderPassBoxTrait for RenderPassBox<T> {
fn record_commands(&self, data: IndexedPhaseData, cmds: &mut wgpu::CommandEncoder) {
let rp = &self.render_pass;
let name = rp.get_name();
println!("{}::record_commands(phase: {:?})", name, data.phase);
let scope = format!("{} (phase: {:?})", name, data.phase);
puffin::profile_scope!("RenderPass::record_commands(...)", scope);
let frame_data = self.get_frame_data(data);
rp.record_commands(frame_data, cmds)
}
@ -167,7 +168,8 @@ impl<T: RenderPass> RenderPassBoxTrait for RenderPassBox<T> {
fn record_compute<'a>(&'a self, data: IndexedPhaseData<'a>, cmds: &mut wgpu::ComputePass<'a>) {
let rp = &self.render_pass;
let name = rp.get_name();
println!("{}::record_compute(phase: {:?})", name, data.phase);
let scope = format!("{} (phase: {:?})", name, data.phase);
puffin::profile_scope!("RenderPass::record_compute(...)", scope);
let frame_data = self.get_frame_data(data);
rp.record_compute(frame_data, cmds)
}
@ -175,7 +177,8 @@ impl<T: RenderPass> RenderPassBoxTrait for RenderPassBox<T> {
fn record_render(&self, data: IndexedPhaseData) -> Option<wgpu::RenderBundle> {
let rp = &self.render_pass;
let name = rp.get_name();
println!("{}::record_render(phase: {:?})", name, data.phase);
let scope = format!("{} (phase: {:?})", name, data.phase);
puffin::profile_scope!("RenderPass::record_render(...)", scope);
let frame_data = self.get_frame_data(data);
rp.record_render(frame_data)
}