fix macro
This commit is contained in:
@@ -19,10 +19,20 @@ pub fn perf(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||||||
function.block.stmts.insert(0, parse_quote! {
|
function.block.stmts.insert(0, parse_quote! {
|
||||||
let __perf_start = std::time::Instant::now();
|
let __perf_start = std::time::Instant::now();
|
||||||
});
|
});
|
||||||
function.block.stmts.push(parse_quote! {
|
|
||||||
|
let timer_end = parse_quote! {
|
||||||
unsafe {
|
unsafe {
|
||||||
#counter_type::write_perf(#name, __perf_start.elapsed().as_micros());
|
#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()
|
quote!(#function).into()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -307,6 +307,7 @@ impl VulkanRenderer {
|
|||||||
}, events_loop)
|
}, 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<GameObject>) -> Arc<PrimaryAutoCommandBuffer> {
|
fn create_command_buffer(self: &mut Self, fb_index: usize, uniform_buffer_data: &vs::ty::ObjectUniformData, game_objects: &Vec<GameObject>) -> Arc<PrimaryAutoCommandBuffer> {
|
||||||
// General setup
|
// General setup
|
||||||
let mut builder = AutoCommandBufferBuilder::primary(self.device.clone(), self.queue.family(), CommandBufferUsage::OneTimeSubmit).unwrap();
|
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<dyn Game>, e
|
|||||||
},
|
},
|
||||||
Event::RedrawRequested(..) => {
|
Event::RedrawRequested(..) => {
|
||||||
PerformanceCounter::perf_next_frame("renderer");
|
PerformanceCounter::perf_next_frame("renderer");
|
||||||
|
PerformanceCounter::perf_next_frame("cb");
|
||||||
renderer.render_loop(game.get_ubo(), &game.get_game_objects());
|
renderer.render_loop(game.get_ubo(), &game.get_game_objects());
|
||||||
},
|
},
|
||||||
Event::MainEventsCleared => {
|
Event::MainEventsCleared => {
|
||||||
|
|||||||
Reference in New Issue
Block a user