-
Notifications
You must be signed in to change notification settings - Fork 953
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Queue[Id(1,2,d3d12)] does not exist
internal panic during Queue::write_buffer()
on DX12 backend
#5092
Comments
I've also seen this panic (I believe it started after arcaization has landed), but I didn't investigate the cause and I don't have a clear case for reproduction, it seems to happen randomly for me |
If this can be reproduced with trace logging active, we might be able to get to the bottom of it. Unfortunately, this may also throw off any timing component |
I have something like that:
hope this helps |
Oh that's the wrong kind of trace, sorry :) I meant trace level logging - either through RUST_LOG=trace if you're using env_logger, or however you configured it |
Ok I have one |
This log looks like it can happen on vk too, probably other backends as well. |
Yep, just had a macOS flake in the same test case I originally posted: thread 'tests::scale_to_integer_step_test' panicked at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.0/src/storage.rs:113:39:
Queue[Id(0,2,mtl)] does not exist
stack backtrace:
...
2: wgpu_core::storage::Storage<T,I>::get
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.0/src/storage.rs:113:39
3: wgpu_core::storage::Storage<T,I>::get_owned
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.0/src/storage.rs:128:23
4: wgpu_core::registry::Registry<I,T>::get
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.0/src/registry.rs:136:9
5: wgpu_core::device::queue::<impl wgpu_core::global::Global<G>>::queue_write_buffer
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-core-0.19.0/src/device/queue.rs:377:21
6: <wgpu::backend::wgpu_core::ContextWgpuCore as wgpu::context::Context>::queue_write_buffer
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/backend/wgpu_core.rs:2092:15
7: <T as wgpu::context::DynContext>::queue_write_buffer
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/context.rs:2911:9
8: wgpu::Queue::write_buffer
at /Users/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/wgpu-0.19.1/src/lib.rs:4582:9
... |
The problem stems from the device and queue IDs not being the same but we assume they are in multiple places throughout the codebase.
wgpu/wgpu/src/backend/wgpu_core.rs Line 607 in adf1e3b
We still do this on trunk: wgpu/wgpu/src/backend/wgpu_core.rs Line 669 in 9c6ae1b
Lines 329 to 333 in 9c6ae1b
Given that devices and queues can have different lifetimes from the user's perspective we should fully decouple their IDs. |
Description
I observed the following panic as an intermittent test failure in my own project's CI when attempting to update to wgpu 0.19. The tests share one
Adapter
between test threads, but each test uses its ownDevice
andQueue
. I don't know if the failure is Windows-specific as it has only happened once so far.Repro
No standalone repro yet.
Platform
wgpu: 0.19.0
GitHub Actions WIndows runner:
The text was updated successfully, but these errors were encountered: