chore: Update smithay for thread-safety
This commit is contained in:
parent
0f6622d8ee
commit
e78e199663
19 changed files with 54 additions and 94 deletions
58
Cargo.lock
generated
58
Cargo.lock
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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"}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>>,
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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>>,
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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>,
|
||||
|
|
|
|||
|
|
@ -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>,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
})
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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>,
|
||||
|
|
|
|||
|
|
@ -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>;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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>,
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue