diff options
author | 2023-01-09 19:10:45 +0100 | |
---|---|---|
committer | 2023-01-09 19:10:45 +0100 | |
commit | 07d755c6a270bd46fe9752ed57b3ceaddda1f081 (patch) | |
tree | cbd8f75d8cd6beeb3c04cbedc0127f2e17b70f56 /wgpu | |
parent | ba20ac8e49aedfa9d822d71784587d0635cec4f8 (diff) | |
parent | 2e5dc1f37a32e1f3aaa6db2aa9cf9c95e83bff42 (diff) | |
download | iced-07d755c6a270bd46fe9752ed57b3ceaddda1f081.tar.gz iced-07d755c6a270bd46fe9752ed57b3ceaddda1f081.tar.bz2 iced-07d755c6a270bd46fe9752ed57b3ceaddda1f081.zip |
Merge pull request #1565 from bungoboingo/feat/tracing
[Feature] Profiling
Diffstat (limited to '')
-rw-r--r-- | wgpu/Cargo.toml | 4 | ||||
-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 |
5 files changed, 32 insertions, 0 deletions
diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml index a40d9967..8dc4b990 100644 --- a/wgpu/Cargo.toml +++ b/wgpu/Cargo.toml @@ -50,6 +50,10 @@ version = "0.5" path = "../graphics" features = ["font-fallback", "font-icons"] +[dependencies.tracing] +version = "0.1.6" +optional = true + [dependencies.encase] version = "0.3.0" features = ["glam"] diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 946eb712..9ab12ce0 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 = "tracing")] +use tracing::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 = "tracing")] + 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..a5e63b17 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 = "tracing")] +use tracing::info_span; + #[derive(Debug)] pub struct Pipeline { #[cfg(feature = "image")] @@ -289,6 +292,9 @@ impl Pipeline { target: &wgpu::TextureView, _scale: f32, ) { + #[cfg(feature = "tracing")] + 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..2f5fcc6b 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 = "tracing")] +use tracing::info_span; + #[derive(Debug)] pub struct Pipeline { pipeline: wgpu::RenderPipeline, @@ -173,6 +176,9 @@ impl Pipeline { bounds: Rectangle<u32>, target: &wgpu::TextureView, ) { + #[cfg(feature = "tracing")] + 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 = "tracing")] + 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..efdd214b 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 = "tracing")] +use tracing::info_span; #[derive(Debug)] pub struct Pipeline { @@ -53,6 +55,9 @@ impl Pipeline { scale_factor: f32, meshes: &[Mesh<'_>], ) { + #[cfg(feature = "tracing")] + 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 = "tracing")] + 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"), |