aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Kessenich <johnkslang@users.noreply.github.com>2016-10-12 09:05:07 -0600
committerGitHub <noreply@github.com>2016-10-12 09:05:07 -0600
commite3aa654c4b0c761b28d7864192ca8ceea6faf70a (patch)
tree357cbd164b193e67e24aa9bf61e3ed02469d17a7
parent631f223b1bfd5114e96747a1ff15b15d088ab926 (diff)
parent7208a974aa4912a2323af897ad299facb23ba79a (diff)
downloadglslang-e3aa654c4b0c761b28d7864192ca8ceea6faf70a.tar.gz
Merge pull request #546 from yavn/OpImageQueryLod-with-SampledImage
SPV: Use SampledImage with OpImageQueryLod
-rwxr-xr-xSPIRV/GlslangToSpv.cpp5
-rw-r--r--Test/baseResults/hlsl.calculatelod.dx10.frag.out349
-rwxr-xr-xTest/baseResults/spv.queryL.frag.out551
3 files changed, 442 insertions, 463 deletions
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 9c8b8b93..245715fc 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -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:
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index 9d061d29..ff18441c 100644
--- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -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
diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out
index 6d2b2b97..2236c66a 100755
--- a/Test/baseResults/spv.queryL.frag.out
+++ b/Test/baseResults/spv.queryL.frag.out
@@ -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