Merge pull request #546 from yavn/OpImageQueryLod-with-SampledImage

SPV: Use SampledImage with OpImageQueryLod
This commit is contained in:
John Kessenich 2016-10-12 09:05:07 -06:00 committed by GitHub
commit e3aa654c4b
3 changed files with 442 additions and 463 deletions

View File

@ -2745,9 +2745,10 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
// Check for queries
if (cracked.query) {
// a sampled image needs to have the image extracted first
if (builder.isSampledImage(params.sampler))
// OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first
if (node->getOp() != glslang::EOpTextureQueryLod && builder.isSampledImage(params.sampler))
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
switch (node->getOp()) {
case glslang::EOpImageQuerySize:
case glslang::EOpTextureQuerySize:

View File

@ -345,7 +345,7 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 150
// Id's are bound by 141
Capability Shader
Capability Sampled1D
@ -353,51 +353,51 @@ gl_FragCoord origin is upper left
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 141 145
EntryPoint Fragment 4 "main" 132 136
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 8 "txval10"
Name 11 "g_tTex1df4a"
Name 15 "g_sSamp"
Name 26 "txval11"
Name 29 "g_tTex1di4a"
Name 38 "txval12"
Name 42 "g_tTex1du4a"
Name 51 "txval20"
Name 54 "g_tTex2df4a"
Name 63 "txval21"
Name 66 "g_tTex2di4a"
Name 76 "txval22"
Name 79 "g_tTex2du4a"
Name 90 "txval40"
Name 93 "g_tTexcdf4a"
Name 103 "txval41"
Name 106 "g_tTexcdi4a"
Name 115 "txval42"
Name 118 "g_tTexcdu4a"
Name 131 "PS_OUTPUT"
MemberName 131(PS_OUTPUT) 0 "Color"
MemberName 131(PS_OUTPUT) 1 "Depth"
Name 133 "psout"
Name 141 "Color"
Name 145 "Depth"
Name 149 "g_tTex1df4"
Name 25 "txval11"
Name 28 "g_tTex1di4a"
Name 36 "txval12"
Name 40 "g_tTex1du4a"
Name 48 "txval20"
Name 51 "g_tTex2df4a"
Name 59 "txval21"
Name 62 "g_tTex2di4a"
Name 71 "txval22"
Name 74 "g_tTex2du4a"
Name 84 "txval40"
Name 87 "g_tTexcdf4a"
Name 96 "txval41"
Name 99 "g_tTexcdi4a"
Name 107 "txval42"
Name 110 "g_tTexcdu4a"
Name 122 "PS_OUTPUT"
MemberName 122(PS_OUTPUT) 0 "Color"
MemberName 122(PS_OUTPUT) 1 "Depth"
Name 124 "psout"
Name 132 "Color"
Name 136 "Depth"
Name 140 "g_tTex1df4"
Decorate 11(g_tTex1df4a) DescriptorSet 0
Decorate 11(g_tTex1df4a) Binding 1
Decorate 15(g_sSamp) DescriptorSet 0
Decorate 15(g_sSamp) Binding 0
Decorate 29(g_tTex1di4a) DescriptorSet 0
Decorate 42(g_tTex1du4a) DescriptorSet 0
Decorate 54(g_tTex2df4a) DescriptorSet 0
Decorate 66(g_tTex2di4a) DescriptorSet 0
Decorate 79(g_tTex2du4a) DescriptorSet 0
Decorate 93(g_tTexcdf4a) DescriptorSet 0
Decorate 106(g_tTexcdi4a) DescriptorSet 0
Decorate 118(g_tTexcdu4a) DescriptorSet 0
Decorate 141(Color) Location 0
Decorate 145(Depth) BuiltIn FragDepth
Decorate 149(g_tTex1df4) DescriptorSet 0
Decorate 149(g_tTex1df4) Binding 0
Decorate 28(g_tTex1di4a) DescriptorSet 0
Decorate 40(g_tTex1du4a) DescriptorSet 0
Decorate 51(g_tTex2df4a) DescriptorSet 0
Decorate 62(g_tTex2di4a) DescriptorSet 0
Decorate 74(g_tTex2du4a) DescriptorSet 0
Decorate 87(g_tTexcdf4a) DescriptorSet 0
Decorate 99(g_tTexcdi4a) DescriptorSet 0
Decorate 110(g_tTexcdu4a) DescriptorSet 0
Decorate 132(Color) Location 0
Decorate 136(Depth) BuiltIn FragDepth
Decorate 140(g_tTex1df4) DescriptorSet 0
Decorate 140(g_tTex1df4) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -410,153 +410,144 @@ gl_FragCoord origin is upper left
15(g_sSamp): 14(ptr) Variable UniformConstant
17: TypeSampledImage 9
19: 6(float) Constant 1036831949
21: TypeVector 6(float) 2
23: TypeInt 32 1
24: 23(int) Constant 0
27: TypeImage 23(int) 1D array sampled format:Unknown
28: TypePointer UniformConstant 27
29(g_tTex1di4a): 28(ptr) Variable UniformConstant
32: TypeSampledImage 27
34: 6(float) Constant 1045220557
39: TypeInt 32 0
40: TypeImage 39(int) 1D array sampled format:Unknown
41: TypePointer UniformConstant 40
42(g_tTex1du4a): 41(ptr) Variable UniformConstant
45: TypeSampledImage 40
47: 6(float) Constant 1050253722
52: TypeImage 6(float) 2D array sampled format:Unknown
53: TypePointer UniformConstant 52
54(g_tTex2df4a): 53(ptr) Variable UniformConstant
57: TypeSampledImage 52
59: 21(fvec2) ConstantComposite 19 34
64: TypeImage 23(int) 2D array sampled format:Unknown
65: TypePointer UniformConstant 64
66(g_tTex2di4a): 65(ptr) Variable UniformConstant
69: TypeSampledImage 64
71: 6(float) Constant 1053609165
72: 21(fvec2) ConstantComposite 47 71
77: TypeImage 39(int) 2D array sampled format:Unknown
78: TypePointer UniformConstant 77
79(g_tTex2du4a): 78(ptr) Variable UniformConstant
82: TypeSampledImage 77
84: 6(float) Constant 1056964608
85: 6(float) Constant 1058642330
86: 21(fvec2) ConstantComposite 84 85
91: TypeImage 6(float) Cube array sampled format:Unknown
92: TypePointer UniformConstant 91
93(g_tTexcdf4a): 92(ptr) Variable UniformConstant
96: TypeSampledImage 91
98: TypeVector 6(float) 3
99: 98(fvec3) ConstantComposite 19 34 47
104: TypeImage 23(int) Cube array sampled format:Unknown
105: TypePointer UniformConstant 104
106(g_tTexcdi4a): 105(ptr) Variable UniformConstant
109: TypeSampledImage 104
111: 98(fvec3) ConstantComposite 71 84 85
116: TypeImage 39(int) Cube array sampled format:Unknown
117: TypePointer UniformConstant 116
118(g_tTexcdu4a): 117(ptr) Variable UniformConstant
121: TypeSampledImage 116
123: 6(float) Constant 1060320051
124: 6(float) Constant 1061997773
125: 6(float) Constant 1063675494
126: 98(fvec3) ConstantComposite 123 124 125
130: TypeVector 6(float) 4
131(PS_OUTPUT): TypeStruct 130(fvec4) 6(float)
132: TypePointer Function 131(PS_OUTPUT)
134: 6(float) Constant 1065353216
135: 130(fvec4) ConstantComposite 134 134 134 134
136: TypePointer Function 130(fvec4)
138: 23(int) Constant 1
140: TypePointer Output 130(fvec4)
141(Color): 140(ptr) Variable Output
144: TypePointer Output 6(float)
145(Depth): 144(ptr) Variable Output
149(g_tTex1df4): 10(ptr) Variable UniformConstant
20: TypeVector 6(float) 2
22: TypeInt 32 1
23: 22(int) Constant 0
26: TypeImage 22(int) 1D array sampled format:Unknown
27: TypePointer UniformConstant 26
28(g_tTex1di4a): 27(ptr) Variable UniformConstant
31: TypeSampledImage 26
33: 6(float) Constant 1045220557
37: TypeInt 32 0
38: TypeImage 37(int) 1D array sampled format:Unknown
39: TypePointer UniformConstant 38
40(g_tTex1du4a): 39(ptr) Variable UniformConstant
43: TypeSampledImage 38
45: 6(float) Constant 1050253722
49: TypeImage 6(float) 2D array sampled format:Unknown
50: TypePointer UniformConstant 49
51(g_tTex2df4a): 50(ptr) Variable UniformConstant
54: TypeSampledImage 49
56: 20(fvec2) ConstantComposite 19 33
60: TypeImage 22(int) 2D array sampled format:Unknown
61: TypePointer UniformConstant 60
62(g_tTex2di4a): 61(ptr) Variable UniformConstant
65: TypeSampledImage 60
67: 6(float) Constant 1053609165
68: 20(fvec2) ConstantComposite 45 67
72: TypeImage 37(int) 2D array sampled format:Unknown
73: TypePointer UniformConstant 72
74(g_tTex2du4a): 73(ptr) Variable UniformConstant
77: TypeSampledImage 72
79: 6(float) Constant 1056964608
80: 6(float) Constant 1058642330
81: 20(fvec2) ConstantComposite 79 80
85: TypeImage 6(float) Cube array sampled format:Unknown
86: TypePointer UniformConstant 85
87(g_tTexcdf4a): 86(ptr) Variable UniformConstant
90: TypeSampledImage 85
92: TypeVector 6(float) 3
93: 92(fvec3) ConstantComposite 19 33 45
97: TypeImage 22(int) Cube array sampled format:Unknown
98: TypePointer UniformConstant 97
99(g_tTexcdi4a): 98(ptr) Variable UniformConstant
102: TypeSampledImage 97
104: 92(fvec3) ConstantComposite 67 79 80
108: TypeImage 37(int) Cube array sampled format:Unknown
109: TypePointer UniformConstant 108
110(g_tTexcdu4a): 109(ptr) Variable UniformConstant
113: TypeSampledImage 108
115: 6(float) Constant 1060320051
116: 6(float) Constant 1061997773
117: 6(float) Constant 1063675494
118: 92(fvec3) ConstantComposite 115 116 117
121: TypeVector 6(float) 4
122(PS_OUTPUT): TypeStruct 121(fvec4) 6(float)
123: TypePointer Function 122(PS_OUTPUT)
125: 6(float) Constant 1065353216
126: 121(fvec4) ConstantComposite 125 125 125 125
127: TypePointer Function 121(fvec4)
129: 22(int) Constant 1
131: TypePointer Output 121(fvec4)
132(Color): 131(ptr) Variable Output
135: TypePointer Output 6(float)
136(Depth): 135(ptr) Variable Output
140(g_tTex1df4): 10(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(txval10): 7(ptr) Variable Function
26(txval11): 7(ptr) Variable Function
38(txval12): 7(ptr) Variable Function
51(txval20): 7(ptr) Variable Function
63(txval21): 7(ptr) Variable Function
76(txval22): 7(ptr) Variable Function
90(txval40): 7(ptr) Variable Function
103(txval41): 7(ptr) Variable Function
115(txval42): 7(ptr) Variable Function
133(psout): 132(ptr) Variable Function
25(txval11): 7(ptr) Variable Function
36(txval12): 7(ptr) Variable Function
48(txval20): 7(ptr) Variable Function
59(txval21): 7(ptr) Variable Function
71(txval22): 7(ptr) Variable Function
84(txval40): 7(ptr) Variable Function
96(txval41): 7(ptr) Variable Function
107(txval42): 7(ptr) Variable Function
124(psout): 123(ptr) Variable Function
12: 9 Load 11(g_tTex1df4a)
16: 13 Load 15(g_sSamp)
18: 17 SampledImage 12 16
20: 9 Image 18
22: 21(fvec2) ImageQueryLod 20 19
25: 6(float) CompositeExtract 22 0
Store 8(txval10) 25
30: 27 Load 29(g_tTex1di4a)
31: 13 Load 15(g_sSamp)
33: 32 SampledImage 30 31
35: 27 Image 33
36: 21(fvec2) ImageQueryLod 35 34
37: 6(float) CompositeExtract 36 0
Store 26(txval11) 37
43: 40 Load 42(g_tTex1du4a)
44: 13 Load 15(g_sSamp)
46: 45 SampledImage 43 44
48: 40 Image 46
49: 21(fvec2) ImageQueryLod 48 47
50: 6(float) CompositeExtract 49 0
Store 38(txval12) 50
55: 52 Load 54(g_tTex2df4a)
56: 13 Load 15(g_sSamp)
58: 57 SampledImage 55 56
60: 52 Image 58
61: 21(fvec2) ImageQueryLod 60 59
62: 6(float) CompositeExtract 61 0
Store 51(txval20) 62
67: 64 Load 66(g_tTex2di4a)
68: 13 Load 15(g_sSamp)
70: 69 SampledImage 67 68
73: 64 Image 70
74: 21(fvec2) ImageQueryLod 73 72
75: 6(float) CompositeExtract 74 0
Store 63(txval21) 75
80: 77 Load 79(g_tTex2du4a)
81: 13 Load 15(g_sSamp)
83: 82 SampledImage 80 81
87: 77 Image 83
88: 21(fvec2) ImageQueryLod 87 86
89: 6(float) CompositeExtract 88 0
Store 76(txval22) 89
94: 91 Load 93(g_tTexcdf4a)
95: 13 Load 15(g_sSamp)
97: 96 SampledImage 94 95
100: 91 Image 97
101: 21(fvec2) ImageQueryLod 100 99
102: 6(float) CompositeExtract 101 0
Store 90(txval40) 102
107: 104 Load 106(g_tTexcdi4a)
108: 13 Load 15(g_sSamp)
110: 109 SampledImage 107 108
112: 104 Image 110
113: 21(fvec2) ImageQueryLod 112 111
114: 6(float) CompositeExtract 113 0
Store 103(txval41) 114
119: 116 Load 118(g_tTexcdu4a)
120: 13 Load 15(g_sSamp)
122: 121 SampledImage 119 120
127: 116 Image 122
128: 21(fvec2) ImageQueryLod 127 126
129: 6(float) CompositeExtract 128 0
Store 115(txval42) 129
137: 136(ptr) AccessChain 133(psout) 24
Store 137 135
139: 7(ptr) AccessChain 133(psout) 138
Store 139 134
142: 136(ptr) AccessChain 133(psout) 24
143: 130(fvec4) Load 142
Store 141(Color) 143
146: 7(ptr) AccessChain 133(psout) 138
147: 6(float) Load 146
Store 145(Depth) 147
21: 20(fvec2) ImageQueryLod 18 19
24: 6(float) CompositeExtract 21 0
Store 8(txval10) 24
29: 26 Load 28(g_tTex1di4a)
30: 13 Load 15(g_sSamp)
32: 31 SampledImage 29 30
34: 20(fvec2) ImageQueryLod 32 33
35: 6(float) CompositeExtract 34 0
Store 25(txval11) 35
41: 38 Load 40(g_tTex1du4a)
42: 13 Load 15(g_sSamp)
44: 43 SampledImage 41 42
46: 20(fvec2) ImageQueryLod 44 45
47: 6(float) CompositeExtract 46 0
Store 36(txval12) 47
52: 49 Load 51(g_tTex2df4a)
53: 13 Load 15(g_sSamp)
55: 54 SampledImage 52 53
57: 20(fvec2) ImageQueryLod 55 56
58: 6(float) CompositeExtract 57 0
Store 48(txval20) 58
63: 60 Load 62(g_tTex2di4a)
64: 13 Load 15(g_sSamp)
66: 65 SampledImage 63 64
69: 20(fvec2) ImageQueryLod 66 68
70: 6(float) CompositeExtract 69 0
Store 59(txval21) 70
75: 72 Load 74(g_tTex2du4a)
76: 13 Load 15(g_sSamp)
78: 77 SampledImage 75 76
82: 20(fvec2) ImageQueryLod 78 81
83: 6(float) CompositeExtract 82 0
Store 71(txval22) 83
88: 85 Load 87(g_tTexcdf4a)
89: 13 Load 15(g_sSamp)
91: 90 SampledImage 88 89
94: 20(fvec2) ImageQueryLod 91 93
95: 6(float) CompositeExtract 94 0
Store 84(txval40) 95
100: 97 Load 99(g_tTexcdi4a)
101: 13 Load 15(g_sSamp)
103: 102 SampledImage 100 101
105: 20(fvec2) ImageQueryLod 103 104
106: 6(float) CompositeExtract 105 0
Store 96(txval41) 106
111: 108 Load 110(g_tTexcdu4a)
112: 13 Load 15(g_sSamp)
114: 113 SampledImage 111 112
119: 20(fvec2) ImageQueryLod 114 118
120: 6(float) CompositeExtract 119 0
Store 107(txval42) 120
128: 127(ptr) AccessChain 124(psout) 23
Store 128 126
130: 7(ptr) AccessChain 124(psout) 129
Store 130 125
133: 127(ptr) AccessChain 124(psout) 23
134: 121(fvec4) Load 133
Store 132(Color) 134
137: 7(ptr) AccessChain 124(psout) 129
138: 6(float) Load 137
Store 136(Depth) 138
Return
FunctionEnd

View File

@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 237
// Id's are bound by 224
Capability Shader
Capability SampledRect
@ -24,48 +24,48 @@ Linked fragment stage:
Name 9 "lod"
Name 13 "samp1D"
Name 16 "pf"
Name 24 "isamp2D"
Name 26 "pf2"
Name 36 "usamp3D"
Name 40 "pf3"
Name 49 "sampCube"
Name 59 "isamp1DA"
Name 69 "usamp2DA"
Name 79 "isampCubeA"
Name 89 "samp1Ds"
Name 99 "samp2Ds"
Name 109 "sampCubes"
Name 119 "samp1DAs"
Name 129 "samp2DAs"
Name 139 "sampCubeAs"
Name 147 "levels"
Name 154 "usamp2D"
Name 163 "isamp3D"
Name 172 "isampCube"
Name 186 "samp2DA"
Name 195 "usampCubeA"
Name 232 "sampBuf"
Name 236 "sampRect"
Name 23 "isamp2D"
Name 25 "pf2"
Name 34 "usamp3D"
Name 38 "pf3"
Name 46 "sampCube"
Name 55 "isamp1DA"
Name 64 "usamp2DA"
Name 73 "isampCubeA"
Name 82 "samp1Ds"
Name 91 "samp2Ds"
Name 100 "sampCubes"
Name 109 "samp1DAs"
Name 118 "samp2DAs"
Name 127 "sampCubeAs"
Name 134 "levels"
Name 141 "usamp2D"
Name 150 "isamp3D"
Name 159 "isampCube"
Name 173 "samp2DA"
Name 182 "usampCubeA"
Name 219 "sampBuf"
Name 223 "sampRect"
Decorate 13(samp1D) DescriptorSet 0
Decorate 24(isamp2D) DescriptorSet 0
Decorate 36(usamp3D) DescriptorSet 0
Decorate 49(sampCube) DescriptorSet 0
Decorate 59(isamp1DA) DescriptorSet 0
Decorate 69(usamp2DA) DescriptorSet 0
Decorate 79(isampCubeA) DescriptorSet 0
Decorate 89(samp1Ds) DescriptorSet 0
Decorate 99(samp2Ds) DescriptorSet 0
Decorate 109(sampCubes) DescriptorSet 0
Decorate 119(samp1DAs) DescriptorSet 0
Decorate 129(samp2DAs) DescriptorSet 0
Decorate 139(sampCubeAs) DescriptorSet 0
Decorate 154(usamp2D) DescriptorSet 0
Decorate 163(isamp3D) DescriptorSet 0
Decorate 172(isampCube) DescriptorSet 0
Decorate 186(samp2DA) DescriptorSet 0
Decorate 195(usampCubeA) DescriptorSet 0
Decorate 232(sampBuf) DescriptorSet 0
Decorate 236(sampRect) DescriptorSet 0
Decorate 23(isamp2D) DescriptorSet 0
Decorate 34(usamp3D) DescriptorSet 0
Decorate 46(sampCube) DescriptorSet 0
Decorate 55(isamp1DA) DescriptorSet 0
Decorate 64(usamp2DA) DescriptorSet 0
Decorate 73(isampCubeA) DescriptorSet 0
Decorate 82(samp1Ds) DescriptorSet 0
Decorate 91(samp2Ds) DescriptorSet 0
Decorate 100(sampCubes) DescriptorSet 0
Decorate 109(samp1DAs) DescriptorSet 0
Decorate 118(samp2DAs) DescriptorSet 0
Decorate 127(sampCubeAs) DescriptorSet 0
Decorate 141(usamp2D) DescriptorSet 0
Decorate 150(isamp3D) DescriptorSet 0
Decorate 159(isampCube) DescriptorSet 0
Decorate 173(samp2DA) DescriptorSet 0
Decorate 182(usampCubeA) DescriptorSet 0
Decorate 219(sampBuf) DescriptorSet 0
Decorate 223(sampRect) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -76,256 +76,243 @@ Linked fragment stage:
12: TypePointer UniformConstant 11
13(samp1D): 12(ptr) Variable UniformConstant
15: TypePointer Function 6(float)
20: TypeInt 32 1
21: TypeImage 20(int) 2D sampled format:Unknown
22: TypeSampledImage 21
23: TypePointer UniformConstant 22
24(isamp2D): 23(ptr) Variable UniformConstant
32: TypeInt 32 0
33: TypeImage 32(int) 3D sampled format:Unknown
34: TypeSampledImage 33
35: TypePointer UniformConstant 34
36(usamp3D): 35(ptr) Variable UniformConstant
38: TypeVector 6(float) 3
39: TypePointer Function 38(fvec3)
46: TypeImage 6(float) Cube sampled format:Unknown
47: TypeSampledImage 46
48: TypePointer UniformConstant 47
49(sampCube): 48(ptr) Variable UniformConstant
56: TypeImage 20(int) 1D array sampled format:Unknown
57: TypeSampledImage 56
58: TypePointer UniformConstant 57
59(isamp1DA): 58(ptr) Variable UniformConstant
66: TypeImage 32(int) 2D array sampled format:Unknown
67: TypeSampledImage 66
68: TypePointer UniformConstant 67
69(usamp2DA): 68(ptr) Variable UniformConstant
76: TypeImage 20(int) Cube array sampled format:Unknown
77: TypeSampledImage 76
78: TypePointer UniformConstant 77
79(isampCubeA): 78(ptr) Variable UniformConstant
86: TypeImage 6(float) 1D depth sampled format:Unknown
87: TypeSampledImage 86
88: TypePointer UniformConstant 87
89(samp1Ds): 88(ptr) Variable UniformConstant
96: TypeImage 6(float) 2D depth sampled format:Unknown
97: TypeSampledImage 96
98: TypePointer UniformConstant 97
99(samp2Ds): 98(ptr) Variable UniformConstant
106: TypeImage 6(float) Cube depth sampled format:Unknown
19: TypeInt 32 1
20: TypeImage 19(int) 2D sampled format:Unknown
21: TypeSampledImage 20
22: TypePointer UniformConstant 21
23(isamp2D): 22(ptr) Variable UniformConstant
30: TypeInt 32 0
31: TypeImage 30(int) 3D sampled format:Unknown
32: TypeSampledImage 31
33: TypePointer UniformConstant 32
34(usamp3D): 33(ptr) Variable UniformConstant
36: TypeVector 6(float) 3
37: TypePointer Function 36(fvec3)
43: TypeImage 6(float) Cube sampled format:Unknown
44: TypeSampledImage 43
45: TypePointer UniformConstant 44
46(sampCube): 45(ptr) Variable UniformConstant
52: TypeImage 19(int) 1D array sampled format:Unknown
53: TypeSampledImage 52
54: TypePointer UniformConstant 53
55(isamp1DA): 54(ptr) Variable UniformConstant
61: TypeImage 30(int) 2D array sampled format:Unknown
62: TypeSampledImage 61
63: TypePointer UniformConstant 62
64(usamp2DA): 63(ptr) Variable UniformConstant
70: TypeImage 19(int) Cube array sampled format:Unknown
71: TypeSampledImage 70
72: TypePointer UniformConstant 71
73(isampCubeA): 72(ptr) Variable UniformConstant
79: TypeImage 6(float) 1D depth sampled format:Unknown
80: TypeSampledImage 79
81: TypePointer UniformConstant 80
82(samp1Ds): 81(ptr) Variable UniformConstant
88: TypeImage 6(float) 2D depth sampled format:Unknown
89: TypeSampledImage 88
90: TypePointer UniformConstant 89
91(samp2Ds): 90(ptr) Variable UniformConstant
97: TypeImage 6(float) Cube depth sampled format:Unknown
98: TypeSampledImage 97
99: TypePointer UniformConstant 98
100(sampCubes): 99(ptr) Variable UniformConstant
106: TypeImage 6(float) 1D depth array sampled format:Unknown
107: TypeSampledImage 106
108: TypePointer UniformConstant 107
109(sampCubes): 108(ptr) Variable UniformConstant
116: TypeImage 6(float) 1D depth array sampled format:Unknown
117: TypeSampledImage 116
118: TypePointer UniformConstant 117
119(samp1DAs): 118(ptr) Variable UniformConstant
126: TypeImage 6(float) 2D depth array sampled format:Unknown
127: TypeSampledImage 126
128: TypePointer UniformConstant 127
129(samp2DAs): 128(ptr) Variable UniformConstant
136: TypeImage 6(float) Cube depth array sampled format:Unknown
137: TypeSampledImage 136
138: TypePointer UniformConstant 137
139(sampCubeAs): 138(ptr) Variable UniformConstant
146: TypePointer Function 20(int)
151: TypeImage 32(int) 2D sampled format:Unknown
152: TypeSampledImage 151
153: TypePointer UniformConstant 152
154(usamp2D): 153(ptr) Variable UniformConstant
160: TypeImage 20(int) 3D sampled format:Unknown
161: TypeSampledImage 160
162: TypePointer UniformConstant 161
163(isamp3D): 162(ptr) Variable UniformConstant
169: TypeImage 20(int) Cube sampled format:Unknown
170: TypeSampledImage 169
171: TypePointer UniformConstant 170
172(isampCube): 171(ptr) Variable UniformConstant
183: TypeImage 6(float) 2D array sampled format:Unknown
184: TypeSampledImage 183
185: TypePointer UniformConstant 184
186(samp2DA): 185(ptr) Variable UniformConstant
192: TypeImage 32(int) Cube array sampled format:Unknown
193: TypeSampledImage 192
194: TypePointer UniformConstant 193
195(usampCubeA): 194(ptr) Variable UniformConstant
229: TypeImage 6(float) Buffer sampled format:Unknown
230: TypeSampledImage 229
231: TypePointer UniformConstant 230
232(sampBuf): 231(ptr) Variable UniformConstant
233: TypeImage 6(float) Rect sampled format:Unknown
234: TypeSampledImage 233
235: TypePointer UniformConstant 234
236(sampRect): 235(ptr) Variable UniformConstant
109(samp1DAs): 108(ptr) Variable UniformConstant
115: TypeImage 6(float) 2D depth array sampled format:Unknown
116: TypeSampledImage 115
117: TypePointer UniformConstant 116
118(samp2DAs): 117(ptr) Variable UniformConstant
124: TypeImage 6(float) Cube depth array sampled format:Unknown
125: TypeSampledImage 124
126: TypePointer UniformConstant 125
127(sampCubeAs): 126(ptr) Variable UniformConstant
133: TypePointer Function 19(int)
138: TypeImage 30(int) 2D sampled format:Unknown
139: TypeSampledImage 138
140: TypePointer UniformConstant 139
141(usamp2D): 140(ptr) Variable UniformConstant
147: TypeImage 19(int) 3D sampled format:Unknown
148: TypeSampledImage 147
149: TypePointer UniformConstant 148
150(isamp3D): 149(ptr) Variable UniformConstant
156: TypeImage 19(int) Cube sampled format:Unknown
157: TypeSampledImage 156
158: TypePointer UniformConstant 157
159(isampCube): 158(ptr) Variable UniformConstant
170: TypeImage 6(float) 2D array sampled format:Unknown
171: TypeSampledImage 170
172: TypePointer UniformConstant 171
173(samp2DA): 172(ptr) Variable UniformConstant
179: TypeImage 30(int) Cube array sampled format:Unknown
180: TypeSampledImage 179
181: TypePointer UniformConstant 180
182(usampCubeA): 181(ptr) Variable UniformConstant
216: TypeImage 6(float) Buffer sampled format:Unknown
217: TypeSampledImage 216
218: TypePointer UniformConstant 217
219(sampBuf): 218(ptr) Variable UniformConstant
220: TypeImage 6(float) Rect sampled format:Unknown
221: TypeSampledImage 220
222: TypePointer UniformConstant 221
223(sampRect): 222(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(lod): 8(ptr) Variable Function
16(pf): 15(ptr) Variable Function
26(pf2): 8(ptr) Variable Function
40(pf3): 39(ptr) Variable Function
147(levels): 146(ptr) Variable Function
25(pf2): 8(ptr) Variable Function
38(pf3): 37(ptr) Variable Function
134(levels): 133(ptr) Variable Function
14: 11 Load 13(samp1D)
17: 6(float) Load 16(pf)
18: 10 Image 14
19: 7(fvec2) ImageQueryLod 18 17
Store 9(lod) 19
25: 22 Load 24(isamp2D)
27: 7(fvec2) Load 26(pf2)
28: 21 Image 25
29: 7(fvec2) ImageQueryLod 28 27
30: 7(fvec2) Load 9(lod)
31: 7(fvec2) FAdd 30 29
Store 9(lod) 31
37: 34 Load 36(usamp3D)
41: 38(fvec3) Load 40(pf3)
42: 33 Image 37
43: 7(fvec2) ImageQueryLod 42 41
44: 7(fvec2) Load 9(lod)
45: 7(fvec2) FAdd 44 43
Store 9(lod) 45
50: 47 Load 49(sampCube)
51: 38(fvec3) Load 40(pf3)
52: 46 Image 50
53: 7(fvec2) ImageQueryLod 52 51
54: 7(fvec2) Load 9(lod)
55: 7(fvec2) FAdd 54 53
Store 9(lod) 55
60: 57 Load 59(isamp1DA)
61: 6(float) Load 16(pf)
62: 56 Image 60
63: 7(fvec2) ImageQueryLod 62 61
64: 7(fvec2) Load 9(lod)
65: 7(fvec2) FAdd 64 63
Store 9(lod) 65
70: 67 Load 69(usamp2DA)
71: 7(fvec2) Load 26(pf2)
72: 66 Image 70
73: 7(fvec2) ImageQueryLod 72 71
74: 7(fvec2) Load 9(lod)
75: 7(fvec2) FAdd 74 73
Store 9(lod) 75
80: 77 Load 79(isampCubeA)
81: 38(fvec3) Load 40(pf3)
82: 76 Image 80
83: 7(fvec2) ImageQueryLod 82 81
84: 7(fvec2) Load 9(lod)
85: 7(fvec2) FAdd 84 83
Store 9(lod) 85
90: 87 Load 89(samp1Ds)
91: 6(float) Load 16(pf)
92: 86 Image 90
93: 7(fvec2) ImageQueryLod 92 91
94: 7(fvec2) Load 9(lod)
95: 7(fvec2) FAdd 94 93
Store 9(lod) 95
100: 97 Load 99(samp2Ds)
101: 7(fvec2) Load 26(pf2)
102: 96 Image 100
103: 7(fvec2) ImageQueryLod 102 101
18: 7(fvec2) ImageQueryLod 14 17
Store 9(lod) 18
24: 21 Load 23(isamp2D)
26: 7(fvec2) Load 25(pf2)
27: 7(fvec2) ImageQueryLod 24 26
28: 7(fvec2) Load 9(lod)
29: 7(fvec2) FAdd 28 27
Store 9(lod) 29
35: 32 Load 34(usamp3D)
39: 36(fvec3) Load 38(pf3)
40: 7(fvec2) ImageQueryLod 35 39
41: 7(fvec2) Load 9(lod)
42: 7(fvec2) FAdd 41 40
Store 9(lod) 42
47: 44 Load 46(sampCube)
48: 36(fvec3) Load 38(pf3)
49: 7(fvec2) ImageQueryLod 47 48
50: 7(fvec2) Load 9(lod)
51: 7(fvec2) FAdd 50 49
Store 9(lod) 51
56: 53 Load 55(isamp1DA)
57: 6(float) Load 16(pf)
58: 7(fvec2) ImageQueryLod 56 57
59: 7(fvec2) Load 9(lod)
60: 7(fvec2) FAdd 59 58
Store 9(lod) 60
65: 62 Load 64(usamp2DA)
66: 7(fvec2) Load 25(pf2)
67: 7(fvec2) ImageQueryLod 65 66
68: 7(fvec2) Load 9(lod)
69: 7(fvec2) FAdd 68 67
Store 9(lod) 69
74: 71 Load 73(isampCubeA)
75: 36(fvec3) Load 38(pf3)
76: 7(fvec2) ImageQueryLod 74 75
77: 7(fvec2) Load 9(lod)
78: 7(fvec2) FAdd 77 76
Store 9(lod) 78
83: 80 Load 82(samp1Ds)
84: 6(float) Load 16(pf)
85: 7(fvec2) ImageQueryLod 83 84
86: 7(fvec2) Load 9(lod)
87: 7(fvec2) FAdd 86 85
Store 9(lod) 87
92: 89 Load 91(samp2Ds)
93: 7(fvec2) Load 25(pf2)
94: 7(fvec2) ImageQueryLod 92 93
95: 7(fvec2) Load 9(lod)
96: 7(fvec2) FAdd 95 94
Store 9(lod) 96
101: 98 Load 100(sampCubes)
102: 36(fvec3) Load 38(pf3)
103: 7(fvec2) ImageQueryLod 101 102
104: 7(fvec2) Load 9(lod)
105: 7(fvec2) FAdd 104 103
Store 9(lod) 105
110: 107 Load 109(sampCubes)
111: 38(fvec3) Load 40(pf3)
112: 106 Image 110
113: 7(fvec2) ImageQueryLod 112 111
114: 7(fvec2) Load 9(lod)
115: 7(fvec2) FAdd 114 113
Store 9(lod) 115
120: 117 Load 119(samp1DAs)
121: 6(float) Load 16(pf)
122: 116 Image 120
123: 7(fvec2) ImageQueryLod 122 121
124: 7(fvec2) Load 9(lod)
125: 7(fvec2) FAdd 124 123
Store 9(lod) 125
130: 127 Load 129(samp2DAs)
131: 7(fvec2) Load 26(pf2)
132: 126 Image 130
133: 7(fvec2) ImageQueryLod 132 131
134: 7(fvec2) Load 9(lod)
135: 7(fvec2) FAdd 134 133
Store 9(lod) 135
140: 137 Load 139(sampCubeAs)
141: 38(fvec3) Load 40(pf3)
142: 136 Image 140
143: 7(fvec2) ImageQueryLod 142 141
144: 7(fvec2) Load 9(lod)
145: 7(fvec2) FAdd 144 143
Store 9(lod) 145
148: 11 Load 13(samp1D)
149: 10 Image 148
150: 20(int) ImageQueryLevels 149
Store 147(levels) 150
155: 152 Load 154(usamp2D)
156: 151 Image 155
157: 20(int) ImageQueryLevels 156
158: 20(int) Load 147(levels)
159: 20(int) IAdd 158 157
Store 147(levels) 159
164: 161 Load 163(isamp3D)
165: 160 Image 164
166: 20(int) ImageQueryLevels 165
167: 20(int) Load 147(levels)
168: 20(int) IAdd 167 166
Store 147(levels) 168
173: 170 Load 172(isampCube)
174: 169 Image 173
175: 20(int) ImageQueryLevels 174
176: 20(int) Load 147(levels)
177: 20(int) IAdd 176 175
Store 147(levels) 177
178: 57 Load 59(isamp1DA)
179: 56 Image 178
180: 20(int) ImageQueryLevels 179
181: 20(int) Load 147(levels)
182: 20(int) IAdd 181 180
Store 147(levels) 182
187: 184 Load 186(samp2DA)
188: 183 Image 187
189: 20(int) ImageQueryLevels 188
190: 20(int) Load 147(levels)
191: 20(int) IAdd 190 189
Store 147(levels) 191
196: 193 Load 195(usampCubeA)
197: 192 Image 196
198: 20(int) ImageQueryLevels 197
199: 20(int) Load 147(levels)
200: 20(int) IAdd 199 198
Store 147(levels) 200
201: 87 Load 89(samp1Ds)
202: 86 Image 201
203: 20(int) ImageQueryLevels 202
Store 147(levels) 203
204: 97 Load 99(samp2Ds)
205: 96 Image 204
206: 20(int) ImageQueryLevels 205
207: 20(int) Load 147(levels)
208: 20(int) IAdd 207 206
Store 147(levels) 208
209: 107 Load 109(sampCubes)
210: 106 Image 209
211: 20(int) ImageQueryLevels 210
212: 20(int) Load 147(levels)
213: 20(int) IAdd 212 211
Store 147(levels) 213
214: 117 Load 119(samp1DAs)
215: 116 Image 214
216: 20(int) ImageQueryLevels 215
217: 20(int) Load 147(levels)
218: 20(int) IAdd 217 216
Store 147(levels) 218
219: 127 Load 129(samp2DAs)
220: 126 Image 219
221: 20(int) ImageQueryLevels 220
222: 20(int) Load 147(levels)
223: 20(int) IAdd 222 221
Store 147(levels) 223
224: 137 Load 139(sampCubeAs)
225: 136 Image 224
226: 20(int) ImageQueryLevels 225
227: 20(int) Load 147(levels)
228: 20(int) IAdd 227 226
Store 147(levels) 228
110: 107 Load 109(samp1DAs)
111: 6(float) Load 16(pf)
112: 7(fvec2) ImageQueryLod 110 111
113: 7(fvec2) Load 9(lod)
114: 7(fvec2) FAdd 113 112
Store 9(lod) 114
119: 116 Load 118(samp2DAs)
120: 7(fvec2) Load 25(pf2)
121: 7(fvec2) ImageQueryLod 119 120
122: 7(fvec2) Load 9(lod)
123: 7(fvec2) FAdd 122 121
Store 9(lod) 123
128: 125 Load 127(sampCubeAs)
129: 36(fvec3) Load 38(pf3)
130: 7(fvec2) ImageQueryLod 128 129
131: 7(fvec2) Load 9(lod)
132: 7(fvec2) FAdd 131 130
Store 9(lod) 132
135: 11 Load 13(samp1D)
136: 10 Image 135
137: 19(int) ImageQueryLevels 136
Store 134(levels) 137
142: 139 Load 141(usamp2D)
143: 138 Image 142
144: 19(int) ImageQueryLevels 143
145: 19(int) Load 134(levels)
146: 19(int) IAdd 145 144
Store 134(levels) 146
151: 148 Load 150(isamp3D)
152: 147 Image 151
153: 19(int) ImageQueryLevels 152
154: 19(int) Load 134(levels)
155: 19(int) IAdd 154 153
Store 134(levels) 155
160: 157 Load 159(isampCube)
161: 156 Image 160
162: 19(int) ImageQueryLevels 161
163: 19(int) Load 134(levels)
164: 19(int) IAdd 163 162
Store 134(levels) 164
165: 53 Load 55(isamp1DA)
166: 52 Image 165
167: 19(int) ImageQueryLevels 166
168: 19(int) Load 134(levels)
169: 19(int) IAdd 168 167
Store 134(levels) 169
174: 171 Load 173(samp2DA)
175: 170 Image 174
176: 19(int) ImageQueryLevels 175
177: 19(int) Load 134(levels)
178: 19(int) IAdd 177 176
Store 134(levels) 178
183: 180 Load 182(usampCubeA)
184: 179 Image 183
185: 19(int) ImageQueryLevels 184
186: 19(int) Load 134(levels)
187: 19(int) IAdd 186 185
Store 134(levels) 187
188: 80 Load 82(samp1Ds)
189: 79 Image 188
190: 19(int) ImageQueryLevels 189
Store 134(levels) 190
191: 89 Load 91(samp2Ds)
192: 88 Image 191
193: 19(int) ImageQueryLevels 192
194: 19(int) Load 134(levels)
195: 19(int) IAdd 194 193
Store 134(levels) 195
196: 98 Load 100(sampCubes)
197: 97 Image 196
198: 19(int) ImageQueryLevels 197
199: 19(int) Load 134(levels)
200: 19(int) IAdd 199 198
Store 134(levels) 200
201: 107 Load 109(samp1DAs)
202: 106 Image 201
203: 19(int) ImageQueryLevels 202
204: 19(int) Load 134(levels)
205: 19(int) IAdd 204 203
Store 134(levels) 205
206: 116 Load 118(samp2DAs)
207: 115 Image 206
208: 19(int) ImageQueryLevels 207
209: 19(int) Load 134(levels)
210: 19(int) IAdd 209 208
Store 134(levels) 210
211: 125 Load 127(sampCubeAs)
212: 124 Image 211
213: 19(int) ImageQueryLevels 212
214: 19(int) Load 134(levels)
215: 19(int) IAdd 214 213
Store 134(levels) 215
Return
FunctionEnd