render_helpers: Add Tracy spans to draw() calls

This commit is contained in:
Ivan Molodetskikh
2025-12-28 07:46:13 +03:00
parent 74d14be01f
commit bdf394260a
4 changed files with 15 additions and 4 deletions
+5 -1
View File
@@ -14,6 +14,7 @@ use super::renderer::NiriRenderer;
use super::shader_element::ShaderRenderElement;
use super::shaders::{mat3_uniform, ProgramType, Shaders};
use crate::backend::tty::{TtyFrame, TtyRenderer, TtyRendererError};
use crate::render_helpers::renderer::AsGlesFrame as _;
/// Renders a wide variety of borders and border parts.
///
@@ -284,6 +285,7 @@ impl RenderElement<GlesRenderer> for BorderRenderElement {
damage: &[Rectangle<i32, Physical>],
opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), GlesError> {
let _span = tracy_client::span!("BorderRenderElement::draw");
RenderElement::<GlesRenderer>::draw(&self.inner, frame, src, dst, damage, opaque_regions)
}
@@ -301,7 +303,9 @@ impl<'render> RenderElement<TtyRenderer<'render>> for BorderRenderElement {
damage: &[Rectangle<i32, Physical>],
opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), TtyRendererError<'render>> {
RenderElement::<TtyRenderer<'_>>::draw(&self.inner, frame, src, dst, damage, opaque_regions)
let frame = frame.as_gles_frame();
RenderElement::<GlesRenderer>::draw(self, frame, src, dst, damage, opaque_regions)?;
Ok(())
}
fn underlying_storage(
+3 -2
View File
@@ -171,6 +171,7 @@ impl RenderElement<GlesRenderer> for ResizeRenderElement {
damage: &[Rectangle<i32, Physical>],
opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), GlesError> {
let _span = tracy_client::span!("ResizeRenderElement::draw");
RenderElement::<GlesRenderer>::draw(&self.0, frame, src, dst, damage, opaque_regions)?;
Ok(())
}
@@ -189,8 +190,8 @@ impl<'render> RenderElement<TtyRenderer<'render>> for ResizeRenderElement {
damage: &[Rectangle<i32, Physical>],
opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), TtyRendererError<'render>> {
let gles_frame = frame.as_gles_frame();
RenderElement::<GlesRenderer>::draw(&self.0, gles_frame, src, dst, damage, opaque_regions)?;
let frame = frame.as_gles_frame();
RenderElement::<GlesRenderer>::draw(self, frame, src, dst, damage, opaque_regions)?;
Ok(())
}
+2
View File
@@ -294,6 +294,8 @@ impl RenderElement<GlesRenderer> for ShaderRenderElement {
damage: &[Rectangle<i32, Physical>],
_opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), GlesError> {
let _span = tracy_client::span!("ShaderRenderElement::draw");
let frame = frame.as_gles_frame();
let Some(shader) = Shaders::get_from_frame(frame).program(self.program) else {
+5 -1
View File
@@ -12,6 +12,7 @@ use super::renderer::NiriRenderer;
use super::shader_element::ShaderRenderElement;
use super::shaders::{mat3_uniform, ProgramType, Shaders};
use crate::backend::tty::{TtyFrame, TtyRenderer, TtyRendererError};
use crate::render_helpers::renderer::AsGlesFrame as _;
/// Renders a rounded rectangle shadow.
#[derive(Debug, Clone)]
@@ -245,6 +246,7 @@ impl RenderElement<GlesRenderer> for ShadowRenderElement {
damage: &[Rectangle<i32, Physical>],
opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), GlesError> {
let _span = tracy_client::span!("ShadowRenderElement::draw");
RenderElement::<GlesRenderer>::draw(&self.inner, frame, src, dst, damage, opaque_regions)
}
@@ -262,7 +264,9 @@ impl<'render> RenderElement<TtyRenderer<'render>> for ShadowRenderElement {
damage: &[Rectangle<i32, Physical>],
opaque_regions: &[Rectangle<i32, Physical>],
) -> Result<(), TtyRendererError<'render>> {
RenderElement::<TtyRenderer<'_>>::draw(&self.inner, frame, src, dst, damage, opaque_regions)
let frame = frame.as_gles_frame();
RenderElement::<GlesRenderer>::draw(self, frame, src, dst, damage, opaque_regions)?;
Ok(())
}
fn underlying_storage(