SPV: Fix #1258: cache constant structs by id, not opcode.

Constants were generally cached by type opcode, but all structures share the
same type opcode (OpTypeStruct), so they need to be cached by type id.
This commit is contained in:
John Kessenich
2018-02-26 19:20:05 -07:00
parent 57f6a016f0
commit 46413d5780
5 changed files with 120 additions and 17 deletions

22
Test/spv.constStruct.vert Normal file
View File

@@ -0,0 +1,22 @@
#version 450
precision highp float;
struct U {
mat2 m;
};
struct T {
mat2 m;
};
struct S {
T t;
U u;
};
void main()
{
S s1 = S(T(mat2(1.0)), U(mat2(1.0)));
S s2 = S(T(mat2(1.0)), U(mat2(1.0)));
}