diff options
author | 2022-11-29 19:50:58 -0800 | |
---|---|---|
committer | 2023-01-09 18:52:38 +0100 | |
commit | c5cd236b7380c3689792934aeaecd2942713fa67 (patch) | |
tree | c27a0e6ecfdec7936791ee70e07ce19c713095cd /wgpu/src | |
parent | ba20ac8e49aedfa9d822d71784587d0635cec4f8 (diff) | |
download | iced-c5cd236b7380c3689792934aeaecd2942713fa67.tar.gz iced-c5cd236b7380c3689792934aeaecd2942713fa67.tar.bz2 iced-c5cd236b7380c3689792934aeaecd2942713fa67.zip |
Initial profiling support for Iced.
Diffstat (limited to '')
-rw-r--r-- | wgpu/src/backend.rs | 5 | ||||
-rw-r--r-- | wgpu/src/image.rs | 6 | ||||
-rw-r--r-- | wgpu/src/quad.rs | 9 | ||||
-rw-r--r-- | wgpu/src/triangle.rs | 8 |
4 files changed, 28 insertions, 0 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 946eb712..dda9aee1 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -10,6 +10,9 @@ use iced_graphics::{Primitive, Viewport}; use iced_native::alignment; use iced_native::{Font, Size}; +#[cfg(feature = "trace")] +use iced_profiling::info_span; + #[cfg(any(feature = "image", feature = "svg"))] use crate::image; @@ -77,6 +80,8 @@ impl Backend { overlay_text: &[T], ) { log::debug!("Drawing"); + #[cfg(feature = "trace")] + let _ = info_span!("Wgpu::Backend", "PRESENT").entered(); let target_size = viewport.physical_size(); let scale_factor = viewport.scale_factor() as f32; diff --git a/wgpu/src/image.rs b/wgpu/src/image.rs index 390bad90..ed81e0c6 100644 --- a/wgpu/src/image.rs +++ b/wgpu/src/image.rs @@ -23,6 +23,9 @@ use iced_native::image; #[cfg(feature = "svg")] use iced_native::svg; +#[cfg(feature = "trace")] +use iced_profiling::info_span; + #[derive(Debug)] pub struct Pipeline { #[cfg(feature = "image")] @@ -289,6 +292,9 @@ impl Pipeline { target: &wgpu::TextureView, _scale: f32, ) { + #[cfg(feature = "trace")] + let _ = info_span!("Wgpu::Image", "DRAW").entered(); + let instances: &mut Vec<Instance> = &mut Vec::new(); #[cfg(feature = "image")] diff --git a/wgpu/src/quad.rs b/wgpu/src/quad.rs index 027a34be..702122e1 100644 --- a/wgpu/src/quad.rs +++ b/wgpu/src/quad.rs @@ -6,6 +6,9 @@ use bytemuck::{Pod, Zeroable}; use std::mem; use wgpu::util::DeviceExt; +#[cfg(feature = "trace")] +use iced_profiling::info_span; + #[derive(Debug)] pub struct Pipeline { pipeline: wgpu::RenderPipeline, @@ -173,6 +176,9 @@ impl Pipeline { bounds: Rectangle<u32>, target: &wgpu::TextureView, ) { + #[cfg(feature = "trace")] + let _ = info_span!("Wgpu::Quad", "DRAW").entered(); + let uniforms = Uniforms::new(transformation, scale); { @@ -207,6 +213,9 @@ impl Pipeline { instance_buffer.copy_from_slice(instance_bytes); + #[cfg(feature = "trace")] + let _ = info_span!("Wgpu::Quad", "BEGIN_RENDER_PASS").enter(); + { let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs index 061154b6..b7c63167 100644 --- a/wgpu/src/triangle.rs +++ b/wgpu/src/triangle.rs @@ -8,6 +8,8 @@ use crate::Transformation; use iced_graphics::layer::mesh::{self, Mesh}; use iced_graphics::triangle::ColoredVertex2D; use iced_graphics::Size; +#[cfg(feature = "trace")] +use iced_profiling::info_span; #[derive(Debug)] pub struct Pipeline { @@ -53,6 +55,9 @@ impl Pipeline { scale_factor: f32, meshes: &[Mesh<'_>], ) { + #[cfg(feature = "trace")] + let _ = info_span!("Wgpu::Triangle", "DRAW").entered(); + // Count the total amount of vertices & indices we need to handle let count = mesh::attribute_count_of(meshes); @@ -247,6 +252,9 @@ impl Pipeline { (target, None, wgpu::LoadOp::Load) }; + #[cfg(feature = "trace")] + let _ = info_span!("Wgpu::Triangle", "BEGIN_RENDER_PASS").enter(); + let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { label: Some("iced_wgpu::triangle render pass"), |