-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Validation Errors compute shaders - vkResetCommandPool, vkDestroyBuffer #2473
Comments
Please check if you are using latest Intel drivers. We've been submitting issues lately, which are in different stages of fixing on Mesa side. |
Also, please install Vulkan validation layers if you haven't already. I wonder if it spews out any useful info. |
The latest drivers are installed. Vulkan validation shows this:
note: in order to run my example with I tested on another system running Ubuntu 20.04 and Nvidia M4000 and it works there. edit: spelling |
In the private project i am getting the same errors as above but the device isnt lost. |
Not exactly sure what is happening here, but it may very well be related that the tests we have are spewing errors as well when ran on multiple threads (from just |
Ok, let me know if you need anything more to reproduce / get additional information |
Actually, the errors I was seeing are fixed by #2476, they are unrelated to your case. Moreover, we are running the compute test concurrently in |
On the ICL GT2 the tests seem to pass although im getting validation errors. On the M4000 test conservative_raster fails. |
Your vk-astc branch shows all tests passed, no validation errors on ICL GT2. |
Ok, thank you for confirming! Would you be able to push your test case to a branch of wgpu somewhere, so that we can test it? |
Find it in https://github.com/peters-david/wgpu |
Thanks @peters-david ! I ran your test on Intel Xe graphics (integrated).
This is due to a problem with your shader logic, which doesn't really set all the indices: @builtin(global_invocation_id) id: vec3<u32>
@builtin(local_invocation_index) index: u32
var i: u32 = 256u*id.x+index; For thread (1,0,0) within the only working group, we'll have Once I fix this, the test just runs indefinitely (as you designed). No validation errors or warnings or asserts. |
The indeces don't start at 0?? |
Indices start at 0, and your array[0] will be initialized. But array[1] will not ever be, and the assertion triggers that I posted. |
Thank you @kvark ! |
I get a
0 took 5.152398114s
1 took 921.852867ms
MESA-INTEL: error: ../src/intel/vulkan/anv_device.c:3713: GPU hung on one of our command buffers (VK_ERROR_DEVICE_LOST)
thread 'main' panicked at 'Error in Queue::submit: parent device is lost', /home/david/.cargo/git/checkouts/wgpu-53e70f8674b08dd4/6931e57/wgpu/src/backend/direct.rs:231:9
when running this code with "cargo run --release".
https://gist.github.com/peters-david/70a7a7ee6526cb35fe7f7b028cb820f5
Looks like the first two calls to
use_gpu()
work fine, after that it panics.Is this intended? If so, why does it work the first two times?
If i remove the lazy_static and request a new
wgpu::Instance
inuse_gpu()
it works fine.Sorry if this is a stupid question, just got started with Rust and wgpu.
I run it on a i7-1065G7 with the ICL GT2 on Linux Ubuntu 21.10.
The text was updated successfully, but these errors were encountered: