From f1cca1a6ca0fb176e7681c5212ecd9f34678bdec Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 16 Apr 2025 07:45:56 +0300 Subject: Back out "chore: update smithay" This backs out commit 763cd564e32932e5f05b983c93328300f396216b. There are graphical glitches and a panic. --- Cargo.lock | 11 ++--------- src/render_helpers/offscreen.rs | 16 ++++++++-------- src/render_helpers/surface.rs | 2 +- src/render_helpers/texture.rs | 8 ++++---- 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a2f576d5..191b6cce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -329,12 +329,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atomic_float" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628d228f918ac3b82fe590352cc719d30664a0c13ca3a60266fe02c7132d480a" - [[package]] name = "autocfg" version = "1.4.0" @@ -3407,11 +3401,10 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "smithay" version = "0.5.0" -source = "git+https://github.com/Smithay/smithay.git#5420c2225c66ed12d3e2faa3ec5fe36075051e51" +source = "git+https://github.com/Smithay/smithay.git#16d3c0f36c0c27c46ad44f1c9d8a592cca92b1c3" dependencies = [ "aliasable", "appendlist", - "atomic_float", "bitflags 2.9.0", "calloop 0.14.2", "cc", @@ -3480,7 +3473,7 @@ dependencies = [ [[package]] name = "smithay-drm-extras" version = "0.1.0" -source = "git+https://github.com/Smithay/smithay.git#5420c2225c66ed12d3e2faa3ec5fe36075051e51" +source = "git+https://github.com/Smithay/smithay.git#16d3c0f36c0c27c46ad44f1c9d8a592cca92b1c3" dependencies = [ "drm", "libdisplay-info", diff --git a/src/render_helpers/offscreen.rs b/src/render_helpers/offscreen.rs index acd3ce7d..71959404 100644 --- a/src/render_helpers/offscreen.rs +++ b/src/render_helpers/offscreen.rs @@ -13,7 +13,7 @@ use smithay::backend::renderer::utils::{ CommitCounter, DamageBag, DamageSet, DamageSnapshot, OpaqueRegions, }; use smithay::backend::renderer::{ - Bind as _, Color32F, ContextId, Frame as _, Offscreen as _, Renderer, Texture as _, + Bind as _, Color32F, Frame as _, Offscreen as _, Renderer, Texture as _, }; use smithay::utils::{Buffer, Logical, Physical, Point, Rectangle, Scale, Size, Transform}; @@ -37,7 +37,7 @@ struct Inner { /// The texture with offscreened contents. texture: GlesTexture, /// Id of the renderer that the texture comes from. - context_id: ContextId, + renderer_id: usize, /// Scale of the texture. scale: Scale, /// Damage tracker for drawing to the texture. @@ -50,7 +50,7 @@ struct Inner { pub struct OffscreenRenderElement { id: Id, texture: GlesTexture, - context_id: ContextId, + renderer_id: usize, scale: Scale, damage: DamageSnapshot, offset: Point, @@ -92,7 +92,7 @@ impl OffscreenBuffer { let mut reason = ""; if let Some(Inner { texture, - context_id, + renderer_id, .. }) = inner.as_mut() { @@ -109,7 +109,7 @@ impl OffscreenBuffer { reason = "not unique"; *inner = None; - } else if *context_id != renderer.context_id() { + } else if *renderer_id != renderer.id() { reason = "renderer id changed"; *inner = None; @@ -134,7 +134,7 @@ impl OffscreenBuffer { inner.insert(Inner { texture, - context_id: renderer.context_id(), + renderer_id: renderer.id(), scale, damage, outer_damage: DamageBag::default(), @@ -180,7 +180,7 @@ impl OffscreenBuffer { let elem = OffscreenRenderElement { id: self.id.clone(), texture: inner.texture.clone(), - context_id: inner.context_id.clone(), + renderer_id: inner.renderer_id, scale, damage: inner.outer_damage.snapshot(), offset, @@ -305,7 +305,7 @@ impl RenderElement for OffscreenRenderElement { damage: &[Rectangle], opaque_regions: &[Rectangle], ) -> Result<(), GlesError> { - if frame.context_id() != self.context_id { + if frame.id() != self.renderer_id { warn!("trying to render texture from different renderer"); return Ok(()); } diff --git a/src/render_helpers/surface.rs b/src/render_helpers/surface.rs index 893d08f3..96065923 100644 --- a/src/render_helpers/surface.rs +++ b/src/render_helpers/surface.rs @@ -53,7 +53,7 @@ pub fn render_snapshot_from_surface_tree( } let data = data.lock().unwrap(); - let Some(texture) = data.texture::(&renderer.context_id()) else { + let Some(texture) = data.texture::(renderer.id()) else { return; }; diff --git a/src/render_helpers/texture.rs b/src/render_helpers/texture.rs index b5901ffc..2967c361 100644 --- a/src/render_helpers/texture.rs +++ b/src/render_helpers/texture.rs @@ -2,7 +2,7 @@ use smithay::backend::allocator::Fourcc; use smithay::backend::renderer::element::{Element, Id, Kind, RenderElement, UnderlyingStorage}; use smithay::backend::renderer::gles::GlesTexture; use smithay::backend::renderer::utils::{CommitCounter, OpaqueRegions}; -use smithay::backend::renderer::{ContextId, Frame as _, ImportMem, Renderer, Texture}; +use smithay::backend::renderer::{Frame as _, ImportMem, Renderer, Texture}; use smithay::utils::{Buffer, Logical, Physical, Point, Rectangle, Scale, Size, Transform}; use super::memory::MemoryBuffer; @@ -12,7 +12,7 @@ use super::memory::MemoryBuffer; pub struct TextureBuffer { id: Id, commit_counter: CommitCounter, - context_id: ContextId, + renderer_id: usize, texture: T, scale: Scale, transform: Transform, @@ -41,7 +41,7 @@ impl TextureBuffer { TextureBuffer { id: Id::new(), commit_counter: CommitCounter::default(), - context_id: renderer.context_id(), + renderer_id: renderer.id(), texture, scale: scale.into(), transform, @@ -226,7 +226,7 @@ where damage: &[Rectangle], opaque_regions: &[Rectangle], ) -> Result<(), R::Error> { - if frame.context_id() != self.buffer.context_id { + if frame.id() != self.buffer.renderer_id { warn!("trying to render texture from different renderer"); return Ok(()); } -- cgit