Skip to content

slint/examples/wgpu_texture fails to run on Wayland #10233

@jturcotte

Description

@jturcotte

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    need triagingIssue that the owner of the area still need to triage

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions