-
Notifications
You must be signed in to change notification settings - Fork 151
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
Fix asserting from uvec2 buffer reference bitcast #259
Fix asserting from uvec2 buffer reference bitcast #259
Conversation
uint32_t base_id = ac->base_id; | ||
// Access Chains mostly have their Base ID pointed directly to a OpVariable, but sometimes | ||
// it will be through a load and this funciton handles the edge cases how to find that | ||
static uint32_t FindAccessChainBaseVariable(SpvReflectPrvParser* p_parser, SpvReflectPrvAccessChain* p_access_chain) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
while here, updated this function name and ac
to p_access_chain
for consistency
Based on this logic, will we obtain the correct byte size for push constants? |
Yes, as shown from the shader in the issue, the
The issue going on here was because inside a buffer reference struct, you can have things pointing to itself (ex, linked list) layout(buffer_reference) buffer VertexBuffer {
VertexBuffer next_pointer;
}; and we have logic to handle this recursion, but a Push Constants block, it can't be a |
Thanks @spencer-lunarg Looking forward to seeing it merged! |
closes #257
confirmed doing more research that we are safe to return
0
for a push constant that tries to useuvec2
to pass in a buffer reference handle