-
Notifications
You must be signed in to change notification settings - Fork 411
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
Suspected VUID-VkComputePipelineCreateInfo-layout-07988
false positive when assigning large binding location values
#8921
Comments
thanks for all the good, simplified, details. Will try to reproduce tomorrow! |
So this error is happening here I added a test in #8925 and tried with last 2 SDK and ToT main and it doesn't have the error on Window nor Linux The only thing I could really ask here is to the have you either provide another way I can reproduce or take a look what the values were that caused (or (also the code has since been inline here since 1.3.296 SDK ) |
This is the descriptor set layout that is created right before the one that produces the validation error (along with its compute pipeline): API dump
In my debugging session, it seemed like this |
so this is actually likely an issue with the RobinHood hashing (our "drop in" replacement for STD unordered maps), we JUST had some other issues around this... basically you get strange behavior like this... this is great information and thanks again for trying to debug this for us! Likely will be after Thanksgiving, but we are going to find an alternative solution to this hashing to prevent these bizarre issues |
Environment:
Describe the Issue
I have a two-line compute shader in my project that takes in two buffers and computes a simple sum like this:
In this particular case, the
MinIndexInCellBufW
is the 181th buffer in this file, andScannedSumsSortBufR
is the 192th buffer. When passed to dxc to create SPIR-V, dxc will assign binding 181 and 192 to these resources.Later, I'm trying to create a compute pipeline with a descriptor set layout that uses these bind locations, however, I'm getting:
Validation Errors
Yet, the program runs fine and with no issues (indicating that the shader runs as expected).
Expected behavior
No validation error when using large binding locations (as long as it falls within any relevant limits of the current device)
Additional context
I tried adding a buffer bound to binding
0
as a test, and in that case, where I bind resource locations [0, 181, 192], this validation error disappears (even though buffer in bind location0
is unused).Also, here is an API dump for the relevant section of code (with validation errors shown as they appear):
API dump
And here is the SPIR-V disassembly for reference:
SPIR-V disassembly
The text was updated successfully, but these errors were encountered: