Add more puffin profile zones

This commit is contained in:
mars 2022-06-28 20:50:45 -06:00
parent 0316b7d2d1
commit 5198114a56
2 changed files with 19 additions and 1 deletions

View File

@ -30,6 +30,8 @@ pub fn build_renderer<T: RenderCallbacks>(
resources: &mut Resources, resources: &mut Resources,
builder: &mut Builder, builder: &mut Builder,
) { ) {
puffin::profile_function!();
let renderer = resources.get_mut::<Renderer>().unwrap(); let renderer = resources.get_mut::<Renderer>().unwrap();
let viewport_info = resources.get::<ViewportInfo>().unwrap(); let viewport_info = resources.get::<ViewportInfo>().unwrap();
let mesh_shaders = resources.get::<mesh::ShaderInfo>().unwrap(); let mesh_shaders = resources.get::<mesh::ShaderInfo>().unwrap();
@ -78,7 +80,13 @@ fn render<T: RenderCallbacks>(
#[resource] mesh_pass: &mut pass::RenderPassBox<mesh::MeshPass>, #[resource] mesh_pass: &mut pass::RenderPassBox<mesh::MeshPass>,
#[resource] debug_pass: &mut pass::RenderPassBox<debug::DebugPass>, #[resource] debug_pass: &mut pass::RenderPassBox<debug::DebugPass>,
) { ) {
let viewports = callbacks.get_viewports(); puffin::profile_function!();
let viewports = {
puffin::profile_scope!("RenderCallbacks::get_viewports()");
callbacks.get_viewports()
};
if viewports.len() > 1 { if viewports.len() > 1 {
eprintln!("Cyborg does not currently support more than one viewport at a time!"); eprintln!("Cyborg does not currently support more than one viewport at a time!");
return; return;
@ -92,6 +100,8 @@ fn render<T: RenderCallbacks>(
#[system] #[system]
fn present<T: RenderCallbacks>(#[resource] callbacks: &mut T) { fn present<T: RenderCallbacks>(#[resource] callbacks: &mut T) {
puffin::profile_function!();
callbacks.present(); callbacks.present();
} }
@ -101,6 +111,8 @@ fn draw_transformed_meshes(
transform: &scene::Transform, transform: &scene::Transform,
mesh: &scene::Mesh, mesh: &scene::Mesh,
) { ) {
puffin::profile_function!();
mesh_pass.add_transformed_meshes(&[mesh::TransformedMesh { mesh_pass.add_transformed_meshes(&[mesh::TransformedMesh {
transform: transform.transform, transform: transform.transform,
mesh: mesh.mesh, mesh: mesh.mesh,
@ -113,6 +125,8 @@ fn draw_debug(
#[resource] debug_pass: &pass::RenderPassBox<debug::DebugPass>, #[resource] debug_pass: &pass::RenderPassBox<debug::DebugPass>,
draw_list: &scene::DebugDrawList, draw_list: &scene::DebugDrawList,
) { ) {
puffin::profile_function!();
debug_pass.add_draw_list(draw_list); debug_pass.add_draw_list(draw_list);
} }
@ -122,6 +136,8 @@ fn draw_debug_transformed(
world: &SubWorld, world: &SubWorld,
query: &mut Query<(&scene::DebugDrawList, &scene::Transform)>, query: &mut Query<(&scene::DebugDrawList, &scene::Transform)>,
) { ) {
puffin::profile_function!();
query.par_iter_chunks(world).for_each(|draw_list_chunk| { query.par_iter_chunks(world).for_each(|draw_list_chunk| {
let mut sub_list = scene::DebugDrawList::default(); let mut sub_list = scene::DebugDrawList::default();
for (draw_list, transform) in draw_list_chunk { for (draw_list, transform) in draw_list_chunk {

View File

@ -179,6 +179,8 @@ impl Renderer {
target: &dyn Viewport, target: &dyn Viewport,
camera: &Camera, camera: &Camera,
) { ) {
puffin::profile_function!();
self.frame_index += 1; self.frame_index += 1;
if self.frame_index >= self.frame_datas.len() { if self.frame_index >= self.frame_datas.len() {
self.frame_index = 0; self.frame_index = 0;