summaryrefslogtreecommitdiffstats
path: root/wgpu/src
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2022-11-29 19:50:58 -0800
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-01-09 18:52:38 +0100
commitc5cd236b7380c3689792934aeaecd2942713fa67 (patch)
treec27a0e6ecfdec7936791ee70e07ce19c713095cd /wgpu/src
parentba20ac8e49aedfa9d822d71784587d0635cec4f8 (diff)
downloadiced-c5cd236b7380c3689792934aeaecd2942713fa67.tar.gz
iced-c5cd236b7380c3689792934aeaecd2942713fa67.tar.bz2
iced-c5cd236b7380c3689792934aeaecd2942713fa67.zip
Initial profiling support for Iced.
Diffstat (limited to '')
-rw-r--r--wgpu/src/backend.rs5
-rw-r--r--wgpu/src/image.rs6
-rw-r--r--wgpu/src/quad.rs9
-rw-r--r--wgpu/src/triangle.rs8
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"),