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 // Check for queries
if (cracked.query) { if (cracked.query) {
// a sampled image needs to have the image extracted first // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first
if (builder.isSampledImage(params.sampler)) if (node->getOp() != glslang::EOpTextureQueryLod && builder.isSampledImage(params.sampler))
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
switch (node->getOp()) { switch (node->getOp()) {
case glslang::EOpImageQuerySize: case glslang::EOpImageQuerySize:
case glslang::EOpTextureQuerySize: case glslang::EOpTextureQuerySize:

View File

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

View File

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