diff --git a/Cargo.lock b/Cargo.lock index 06498aa7..e255661b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4915,7 +4915,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smithay" version = "0.7.0" -source = "git+https://github.com/smithay/smithay.git?rev=20d2dac#20d2dacd71394b5f96f6ace0a70a6f20dc62c0c6" +source = "git+https://github.com/smithay/smithay.git?rev=d3bdae4#d3bdae43afb37a52acbeeada574cc05b06b539ba" dependencies = [ "aliasable", "appendlist", diff --git a/Cargo.toml b/Cargo.toml index 30ad630f..c2fc0dbf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -147,4 +147,4 @@ cosmic-protocols = { git = "https://github.com/pop-os//cosmic-protocols", branch cosmic-client-toolkit = { git = "https://github.com/pop-os//cosmic-protocols", branch = "main" } [patch.crates-io] -smithay = { git = "https://github.com/smithay/smithay.git", rev = "20d2dac" } +smithay = { git = "https://github.com/smithay/smithay.git", rev = "d3bdae4" } diff --git a/src/backend/kms/render/gles.rs b/src/backend/kms/render/gles.rs index b5c8f8c5..22c22c7a 100644 --- a/src/backend/kms/render/gles.rs +++ b/src/backend/kms/render/gles.rs @@ -8,14 +8,14 @@ use smithay::backend::{ }, drm::{CreateDrmNodeError, DrmNode}, renderer::{ - gles::GlesError, + gles::{GlesError, GlesRenderer}, glow::GlowRenderer, multigpu::{ApiDevice, Error as MultiError, GraphicsApi}, RendererSuper, }, SwapBuffersError, }; -use std::cell::Cell; +use std::{borrow::Borrow, cell::Cell}; use std::{ collections::HashMap, fmt, @@ -177,6 +177,9 @@ impl ApiDevice for GbmGlowDevice { fn node(&self) -> &DrmNode { &self.node } + fn can_do_cross_device_imports(&self) -> bool { + !Borrow::::borrow(&self.renderer).is_software() + } } impl FromGlesError for MultiError, T> diff --git a/src/backend/kms/render/pixman.rs b/src/backend/kms/render/pixman.rs index 8e627289..70764f20 100644 --- a/src/backend/kms/render/pixman.rs +++ b/src/backend/kms/render/pixman.rs @@ -152,4 +152,8 @@ impl ApiDevice for GbmPixmanDevice { fn node(&self) -> &DrmNode { &self.node } + + fn can_do_cross_device_imports(&self) -> bool { + false + } }