feat: report blur rendering workload

This commit is contained in:
Samuel Onoja committed 2026-09-25 05:49:52 +01:00
1 parent cbf7bf3539
commit 36d52373a1
4 files changed
+74 -12

No files matched your search

+11 -4
View File
@@ -43,7 +43,9 @@ use crate::{
Ferese,
config::{OutputModeRequest, OutputProfile, OutputSettings, OutputTransform},
metrics::RenderMetrics,
winit::{animated_window_elements, cursorless_window_elements, redraw_output},
winit::{
animated_window_elements, cursorless_window_elements, frame_effect_metrics, redraw_output,
},
};
pub struct DirectBackendState {
@@ -444,6 +446,8 @@ fn render_output(state: &mut Ferese, node: DrmNode, crtc: crtc::Handle) {
state.process_dmabuf_imports(&mut device.renderer);
let (mut buffer, age) = output.surface.next_buffer()?;
let elements = animated_window_elements(state, &mut device.renderer, &output.output);
let effects =
frame_effect_metrics(&elements, output.output.current_scale().fractional_scale());
let mut framebuffer = device.renderer.bind(&mut buffer)?;
let result = output.damage_tracker.render_output(
&mut device.renderer,
@@ -512,9 +516,12 @@ fn render_output(state: &mut Ferese, node: DrmNode, crtc: crtc::Handle) {
output
.surface
.queue_buffer(Some(result.sync), Some(damage.clone()), presentation)?;
output
.render_metrics
.record_frame(render_started.elapsed(), &damage, missed_deadlines);
output.render_metrics.record_frame(
render_started.elapsed(),
&damage,
missed_deadlines,
effects,
);
output.frame_pending = true;
Ok(true)
})();