From 9125878840ce4f9484fa7ba4074d44e47cce8b08 Mon Sep 17 00:00:00 2001 From: Asuro Date: Wed, 3 Nov 2021 01:56:34 +0100 Subject: [PATCH] fix macro --- rust-engine-proc/src/lib.rs | 14 ++++++++++++-- src/vulkan/mod.rs | 2 ++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/rust-engine-proc/src/lib.rs b/rust-engine-proc/src/lib.rs index 55c96e8..512f05f 100644 --- a/rust-engine-proc/src/lib.rs +++ b/rust-engine-proc/src/lib.rs @@ -19,10 +19,20 @@ pub fn perf(attr: TokenStream, item: TokenStream) -> TokenStream { function.block.stmts.insert(0, parse_quote! { let __perf_start = std::time::Instant::now(); }); - function.block.stmts.push(parse_quote! { + + let timer_end = parse_quote! { unsafe { #counter_type::write_perf(#name, __perf_start.elapsed().as_micros()); } - }); + }; + + if let Some(last_stmt) = function.block.stmts.last() { + match last_stmt { + syn::Stmt::Expr(_) => function.block.stmts.insert(function.block.stmts.len() - 1, timer_end), + _ => function.block.stmts.push(timer_end), + } + } else { + function.block.stmts.push(timer_end); + } quote!(#function).into() } diff --git a/src/vulkan/mod.rs b/src/vulkan/mod.rs index 31723df..bab14aa 100644 --- a/src/vulkan/mod.rs +++ b/src/vulkan/mod.rs @@ -307,6 +307,7 @@ impl VulkanRenderer { }, events_loop) } + // #[perf("cb", crate::perf::PerformanceCounter)] fn create_command_buffer(self: &mut Self, fb_index: usize, uniform_buffer_data: &vs::ty::ObjectUniformData, game_objects: &Vec) -> Arc { // General setup let mut builder = AutoCommandBufferBuilder::primary(self.device.clone(), self.queue.family(), CommandBufferUsage::OneTimeSubmit).unwrap(); @@ -681,6 +682,7 @@ pub fn start_event_loop(mut renderer: VulkanRenderer, mut game: Box, e }, Event::RedrawRequested(..) => { PerformanceCounter::perf_next_frame("renderer"); + PerformanceCounter::perf_next_frame("cb"); renderer.render_loop(game.get_ubo(), &game.get_game_objects()); }, Event::MainEventsCleared => {