iced-rs / iced

A cross-platform GUI library for Rust, inspired by Elm
https://iced.rs
MIT License
24.88k stars 1.17k forks source link

[Bug]'Surface already has a syncobj attached' on Linux Hyprland #2562

Open zerodegress opened 2 months ago

zerodegress commented 2 months ago

Is your issue REALLY a bug?

Is there an existing issue for this?

Is this issue related to iced?

What happened?

copy and paste the simplest example(the 'counter'), build and run it, resulting a lot of logs, and then it crashed.

What is the expected behavior?

it should at least display a window and run normally.

Version

crates.io release

Operating System

Linux

Do you have any log output?

wp_linux_drm_syncobj_manager_v1#52: error 0: Surface already has a syncobj attached
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
thread 'main' panicked at /home/zerodegress/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.4/src/device/global.rs:1859:21:
internal error: entered unreachable code: Fallback system failed to choose present mode. This is a bug. Mode: AutoVsync, Options: []Protocol error
0note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@52:
zerodegress commented 2 months ago

Update: related to upstream issue:https://github.com/gfx-rs/wgpu/issues/6159 and nvidia explict sync. removing wgpu feature resolved this.

zerodegress commented 2 months ago

this fork with wgpu feature enabled works properly: https://github.com/pop-os/iced

Tea23 commented 2 months ago

I'm getting this on Fedora 40, Nvidia 1070 driver 560, plasma 6.1.4.

Tour does not work, neither does Halloy.

Complete log of tour:

joe@camrose ~/packages/iced (git)-[master] % cargo run --package tour                      
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.68s
     Running `target/debug/tour`
2024-09-09T18:38:45.670524Z  WARN wgpu_hal::vulkan::instance: InstanceFlags::VALIDATION requested, but unable to find layer: VK_LAYER_KHRONOS_validation    
2024-09-09T18:38:45.686871Z  INFO wgpu_hal::vulkan::instance: Debug utils not enabled: debug_utils_user_data not passed to Instance::from_raw    
2024-09-09T18:38:45.695642Z  INFO wgpu_hal::gles::egl: Using Wayland platform    
2024-09-09T18:38:45.699840Z ERROR wgpu_hal::gles::egl: EGL 'eglCreateSyncKHR' code 0x3004: EGL_BAD_ATTRIBUTE error: In eglCreateSyncKHR: EGL_SYNC_NATIVE_FENCE_FD_ANDROID specified valid fd butEGL_SYNC_STATUS is also being set

2024-09-09T18:38:45.700668Z  WARN wgpu_hal::gles::egl: No config found!    
2024-09-09T18:38:45.700685Z  WARN wgpu_hal::gles::egl: EGL says it can present to the window but not natively    
2024-09-09T18:38:45.707476Z  INFO iced_wgpu::window::compositor: Settings {
    present_mode: AutoVsync,
    backends: Backends(
        VULKAN | GL | METAL | DX12 | BROWSER_WEBGPU,
    ),
    default_font: Font {
        family: SansSerif,
        weight: Normal,
        stretch: Normal,
        style: Normal,
    },
    default_text_size: Pixels(
        16.0,
    ),
    antialiasing: None,
}    
2024-09-09T18:38:45.722154Z  INFO wgpu_core::instance: Adapter Vulkan AdapterInfo { name: "NVIDIA GeForce GTX 1070", vendor: 4318, device: 7041, device_type: DiscreteGpu, driver: "NVIDIA", driver_info: "560.35.03", backend: Vulkan }    
2024-09-09T18:38:45.722241Z  INFO wgpu_core::instance: Adapter Vulkan AdapterInfo { name: "Intel(R) UHD Graphics 630 (CFL GT2)", vendor: 32902, device: 16018, device_type: IntegratedGpu, driver: "Intel open-source Mesa driver", driver_info: "Mesa 24.1.7", backend: Vulkan }    
2024-09-09T18:38:45.722256Z  INFO wgpu_core::instance: Adapter Vulkan AdapterInfo { name: "llvmpipe (LLVM 18.1.6, 256 bits)", vendor: 65541, device: 0, device_type: Cpu, driver: "llvmpipe", driver_info: "Mesa 24.1.7 (LLVM 18.1.6)", backend: Vulkan }    
2024-09-09T18:38:45.739658Z  INFO wgpu_core::instance: Adapter Gl AdapterInfo { name: "NVIDIA GeForce GTX 1070/PCIe/SSE2", vendor: 4318, device: 0, device_type: Other, driver: "", driver_info: "", backend: Gl }    
2024-09-09T18:38:45.739810Z  INFO iced_wgpu::window::compositor: Available adapters: [
    AdapterInfo {
        name: "NVIDIA GeForce GTX 1070",
        vendor: 4318,
        device: 7041,
        device_type: DiscreteGpu,
        driver: "NVIDIA",
        driver_info: "560.35.03",
        backend: Vulkan,
    },
    AdapterInfo {
        name: "Intel(R) UHD Graphics 630 (CFL GT2)",
        vendor: 32902,
        device: 16018,
        device_type: IntegratedGpu,
        driver: "Intel open-source Mesa driver",
        driver_info: "Mesa 24.1.7",
        backend: Vulkan,
    },
    AdapterInfo {
        name: "llvmpipe (LLVM 18.1.6, 256 bits)",
        vendor: 65541,
        device: 0,
        device_type: Cpu,
        driver: "llvmpipe",
        driver_info: "Mesa 24.1.7 (LLVM 18.1.6)",
        backend: Vulkan,
    },
    AdapterInfo {
        name: "NVIDIA GeForce GTX 1070/PCIe/SSE2",
        vendor: 4318,
        device: 0,
        device_type: Other,
        driver: "",
        driver_info: "",
        backend: Gl,
    },
]    
2024-09-09T18:38:45.752225Z  INFO wgpu_core::instance: Adapter Vulkan AdapterInfo { name: "Intel(R) UHD Graphics 630 (CFL GT2)", vendor: 32902, device: 16018, device_type: IntegratedGpu, driver: "Intel open-source Mesa driver", driver_info: "Mesa 24.1.7", backend: Vulkan }    
2024-09-09T18:38:45.752289Z  INFO iced_wgpu::window::compositor: Selected: AdapterInfo {
    name: "Intel(R) UHD Graphics 630 (CFL GT2)",
    vendor: 32902,
    device: 16018,
    device_type: IntegratedGpu,
    driver: "Intel open-source Mesa driver",
    driver_info: "Mesa 24.1.7",
    backend: Vulkan,
}    
2024-09-09T18:38:45.753947Z  INFO iced_wgpu::window::compositor: Available formats: Copied {
    it: Iter(
        [
            Rgba8UnormSrgb,
            Bgra8UnormSrgb,
            Rgba8Unorm,
            Bgra8Unorm,
        ],
    ),
}    
2024-09-09T18:38:45.753968Z  INFO iced_wgpu::window::compositor: Available alpha modes: [
    Opaque,
    PreMultiplied,
]    
2024-09-09T18:38:45.753980Z  INFO iced_wgpu::window::compositor: Selected format: Rgba8UnormSrgb with alpha mode: PreMultiplied    
wp_linux_drm_syncobj_manager_v1#82: error 0: surface already exists
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
2024-09-09T18:38:46.275555Z ERROR wgpu_hal::vulkan::adapter: get_physical_device_surface_present_modes: ERROR_SURFACE_LOST_KHR    
2024-09-09T18:38:46.275583Z ERROR wgpu_hal::vulkan::adapter: get_physical_device_surface_formats: ERROR_SURFACE_LOST_KHR    
thread 'main' panicked at /home/joe/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.4/src/device/global.rs:1859:21:
internal error: entered unreachable code: Fallback system failed to choose present mode. This is a bug. Mode: AutoVsync, Options: []
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
Protocol error 0 on object wp_linux_drm_syncobj_manager_v1@82: 
mrnto commented 3 weeks ago

I have the same problem on Fedora 40:

wl_surface#65: error 0: DRM Syncobj surface object already created for surface 65
Protocol error 0 on object wl_surface@65: 
thread 'main' panicked at /home/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.4/src/device/global.rs:1859:21:
internal error: entered unreachable code: Fallback system failed to choose present mode. This is a bug. Mode: AutoVsync, Options: []

It seems to be related to wgpu-core and only appears on Wayland.

Update: related to upstream issue:https://github.com/gfx-rs/wgpu/issues/6159 and nvidia explict sync. removing wgpu feature resolved this.

Setting the flag default-features = false helped to compile without errors, but (at least for me) the window doesn't appear on versions 0.13.0 and 0.13.1 when running the program. Version 0.12.1 with this flag works without problems and the window is created.

For myself, I have found the following solutions for now:

So, if anyone is looking for a quick solution to work with newer versions of iced on Wayland, then WGPU_BACKEND=gl cargo run can help you.