From b21e031668aa3ebb5eec129e451632ca0c2c1703 Mon Sep 17 00:00:00 2001 From: Nova Date: Sun, 3 Sep 2023 17:55:22 -0400 Subject: [PATCH] fix(wayland): no more external dmabufs --- Cargo.toml | 12 ++++++------ src/wayland/state.rs | 18 +++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c05f20f..8d2e5fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -51,7 +51,6 @@ rustc-hash = "1.1.0" tokio = { version = "1.27.0", features = ["rt-multi-thread", "signal"] } send_wrapper = "0.6.0" prisma = "0.1.1" -xkbcommon = { version = "0.5.0", default-features = false, optional = true } stardust-xr = "0.14.0" directories = "5.0.0" serde = { version = "1.0.160", features = ["derive"] } @@ -62,11 +61,7 @@ global_counter = "0.2.2" rand = "0.8.5" atty = "0.2.14" -[dependencies.stereokit] -default-features = false -features = ["linux-egl"] -version = "0.16.9" - +xkbcommon = { version = "0.5.0", default-features = false, optional = true } [dependencies.smithay] # git = "https://github.com/technobaboo/smithay.git" # Until we get stereokit to understand OES samplers and external textures git = "https://github.com/smithay/smithay.git" # Until we get stereokit to understand OES samplers and external textures @@ -76,6 +71,11 @@ features = ["desktop", "backend_drm", "renderer_gl", "wayland_frontend"] version = "*" optional = true +[dependencies.stereokit] +default-features = false +features = ["linux-egl"] +version = "0.16.9" + [dependencies.console-subscriber] version = "0.1.8" optional = true diff --git a/src/wayland/state.rs b/src/wayland/state.rs index b78b51a..0100039 100644 --- a/src/wayland/state.rs +++ b/src/wayland/state.rs @@ -2,11 +2,7 @@ use crate::wayland::seat::SeatData; use once_cell::sync::OnceCell; use parking_lot::Mutex; use smithay::{ - backend::{ - allocator::dmabuf::Dmabuf, - egl::EGLDevice, - renderer::{gles::GlesRenderer, ImportDma}, - }, + backend::{allocator::dmabuf::Dmabuf, egl::EGLDevice, renderer::gles::GlesRenderer}, delegate_dmabuf, delegate_output, delegate_shm, output::{Mode, Output, Scale, Subpixel}, reexports::{ @@ -92,11 +88,16 @@ impl WaylandState { let render_node = EGLDevice::device_for_display(renderer.egl_context().display()) .and_then(|device| device.try_get_render_node()); + let dmabuf_formats = renderer + .egl_context() + .dmabuf_render_formats() + .iter() + .cloned() + .collect::>(); let dmabuf_default_feedback = match render_node { Ok(Some(node)) => { - let dmabuf_formats = renderer.dmabuf_formats().collect::>(); let dmabuf_default_feedback = - DmabufFeedbackBuilder::new(node.dev_id(), dmabuf_formats) + DmabufFeedbackBuilder::new(node.dev_id(), dmabuf_formats.clone()) .build() .unwrap(); Some(dmabuf_default_feedback) @@ -120,10 +121,9 @@ impl WaylandState { ); (dmabuf_state, dmabuf_global, Some(default_feedback)) } else { - let dmabuf_formats = renderer.dmabuf_formats().collect::>(); let mut dmabuf_state = DmabufState::new(); let dmabuf_global = - dmabuf_state.create_global::(&display_handle, dmabuf_formats); + dmabuf_state.create_global::(&display_handle, dmabuf_formats.clone()); (dmabuf_state, dmabuf_global, None) };