Closed muraj closed 10 months ago
@muraj thanks for reporting! I can reproduce this crash, there has been some edge cases around GL_EXT_buffer_reference
I see are not fixed. I can take a look later this week/weekend
so took a stab quick, the core issue is we added protection from going
layout(buffer_reference) buffer t1;
layout(buffer_reference) buffer t2;
layout(buffer_reference, std430) buffer t1 {
t2 i_1;
};
layout(buffer_reference, std430) buffer t2 {
t1 i_2;
};
and getting into a recursion for loop
Need to make that check smarter to realize that these are 2 are called from same struct, so if one is safe, the other is as well
The following GLSL fails spvReflectCreateShaderModule when calling ParseDescriptorBlockVariableUsage on the second member "b":
The following GLSL succeeds:
I haven't narrowed down exactly why this is the case yet, but I at least have a work around for now.