slint icon indicating copy to clipboard operation
slint copied to clipboard

slint/examples/wgpu_texture fails to run on Wayland

Open jturcotte opened this issue 1 month ago • 1 comments

Bug Description

I tried to upgrade from 1.13.1 to 1.14.1 but I'm now getting this error when running cargo run in slint/examples/wgpu_texture.

If I try to add the TEXTURE_FORMAT_16BIT_NORM feature, I get this error instead: "Texture view format Rgba16Unorm is not renderable".

wgpu error: Validation Error

Caused by:
  In Texture::create_view
    Features Features { features_wgpu: FeaturesWGPU(TEXTURE_FORMAT_16BIT_NORM), features_webgpu: FeaturesWebGPU(0x0) } are required but not enabled on the device


stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/ba2142a19c1acabe770433418fa395b8a0ef47a4/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /rustc/ba2142a19c1acabe770433418fa395b8a0ef47a4/library/core/src/panicking.rs:80:14
   2: wgpu::backend::wgpu_core::default_error_handler
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/backend/wgpu_core.rs:693:5
   3: <wgpu::backend::wgpu_core::ErrorSinkRaw>::handle_error_or_return_handler
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/backend/wgpu_core.rs:677:21
   4: <wgpu::backend::wgpu_core::ContextWgpuCore>::handle_error_inner
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/backend/wgpu_core.rs:305:18
   5: <wgpu::backend::wgpu_core::ContextWgpuCore>::handle_error::<wgpu_core::resource::CreateTextureViewError>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/backend/wgpu_core.rs:326:14
   6: <wgpu::backend::wgpu_core::CoreTexture as wgpu::dispatch::TextureInterface>::create_view
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/backend/wgpu_core.rs:2218:18
   7: <wgpu::api::texture::Texture>::create_view
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-27.0.1/src/api/texture.rs:78:31
   8: <femtovg::renderer::wgpu::WGPURenderer as femtovg::renderer::Renderer>::render
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/femtovg-0.19.3/src/renderer/wgpu.rs:308:44
   9: <femtovg::Canvas<femtovg::renderer::wgpu::WGPURenderer>>::flush_to_surface
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/femtovg-0.19.3/src/lib.rs:425:44
  10: <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::internal_render_with_post_callback::{closure#1}
             at ~/slint/internal/renderers/femtovg/lib.rs:184:51
  11: <i_slint_core::window::WindowInner>::draw_contents::<core::result::Result<(), i_slint_core::api::PlatformError>, <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::internal_render_with_post_callback::{closure#1}>::{closure#0}
             at ~/slint/internal/core/window.rs:1122:21
  12: <i_slint_core::properties::CURRENT_BINDING>::set::<<i_slint_core::window::WindowInner>::draw_contents<core::result::Result<(), i_slint_core::api::PlatformError>, <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::internal_render_with_post_callback::{closure#1}>::{closure#0}, core::result::Result<(), i_slint_core::api::PlatformError>>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scoped-tls-hkt-0.1.5/src/lib.rs:258:21
  13: <i_slint_core::properties::PropertyTracker<i_slint_core::window::WindowRedrawTracker>>::evaluate_as_dependency_root::<core::result::Result<(), i_slint_core::api::PlatformError>, <i_slint_core::window::WindowInner>::draw_contents<core::result::Result<(), i_slint_core::api::PlatformError>, <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::internal_render_with_post_callback::{closure#1}>::{closure#0}>
             at ~/slint/internal/core/properties.rs:1747:33
  14: <i_slint_core::window::WindowInner>::draw_contents::<core::result::Result<(), i_slint_core::api::PlatformError>, <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::internal_render_with_post_callback::{closure#1}>
             at ~/slint/internal/core/window.rs:1114:71
  15: <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::internal_render_with_post_callback
             at ~/slint/internal/renderers/femtovg/lib.rs:145:14
  16: <i_slint_renderer_femtovg::FemtoVGRenderer<i_slint_renderer_femtovg::wgpu::WGPUBackend>>::render
             at ~/slint/internal/renderers/femtovg/lib.rs:96:14
  17: <i_slint_backend_winit::renderer::femtovg::WGPUFemtoVGRenderer as i_slint_backend_winit::renderer::WinitCompatibleRenderer>::render
             at ~/slint/internal/backends/winit/renderer/femtovg.rs:196:23
  18: <i_slint_backend_winit::winitwindowadapter::WinitWindowAdapter>::draw
             at ~/slint/internal/backends/winit/winitwindowadapter.rs:656:18
  19: <i_slint_backend_winit::event_loop::EventLoopState as winit::application::ApplicationHandler<i_slint_backend_winit::SlintEvent>>::window_event
             at ~/slint/internal/backends/winit/event_loop.rs:180:42
  20: winit::event_loop::dispatch_event_for_app::<i_slint_backend_winit::SlintEvent, i_slint_backend_winit::event_loop::EventLoopState>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/event_loop.rs:642:56
  21: <winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand::<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0}
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform/run_on_demand.rs:76:13
  22: <&mut <winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0} as core::ops::function::FnMut<(winit::event::Event<i_slint_backend_winit::SlintEvent>, &winit::event_loop::ActiveEventLoop)>>::call_mut
             at ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:298:21
  23: <winit::platform_impl::linux::wayland::event_loop::EventLoop<i_slint_backend_winit::SlintEvent>>::single_iteration::<&mut <winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0}>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform_impl/linux/wayland/event_loop/mod.rs:502:17
  24: <winit::platform_impl::linux::wayland::event_loop::EventLoop<i_slint_backend_winit::SlintEvent>>::pump_events::<&mut <winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0}>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform_impl/linux/wayland/event_loop/mod.rs:220:18
  25: <winit::platform_impl::linux::wayland::event_loop::EventLoop<i_slint_backend_winit::SlintEvent>>::run_on_demand::<<winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0}>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform_impl/linux/wayland/event_loop/mod.rs:190:24
  26: <winit::platform_impl::linux::EventLoop<i_slint_backend_winit::SlintEvent>>::run_on_demand::<<winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0}>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform_impl/linux/mod.rs:820:61
  27: <winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_on_demand::<<winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand<i_slint_backend_winit::event_loop::EventLoopState>::{closure#0}>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform/run_on_demand.rs:89:25
  28: <winit::event_loop::EventLoop<i_slint_backend_winit::SlintEvent> as winit::platform::run_on_demand::EventLoopExtRunOnDemand>::run_app_on_demand::<i_slint_backend_winit::event_loop::EventLoopState>
             at ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/winit-0.30.12/src/platform/run_on_demand.rs:75:14
  29: <i_slint_backend_winit::event_loop::EventLoopState>::run
             at ~/slint/internal/backends/winit/event_loop.rs:591:22
  30: <i_slint_backend_winit::Backend as i_slint_core::platform::Platform>::run_event_loop
             at ~/slint/internal/backends/winit/lib.rs:793:36
  31: slint::run_event_loop::{closure#0}
             at ~/slint/api/rs/slint/lib.rs:253:51
  32: i_slint_backend_selector::with_platform::<(), slint::run_event_loop::{closure#0}>::{closure#0}
             at ~/slint/internal/backends/selector/lib.rs:154:31
  33: i_slint_core::context::with_global_context::<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_global_context<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}
             at ~/slint/internal/core/context.rs:118:25
  34: <std::thread::local::LocalKey<once_cell::unsync::OnceCell<i_slint_core::context::SlintContext>>>::try_with::<i_slint_core::context::with_global_context<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_global_context<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}, core::result::Result<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_core::api::PlatformError>>
             at ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:513:12
  35: <std::thread::local::LocalKey<once_cell::unsync::OnceCell<i_slint_core::context::SlintContext>>>::with::<i_slint_core::context::with_global_context<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_global_context<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}, core::result::Result<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_core::api::PlatformError>>
             at ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:477:20
  36: i_slint_core::context::with_global_context::<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_global_context<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>::{closure#0}, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>
             at ~/slint/internal/core/context.rs:117:20
  37: i_slint_backend_selector::with_global_context::<core::result::Result<(), i_slint_core::api::PlatformError>, i_slint_backend_selector::with_platform<(), slint::run_event_loop::{closure#0}>::{closure#0}>
             at ~/slint/internal/backends/selector/lib.rs:161:18
  38: i_slint_backend_selector::with_platform::<(), slint::run_event_loop::{closure#0}>
             at ~/slint/internal/backends/selector/lib.rs:154:5
  39: slint::run_event_loop
             at ~/slint/api/rs/slint/lib.rs:253:5
  40: <wgpu_texture_lib::slint_generatedApp::App as i_slint_core::api::ComponentHandle>::run
             at ~/slint/target/debug/build/wgpu_texture-779034321bf10821/out/scene.rs:2093:14
  41: wgpu_texture_lib::main
             at ./lib.rs:186:9
  42: wgpu_texture::main
             at ./main.rs:5:5
  43: <fn() as core::ops::function::FnOnce<()>>::call_once
             at ~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5

Reproducible Code (if applicable)


Environment Details

  • Slint Version: master, 1.14.1 (it worked in 1.13.1)
  • Platform/OS: Linux Wayland
  • Programming Language: Rust
  • Backend/Renderer: femtovg in my application

Product Impact

No response

jturcotte avatar Dec 08 '25 21:12 jturcotte

Hi @jturcotte . Could you try this branch? https://github.com/slint-ui/slint/tree/simon%2Fwgpu-features

tronical avatar Dec 10 '25 09:12 tronical