-
Notifications
You must be signed in to change notification settings - Fork 881
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
Properly Deal with Timeouts Inside device::maintain #5012
base: trunk
Are you sure you want to change the base?
Conversation
2589ad5
to
a497bf1
Compare
Pulled this into draft as it breaks all of our WebGL2 tests. tl;dr: the whole reason device.poll(Wait) worked on WebGL2 is because of a the very logic bug that this fixes. WebGL2 is always treated as a timeout, so it always treats the wait as finished. Which is completely UB on other backends, but on WebGL2 it doesn't matter as there's no way to observe the lack of it actually finishing. Going to need to:
|
427f854
to
19bcfe7
Compare
3335fac
to
e40d3aa
Compare
785c721
to
21c3e3e
Compare
I still want to deal with this, it was just a much larger task than I initially thought. |
This should also include the removal of the expected failure on MoltenVK (f38bdd8). |
My first time working with WebGPU today, trying to implement heavy slow compute shader workload, as i set up and tested everything, as soon i started throwing real work at it, stumbled upon this issue immediately... Not my lucky day... |
@thalisvilela fwiw this issue does not affect WebGPU but all native backends + WebGL, but that's probably what you meant :) |
@Wumpf thank you very much for the tip! I would have probably give a shot at these other methods, you just saved me from a lot of frustration! It's the first time i'm working directly with "shaders", i've mostly used CUDA before. I'm glad this issue surfaced immediately to be honest. |
Connections
Closes #4589
Closes #3601
Description
We were not properly dealing with polls which timed out. This exposed the concept of timeouts to the user so that they can properly deal with polls which time out.
This doesn't fix anything with timeouts inside surface.configure.
Testing
Added timeout test.
Checklist
cargo fmt
.cargo clippy
. If applicable, add:--target wasm32-unknown-unknown
--target wasm32-unknown-emscripten
cargo xtask test
to run tests.CHANGELOG.md
. See simple instructions inside file.