-
Notifications
You must be signed in to change notification settings - Fork 909
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
Deadlock #152
Comments
confirmed both of these appear problematic for me as well, on archlinux + intel GPU running
and confirmed,
|
Thank you for the testcase! It looks to be exposing 2 different issues:
|
Are you asking me to add a unittest consisting of https://github.com/rukai/wgpu/blob/217a76eaa6bdf1468319c0b7147acb2a8a594aae/examples/deadlock/main.rs ? |
Yes, but this would be an integration test.
… On May 7, 2019, at 17:27, Lucas Kent ***@***.***> wrote:
Are you asking me to add a unittest consisting of https://github.com/rukai/wgpu/blob/217a76eaa6bdf1468319c0b7147acb2a8a594aae/examples/deadlock/main.rs ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
157: Add multithreaded_compute test r=kvark a=rukai As requested in #152 I have opened a PR to add the repro as a test case. I used [rusty fork](https://github.com/AltSysrq/rusty-fork) to allow setting a timeout. Rusty fork also runs each test in a separate process. Open to any suggestions on how to organize tests etc. I could add #156 if you want? Maybe name the tests by issue number? If we add a test for every issue, breaking changes would become really annoying :/ Co-authored-by: Rukai <rubickent@gmail.com>
154: Move callbacks out of the locking path r=kvark a=kvark Fixes #152 This change fixes the deadlocks discovered by @rukai . It enforces the following invariants through the code: 1. if we enter Rust code from FFI, we assume nothing is locked. The invariant was previously not true when we unmapped a buffer in a mapping callback. 2. the HUB storages are always locked in the same order. This was not followed in a few places, but still needs to be enforced by #66 later down the road. Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
152: Update to latest winit (0.20.0-alpha6) r=kvark a=grovesNL Updated to latest winit to fix examples: - `RedrawRequested` is now used for rendering - `EventsCleared` replaced by `MainEventsCleared` which requests redraw - Removed Metal auto-capture and escape key handling from hello-triangle to simplify the example slightly (it doesn't use `framework`, so we should try to make it as simple as possible IMO) Should we also remove the `feature = gl` parts of the examples to simplify them until GL is reenabled? Co-authored-by: Joshua Groves <josh@joshgroves.com>
152: Update to latest winit (0.20.0-alpha6) r=kvark a=grovesNL Updated to latest winit to fix examples: - `RedrawRequested` is now used for rendering - `EventsCleared` replaced by `MainEventsCleared` which requests redraw - Removed Metal auto-capture and escape key handling from hello-triangle to simplify the example slightly (it doesn't use `framework`, so we should try to make it as simple as possible IMO) Should we also remove the `feature = gl` parts of the examples to simplify them until GL is reenabled? Co-authored-by: Joshua Groves <josh@joshgroves.com>
Fix flex layout cross-alignment when not filled
OS: Arch Linux
GPU: GTX 960
Driver: Nvidia proprietary driver, version 418
I am hitting deadlocks when I take the compute example and run it multiple times in parallel.
https://github.com/rukai/wgpu/blob/217a76eaa6bdf1468319c0b7147acb2a8a594aae/examples/deadlock/main.rs
It will only complete 1-4 iterations before reaching a deadlock.
However if I were to run the same code sequentially, the device will fail to initialize on the 64th iteration every time.
This can be reduced down to just the device initialization code.
https://github.com/rukai/wgpu/blob/217a76eaa6bdf1468319c0b7147acb2a8a594aae/examples/initialization_failed/main.rs
You can easily run these examples by cloning https://github.com/rukai/wgpu/tree/bugs
and then doing:
The text was updated successfully, but these errors were encountered: