debug: Fix running with new kms backend
This commit is contained in:
parent
bfbf20d61d
commit
ddcb435632
7 changed files with 93 additions and 90 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue