SPV non-functional: minor readability improvements for texturing.
This commit is contained in:
parent
ac666e7368
commit
76d4dfcd51
@ -643,9 +643,9 @@ bool HasNonLayoutQualifiers(const glslang::TQualifier& qualifier)
|
||||
{
|
||||
// This should list qualifiers that simultaneous satisfy:
|
||||
// - struct members can inherit from a struct declaration
|
||||
// - effect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object)
|
||||
// - affect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object)
|
||||
// - are not part of the offset/st430/etc or row/column-major layout
|
||||
return qualifier.invariant || qualifier.nopersp || qualifier.flat || qualifier.centroid || qualifier.patch || qualifier.sample || qualifier.hasLocation();
|
||||
return qualifier.invariant || qualifier.hasLocation();
|
||||
}
|
||||
|
||||
//
|
||||
@ -1913,8 +1913,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangType));
|
||||
// Add interpolation and auxiliary storage decorations only to top-level members of Input and Output storage classes
|
||||
if (type.getQualifier().storage == glslang::EvqVaryingIn || type.getQualifier().storage == glslang::EvqVaryingOut) {
|
||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier));
|
||||
addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier));
|
||||
if (type.getBasicType() == glslang::EbtBlock) {
|
||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier));
|
||||
addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(subQualifier));
|
||||
}
|
||||
}
|
||||
addMemberDecoration(spvType, member, TranslateInvariantDecoration(subQualifier));
|
||||
|
||||
@ -2606,14 +2608,16 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
++extraArgs;
|
||||
} else if (sampler.shadow) {
|
||||
std::vector<spv::Id> indexes;
|
||||
int comp;
|
||||
int dRefComp;
|
||||
if (cracked.proj)
|
||||
comp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref"
|
||||
dRefComp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref"
|
||||
else
|
||||
comp = builder.getNumComponents(params.coords) - 1;
|
||||
indexes.push_back(comp);
|
||||
dRefComp = builder.getNumComponents(params.coords) - 1;
|
||||
indexes.push_back(dRefComp);
|
||||
params.Dref = builder.createCompositeExtract(params.coords, builder.getScalarTypeId(builder.getTypeId(params.coords)), indexes);
|
||||
}
|
||||
|
||||
// lod
|
||||
if (cracked.lod) {
|
||||
params.lod = arguments[2];
|
||||
++extraArgs;
|
||||
@ -2621,15 +2625,21 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
// we need to invent the default lod for an explicit lod instruction for a non-fragment stage
|
||||
noImplicitLod = true;
|
||||
}
|
||||
|
||||
// multisample
|
||||
if (sampler.ms) {
|
||||
params.sample = arguments[2]; // For MS, "sample" should be specified
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// gradient
|
||||
if (cracked.grad) {
|
||||
params.gradX = arguments[2 + extraArgs];
|
||||
params.gradY = arguments[3 + extraArgs];
|
||||
extraArgs += 2;
|
||||
}
|
||||
|
||||
// offset and offsets
|
||||
if (cracked.offset) {
|
||||
params.offset = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
@ -2637,25 +2647,33 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
params.offsets = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// lod clamp
|
||||
if (cracked.lodClamp) {
|
||||
params.lodClamp = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// sparse
|
||||
if (sparse) {
|
||||
params.texelOut = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// bias
|
||||
if (bias) {
|
||||
params.bias = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
}
|
||||
|
||||
// gather component
|
||||
if (cracked.gather && ! sampler.shadow) {
|
||||
// default component is 0, if missing, otherwise an argument
|
||||
if (2 + extraArgs < (int)arguments.size()) {
|
||||
params.comp = arguments[2 + extraArgs];
|
||||
params.component = arguments[2 + extraArgs];
|
||||
++extraArgs;
|
||||
} else {
|
||||
params.comp = builder.makeIntConstant(0);
|
||||
params.component = builder.makeIntConstant(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1430,10 +1430,10 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool sparse,
|
||||
bool explicitLod = false;
|
||||
texArgs[numArgs++] = parameters.sampler;
|
||||
texArgs[numArgs++] = parameters.coords;
|
||||
if (parameters.Dref)
|
||||
if (parameters.Dref != NoResult)
|
||||
texArgs[numArgs++] = parameters.Dref;
|
||||
if (parameters.comp)
|
||||
texArgs[numArgs++] = parameters.comp;
|
||||
if (parameters.component != NoResult)
|
||||
texArgs[numArgs++] = parameters.component;
|
||||
|
||||
//
|
||||
// Set up the optional arguments
|
||||
|
@ -321,7 +321,7 @@ public:
|
||||
Id gradX;
|
||||
Id gradY;
|
||||
Id sample;
|
||||
Id comp;
|
||||
Id component;
|
||||
Id texelOut;
|
||||
Id lodClamp;
|
||||
};
|
||||
|
@ -63,9 +63,6 @@ Linked vertex stage:
|
||||
Decorate 55(sampb2) Binding 5
|
||||
Decorate 56(sampb4) DescriptorSet 0
|
||||
Decorate 56(sampb4) Binding 31
|
||||
MemberDecorate 60(SS) 0 Flat
|
||||
MemberDecorate 60(SS) 1 Flat
|
||||
MemberDecorate 60(SS) 2 Flat
|
||||
Decorate 62(var) Location 0
|
||||
MemberDecorate 63(MS) 0 Location 17
|
||||
Decorate 63(MS) Block
|
||||
|
@ -7,12 +7,12 @@ Linked vertex stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 67
|
||||
// Id's are bound by 66
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 63 66
|
||||
EntryPoint Vertex 4 "main" 62 65
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 14 "S"
|
||||
@ -82,16 +82,12 @@ Linked vertex stage:
|
||||
MemberName 58(bBt3) 0 "ntcol"
|
||||
MemberName 58(bBt3) 1 "ntrow"
|
||||
Name 60 "bBtn3"
|
||||
Name 61 "S"
|
||||
MemberName 61(S) 0 "a"
|
||||
MemberName 61(S) 1 "b"
|
||||
MemberName 61(S) 2 "c"
|
||||
Name 63 "sout"
|
||||
Name 64 "S"
|
||||
MemberName 64(S) 0 "a"
|
||||
MemberName 64(S) 1 "b"
|
||||
MemberName 64(S) 2 "c"
|
||||
Name 66 "soutinv"
|
||||
Name 62 "sout"
|
||||
Name 63 "S"
|
||||
MemberName 63(S) 0 "a"
|
||||
MemberName 63(S) 1 "b"
|
||||
MemberName 63(S) 2 "c"
|
||||
Name 65 "soutinv"
|
||||
Decorate 13 ArrayStride 32
|
||||
MemberDecorate 14(S) 0 Offset 0
|
||||
MemberDecorate 14(S) 1 ColMajor
|
||||
@ -166,13 +162,10 @@ Linked vertex stage:
|
||||
Decorate 58(bBt3) BufferBlock
|
||||
Decorate 60(bBtn3) DescriptorSet 1
|
||||
Decorate 60(bBtn3) Binding 0
|
||||
MemberDecorate 61(S) 0 Flat
|
||||
MemberDecorate 61(S) 1 Flat
|
||||
MemberDecorate 61(S) 2 Flat
|
||||
MemberDecorate 64(S) 0 Invariant
|
||||
MemberDecorate 64(S) 1 Invariant
|
||||
MemberDecorate 64(S) 2 Invariant
|
||||
Decorate 66(soutinv) Invariant
|
||||
MemberDecorate 63(S) 0 Invariant
|
||||
MemberDecorate 63(S) 1 Invariant
|
||||
MemberDecorate 63(S) 2 Invariant
|
||||
Decorate 65(soutinv) Invariant
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -230,12 +223,11 @@ Linked vertex stage:
|
||||
58(bBt3): TypeStruct 49(Nestor) 54(Nestor)
|
||||
59: TypePointer Uniform 58(bBt3)
|
||||
60(bBtn3): 59(ptr) Variable Uniform
|
||||
61(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
62: TypePointer Output 61(S)
|
||||
63(sout): 62(ptr) Variable Output
|
||||
64(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
65: TypePointer Output 64(S)
|
||||
66(soutinv): 65(ptr) Variable Output
|
||||
61: TypePointer Output 29(S)
|
||||
62(sout): 61(ptr) Variable Output
|
||||
63(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
64: TypePointer Output 63(S)
|
||||
65(soutinv): 64(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
Return
|
||||
|
@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 143
|
||||
// Id's are bound by 136
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 18 43 93 101 111 138 142
|
||||
EntryPoint Fragment 4 "main" 15 40 90 98 108 134 135
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
@ -25,59 +25,27 @@ Linked fragment stage:
|
||||
MemberName 10(s2) 2 "s1_1"
|
||||
MemberName 10(s2) 3 "bleh"
|
||||
Name 12 "locals2"
|
||||
Name 13 "s1"
|
||||
MemberName 13(s1) 0 "i"
|
||||
MemberName 13(s1) 1 "f"
|
||||
Name 14 "s2"
|
||||
MemberName 14(s2) 0 "i"
|
||||
MemberName 14(s2) 1 "f"
|
||||
MemberName 14(s2) 2 "s1_1"
|
||||
MemberName 14(s2) 3 "bleh"
|
||||
Name 15 "s1"
|
||||
MemberName 15(s1) 0 "i"
|
||||
MemberName 15(s1) 1 "f"
|
||||
Name 16 "s3"
|
||||
MemberName 16(s3) 0 "s2_1"
|
||||
MemberName 16(s3) 1 "i"
|
||||
MemberName 16(s3) 2 "f"
|
||||
MemberName 16(s3) 3 "s1_1"
|
||||
Name 18 "foo3"
|
||||
Name 39 "localFArray"
|
||||
Name 43 "coord"
|
||||
Name 52 "localIArray"
|
||||
Name 71 "x"
|
||||
Name 73 "localArray"
|
||||
Name 78 "i"
|
||||
Name 87 "a"
|
||||
Name 93 "condition"
|
||||
Name 101 "color"
|
||||
Name 111 "gl_FragColor"
|
||||
Name 131 "samp2D"
|
||||
Name 136 "s1"
|
||||
MemberName 136(s1) 0 "i"
|
||||
MemberName 136(s1) 1 "f"
|
||||
Name 138 "foo"
|
||||
Name 139 "s1"
|
||||
MemberName 139(s1) 0 "i"
|
||||
MemberName 139(s1) 1 "f"
|
||||
Name 140 "s2"
|
||||
MemberName 140(s2) 0 "i"
|
||||
MemberName 140(s2) 1 "f"
|
||||
MemberName 140(s2) 2 "s1_1"
|
||||
MemberName 140(s2) 3 "bleh"
|
||||
Name 142 "foo2"
|
||||
MemberDecorate 16(s3) 0 Flat
|
||||
MemberDecorate 16(s3) 1 Flat
|
||||
MemberDecorate 16(s3) 2 Flat
|
||||
MemberDecorate 16(s3) 3 Flat
|
||||
Decorate 93(condition) Flat
|
||||
Decorate 131(samp2D) DescriptorSet 0
|
||||
MemberDecorate 136(s1) 0 Flat
|
||||
MemberDecorate 136(s1) 1 Flat
|
||||
MemberDecorate 140(s2) 0 Flat
|
||||
MemberDecorate 140(s2) 1 Flat
|
||||
MemberDecorate 140(s2) 2 Flat
|
||||
MemberDecorate 140(s2) 3 Flat
|
||||
Name 13 "s3"
|
||||
MemberName 13(s3) 0 "s2_1"
|
||||
MemberName 13(s3) 1 "i"
|
||||
MemberName 13(s3) 2 "f"
|
||||
MemberName 13(s3) 3 "s1_1"
|
||||
Name 15 "foo3"
|
||||
Name 36 "localFArray"
|
||||
Name 40 "coord"
|
||||
Name 49 "localIArray"
|
||||
Name 68 "x"
|
||||
Name 70 "localArray"
|
||||
Name 75 "i"
|
||||
Name 84 "a"
|
||||
Name 90 "condition"
|
||||
Name 98 "color"
|
||||
Name 108 "gl_FragColor"
|
||||
Name 128 "samp2D"
|
||||
Name 134 "foo"
|
||||
Name 135 "foo2"
|
||||
Decorate 90(condition) Flat
|
||||
Decorate 128(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -86,171 +54,164 @@ Linked fragment stage:
|
||||
9: TypeVector 7(float) 4
|
||||
10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
|
||||
11: TypePointer Function 10(s2)
|
||||
13(s1): TypeStruct 6(int) 7(float)
|
||||
14(s2): TypeStruct 6(int) 7(float) 13(s1) 9(fvec4)
|
||||
15(s1): TypeStruct 6(int) 7(float)
|
||||
16(s3): TypeStruct 14(s2) 6(int) 7(float) 15(s1)
|
||||
17: TypePointer Input 16(s3)
|
||||
18(foo3): 17(ptr) Variable Input
|
||||
19: 6(int) Constant 0
|
||||
20: TypePointer Input 14(s2)
|
||||
23: TypePointer Input 6(int)
|
||||
26: TypeBool
|
||||
30: 6(int) Constant 2
|
||||
31: 6(int) Constant 1
|
||||
32: 7(float) Constant 1065353216
|
||||
33: TypePointer Function 7(float)
|
||||
35: TypeInt 32 0
|
||||
36: 35(int) Constant 16
|
||||
37: TypeArray 7(float) 36
|
||||
38: TypePointer Function 37
|
||||
40: 6(int) Constant 4
|
||||
41: TypeVector 7(float) 2
|
||||
42: TypePointer Input 41(fvec2)
|
||||
43(coord): 42(ptr) Variable Input
|
||||
44: 35(int) Constant 0
|
||||
45: TypePointer Input 7(float)
|
||||
49: 35(int) Constant 8
|
||||
50: TypeArray 6(int) 49
|
||||
51: TypePointer Function 50
|
||||
55: TypePointer Function 6(int)
|
||||
72: 6(int) Constant 5
|
||||
85: 6(int) Constant 16
|
||||
89: 7(float) Constant 0
|
||||
93(condition): 23(ptr) Variable Input
|
||||
99: 6(int) Constant 3
|
||||
100: TypePointer Input 9(fvec4)
|
||||
101(color): 100(ptr) Variable Input
|
||||
103: TypePointer Function 9(fvec4)
|
||||
105: 35(int) Constant 1
|
||||
108: 35(int) Constant 2
|
||||
110: TypePointer Output 9(fvec4)
|
||||
111(gl_FragColor): 110(ptr) Variable Output
|
||||
128: TypeImage 7(float) 2D sampled format:Unknown
|
||||
129: TypeSampledImage 128
|
||||
130: TypePointer UniformConstant 129
|
||||
131(samp2D): 130(ptr) Variable UniformConstant
|
||||
136(s1): TypeStruct 6(int) 7(float)
|
||||
137: TypePointer Input 136(s1)
|
||||
138(foo): 137(ptr) Variable Input
|
||||
139(s1): TypeStruct 6(int) 7(float)
|
||||
140(s2): TypeStruct 6(int) 7(float) 139(s1) 9(fvec4)
|
||||
141: TypePointer Input 140(s2)
|
||||
142(foo2): 141(ptr) Variable Input
|
||||
13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1)
|
||||
14: TypePointer Input 13(s3)
|
||||
15(foo3): 14(ptr) Variable Input
|
||||
16: 6(int) Constant 0
|
||||
17: TypePointer Input 10(s2)
|
||||
20: TypePointer Input 6(int)
|
||||
23: TypeBool
|
||||
27: 6(int) Constant 2
|
||||
28: 6(int) Constant 1
|
||||
29: 7(float) Constant 1065353216
|
||||
30: TypePointer Function 7(float)
|
||||
32: TypeInt 32 0
|
||||
33: 32(int) Constant 16
|
||||
34: TypeArray 7(float) 33
|
||||
35: TypePointer Function 34
|
||||
37: 6(int) Constant 4
|
||||
38: TypeVector 7(float) 2
|
||||
39: TypePointer Input 38(fvec2)
|
||||
40(coord): 39(ptr) Variable Input
|
||||
41: 32(int) Constant 0
|
||||
42: TypePointer Input 7(float)
|
||||
46: 32(int) Constant 8
|
||||
47: TypeArray 6(int) 46
|
||||
48: TypePointer Function 47
|
||||
52: TypePointer Function 6(int)
|
||||
69: 6(int) Constant 5
|
||||
82: 6(int) Constant 16
|
||||
86: 7(float) Constant 0
|
||||
90(condition): 20(ptr) Variable Input
|
||||
96: 6(int) Constant 3
|
||||
97: TypePointer Input 9(fvec4)
|
||||
98(color): 97(ptr) Variable Input
|
||||
100: TypePointer Function 9(fvec4)
|
||||
102: 32(int) Constant 1
|
||||
105: 32(int) Constant 2
|
||||
107: TypePointer Output 9(fvec4)
|
||||
108(gl_FragColor): 107(ptr) Variable Output
|
||||
125: TypeImage 7(float) 2D sampled format:Unknown
|
||||
126: TypeSampledImage 125
|
||||
127: TypePointer UniformConstant 126
|
||||
128(samp2D): 127(ptr) Variable UniformConstant
|
||||
133: TypePointer Input 8(s1)
|
||||
134(foo): 133(ptr) Variable Input
|
||||
135(foo2): 17(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12(locals2): 11(ptr) Variable Function
|
||||
39(localFArray): 38(ptr) Variable Function
|
||||
52(localIArray): 51(ptr) Variable Function
|
||||
71(x): 55(ptr) Variable Function
|
||||
73(localArray): 38(ptr) Variable Function
|
||||
78(i): 55(ptr) Variable Function
|
||||
87(a): 38(ptr) Variable Function
|
||||
21: 20(ptr) AccessChain 18(foo3) 19
|
||||
22: 14(s2) Load 21
|
||||
Store 12(locals2) 22
|
||||
24: 23(ptr) AccessChain 18(foo3) 19 19
|
||||
25: 6(int) Load 24
|
||||
27: 26(bool) SGreaterThan 25 19
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 57
|
||||
28: Label
|
||||
34: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
Store 34 32
|
||||
46: 45(ptr) AccessChain 43(coord) 44
|
||||
47: 7(float) Load 46
|
||||
48: 33(ptr) AccessChain 39(localFArray) 40
|
||||
Store 48 47
|
||||
53: 23(ptr) AccessChain 18(foo3) 19 19
|
||||
54: 6(int) Load 53
|
||||
56: 55(ptr) AccessChain 52(localIArray) 30
|
||||
Store 56 54
|
||||
Branch 29
|
||||
57: Label
|
||||
58: 45(ptr) AccessChain 43(coord) 44
|
||||
59: 7(float) Load 58
|
||||
60: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
Store 60 59
|
||||
61: 33(ptr) AccessChain 39(localFArray) 40
|
||||
Store 61 32
|
||||
62: 55(ptr) AccessChain 52(localIArray) 30
|
||||
Store 62 19
|
||||
Branch 29
|
||||
29: Label
|
||||
63: 55(ptr) AccessChain 52(localIArray) 30
|
||||
64: 6(int) Load 63
|
||||
65: 26(bool) IEqual 64 19
|
||||
SelectionMerge 67 None
|
||||
BranchConditional 65 66 67
|
||||
66: Label
|
||||
68: 33(ptr) AccessChain 39(localFArray) 40
|
||||
69: 7(float) Load 68
|
||||
70: 7(float) FAdd 69 32
|
||||
Store 68 70
|
||||
Branch 67
|
||||
67: Label
|
||||
Store 71(x) 72
|
||||
74: 6(int) Load 71(x)
|
||||
75: 45(ptr) AccessChain 43(coord) 44
|
||||
76: 7(float) Load 75
|
||||
77: 33(ptr) AccessChain 73(localArray) 74
|
||||
Store 77 76
|
||||
Store 78(i) 19
|
||||
Branch 79
|
||||
79: Label
|
||||
LoopMerge 81 82 None
|
||||
Branch 83
|
||||
83: Label
|
||||
84: 6(int) Load 78(i)
|
||||
86: 26(bool) SLessThan 84 85
|
||||
BranchConditional 86 80 81
|
||||
80: Label
|
||||
88: 6(int) Load 78(i)
|
||||
90: 33(ptr) AccessChain 87(a) 88
|
||||
Store 90 89
|
||||
Branch 82
|
||||
82: Label
|
||||
91: 6(int) Load 78(i)
|
||||
92: 6(int) IAdd 91 31
|
||||
Store 78(i) 92
|
||||
36(localFArray): 35(ptr) Variable Function
|
||||
49(localIArray): 48(ptr) Variable Function
|
||||
68(x): 52(ptr) Variable Function
|
||||
70(localArray): 35(ptr) Variable Function
|
||||
75(i): 52(ptr) Variable Function
|
||||
84(a): 35(ptr) Variable Function
|
||||
18: 17(ptr) AccessChain 15(foo3) 16
|
||||
19: 10(s2) Load 18
|
||||
Store 12(locals2) 19
|
||||
21: 20(ptr) AccessChain 15(foo3) 16 16
|
||||
22: 6(int) Load 21
|
||||
24: 23(bool) SGreaterThan 22 16
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 54
|
||||
25: Label
|
||||
31: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
Store 31 29
|
||||
43: 42(ptr) AccessChain 40(coord) 41
|
||||
44: 7(float) Load 43
|
||||
45: 30(ptr) AccessChain 36(localFArray) 37
|
||||
Store 45 44
|
||||
50: 20(ptr) AccessChain 15(foo3) 16 16
|
||||
51: 6(int) Load 50
|
||||
53: 52(ptr) AccessChain 49(localIArray) 27
|
||||
Store 53 51
|
||||
Branch 26
|
||||
54: Label
|
||||
55: 42(ptr) AccessChain 40(coord) 41
|
||||
56: 7(float) Load 55
|
||||
57: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
Store 57 56
|
||||
58: 30(ptr) AccessChain 36(localFArray) 37
|
||||
Store 58 29
|
||||
59: 52(ptr) AccessChain 49(localIArray) 27
|
||||
Store 59 16
|
||||
Branch 26
|
||||
26: Label
|
||||
60: 52(ptr) AccessChain 49(localIArray) 27
|
||||
61: 6(int) Load 60
|
||||
62: 23(bool) IEqual 61 16
|
||||
SelectionMerge 64 None
|
||||
BranchConditional 62 63 64
|
||||
63: Label
|
||||
65: 30(ptr) AccessChain 36(localFArray) 37
|
||||
66: 7(float) Load 65
|
||||
67: 7(float) FAdd 66 29
|
||||
Store 65 67
|
||||
Branch 64
|
||||
64: Label
|
||||
Store 68(x) 69
|
||||
71: 6(int) Load 68(x)
|
||||
72: 42(ptr) AccessChain 40(coord) 41
|
||||
73: 7(float) Load 72
|
||||
74: 30(ptr) AccessChain 70(localArray) 71
|
||||
Store 74 73
|
||||
Store 75(i) 16
|
||||
Branch 76
|
||||
76: Label
|
||||
LoopMerge 78 79 None
|
||||
Branch 80
|
||||
80: Label
|
||||
81: 6(int) Load 75(i)
|
||||
83: 23(bool) SLessThan 81 82
|
||||
BranchConditional 83 77 78
|
||||
77: Label
|
||||
85: 6(int) Load 75(i)
|
||||
87: 30(ptr) AccessChain 84(a) 85
|
||||
Store 87 86
|
||||
Branch 79
|
||||
81: Label
|
||||
94: 6(int) Load 93(condition)
|
||||
95: 26(bool) IEqual 94 31
|
||||
SelectionMerge 97 None
|
||||
BranchConditional 95 96 97
|
||||
96: Label
|
||||
98: 37 Load 73(localArray)
|
||||
Store 87(a) 98
|
||||
Branch 97
|
||||
97: Label
|
||||
102: 9(fvec4) Load 101(color)
|
||||
104: 103(ptr) AccessChain 12(locals2) 99
|
||||
Store 104 102
|
||||
106: 45(ptr) AccessChain 43(coord) 105
|
||||
107: 7(float) Load 106
|
||||
109: 33(ptr) AccessChain 12(locals2) 99 108
|
||||
Store 109 107
|
||||
112: 103(ptr) AccessChain 12(locals2) 99
|
||||
113: 9(fvec4) Load 112
|
||||
114: 33(ptr) AccessChain 39(localFArray) 40
|
||||
115: 7(float) Load 114
|
||||
116: 33(ptr) AccessChain 12(locals2) 30 31
|
||||
117: 7(float) Load 116
|
||||
118: 7(float) FAdd 115 117
|
||||
119: 6(int) Load 71(x)
|
||||
120: 33(ptr) AccessChain 73(localArray) 119
|
||||
121: 7(float) Load 120
|
||||
122: 7(float) FAdd 118 121
|
||||
123: 6(int) Load 71(x)
|
||||
124: 33(ptr) AccessChain 87(a) 123
|
||||
125: 7(float) Load 124
|
||||
126: 7(float) FAdd 122 125
|
||||
127: 9(fvec4) VectorTimesScalar 113 126
|
||||
132: 129 Load 131(samp2D)
|
||||
133: 41(fvec2) Load 43(coord)
|
||||
134: 9(fvec4) ImageSampleImplicitLod 132 133
|
||||
135: 9(fvec4) FMul 127 134
|
||||
Store 111(gl_FragColor) 135
|
||||
79: Label
|
||||
88: 6(int) Load 75(i)
|
||||
89: 6(int) IAdd 88 28
|
||||
Store 75(i) 89
|
||||
Branch 76
|
||||
78: Label
|
||||
91: 6(int) Load 90(condition)
|
||||
92: 23(bool) IEqual 91 28
|
||||
SelectionMerge 94 None
|
||||
BranchConditional 92 93 94
|
||||
93: Label
|
||||
95: 34 Load 70(localArray)
|
||||
Store 84(a) 95
|
||||
Branch 94
|
||||
94: Label
|
||||
99: 9(fvec4) Load 98(color)
|
||||
101: 100(ptr) AccessChain 12(locals2) 96
|
||||
Store 101 99
|
||||
103: 42(ptr) AccessChain 40(coord) 102
|
||||
104: 7(float) Load 103
|
||||
106: 30(ptr) AccessChain 12(locals2) 96 105
|
||||
Store 106 104
|
||||
109: 100(ptr) AccessChain 12(locals2) 96
|
||||
110: 9(fvec4) Load 109
|
||||
111: 30(ptr) AccessChain 36(localFArray) 37
|
||||
112: 7(float) Load 111
|
||||
113: 30(ptr) AccessChain 12(locals2) 27 28
|
||||
114: 7(float) Load 113
|
||||
115: 7(float) FAdd 112 114
|
||||
116: 6(int) Load 68(x)
|
||||
117: 30(ptr) AccessChain 70(localArray) 116
|
||||
118: 7(float) Load 117
|
||||
119: 7(float) FAdd 115 118
|
||||
120: 6(int) Load 68(x)
|
||||
121: 30(ptr) AccessChain 84(a) 120
|
||||
122: 7(float) Load 121
|
||||
123: 7(float) FAdd 119 122
|
||||
124: 9(fvec4) VectorTimesScalar 110 123
|
||||
129: 126 Load 128(samp2D)
|
||||
130: 38(fvec2) Load 40(coord)
|
||||
131: 9(fvec4) ImageSampleImplicitLod 129 130
|
||||
132: 9(fvec4) FMul 124 131
|
||||
Store 108(gl_FragColor) 132
|
||||
Return
|
||||
FunctionEnd
|
||||
|
@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 97
|
||||
// Id's are bound by 93
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 10 21 37 40 58 67
|
||||
EntryPoint Fragment 4 "main" 10 20 34 36 54 63
|
||||
ExecutionMode 4 OriginUpperLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
@ -25,43 +25,21 @@ Linked fragment stage:
|
||||
MemberName 14(lunarStruct2) 0 "i"
|
||||
MemberName 14(lunarStruct2) 1 "f"
|
||||
MemberName 14(lunarStruct2) 2 "s1_1"
|
||||
Name 18 "lunarStruct1"
|
||||
MemberName 18(lunarStruct1) 0 "i"
|
||||
MemberName 18(lunarStruct1) 1 "f"
|
||||
Name 19 "lunarStruct3"
|
||||
MemberName 19(lunarStruct3) 0 "s2_1"
|
||||
MemberName 19(lunarStruct3) 1 "i"
|
||||
MemberName 19(lunarStruct3) 2 "f"
|
||||
MemberName 19(lunarStruct3) 3 "s1_1"
|
||||
Name 21 "foo3"
|
||||
Name 31 "scale"
|
||||
Name 32 "lunarStruct1"
|
||||
MemberName 32(lunarStruct1) 0 "i"
|
||||
MemberName 32(lunarStruct1) 1 "f"
|
||||
Name 33 "lunarStruct2"
|
||||
MemberName 33(lunarStruct2) 0 "i"
|
||||
MemberName 33(lunarStruct2) 1 "f"
|
||||
MemberName 33(lunarStruct2) 2 "s1_1"
|
||||
Name 37 "foo2"
|
||||
Name 38 "lunarStruct1"
|
||||
MemberName 38(lunarStruct1) 0 "i"
|
||||
MemberName 38(lunarStruct1) 1 "f"
|
||||
Name 40 "foo"
|
||||
Name 58 "gl_FragColor"
|
||||
Name 63 "samp2D"
|
||||
Name 67 "coord"
|
||||
Name 73 "constructed"
|
||||
Name 18 "lunarStruct3"
|
||||
MemberName 18(lunarStruct3) 0 "s2_1"
|
||||
MemberName 18(lunarStruct3) 1 "i"
|
||||
MemberName 18(lunarStruct3) 2 "f"
|
||||
MemberName 18(lunarStruct3) 3 "s1_1"
|
||||
Name 20 "foo3"
|
||||
Name 30 "scale"
|
||||
Name 34 "foo2"
|
||||
Name 36 "foo"
|
||||
Name 54 "gl_FragColor"
|
||||
Name 59 "samp2D"
|
||||
Name 63 "coord"
|
||||
Name 69 "constructed"
|
||||
Decorate 10(Count) Flat
|
||||
MemberDecorate 19(lunarStruct3) 0 Flat
|
||||
MemberDecorate 19(lunarStruct3) 1 Flat
|
||||
MemberDecorate 19(lunarStruct3) 2 Flat
|
||||
MemberDecorate 19(lunarStruct3) 3 Flat
|
||||
MemberDecorate 33(lunarStruct2) 0 Flat
|
||||
MemberDecorate 33(lunarStruct2) 1 Flat
|
||||
MemberDecorate 33(lunarStruct2) 2 Flat
|
||||
MemberDecorate 38(lunarStruct1) 0 Flat
|
||||
MemberDecorate 38(lunarStruct1) 1 Flat
|
||||
Decorate 63(samp2D) DescriptorSet 0
|
||||
Decorate 59(samp2D) DescriptorSet 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
@ -74,99 +52,95 @@ Linked fragment stage:
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 3
|
||||
17: TypeArray 14(lunarStruct2) 16
|
||||
18(lunarStruct1): TypeStruct 6(int) 12(float)
|
||||
19(lunarStruct3): TypeStruct 17 6(int) 12(float) 18(lunarStruct1)
|
||||
20: TypePointer Input 19(lunarStruct3)
|
||||
21(foo3): 20(ptr) Variable Input
|
||||
22: 6(int) Constant 0
|
||||
23: 6(int) Constant 1
|
||||
26: TypeBool
|
||||
30: TypePointer Function 12(float)
|
||||
32(lunarStruct1): TypeStruct 6(int) 12(float)
|
||||
33(lunarStruct2): TypeStruct 6(int) 12(float) 32(lunarStruct1)
|
||||
34: 15(int) Constant 5
|
||||
35: TypeArray 33(lunarStruct2) 34
|
||||
36: TypePointer Input 35
|
||||
37(foo2): 36(ptr) Variable Input
|
||||
38(lunarStruct1): TypeStruct 6(int) 12(float)
|
||||
39: TypePointer Input 38(lunarStruct1)
|
||||
40(foo): 39(ptr) Variable Input
|
||||
45: 6(int) Constant 2
|
||||
50: TypePointer Input 12(float)
|
||||
56: TypeVector 12(float) 4
|
||||
57: TypePointer Output 56(fvec4)
|
||||
58(gl_FragColor): 57(ptr) Variable Output
|
||||
60: TypeImage 12(float) 2D sampled format:Unknown
|
||||
61: TypeSampledImage 60
|
||||
62: TypePointer UniformConstant 61
|
||||
63(samp2D): 62(ptr) Variable UniformConstant
|
||||
65: TypeVector 12(float) 2
|
||||
66: TypePointer Input 65(fvec2)
|
||||
67(coord): 66(ptr) Variable Input
|
||||
71: TypeArray 65(fvec2) 16
|
||||
72: TypePointer Function 71
|
||||
77: 12(float) Constant 1065353216
|
||||
78: 12(float) Constant 1073741824
|
||||
79: 65(fvec2) ConstantComposite 77 78
|
||||
83: TypePointer Function 65(fvec2)
|
||||
18(lunarStruct3): TypeStruct 17 6(int) 12(float) 13(lunarStruct1)
|
||||
19: TypePointer Input 18(lunarStruct3)
|
||||
20(foo3): 19(ptr) Variable Input
|
||||
21: 6(int) Constant 0
|
||||
22: 6(int) Constant 1
|
||||
25: TypeBool
|
||||
29: TypePointer Function 12(float)
|
||||
31: 15(int) Constant 5
|
||||
32: TypeArray 14(lunarStruct2) 31
|
||||
33: TypePointer Input 32
|
||||
34(foo2): 33(ptr) Variable Input
|
||||
35: TypePointer Input 13(lunarStruct1)
|
||||
36(foo): 35(ptr) Variable Input
|
||||
41: 6(int) Constant 2
|
||||
46: TypePointer Input 12(float)
|
||||
52: TypeVector 12(float) 4
|
||||
53: TypePointer Output 52(fvec4)
|
||||
54(gl_FragColor): 53(ptr) Variable Output
|
||||
56: TypeImage 12(float) 2D sampled format:Unknown
|
||||
57: TypeSampledImage 56
|
||||
58: TypePointer UniformConstant 57
|
||||
59(samp2D): 58(ptr) Variable UniformConstant
|
||||
61: TypeVector 12(float) 2
|
||||
62: TypePointer Input 61(fvec2)
|
||||
63(coord): 62(ptr) Variable Input
|
||||
67: TypeArray 61(fvec2) 16
|
||||
68: TypePointer Function 67
|
||||
73: 12(float) Constant 1065353216
|
||||
74: 12(float) Constant 1073741824
|
||||
75: 61(fvec2) ConstantComposite 73 74
|
||||
79: TypePointer Function 61(fvec2)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(iLocal): 7(ptr) Variable Function
|
||||
31(scale): 30(ptr) Variable Function
|
||||
73(constructed): 72(ptr) Variable Function
|
||||
30(scale): 29(ptr) Variable Function
|
||||
69(constructed): 68(ptr) Variable Function
|
||||
11: 6(int) Load 10(Count)
|
||||
Store 8(iLocal) 11
|
||||
24: 9(ptr) AccessChain 21(foo3) 22 23 22
|
||||
25: 6(int) Load 24
|
||||
27: 26(bool) SGreaterThan 25 22
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 53
|
||||
28: Label
|
||||
41: 9(ptr) AccessChain 40(foo) 22
|
||||
42: 6(int) Load 41
|
||||
43: 9(ptr) AccessChain 21(foo3) 22 42 22
|
||||
44: 6(int) Load 43
|
||||
46: 6(int) IAdd 44 45
|
||||
47: 6(int) Load 8(iLocal)
|
||||
48: 6(int) IAdd 47 23
|
||||
Store 8(iLocal) 48
|
||||
49: 6(int) IAdd 46 48
|
||||
51: 50(ptr) AccessChain 37(foo2) 49 45 23
|
||||
52: 12(float) Load 51
|
||||
Store 31(scale) 52
|
||||
Branch 29
|
||||
53: Label
|
||||
54: 50(ptr) AccessChain 21(foo3) 22 22 45 23
|
||||
55: 12(float) Load 54
|
||||
Store 31(scale) 55
|
||||
Branch 29
|
||||
29: Label
|
||||
59: 12(float) Load 31(scale)
|
||||
64: 61 Load 63(samp2D)
|
||||
68: 65(fvec2) Load 67(coord)
|
||||
69: 56(fvec4) ImageSampleImplicitLod 64 68
|
||||
70: 56(fvec4) VectorTimesScalar 69 59
|
||||
Store 58(gl_FragColor) 70
|
||||
74: 65(fvec2) Load 67(coord)
|
||||
75: 12(float) Load 31(scale)
|
||||
76: 65(fvec2) CompositeConstruct 75 75
|
||||
80: 71 CompositeConstruct 74 76 79
|
||||
Store 73(constructed) 80
|
||||
81: 9(ptr) AccessChain 40(foo) 22
|
||||
82: 6(int) Load 81
|
||||
84: 83(ptr) AccessChain 73(constructed) 82
|
||||
85: 65(fvec2) Load 84
|
||||
86: 9(ptr) AccessChain 40(foo) 22
|
||||
87: 6(int) Load 86
|
||||
88: 83(ptr) AccessChain 73(constructed) 87
|
||||
89: 65(fvec2) Load 88
|
||||
90: 12(float) CompositeExtract 85 0
|
||||
91: 12(float) CompositeExtract 85 1
|
||||
92: 12(float) CompositeExtract 89 0
|
||||
93: 12(float) CompositeExtract 89 1
|
||||
94: 56(fvec4) CompositeConstruct 90 91 92 93
|
||||
95: 56(fvec4) Load 58(gl_FragColor)
|
||||
96: 56(fvec4) FAdd 95 94
|
||||
Store 58(gl_FragColor) 96
|
||||
23: 9(ptr) AccessChain 20(foo3) 21 22 21
|
||||
24: 6(int) Load 23
|
||||
26: 25(bool) SGreaterThan 24 21
|
||||
SelectionMerge 28 None
|
||||
BranchConditional 26 27 49
|
||||
27: Label
|
||||
37: 9(ptr) AccessChain 36(foo) 21
|
||||
38: 6(int) Load 37
|
||||
39: 9(ptr) AccessChain 20(foo3) 21 38 21
|
||||
40: 6(int) Load 39
|
||||
42: 6(int) IAdd 40 41
|
||||
43: 6(int) Load 8(iLocal)
|
||||
44: 6(int) IAdd 43 22
|
||||
Store 8(iLocal) 44
|
||||
45: 6(int) IAdd 42 44
|
||||
47: 46(ptr) AccessChain 34(foo2) 45 41 22
|
||||
48: 12(float) Load 47
|
||||
Store 30(scale) 48
|
||||
Branch 28
|
||||
49: Label
|
||||
50: 46(ptr) AccessChain 20(foo3) 21 21 41 22
|
||||
51: 12(float) Load 50
|
||||
Store 30(scale) 51
|
||||
Branch 28
|
||||
28: Label
|
||||
55: 12(float) Load 30(scale)
|
||||
60: 57 Load 59(samp2D)
|
||||
64: 61(fvec2) Load 63(coord)
|
||||
65: 52(fvec4) ImageSampleImplicitLod 60 64
|
||||
66: 52(fvec4) VectorTimesScalar 65 55
|
||||
Store 54(gl_FragColor) 66
|
||||
70: 61(fvec2) Load 63(coord)
|
||||
71: 12(float) Load 30(scale)
|
||||
72: 61(fvec2) CompositeConstruct 71 71
|
||||
76: 67 CompositeConstruct 70 72 75
|
||||
Store 69(constructed) 76
|
||||
77: 9(ptr) AccessChain 36(foo) 21
|
||||
78: 6(int) Load 77
|
||||
80: 79(ptr) AccessChain 69(constructed) 78
|
||||
81: 61(fvec2) Load 80
|
||||
82: 9(ptr) AccessChain 36(foo) 21
|
||||
83: 6(int) Load 82
|
||||
84: 79(ptr) AccessChain 69(constructed) 83
|
||||
85: 61(fvec2) Load 84
|
||||
86: 12(float) CompositeExtract 81 0
|
||||
87: 12(float) CompositeExtract 81 1
|
||||
88: 12(float) CompositeExtract 85 0
|
||||
89: 12(float) CompositeExtract 85 1
|
||||
90: 52(fvec4) CompositeConstruct 86 87 88 89
|
||||
91: 52(fvec4) Load 54(gl_FragColor)
|
||||
92: 52(fvec4) FAdd 91 90
|
||||
Store 54(gl_FragColor) 92
|
||||
Return
|
||||
FunctionEnd
|
||||
|
Loading…
x
Reference in New Issue
Block a user