Fix loading bool arrays from interface blocks
SPIR-V disallows bool in interface blocks, which is emulated with uint. When loading a bool variable (through accessChainLoad()), it's converted from uint to bool if it came from an interface block. This was handled for bool and bvecN, but not for bool arrays. This change implements the conversion for bool arrays. Closes #2694
This commit is contained in:
17
Test/spv.1.4.load.bool.array.interface.block.frag
Normal file
17
Test/spv.1.4.load.bool.array.interface.block.frag
Normal file
@@ -0,0 +1,17 @@
|
||||
#version 450 core
|
||||
|
||||
layout(std140, set=0, binding=0) uniform ub {
|
||||
bool bi[2][3];
|
||||
};
|
||||
layout(std430, set=0, binding=1) buffer ssbo {
|
||||
bool bo[2][3];
|
||||
};
|
||||
|
||||
layout(location=0) out vec4 color;
|
||||
|
||||
void main()
|
||||
{
|
||||
bo = bi;
|
||||
color = vec4(0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user