chore: Update smithay for thread-safety

This commit is contained in:
Victoria Brekenfeld 2024-06-07 18:58:33 +02:00 committed by Victoria Brekenfeld
parent 0f6622d8ee
commit e78e199663
19 changed files with 54 additions and 94 deletions

58
Cargo.lock generated
View file

@ -880,7 +880,6 @@ dependencies = [
"png",
"profiling",
"regex",
"renderdoc",
"ron",
"rust-embed",
"rustix 0.38.34",
@ -1694,9 +1693,6 @@ name = "float-cmp"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
dependencies = [
"num-traits",
]
[[package]]
name = "float_next_after"
@ -2903,7 +2899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
dependencies = [
"cfg-if",
"windows-targets 0.48.5",
"windows-targets 0.52.5",
]
[[package]]
@ -3484,7 +3480,7 @@ version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 2.0.66",
@ -3916,15 +3912,6 @@ dependencies = [
"toml_edit 0.19.15",
]
[[package]]
name = "proc-macro-crate"
version = "3.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
dependencies = [
"toml_edit 0.21.1",
]
[[package]]
name = "proc-macro-error"
version = "1.0.4"
@ -4180,21 +4167,6 @@ version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
[[package]]
name = "renderdoc"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "272da9ec1e28b0ef17df4dcefad820b13f098ebe9c82697111fc57ccff621e12"
dependencies = [
"bitflags 1.3.2",
"float-cmp",
"libloading 0.7.4",
"once_cell",
"renderdoc-sys",
"winapi",
"wio",
]
[[package]]
name = "renderdoc-sys"
version = "1.1.0"
@ -4581,7 +4553,7 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "smithay"
version = "0.3.0"
source = "git+https://github.com/smithay//smithay?rev=74e8c4f#74e8c4f6ceef2c1bd9b31db0c7809470e05165dc"
source = "git+https://github.com/smithay//smithay?branch=feature/thread-safe-rendering#236468917cfd8b2114432f3e205a757b338221dc"
dependencies = [
"appendlist",
"ash",
@ -5124,17 +5096,6 @@ dependencies = [
"winnow 0.5.40",
]
[[package]]
name = "toml_edit"
version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
dependencies = [
"indexmap",
"toml_datetime",
"winnow 0.5.40",
]
[[package]]
name = "toml_edit"
version = "0.22.13"
@ -6278,15 +6239,6 @@ dependencies = [
"memchr",
]
[[package]]
name = "wio"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
dependencies = [
"winapi",
]
[[package]]
name = "x11-dl"
version = "2.21.0"
@ -6461,7 +6413,7 @@ version = "3.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7131497b0f887e8061b430c530240063d33bf9455fa34438f388a245da69e0a5"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-crate",
"proc-macro2",
"quote",
"regex",
@ -6535,7 +6487,7 @@ version = "3.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37c24dc0bed72f5f90d1f8bb5b07228cbf63b3c6e9f82d82559d4bae666e7ed9"
dependencies = [
"proc-macro-crate 1.3.1",
"proc-macro-crate",
"proc-macro2",
"quote",
"syn 1.0.109",

View file

@ -36,7 +36,6 @@ once_cell = "1.18.0"
ordered-float = "4.0"
png = "0.17.5"
regex = "1"
renderdoc = {version = "0.11.0", optional = true}
ron = "0.8"
rust-embed = {version = "8.0", features = ["debug-embed"]}
sanitize-filename = "0.5.0"
@ -93,7 +92,7 @@ optional = true
rev = "cdc652e0"
[features]
debug = ["egui", "egui_plot", "smithay-egui", "renderdoc", "anyhow/backtrace"]
debug = ["egui", "egui_plot", "smithay-egui", "anyhow/backtrace"]
default = ["systemd"]
systemd = ["libsystemd"]
profile-with-tracy = ["profiling/profile-with-tracy"]
@ -118,4 +117,4 @@ inherits = "release"
lto = "fat"
[patch."https://github.com/Smithay/smithay.git"]
smithay = {git = "https://github.com/smithay//smithay", rev = "74e8c4f"}
smithay = {git = "https://github.com/smithay//smithay", branch = "feature/thread-safe-rendering"} #rev = "74e8c4f"}

View file

@ -319,7 +319,7 @@ pub fn draw_cursor<R>(
) -> Vec<(CursorRenderElement<R>, Point<i32, BufferCoords>)>
where
R: Renderer + ImportMem + ImportAll,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
{
// draw the cursor as relevant
// reset the cursor if the surface is no longer alive

View file

@ -398,7 +398,7 @@ pub fn cursor_elements<'frame, R>(
) -> Vec<CosmicElement<R>>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
let scale = output.current_scale().fractional_scale();
@ -486,8 +486,8 @@ pub fn workspace_elements<R>(
) -> Result<Vec<CosmicElement<R>>, RenderError<R>>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::Error: From<GlesError>,
<R as Renderer>::TextureId: Send + Clone + 'static,
<R as Renderer>::Error: FromGlesError,
CosmicMappedRenderElement<R>: RenderElement<R>,
WorkspaceRenderElement<R>: RenderElement<R>,
{
@ -972,8 +972,8 @@ where
+ Offscreen<OffTarget>
+ Blit<Target>
+ AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::Error: From<GlesError>,
<R as Renderer>::TextureId: Send + Clone + 'static,
<R as Renderer>::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
CosmicMappedRenderElement<R>: RenderElement<R>,
WorkspaceRenderElement<R>: RenderElement<R>,
@ -1128,18 +1128,13 @@ where
+ Bind<Target>
+ Offscreen<OffTarget>
+ AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::Error: From<GlesError>,
<R as Renderer>::TextureId: Send + Clone + 'static,
<R as Renderer>::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
CosmicMappedRenderElement<R>: RenderElement<R>,
WorkspaceRenderElement<R>: RenderElement<R>,
{
if let Some(ref mut fps) = fps {
fps.start();
#[cfg(feature = "debug")]
if let Some(rd) = fps.rd.as_mut() {
rd.start_frame_capture(
renderer.glow_renderer().egl_context().get_context_handle(),
std::ptr::null(),
);
}

View file

@ -621,7 +621,7 @@ impl CosmicMapped {
) -> (Vec<C>, Vec<C>)
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
C: From<CosmicMappedRenderElement<R>>,
{

View file

@ -550,7 +550,7 @@ impl CosmicStack {
) -> (Vec<C>, Vec<C>)
where
R: Renderer + ImportAll + ImportMem,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
C: From<CosmicStackRenderElement<R>>,
{
let offset = self

View file

@ -407,7 +407,11 @@ impl CosmicSurface {
match self.0.underlying_surface() {
WindowSurface::Wayland(toplevel) => {
Some(with_states(toplevel.wl_surface(), |states| {
states.cached_state.current::<SurfaceCachedState>().min_size
states
.cached_state
.get::<SurfaceCachedState>()
.current()
.min_size
}))
.filter(|size| !(size.w == 0 && size.h == 0))
}
@ -426,7 +430,11 @@ impl CosmicSurface {
match self.0.underlying_surface() {
WindowSurface::Wayland(toplevel) => {
Some(with_states(toplevel.wl_surface(), |states| {
states.cached_state.current::<SurfaceCachedState>().max_size
states
.cached_state
.get::<SurfaceCachedState>()
.current()
.max_size
}))
.filter(|size| !(size.w == 0 && size.h == 0))
}

View file

@ -321,7 +321,7 @@ impl CosmicWindow {
) -> (Vec<C>, Vec<C>)
where
R: Renderer + ImportAll + ImportMem,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
C: From<CosmicWindowRenderElement<R>>,
{
let has_ssd = self.0.with_program(|p| p.has_ssd(false));

View file

@ -63,7 +63,7 @@ impl MenuGrabState {
pub fn render<I, R>(&self, renderer: &mut R, output: &Output) -> Vec<I>
where
R: Renderer + ImportMem,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
I: From<MemoryRenderBufferRenderElement<R>>,
{
let scale = output.current_scale().fractional_scale();

View file

@ -69,7 +69,7 @@ impl MoveGrabState {
pub fn render<I, R>(&self, renderer: &mut R, output: &Output, theme: &CosmicTheme) -> Vec<I>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
I: From<CosmicMappedRenderElement<R>>,
{

View file

@ -1242,7 +1242,7 @@ impl FloatingLayout {
)
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>,
CosmicStackRenderElement<R>: RenderElement<R>,

View file

@ -3836,7 +3836,7 @@ impl TilingLayout {
>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>,
CosmicStackRenderElement<R>: RenderElement<R>,
@ -4681,7 +4681,7 @@ fn render_old_tree<R>(
)
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>,
CosmicStackRenderElement<R>: RenderElement<R>,
@ -4841,7 +4841,7 @@ fn render_new_tree<R>(
)
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>,
CosmicStackRenderElement<R>: RenderElement<R>,

View file

@ -1907,9 +1907,9 @@ impl Shell {
let wants_focus = {
with_states(layer_surface.wl_surface(), |states| {
let state = states.cached_state.current::<LayerSurfaceCachedState>();
matches!(state.layer, Layer::Top | Layer::Overlay)
&& state.keyboard_interactivity != KeyboardInteractivity::None
let mut state = states.cached_state.get::<LayerSurfaceCachedState>();
matches!(state.current().layer, Layer::Top | Layer::Overlay)
&& state.current().keyboard_interactivity != KeyboardInteractivity::None
})
};

View file

@ -1036,7 +1036,7 @@ impl Workspace {
>
where
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
CosmicMappedRenderElement<R>: RenderElement<R>,
CosmicWindowRenderElement<R>: RenderElement<R>,
CosmicStackRenderElement<R>: RenderElement<R>,

View file

@ -843,7 +843,7 @@ impl<P, R> AsRenderElements<R> for IcedElement<P>
where
P: Program + Send + 'static,
R: Renderer + ImportMem,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::TextureId: Send + Clone + 'static,
{
type RenderElement = MemoryRenderBufferRenderElement<R>;

View file

@ -103,7 +103,8 @@ impl CompositorHandler for State {
let maybe_dmabuf = with_states(surface, |surface_data| {
surface_data
.cached_state
.pending::<SurfaceAttributes>()
.get::<SurfaceAttributes>()
.pending()
.buffer
.as_ref()
.and_then(|assignment| match assignment {

View file

@ -238,8 +238,8 @@ pub fn render_workspace_to_buffer(
+ Offscreen<GlesRenderbuffer>
+ Blit<Dmabuf>
+ AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::Error: From<GlesError>,
<R as Renderer>::TextureId: Send + Clone + 'static,
<R as Renderer>::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
CosmicMappedRenderElement<R>: RenderElement<R>,
WorkspaceRenderElement<R>: RenderElement<R>,
@ -505,8 +505,8 @@ pub fn render_window_to_buffer(
+ Offscreen<GlesRenderbuffer>
+ Blit<Dmabuf>
+ AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::Error: From<GlesError>,
<R as Renderer>::TextureId: Send + Clone + 'static,
<R as Renderer>::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
CosmicMappedRenderElement<R>: RenderElement<R>,
{
@ -764,8 +764,8 @@ pub fn render_cursor_to_buffer(
+ Offscreen<GlesRenderbuffer>
+ Blit<Dmabuf>
+ AsGlowRenderer,
<R as Renderer>::TextureId: Clone + 'static,
<R as Renderer>::Error: From<GlesError>,
<R as Renderer>::TextureId: Send + Clone + 'static,
<R as Renderer>::Error: FromGlesError,
CosmicElement<R>: RenderElement<R>,
CosmicMappedRenderElement<R>: RenderElement<R>,
{

View file

@ -413,7 +413,11 @@ impl XdgShellHandler for State {
) {
let seat = Seat::from_resource(&seat).unwrap();
location -= with_states(surface.wl_surface(), |states| {
states.cached_state.current::<SurfaceCachedState>().geometry
states
.cached_state
.get::<SurfaceCachedState>()
.current()
.geometry
})
.unwrap_or_default()
.loc;

View file

@ -425,7 +425,8 @@ fn get_popup_toplevel_coords(popup: &PopupSurface) -> Point<i32, Logical> {
offset += with_states(&parent, |states| {
states
.cached_state
.current::<SurfaceCachedState>()
.get::<SurfaceCachedState>()
.current()
.geometry
.map(|x| x.loc)
.unwrap_or_else(|| (0, 0).into())