Skip to content

SwiftShader: panic in wgpu-hal: Invariant violated when requesting device #9293

@mandryskowski

Description

@mandryskowski

Description
Calling request_device results in a panic inside wgpu-hal when using SwiftShader.

Repro steps
I have created a minimal reproducible example here:
https://github.com/mandryskowski/wgpu-swiftshader-feature-crash/blob/master/src/main.rs
See this Github Actions run https://github.com/mandryskowski/wgpu-swiftshader-feature-crash/actions/runs/23510896074/job/68431261257

let (device, _queue) = adapter.request_device(
	&DeviceDescriptor {
		required_features: Features::empty(),
		..Default::default()
	}
).await.unwrap();

Actual behavior

Found Adapter: AdapterInfo { name: "SwiftShader Device (LLVM 10.0.0)", vendor: 6880, device: 49374, device_type: Cpu, device_pci_bus_id: "", driver: "SwiftShader driver", driver_info: "", backend: Vulkan, subgroup_min_size: 4, subgroup_max_size: 4, transient_saves_memory: false, limit_bucket: None }
[2026-03-24T18:02:07Z ERROR wgpu_hal::vulkan::instance] GENERAL [Loader Message (0x0)]
    	terminator_CreateDevice: Failed in ICD /home/runner/work/wgpu-swiftshader-feature-crash/wgpu-swiftshader-feature-crash/swiftshader/build/Linux/./libvk_swiftshader.so vkCreateDevice call
[2026-03-24T18:02:07Z ERROR wgpu_hal::vulkan::instance] 	objects: (type: INSTANCE, hndl: 0x55ad69579620, name: ?)
[2026-03-24T18:02:07Z ERROR wgpu_hal::vulkan::instance] GENERAL [Loader Message (0x0)]
    	vkCreateDevice:  Failed to create device chain.
[2026-03-24T18:02:07Z ERROR wgpu_hal::vulkan::instance] 	objects: (type: INSTANCE, hndl: 0x55ad69579620, name: ?)

thread 'main' (10113) panicked at wgpu/wgpu-hal/src/lib.rs:489:5:
wgpu-hal invariant was violated (usage error): Requested feature is not available on this device
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/std/src/panicking.rs:689:5
   1: core::panicking::panic_fmt
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/panicking.rs:80:14
   2: wgpu_hal::hal_usage_error
             at ./wgpu/wgpu-hal/src/lib.rs:489:5
   3: wgpu_hal::vulkan::adapter::<impl wgpu_hal::vulkan::Adapter>::open_with_callback::map_err
             at ./wgpu/wgpu-hal/src/vulkan/adapter.rs:2865:21
   4: core::ops::function::FnOnce::call_once
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
   5: core::result::Result<T,E>::map_err
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/result.rs:968:27
   6: wgpu_hal::vulkan::adapter::<impl wgpu_hal::vulkan::Adapter>::open_with_callback
             at ./wgpu/wgpu-hal/src/vulkan/adapter.rs:2857:22
   7: wgpu_hal::vulkan::adapter::<impl wgpu_hal::Adapter for wgpu_hal::vulkan::Adapter>::open
             at ./wgpu/wgpu-hal/src/vulkan/adapter.rs:2895:23
   8: <A as wgpu_hal::dynamic::adapter::DynAdapter>::open
             at ./wgpu/wgpu-hal/src/dynamic/adapter.rs:52:18
   9: wgpu_core::instance::Adapter::create_device_and_queue
             at ./wgpu/wgpu-core/src/instance.rs:871:30
  10: wgpu_core::instance::<impl wgpu_core::global::Global>::adapter_request_device
             at ./wgpu/wgpu-core/src/instance.rs:1202:39
  11: <wgpu::backend::wgpu_core::CoreAdapter as wgpu::dispatch::AdapterInterface>::request_device
             at ./wgpu/wgpu/src/backend/wgpu_core.rs:936:34
  12: wgpu::api::adapter::Adapter::request_device
             at ./wgpu/wgpu/src/api/adapter.rs:62:33
  13: wgpu_subgroup_panic_repro::run::{{closure}}
             at ./src/main.rs:34:10
  14: pollster::block_on
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/pollster-0.3.0/src/lib.rs:128:28
  15: wgpu_subgroup_panic_repro::main
             at ./src/main.rs:5:5
  16: core::ops::function::FnOnce::call_once
             at /rustc/4a4ef493e3a1488c6e321570238084b38948f6db/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Error: Process completed with exit code 101.

Platform
swiftshader 89556131bf9d48af3c5c9fbb9a3322e706da89a3 (recent)
wgpu 0226d561c03e99d6805afb989e632198f5da5d08 (recent)
Ubuntu 24.04.3 LTS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions