debug: Fix running with new kms backend

This commit is contained in:
Victoria Brekenfeld 2024-06-19 16:36:02 +02:00 committed by Victoria Brekenfeld
parent bfbf20d61d
commit ddcb435632
7 changed files with 93 additions and 90 deletions

View file

@ -90,11 +90,14 @@ pub use self::timings::Timings;
use super::{drm_helpers, render::gles::GbmGlowBackend};
#[cfg(feature = "debug")]
static INTEL_LOGO: &'static [u8] = include_bytes!("../resources/icons/intel.svg");
use smithay_egui::EguiState;
#[cfg(feature = "debug")]
static AMD_LOGO: &'static [u8] = include_bytes!("../resources/icons/amd.svg");
static INTEL_LOGO: &'static [u8] = include_bytes!("../../../../resources/icons/intel.svg");
#[cfg(feature = "debug")]
static NVIDIA_LOGO: &'static [u8] = include_bytes!("../resources/icons/nvidia.svg");
static AMD_LOGO: &'static [u8] = include_bytes!("../../../../resources/icons/amd.svg");
#[cfg(feature = "debug")]
static NVIDIA_LOGO: &'static [u8] = include_bytes!("../../../../resources/icons/nvidia.svg");
#[derive(Debug)]
pub struct Surface {
@ -640,6 +643,19 @@ impl SurfaceThreadState {
unsafe { GlowRenderer::new(egl) }.context("Failed to create renderer")?;
init_shaders(renderer.borrow_mut()).context("Failed to initialize shaders")?;
#[cfg(feature = "debug")]
{
self.egui
.load_svg(&mut renderer, String::from("intel"), INTEL_LOGO)
.unwrap();
self.egui
.load_svg(&mut renderer, String::from("amd"), AMD_LOGO)
.unwrap();
self.egui
.load_svg(&mut renderer, String::from("nvidia"), NVIDIA_LOGO)
.unwrap();
}
self.api.as_mut().add_node(node, gbm, renderer);
/*
} else {
@ -647,20 +663,6 @@ impl SurfaceThreadState {
}
*/
#[cfg(feature = "debug")]
{
let renderer = self.api.single_renderer(node);
self.egui
.load_svg(renderer, String::from("intel"), INTEL_LOGO)
.unwrap();
self.egui
.load_svg(renderer, String::from("amd"), AMD_LOGO)
.unwrap();
self.egui
.load_svg(renderer, String::from("nvidia"), NVIDIA_LOGO)
.unwrap();
}
Ok(())
}
@ -840,13 +842,6 @@ impl SurfaceThreadState {
};
self.timings.start_render(&self.clock);
#[cfg(feature = "debug")]
if let Some(rd) = self.timings.rd.as_mut() {
rd.start_frame_capture(
renderer.glow_renderer().egl_context().get_context_handle(),
std::ptr::null(),
);
}
let mut elements = {
let shell = self.shell.read().unwrap();

View file

@ -148,23 +148,25 @@ impl Timings {
.unwrap_or(Duration::ZERO)
}
/*
pub fn max_time_to_display(&self) -> Duration {
pub fn max_frametime(&self, window: usize) -> Duration {
self.previous_frames
.iter()
.map(|f| f.time_to_display())
.rev()
.take(window)
.map(|f| f.frame_time())
.max()
.unwrap_or(Duration::ZERO)
}
pub fn min_time_to_display(&self) -> Duration {
pub fn min_frametime(&self, window: usize) -> Duration {
self.previous_frames
.iter()
.map(|f| f.time_to_display())
.rev()
.take(window)
.map(|f| f.frame_time())
.min()
.unwrap_or(Duration::ZERO)
}
*/
pub fn avg_rendertime(&self) -> Duration {
if self.previous_frames.is_empty() {
@ -178,7 +180,7 @@ impl Timings {
}
pub fn avg_frametime(&self, window: usize) -> Duration {
if self.previous_frames.is_empty() {
if self.previous_frames.is_empty() || window == 0 {
return MIN_RENDER_TIME;
}

View file

@ -16,9 +16,6 @@ use smithay::{
utils::{Buffer as BufferCoords, Logical, Physical, Point, Rectangle, Scale},
};
#[cfg(feature = "debug")]
use smithay::backend::renderer::{element::texture::TextureRenderElement, gles::GlesTexture};
use super::{cursor::CursorRenderElement, GlMultiError, GlMultiFrame, GlMultiRenderer};
pub enum CosmicElement<R>

View file

@ -508,7 +508,7 @@ where
let output_geo = output.geometry();
let scale = output.current_scale().fractional_scale();
if let Some((state, timings)) = _fps.as_mut() {
if let Some((state, timings)) = _fps {
let debug_active = shell.read().unwrap().debug_active;
let fps_overlay = fps_ui(
_gpu,
@ -523,7 +523,7 @@ where
),
scale,
)
.map_err(<R as Renderer>::Error::from)
.map_err(FromGlesError::from_gles_error)
.map_err(RenderError::Rendering)?;
elements.push(fps_overlay.into());
}