Fix #857: Convert uniform int to local bool for struct alias assignment.
This was done for one direction, but not both directions, so this commit picks up the other direction.
This commit is contained in:
parent
0d2b4713c5
commit
80f92a190a
@ -2590,20 +2590,22 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I
|
|||||||
if (builder.isScalarType(nominalTypeId)) {
|
if (builder.isScalarType(nominalTypeId)) {
|
||||||
// Conversion for bool
|
// Conversion for bool
|
||||||
spv::Id boolType = builder.makeBoolType();
|
spv::Id boolType = builder.makeBoolType();
|
||||||
if (nominalTypeId != boolType) {
|
if (nominalTypeId != boolType)
|
||||||
spv::Id zero = builder.makeUintConstant(0);
|
rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, builder.makeUintConstant(1),
|
||||||
spv::Id one = builder.makeUintConstant(1);
|
builder.makeUintConstant(0));
|
||||||
rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, one, zero);
|
else if (builder.getTypeId(rvalue) != boolType)
|
||||||
}
|
rvalue = builder.createBinOp(spv::OpINotEqual, boolType, rvalue, builder.makeUintConstant(0));
|
||||||
} else if (builder.isVectorType(nominalTypeId)) {
|
} else if (builder.isVectorType(nominalTypeId)) {
|
||||||
// Conversion for bvec
|
// Conversion for bvec
|
||||||
int vecSize = builder.getNumTypeComponents(nominalTypeId);
|
int vecSize = builder.getNumTypeComponents(nominalTypeId);
|
||||||
spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
|
spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
|
||||||
if (nominalTypeId != bvecType) {
|
if (nominalTypeId != bvecType)
|
||||||
spv::Id zero = makeSmearedConstant(builder.makeUintConstant(0), vecSize);
|
rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue,
|
||||||
spv::Id one = makeSmearedConstant(builder.makeUintConstant(1), vecSize);
|
makeSmearedConstant(builder.makeUintConstant(1), vecSize),
|
||||||
rvalue = builder.createTriOp(spv::OpSelect, nominalTypeId, rvalue, one, zero);
|
makeSmearedConstant(builder.makeUintConstant(0), vecSize));
|
||||||
}
|
else if (builder.getTypeId(rvalue) != bvecType)
|
||||||
|
rvalue = builder.createBinOp(spv::OpINotEqual, bvecType, rvalue,
|
||||||
|
makeSmearedConstant(builder.makeUintConstant(0), vecSize));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -189,12 +189,12 @@ gl_FragCoord origin is upper left
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 94
|
// Id's are bound by 96
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4 "main" 87 90
|
EntryPoint Fragment 4 "main" 89 92
|
||||||
ExecutionMode 4 OriginUpperLeft
|
ExecutionMode 4 OriginUpperLeft
|
||||||
Source HLSL 500
|
Source HLSL 500
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
@ -212,15 +212,15 @@ gl_FragCoord origin is upper left
|
|||||||
Name 21 "sbuf"
|
Name 21 "sbuf"
|
||||||
MemberName 21(sbuf) 0 "@data"
|
MemberName 21(sbuf) 0 "@data"
|
||||||
Name 23 "sbuf"
|
Name 23 "sbuf"
|
||||||
Name 40 "size"
|
Name 43 "size"
|
||||||
Name 42 "stride"
|
Name 45 "stride"
|
||||||
Name 57 "sbuf2"
|
|
||||||
MemberName 57(sbuf2) 0 "@data"
|
|
||||||
Name 59 "sbuf2"
|
Name 59 "sbuf2"
|
||||||
Name 85 "pos"
|
MemberName 59(sbuf2) 0 "@data"
|
||||||
|
Name 61 "sbuf2"
|
||||||
Name 87 "pos"
|
Name 87 "pos"
|
||||||
Name 90 "@entryPointOutput"
|
Name 89 "pos"
|
||||||
Name 91 "param"
|
Name 92 "@entryPointOutput"
|
||||||
|
Name 93 "param"
|
||||||
MemberDecorate 19(sb_t) 0 NonWritable
|
MemberDecorate 19(sb_t) 0 NonWritable
|
||||||
MemberDecorate 19(sb_t) 0 Offset 0
|
MemberDecorate 19(sb_t) 0 Offset 0
|
||||||
MemberDecorate 19(sb_t) 1 NonWritable
|
MemberDecorate 19(sb_t) 1 NonWritable
|
||||||
@ -233,13 +233,13 @@ gl_FragCoord origin is upper left
|
|||||||
Decorate 21(sbuf) BufferBlock
|
Decorate 21(sbuf) BufferBlock
|
||||||
Decorate 23(sbuf) DescriptorSet 0
|
Decorate 23(sbuf) DescriptorSet 0
|
||||||
Decorate 23(sbuf) Binding 10
|
Decorate 23(sbuf) Binding 10
|
||||||
Decorate 56 ArrayStride 4
|
Decorate 58 ArrayStride 4
|
||||||
MemberDecorate 57(sbuf2) 0 NonWritable
|
MemberDecorate 59(sbuf2) 0 NonWritable
|
||||||
MemberDecorate 57(sbuf2) 0 Offset 0
|
MemberDecorate 59(sbuf2) 0 Offset 0
|
||||||
Decorate 57(sbuf2) BufferBlock
|
Decorate 59(sbuf2) BufferBlock
|
||||||
Decorate 59(sbuf2) DescriptorSet 0
|
Decorate 61(sbuf2) DescriptorSet 0
|
||||||
Decorate 87(pos) Location 0
|
Decorate 89(pos) Location 0
|
||||||
Decorate 90(@entryPointOutput) Location 0
|
Decorate 92(@entryPointOutput) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeInt 32 0
|
6: TypeInt 32 0
|
||||||
@ -261,41 +261,41 @@ gl_FragCoord origin is upper left
|
|||||||
27: TypePointer Uniform 19(sb_t)
|
27: TypePointer Uniform 19(sb_t)
|
||||||
31: TypePointer Function 14(fvec3)
|
31: TypePointer Function 14(fvec3)
|
||||||
34: 24(int) Constant 1
|
34: 24(int) Constant 1
|
||||||
35: TypePointer Function 15(bool)
|
35: 6(int) Constant 0
|
||||||
38: 24(int) Constant 2
|
37: TypePointer Function 15(bool)
|
||||||
43: 6(int) Constant 32
|
40: 24(int) Constant 2
|
||||||
45: TypePointer Uniform 6(int)
|
46: 6(int) Constant 32
|
||||||
48: 6(int) Constant 0
|
48: TypePointer Uniform 6(int)
|
||||||
53: TypePointer Uniform 14(fvec3)
|
55: TypePointer Uniform 14(fvec3)
|
||||||
56: TypeRuntimeArray 8(float)
|
58: TypeRuntimeArray 8(float)
|
||||||
57(sbuf2): TypeStruct 56
|
59(sbuf2): TypeStruct 58
|
||||||
58: TypePointer Uniform 57(sbuf2)
|
60: TypePointer Uniform 59(sbuf2)
|
||||||
59(sbuf2): 58(ptr) Variable Uniform
|
61(sbuf2): 60(ptr) Variable Uniform
|
||||||
61: TypePointer Uniform 8(float)
|
63: TypePointer Uniform 8(float)
|
||||||
66: 8(float) Constant 0
|
68: 8(float) Constant 0
|
||||||
73: TypePointer Function 8(float)
|
75: TypePointer Function 8(float)
|
||||||
86: TypePointer Input 6(int)
|
88: TypePointer Input 6(int)
|
||||||
87(pos): 86(ptr) Variable Input
|
89(pos): 88(ptr) Variable Input
|
||||||
89: TypePointer Output 9(fvec4)
|
91: TypePointer Output 9(fvec4)
|
||||||
90(@entryPointOutput): 89(ptr) Variable Output
|
92(@entryPointOutput): 91(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
85(pos): 7(ptr) Variable Function
|
87(pos): 7(ptr) Variable Function
|
||||||
91(param): 7(ptr) Variable Function
|
93(param): 7(ptr) Variable Function
|
||||||
88: 6(int) Load 87(pos)
|
90: 6(int) Load 89(pos)
|
||||||
Store 85(pos) 88
|
Store 87(pos) 90
|
||||||
92: 6(int) Load 85(pos)
|
94: 6(int) Load 87(pos)
|
||||||
Store 91(param) 92
|
Store 93(param) 94
|
||||||
93: 9(fvec4) FunctionCall 12(@main(u1;) 91(param)
|
95: 9(fvec4) FunctionCall 12(@main(u1;) 93(param)
|
||||||
Store 90(@entryPointOutput) 93
|
Store 92(@entryPointOutput) 95
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
12(@main(u1;): 9(fvec4) Function None 10
|
12(@main(u1;): 9(fvec4) Function None 10
|
||||||
11(pos): 7(ptr) FunctionParameter
|
11(pos): 7(ptr) FunctionParameter
|
||||||
13: Label
|
13: Label
|
||||||
18(mydata): 17(ptr) Variable Function
|
18(mydata): 17(ptr) Variable Function
|
||||||
40(size): 7(ptr) Variable Function
|
43(size): 7(ptr) Variable Function
|
||||||
42(stride): 7(ptr) Variable Function
|
45(stride): 7(ptr) Variable Function
|
||||||
26: 6(int) Load 11(pos)
|
26: 6(int) Load 11(pos)
|
||||||
28: 27(ptr) AccessChain 23(sbuf) 25 26
|
28: 27(ptr) AccessChain 23(sbuf) 25 26
|
||||||
29: 19(sb_t) Load 28
|
29: 19(sb_t) Load 28
|
||||||
@ -303,46 +303,48 @@ gl_FragCoord origin is upper left
|
|||||||
32: 31(ptr) AccessChain 18(mydata) 25
|
32: 31(ptr) AccessChain 18(mydata) 25
|
||||||
Store 32 30
|
Store 32 30
|
||||||
33: 6(int) CompositeExtract 29 1
|
33: 6(int) CompositeExtract 29 1
|
||||||
36: 35(ptr) AccessChain 18(mydata) 34
|
36: 15(bool) INotEqual 33 35
|
||||||
Store 36 33
|
38: 37(ptr) AccessChain 18(mydata) 34
|
||||||
37: 6(int) CompositeExtract 29 2
|
Store 38 36
|
||||||
39: 35(ptr) AccessChain 18(mydata) 38
|
39: 6(int) CompositeExtract 29 2
|
||||||
Store 39 37
|
41: 15(bool) INotEqual 39 35
|
||||||
41: 24(int) ArrayLength 23(sbuf) 0
|
42: 37(ptr) AccessChain 18(mydata) 40
|
||||||
Store 40(size) 41
|
Store 42 41
|
||||||
Store 42(stride) 43
|
44: 24(int) ArrayLength 23(sbuf) 0
|
||||||
44: 6(int) Load 11(pos)
|
Store 43(size) 44
|
||||||
46: 45(ptr) AccessChain 23(sbuf) 25 44 34
|
Store 45(stride) 46
|
||||||
47: 6(int) Load 46
|
47: 6(int) Load 11(pos)
|
||||||
49: 15(bool) INotEqual 47 48
|
49: 48(ptr) AccessChain 23(sbuf) 25 47 34
|
||||||
SelectionMerge 51 None
|
50: 6(int) Load 49
|
||||||
BranchConditional 49 50 72
|
51: 15(bool) INotEqual 50 35
|
||||||
50: Label
|
SelectionMerge 53 None
|
||||||
52: 6(int) Load 11(pos)
|
BranchConditional 51 52 74
|
||||||
54: 53(ptr) AccessChain 23(sbuf) 25 52 25
|
52: Label
|
||||||
55: 14(fvec3) Load 54
|
54: 6(int) Load 11(pos)
|
||||||
60: 6(int) Load 11(pos)
|
56: 55(ptr) AccessChain 23(sbuf) 25 54 25
|
||||||
62: 61(ptr) AccessChain 59(sbuf2) 25 60
|
57: 14(fvec3) Load 56
|
||||||
63: 8(float) Load 62
|
62: 6(int) Load 11(pos)
|
||||||
64: 14(fvec3) CompositeConstruct 63 63 63
|
64: 63(ptr) AccessChain 61(sbuf2) 25 62
|
||||||
65: 14(fvec3) FAdd 55 64
|
65: 8(float) Load 64
|
||||||
67: 8(float) CompositeExtract 65 0
|
66: 14(fvec3) CompositeConstruct 65 65 65
|
||||||
68: 8(float) CompositeExtract 65 1
|
67: 14(fvec3) FAdd 57 66
|
||||||
69: 8(float) CompositeExtract 65 2
|
69: 8(float) CompositeExtract 67 0
|
||||||
70: 9(fvec4) CompositeConstruct 67 68 69 66
|
70: 8(float) CompositeExtract 67 1
|
||||||
ReturnValue 70
|
71: 8(float) CompositeExtract 67 2
|
||||||
72: Label
|
72: 9(fvec4) CompositeConstruct 69 70 71 68
|
||||||
74: 73(ptr) AccessChain 18(mydata) 25 48
|
ReturnValue 72
|
||||||
75: 8(float) Load 74
|
74: Label
|
||||||
76: 6(int) Load 40(size)
|
76: 75(ptr) AccessChain 18(mydata) 25 35
|
||||||
77: 8(float) ConvertUToF 76
|
77: 8(float) Load 76
|
||||||
78: 8(float) FAdd 75 77
|
78: 6(int) Load 43(size)
|
||||||
79: 6(int) Load 42(stride)
|
79: 8(float) ConvertUToF 78
|
||||||
80: 8(float) ConvertUToF 79
|
80: 8(float) FAdd 77 79
|
||||||
81: 8(float) FAdd 78 80
|
81: 6(int) Load 45(stride)
|
||||||
82: 9(fvec4) CompositeConstruct 81 81 81 81
|
82: 8(float) ConvertUToF 81
|
||||||
ReturnValue 82
|
83: 8(float) FAdd 80 82
|
||||||
51: Label
|
84: 9(fvec4) CompositeConstruct 83 83 83 83
|
||||||
84: 9(fvec4) Undef
|
ReturnValue 84
|
||||||
ReturnValue 84
|
53: Label
|
||||||
|
86: 9(fvec4) Undef
|
||||||
|
ReturnValue 86
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
@ -53,9 +53,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
29: 6(bool) ConstantFalse
|
29: 6(bool) ConstantFalse
|
||||||
30: 9(bvec2) ConstantComposite 29 29
|
30: 9(bvec2) ConstantComposite 29 29
|
||||||
31: 22(int) Constant 0
|
31: 22(int) Constant 0
|
||||||
32: 23(ivec2) ConstantComposite 31 31
|
32: 22(int) Constant 1
|
||||||
33: 22(int) Constant 1
|
33: 23(ivec2) ConstantComposite 31 31
|
||||||
34: 23(ivec2) ConstantComposite 33 33
|
34: 23(ivec2) ConstantComposite 32 32
|
||||||
36: TypePointer Uniform 23(ivec2)
|
36: TypePointer Uniform 23(ivec2)
|
||||||
38: TypeVector 22(int) 4
|
38: TypeVector 22(int) 4
|
||||||
39(Uniform): TypeStruct 38(ivec4)
|
39(Uniform): TypeStruct 38(ivec4)
|
||||||
@ -73,7 +73,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
5: Label
|
5: Label
|
||||||
62(param): 8(ptr) Variable Function
|
62(param): 8(ptr) Variable Function
|
||||||
67(param): 10(ptr) Variable Function
|
67(param): 10(ptr) Variable Function
|
||||||
35: 23(ivec2) Select 30 34 32
|
35: 23(ivec2) Select 30 34 33
|
||||||
37: 36(ptr) AccessChain 26 28
|
37: 36(ptr) AccessChain 26 28
|
||||||
Store 37 35
|
Store 37 35
|
||||||
43: 42(ptr) AccessChain 41 28
|
43: 42(ptr) AccessChain 41 28
|
||||||
@ -88,7 +88,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
51: 22(int) CompositeExtract 50 0
|
51: 22(int) CompositeExtract 50 0
|
||||||
52: 6(bool) INotEqual 51 31
|
52: 6(bool) INotEqual 51 31
|
||||||
53: 9(bvec2) CompositeConstruct 52 52
|
53: 9(bvec2) CompositeConstruct 52 52
|
||||||
54: 23(ivec2) Select 53 34 32
|
54: 23(ivec2) Select 53 34 33
|
||||||
55: 36(ptr) AccessChain 26 28
|
55: 36(ptr) AccessChain 26 28
|
||||||
Store 55 54
|
Store 55 54
|
||||||
Branch 48
|
Branch 48
|
||||||
@ -106,7 +106,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
Store 62(param) 66
|
Store 62(param) 66
|
||||||
68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
|
68: 2 FunctionCall 14(foo(vb4;vb2;) 62(param) 67(param)
|
||||||
69: 9(bvec2) Load 67(param)
|
69: 9(bvec2) Load 67(param)
|
||||||
70: 23(ivec2) Select 69 34 32
|
70: 23(ivec2) Select 69 34 33
|
||||||
71: 36(ptr) AccessChain 26 28
|
71: 36(ptr) AccessChain 26 28
|
||||||
Store 71 70
|
Store 71 70
|
||||||
Branch 61
|
Branch 61
|
||||||
|
|||||||
@ -3,7 +3,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
|
|
||||||
// Module Version 10000
|
// Module Version 10000
|
||||||
// Generated by (magic number): 80001
|
// Generated by (magic number): 80001
|
||||||
// Id's are bound by 157
|
// Id's are bound by 161
|
||||||
|
|
||||||
Capability Shader
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
@ -22,31 +22,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
Name 17 "SSBO0"
|
Name 17 "SSBO0"
|
||||||
MemberName 17(SSBO0) 0 "a"
|
MemberName 17(SSBO0) 0 "a"
|
||||||
Name 19 "inBuf"
|
Name 19 "inBuf"
|
||||||
Name 37 "SSBO1"
|
Name 39 "SSBO1"
|
||||||
MemberName 37(SSBO1) 0 "b"
|
MemberName 39(SSBO1) 0 "b"
|
||||||
Name 39 "outBuf"
|
Name 41 "outBuf"
|
||||||
Name 57 "MyStruct"
|
Name 58 "MyStruct"
|
||||||
MemberName 57(MyStruct) 0 "foo"
|
MemberName 58(MyStruct) 0 "foo"
|
||||||
MemberName 57(MyStruct) 1 "sb"
|
MemberName 58(MyStruct) 1 "sb"
|
||||||
Name 58 "UBO"
|
Name 59 "UBO"
|
||||||
MemberName 58(UBO) 0 "c"
|
MemberName 59(UBO) 0 "c"
|
||||||
Name 60 "uBuf"
|
Name 61 "uBuf"
|
||||||
Name 84 "Nested"
|
Name 86 "Nested"
|
||||||
MemberName 84(Nested) 0 "f"
|
MemberName 86(Nested) 0 "f"
|
||||||
MemberName 84(Nested) 1 "S"
|
MemberName 86(Nested) 1 "S"
|
||||||
Name 86 "n"
|
Name 88 "n"
|
||||||
Name 88 "Nested"
|
Name 90 "Nested"
|
||||||
MemberName 88(Nested) 0 "f"
|
MemberName 90(Nested) 0 "f"
|
||||||
MemberName 88(Nested) 1 "S"
|
MemberName 90(Nested) 1 "S"
|
||||||
Name 89 "UBON"
|
Name 91 "UBON"
|
||||||
MemberName 89(UBON) 0 "N1"
|
MemberName 91(UBON) 0 "N1"
|
||||||
Name 91 "uBufN"
|
Name 93 "uBufN"
|
||||||
Name 122 "Nested"
|
Name 126 "Nested"
|
||||||
MemberName 122(Nested) 0 "f"
|
MemberName 126(Nested) 0 "f"
|
||||||
MemberName 122(Nested) 1 "S"
|
MemberName 126(Nested) 1 "S"
|
||||||
Name 123 "SSBO1N"
|
Name 127 "SSBO1N"
|
||||||
MemberName 123(SSBO1N) 0 "N2"
|
MemberName 127(SSBO1N) 0 "N2"
|
||||||
Name 125 "outBufN"
|
Name 129 "outBufN"
|
||||||
Decorate 15 ArrayStride 8
|
Decorate 15 ArrayStride 8
|
||||||
MemberDecorate 16(MyStruct) 0 Offset 0
|
MemberDecorate 16(MyStruct) 0 Offset 0
|
||||||
MemberDecorate 16(MyStruct) 1 Offset 16
|
MemberDecorate 16(MyStruct) 1 Offset 16
|
||||||
@ -54,31 +54,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
Decorate 17(SSBO0) BufferBlock
|
Decorate 17(SSBO0) BufferBlock
|
||||||
Decorate 19(inBuf) DescriptorSet 0
|
Decorate 19(inBuf) DescriptorSet 0
|
||||||
Decorate 19(inBuf) Binding 0
|
Decorate 19(inBuf) Binding 0
|
||||||
MemberDecorate 37(SSBO1) 0 Offset 0
|
MemberDecorate 39(SSBO1) 0 Offset 0
|
||||||
Decorate 37(SSBO1) BufferBlock
|
Decorate 39(SSBO1) BufferBlock
|
||||||
Decorate 39(outBuf) DescriptorSet 0
|
Decorate 41(outBuf) DescriptorSet 0
|
||||||
Decorate 39(outBuf) Binding 1
|
Decorate 41(outBuf) Binding 1
|
||||||
Decorate 56 ArrayStride 16
|
Decorate 57 ArrayStride 16
|
||||||
MemberDecorate 57(MyStruct) 0 Offset 0
|
MemberDecorate 58(MyStruct) 0 Offset 0
|
||||||
MemberDecorate 57(MyStruct) 1 Offset 32
|
MemberDecorate 58(MyStruct) 1 Offset 32
|
||||||
MemberDecorate 58(UBO) 0 Offset 0
|
MemberDecorate 59(UBO) 0 Offset 0
|
||||||
Decorate 58(UBO) Block
|
Decorate 59(UBO) Block
|
||||||
Decorate 60(uBuf) DescriptorSet 0
|
Decorate 61(uBuf) DescriptorSet 0
|
||||||
Decorate 60(uBuf) Binding 2
|
Decorate 61(uBuf) Binding 2
|
||||||
Decorate 87 ArrayStride 48
|
Decorate 89 ArrayStride 48
|
||||||
MemberDecorate 88(Nested) 0 Offset 0
|
MemberDecorate 90(Nested) 0 Offset 0
|
||||||
MemberDecorate 88(Nested) 1 Offset 16
|
MemberDecorate 90(Nested) 1 Offset 16
|
||||||
MemberDecorate 89(UBON) 0 Offset 0
|
MemberDecorate 91(UBON) 0 Offset 0
|
||||||
Decorate 89(UBON) Block
|
Decorate 91(UBON) Block
|
||||||
Decorate 91(uBufN) DescriptorSet 0
|
Decorate 93(uBufN) DescriptorSet 0
|
||||||
Decorate 91(uBufN) Binding 2
|
Decorate 93(uBufN) Binding 2
|
||||||
Decorate 121 ArrayStride 24
|
Decorate 125 ArrayStride 24
|
||||||
MemberDecorate 122(Nested) 0 Offset 0
|
MemberDecorate 126(Nested) 0 Offset 0
|
||||||
MemberDecorate 122(Nested) 1 Offset 8
|
MemberDecorate 126(Nested) 1 Offset 8
|
||||||
MemberDecorate 123(SSBO1N) 0 Offset 0
|
MemberDecorate 127(SSBO1N) 0 Offset 0
|
||||||
Decorate 123(SSBO1N) BufferBlock
|
Decorate 127(SSBO1N) BufferBlock
|
||||||
Decorate 125(outBufN) DescriptorSet 0
|
Decorate 129(outBufN) DescriptorSet 0
|
||||||
Decorate 125(outBufN) Binding 1
|
Decorate 129(outBufN) Binding 1
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
6: TypeFloat 32
|
6: TypeFloat 32
|
||||||
@ -100,44 +100,44 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
26: TypePointer Function 10
|
26: TypePointer Function 10
|
||||||
29: TypePointer Function 7(fvec2)
|
29: TypePointer Function 7(fvec2)
|
||||||
32: 20(int) Constant 1
|
32: 20(int) Constant 1
|
||||||
35: TypePointer Function 11(bool)
|
35: 8(int) Constant 0
|
||||||
37(SSBO1): TypeStruct 16(MyStruct)
|
37: TypePointer Function 11(bool)
|
||||||
38: TypePointer Uniform 37(SSBO1)
|
39(SSBO1): TypeStruct 16(MyStruct)
|
||||||
39(outBuf): 38(ptr) Variable Uniform
|
40: TypePointer Uniform 39(SSBO1)
|
||||||
43: TypePointer Uniform 15
|
41(outBuf): 40(ptr) Variable Uniform
|
||||||
46: TypePointer Uniform 7(fvec2)
|
45: TypePointer Uniform 15
|
||||||
51: 8(int) Constant 0
|
48: TypePointer Uniform 7(fvec2)
|
||||||
52: 8(int) Constant 1
|
53: 8(int) Constant 1
|
||||||
54: TypePointer Uniform 8(int)
|
55: TypePointer Uniform 8(int)
|
||||||
56: TypeArray 7(fvec2) 9
|
57: TypeArray 7(fvec2) 9
|
||||||
57(MyStruct): TypeStruct 56 8(int)
|
58(MyStruct): TypeStruct 57 8(int)
|
||||||
58(UBO): TypeStruct 57(MyStruct)
|
59(UBO): TypeStruct 58(MyStruct)
|
||||||
59: TypePointer Uniform 58(UBO)
|
60: TypePointer Uniform 59(UBO)
|
||||||
60(uBuf): 59(ptr) Variable Uniform
|
61(uBuf): 60(ptr) Variable Uniform
|
||||||
61: TypePointer Uniform 57(MyStruct)
|
62: TypePointer Uniform 58(MyStruct)
|
||||||
83: TypeArray 12(MyStruct) 9
|
85: TypeArray 12(MyStruct) 9
|
||||||
84(Nested): TypeStruct 6(float) 83
|
86(Nested): TypeStruct 6(float) 85
|
||||||
85: TypePointer Function 84(Nested)
|
87: TypePointer Function 86(Nested)
|
||||||
87: TypeArray 57(MyStruct) 9
|
89: TypeArray 58(MyStruct) 9
|
||||||
88(Nested): TypeStruct 6(float) 87
|
90(Nested): TypeStruct 6(float) 89
|
||||||
89(UBON): TypeStruct 88(Nested)
|
91(UBON): TypeStruct 90(Nested)
|
||||||
90: TypePointer Uniform 89(UBON)
|
92: TypePointer Uniform 91(UBON)
|
||||||
91(uBufN): 90(ptr) Variable Uniform
|
93(uBufN): 92(ptr) Variable Uniform
|
||||||
92: TypePointer Uniform 88(Nested)
|
94: TypePointer Uniform 90(Nested)
|
||||||
96: TypePointer Function 6(float)
|
98: TypePointer Function 6(float)
|
||||||
99: TypePointer Function 83
|
101: TypePointer Function 85
|
||||||
121: TypeArray 16(MyStruct) 9
|
125: TypeArray 16(MyStruct) 9
|
||||||
122(Nested): TypeStruct 6(float) 121
|
126(Nested): TypeStruct 6(float) 125
|
||||||
123(SSBO1N): TypeStruct 122(Nested)
|
127(SSBO1N): TypeStruct 126(Nested)
|
||||||
124: TypePointer Uniform 123(SSBO1N)
|
128: TypePointer Uniform 127(SSBO1N)
|
||||||
125(outBufN): 124(ptr) Variable Uniform
|
129(outBufN): 128(ptr) Variable Uniform
|
||||||
127: TypePointer Uniform 122(Nested)
|
131: TypePointer Uniform 126(Nested)
|
||||||
130: TypePointer Uniform 6(float)
|
134: TypePointer Uniform 6(float)
|
||||||
133: TypePointer Uniform 121
|
137: TypePointer Uniform 125
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
14(t): 13(ptr) Variable Function
|
14(t): 13(ptr) Variable Function
|
||||||
86(n): 85(ptr) Variable Function
|
88(n): 87(ptr) Variable Function
|
||||||
23: 22(ptr) AccessChain 19(inBuf) 21
|
23: 22(ptr) AccessChain 19(inBuf) 21
|
||||||
24:16(MyStruct) Load 23
|
24:16(MyStruct) Load 23
|
||||||
25: 15 CompositeExtract 24 0
|
25: 15 CompositeExtract 24 0
|
||||||
@ -149,116 +149,120 @@ Warning, version 450 is not yet complete; most version-specific features are pre
|
|||||||
33: 29(ptr) AccessChain 27 32
|
33: 29(ptr) AccessChain 27 32
|
||||||
Store 33 31
|
Store 33 31
|
||||||
34: 8(int) CompositeExtract 24 1
|
34: 8(int) CompositeExtract 24 1
|
||||||
36: 35(ptr) AccessChain 14(t) 32
|
36: 11(bool) INotEqual 34 35
|
||||||
Store 36 34
|
38: 37(ptr) AccessChain 14(t) 32
|
||||||
40:12(MyStruct) Load 14(t)
|
Store 38 36
|
||||||
41: 22(ptr) AccessChain 39(outBuf) 21
|
42:12(MyStruct) Load 14(t)
|
||||||
42: 10 CompositeExtract 40 0
|
43: 22(ptr) AccessChain 41(outBuf) 21
|
||||||
44: 43(ptr) AccessChain 41 21
|
44: 10 CompositeExtract 42 0
|
||||||
45: 7(fvec2) CompositeExtract 42 0
|
46: 45(ptr) AccessChain 43 21
|
||||||
47: 46(ptr) AccessChain 44 21
|
47: 7(fvec2) CompositeExtract 44 0
|
||||||
Store 47 45
|
49: 48(ptr) AccessChain 46 21
|
||||||
48: 7(fvec2) CompositeExtract 42 1
|
Store 49 47
|
||||||
49: 46(ptr) AccessChain 44 32
|
50: 7(fvec2) CompositeExtract 44 1
|
||||||
Store 49 48
|
51: 48(ptr) AccessChain 46 32
|
||||||
50: 11(bool) CompositeExtract 40 1
|
Store 51 50
|
||||||
53: 8(int) Select 50 52 51
|
52: 11(bool) CompositeExtract 42 1
|
||||||
55: 54(ptr) AccessChain 41 32
|
54: 8(int) Select 52 53 35
|
||||||
Store 55 53
|
56: 55(ptr) AccessChain 43 32
|
||||||
62: 61(ptr) AccessChain 60(uBuf) 21
|
Store 56 54
|
||||||
63:57(MyStruct) Load 62
|
63: 62(ptr) AccessChain 61(uBuf) 21
|
||||||
64: 56 CompositeExtract 63 0
|
64:58(MyStruct) Load 63
|
||||||
65: 26(ptr) AccessChain 14(t) 21
|
65: 57 CompositeExtract 64 0
|
||||||
66: 7(fvec2) CompositeExtract 64 0
|
66: 26(ptr) AccessChain 14(t) 21
|
||||||
67: 29(ptr) AccessChain 65 21
|
67: 7(fvec2) CompositeExtract 65 0
|
||||||
Store 67 66
|
68: 29(ptr) AccessChain 66 21
|
||||||
68: 7(fvec2) CompositeExtract 64 1
|
Store 68 67
|
||||||
69: 29(ptr) AccessChain 65 32
|
69: 7(fvec2) CompositeExtract 65 1
|
||||||
Store 69 68
|
70: 29(ptr) AccessChain 66 32
|
||||||
70: 8(int) CompositeExtract 63 1
|
Store 70 69
|
||||||
71: 35(ptr) AccessChain 14(t) 32
|
71: 8(int) CompositeExtract 64 1
|
||||||
Store 71 70
|
72: 11(bool) INotEqual 71 35
|
||||||
72:12(MyStruct) Load 14(t)
|
73: 37(ptr) AccessChain 14(t) 32
|
||||||
73: 22(ptr) AccessChain 39(outBuf) 21
|
Store 73 72
|
||||||
74: 10 CompositeExtract 72 0
|
74:12(MyStruct) Load 14(t)
|
||||||
75: 43(ptr) AccessChain 73 21
|
75: 22(ptr) AccessChain 41(outBuf) 21
|
||||||
76: 7(fvec2) CompositeExtract 74 0
|
76: 10 CompositeExtract 74 0
|
||||||
77: 46(ptr) AccessChain 75 21
|
77: 45(ptr) AccessChain 75 21
|
||||||
Store 77 76
|
78: 7(fvec2) CompositeExtract 76 0
|
||||||
78: 7(fvec2) CompositeExtract 74 1
|
79: 48(ptr) AccessChain 77 21
|
||||||
79: 46(ptr) AccessChain 75 32
|
|
||||||
Store 79 78
|
Store 79 78
|
||||||
80: 11(bool) CompositeExtract 72 1
|
80: 7(fvec2) CompositeExtract 76 1
|
||||||
81: 8(int) Select 80 52 51
|
81: 48(ptr) AccessChain 77 32
|
||||||
82: 54(ptr) AccessChain 73 32
|
Store 81 80
|
||||||
Store 82 81
|
82: 11(bool) CompositeExtract 74 1
|
||||||
93: 92(ptr) AccessChain 91(uBufN) 21
|
83: 8(int) Select 82 53 35
|
||||||
94: 88(Nested) Load 93
|
84: 55(ptr) AccessChain 75 32
|
||||||
95: 6(float) CompositeExtract 94 0
|
Store 84 83
|
||||||
97: 96(ptr) AccessChain 86(n) 21
|
95: 94(ptr) AccessChain 93(uBufN) 21
|
||||||
Store 97 95
|
96: 90(Nested) Load 95
|
||||||
98: 87 CompositeExtract 94 1
|
97: 6(float) CompositeExtract 96 0
|
||||||
100: 99(ptr) AccessChain 86(n) 32
|
99: 98(ptr) AccessChain 88(n) 21
|
||||||
101:57(MyStruct) CompositeExtract 98 0
|
Store 99 97
|
||||||
102: 13(ptr) AccessChain 100 21
|
100: 89 CompositeExtract 96 1
|
||||||
103: 56 CompositeExtract 101 0
|
102: 101(ptr) AccessChain 88(n) 32
|
||||||
104: 26(ptr) AccessChain 102 21
|
103:58(MyStruct) CompositeExtract 100 0
|
||||||
105: 7(fvec2) CompositeExtract 103 0
|
104: 13(ptr) AccessChain 102 21
|
||||||
106: 29(ptr) AccessChain 104 21
|
105: 57 CompositeExtract 103 0
|
||||||
Store 106 105
|
106: 26(ptr) AccessChain 104 21
|
||||||
107: 7(fvec2) CompositeExtract 103 1
|
107: 7(fvec2) CompositeExtract 105 0
|
||||||
108: 29(ptr) AccessChain 104 32
|
108: 29(ptr) AccessChain 106 21
|
||||||
Store 108 107
|
Store 108 107
|
||||||
109: 8(int) CompositeExtract 101 1
|
109: 7(fvec2) CompositeExtract 105 1
|
||||||
110: 35(ptr) AccessChain 102 32
|
110: 29(ptr) AccessChain 106 32
|
||||||
Store 110 109
|
Store 110 109
|
||||||
111:57(MyStruct) CompositeExtract 98 1
|
111: 8(int) CompositeExtract 103 1
|
||||||
112: 13(ptr) AccessChain 100 32
|
112: 11(bool) INotEqual 111 35
|
||||||
113: 56 CompositeExtract 111 0
|
113: 37(ptr) AccessChain 104 32
|
||||||
114: 26(ptr) AccessChain 112 21
|
Store 113 112
|
||||||
115: 7(fvec2) CompositeExtract 113 0
|
114:58(MyStruct) CompositeExtract 100 1
|
||||||
116: 29(ptr) AccessChain 114 21
|
115: 13(ptr) AccessChain 102 32
|
||||||
Store 116 115
|
116: 57 CompositeExtract 114 0
|
||||||
117: 7(fvec2) CompositeExtract 113 1
|
117: 26(ptr) AccessChain 115 21
|
||||||
118: 29(ptr) AccessChain 114 32
|
118: 7(fvec2) CompositeExtract 116 0
|
||||||
Store 118 117
|
119: 29(ptr) AccessChain 117 21
|
||||||
119: 8(int) CompositeExtract 111 1
|
Store 119 118
|
||||||
120: 35(ptr) AccessChain 112 32
|
120: 7(fvec2) CompositeExtract 116 1
|
||||||
Store 120 119
|
121: 29(ptr) AccessChain 117 32
|
||||||
126: 84(Nested) Load 86(n)
|
Store 121 120
|
||||||
128: 127(ptr) AccessChain 125(outBufN) 21
|
122: 8(int) CompositeExtract 114 1
|
||||||
129: 6(float) CompositeExtract 126 0
|
123: 11(bool) INotEqual 122 35
|
||||||
131: 130(ptr) AccessChain 128 21
|
124: 37(ptr) AccessChain 115 32
|
||||||
Store 131 129
|
Store 124 123
|
||||||
132: 83 CompositeExtract 126 1
|
130: 86(Nested) Load 88(n)
|
||||||
134: 133(ptr) AccessChain 128 32
|
132: 131(ptr) AccessChain 129(outBufN) 21
|
||||||
135:12(MyStruct) CompositeExtract 132 0
|
133: 6(float) CompositeExtract 130 0
|
||||||
136: 22(ptr) AccessChain 134 21
|
135: 134(ptr) AccessChain 132 21
|
||||||
137: 10 CompositeExtract 135 0
|
Store 135 133
|
||||||
138: 43(ptr) AccessChain 136 21
|
136: 85 CompositeExtract 130 1
|
||||||
139: 7(fvec2) CompositeExtract 137 0
|
138: 137(ptr) AccessChain 132 32
|
||||||
140: 46(ptr) AccessChain 138 21
|
139:12(MyStruct) CompositeExtract 136 0
|
||||||
Store 140 139
|
140: 22(ptr) AccessChain 138 21
|
||||||
141: 7(fvec2) CompositeExtract 137 1
|
141: 10 CompositeExtract 139 0
|
||||||
142: 46(ptr) AccessChain 138 32
|
142: 45(ptr) AccessChain 140 21
|
||||||
Store 142 141
|
143: 7(fvec2) CompositeExtract 141 0
|
||||||
143: 11(bool) CompositeExtract 135 1
|
144: 48(ptr) AccessChain 142 21
|
||||||
144: 8(int) Select 143 52 51
|
Store 144 143
|
||||||
145: 54(ptr) AccessChain 136 32
|
145: 7(fvec2) CompositeExtract 141 1
|
||||||
Store 145 144
|
146: 48(ptr) AccessChain 142 32
|
||||||
146:12(MyStruct) CompositeExtract 132 1
|
Store 146 145
|
||||||
147: 22(ptr) AccessChain 134 32
|
147: 11(bool) CompositeExtract 139 1
|
||||||
148: 10 CompositeExtract 146 0
|
148: 8(int) Select 147 53 35
|
||||||
149: 43(ptr) AccessChain 147 21
|
149: 55(ptr) AccessChain 140 32
|
||||||
150: 7(fvec2) CompositeExtract 148 0
|
Store 149 148
|
||||||
151: 46(ptr) AccessChain 149 21
|
150:12(MyStruct) CompositeExtract 136 1
|
||||||
Store 151 150
|
151: 22(ptr) AccessChain 138 32
|
||||||
152: 7(fvec2) CompositeExtract 148 1
|
152: 10 CompositeExtract 150 0
|
||||||
153: 46(ptr) AccessChain 149 32
|
153: 45(ptr) AccessChain 151 21
|
||||||
Store 153 152
|
154: 7(fvec2) CompositeExtract 152 0
|
||||||
154: 11(bool) CompositeExtract 146 1
|
155: 48(ptr) AccessChain 153 21
|
||||||
155: 8(int) Select 154 52 51
|
Store 155 154
|
||||||
156: 54(ptr) AccessChain 147 32
|
156: 7(fvec2) CompositeExtract 152 1
|
||||||
Store 156 155
|
157: 48(ptr) AccessChain 153 32
|
||||||
|
Store 157 156
|
||||||
|
158: 11(bool) CompositeExtract 150 1
|
||||||
|
159: 8(int) Select 158 53 35
|
||||||
|
160: 55(ptr) AccessChain 151 32
|
||||||
|
Store 160 159
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user