From 33661450c7547290c2fc243513d9e63db41c12d7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Tue, 8 Dec 2015 19:32:47 -0700 Subject: [PATCH] SPV: Implement OpImage functionality (emit before query). --- SPIRV/GlslangToSpv.cpp | 3 + SPIRV/SpvBuilder.h | 35 +-- Test/baseResults/spv.130.frag.out | 368 ++++++++++++----------- Test/baseResults/spv.140.frag.out | 154 +++++----- Test/baseResults/spv.newTexture.frag.out | 91 +++--- Test/baseResults/spv.queryL.frag.out | 500 ++++++++++++++++--------------- glslang/Include/revision.h | 4 +- 7 files changed, 595 insertions(+), 560 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 4ed3af7..7d0d3ab 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -1855,6 +1855,9 @@ 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)) + params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); switch (node->getOp()) { case glslang::EOpImageQuerySize: case glslang::EOpTextureQuerySize: diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 5750b00..6e95e14 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -122,23 +122,24 @@ public: Id getContainedTypeId(Id typeId, int) const; StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); } - bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } - bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } - bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } - bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } - bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } - bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } - - bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } - bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } - bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } - bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } - bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } - bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } - bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } - bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } - bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } - bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } + bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); } + bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); } + bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); } + bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); } + bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); } + bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); } + + bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); } + bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; } + bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; } + bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; } + bool isMatrixType(Id typeId) const { return getTypeClass(typeId) == OpTypeMatrix; } + bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; } + bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; } + bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); } + bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; } + bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; } + bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; } bool isConstantOpCode(Op opcode) const; bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); } diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out index e44bac9..1cf2a26 100644 --- a/Test/baseResults/spv.130.frag.out +++ b/Test/baseResults/spv.130.frag.out @@ -7,12 +7,12 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 212 +// Id's are bound by 214 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 78 17 68 98 182 183 184 185 185 171 + EntryPoint Fragment 4 "main" 79 17 68 99 184 185 186 187 187 173 ExecutionMode 4 OriginLowerLeft Source GLSL 130 SourceExtension "GL_ARB_gpu_shader5" @@ -33,38 +33,38 @@ Linked fragment stage: Name 55 "samp2DS" Name 68 "io" Name 72 "Sca" - Name 78 "i" - Name 86 "Isca" - Name 98 "uo" - Name 102 "Usca" - Name 113 "a" - Name 117 "Scas" - Name 122 "f" - Name 131 "c" - Name 152 "a1" - Name 155 "m43" - Name 158 "b" - Name 165 "sampC" - Name 171 "gl_ClipDistance" - Name 181 "b" - Name 182 "fflat" - Name 183 "fsmooth" - Name 184 "fnop" - Name 185 "gl_Color" - Name 192 "bounds" - Name 193 "s2D" - Name 194 "s2DR" - Name 198 "s2DRS" - Name 202 "s1D" - Name 203 "s2DS" - Name 205 "f" - Name 207 "v2" - Name 209 "v3" - Name 211 "v4" - Decorate 171(gl_ClipDistance) BuiltIn ClipDistance - Decorate 182(fflat) Flat - Decorate 184(fnop) NoPerspective - Decorate 192(bounds) Binding 0 + Name 79 "i" + Name 87 "Isca" + Name 99 "uo" + Name 103 "Usca" + Name 114 "a" + Name 118 "Scas" + Name 124 "f" + Name 133 "c" + Name 154 "a1" + Name 157 "m43" + Name 160 "b" + Name 167 "sampC" + Name 173 "gl_ClipDistance" + Name 183 "b" + Name 184 "fflat" + Name 185 "fsmooth" + Name 186 "fnop" + Name 187 "gl_Color" + Name 194 "bounds" + Name 195 "s2D" + Name 196 "s2DR" + Name 200 "s2DRS" + Name 204 "s1D" + Name 205 "s2DS" + Name 207 "f" + Name 209 "v2" + Name 211 "v3" + Name 213 "v4" + Decorate 173(gl_ClipDistance) BuiltIn ClipDistance + Decorate 184(fflat) Flat + Decorate 186(fnop) NoPerspective + Decorate 194(bounds) Binding 0 2: TypeVoid 3: TypeFunction 2 14: TypeFloat 32 @@ -107,94 +107,94 @@ Linked fragment stage: 71: TypePointer UniformConstant 70 72(Sca): 71(ptr) Variable UniformConstant 74: 26(int) Constant 3 - 77: TypePointer Input 15(fvec4) - 78(i): 77(ptr) Variable Input - 83: TypeImage 26(int) Cube array sampled format:Unknown - 84: TypeSampledImage 83 - 85: TypePointer UniformConstant 84 - 86(Isca): 85(ptr) Variable UniformConstant - 89: 14(float) Constant 1060320051 - 90: TypeVector 26(int) 4 - 95: TypeInt 32 0 - 96: TypeVector 95(int) 4 - 97: TypePointer Output 96(ivec4) - 98(uo): 97(ptr) Variable Output - 99: TypeImage 95(int) Cube array sampled format:Unknown - 100: TypeSampledImage 99 - 101: TypePointer UniformConstant 100 - 102(Usca): 101(ptr) Variable UniformConstant - 108: 14(float) Constant 1071225242 - 112: TypePointer Private 39(fvec3) - 113(a): 112(ptr) Variable Private - 114: TypeImage 14(float) Cube depth array sampled format:Unknown - 115: TypeSampledImage 114 - 116: TypePointer UniformConstant 115 - 117(Scas): 116(ptr) Variable UniformConstant - 121: TypePointer Function 14(float) - 125: 95(int) Constant 1 - 126: TypePointer Input 14(float) - 130: TypePointer Function 90(ivec4) - 134: 14(float) Constant 1036831949 - 135: 39(fvec3) ConstantComposite 134 134 134 - 136: 14(float) Constant 1045220557 + 78: TypePointer Input 15(fvec4) + 79(i): 78(ptr) Variable Input + 84: TypeImage 26(int) Cube array sampled format:Unknown + 85: TypeSampledImage 84 + 86: TypePointer UniformConstant 85 + 87(Isca): 86(ptr) Variable UniformConstant + 90: 14(float) Constant 1060320051 + 91: TypeVector 26(int) 4 + 96: TypeInt 32 0 + 97: TypeVector 96(int) 4 + 98: TypePointer Output 97(ivec4) + 99(uo): 98(ptr) Variable Output + 100: TypeImage 96(int) Cube array sampled format:Unknown + 101: TypeSampledImage 100 + 102: TypePointer UniformConstant 101 + 103(Usca): 102(ptr) Variable UniformConstant + 109: 14(float) Constant 1071225242 + 113: TypePointer Private 39(fvec3) + 114(a): 113(ptr) Variable Private + 115: TypeImage 14(float) Cube depth array sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 + 118(Scas): 117(ptr) Variable UniformConstant + 123: TypePointer Function 14(float) + 127: 96(int) Constant 1 + 128: TypePointer Input 14(float) + 132: TypePointer Function 91(ivec4) + 136: 14(float) Constant 1036831949 137: 39(fvec3) ConstantComposite 136 136 136 - 153: TypeMatrix 39(fvec3) 4 - 154: TypePointer Function 153 - 159: 14(float) Constant 1073741824 - 162: TypeImage 14(float) Cube sampled format:Unknown - 163: TypeSampledImage 162 - 164: TypePointer UniformConstant 163 - 165(sampC): 164(ptr) Variable UniformConstant - 168: 95(int) Constant 4 - 169: TypeArray 14(float) 168 - 170: TypePointer Input 169 -171(gl_ClipDistance): 170(ptr) Variable Input - 174: TypePointer Output 14(float) - 180: TypePointer Private 14(float) - 181(b): 180(ptr) Variable Private - 182(fflat): 126(ptr) Variable Input - 183(fsmooth): 126(ptr) Variable Input - 184(fnop): 126(ptr) Variable Input - 185(gl_Color): 77(ptr) Variable Input - 186: 95(int) Constant 3 - 187: TypeArray 26(int) 186 - 188: 26(int) Constant 10 - 189: 26(int) Constant 23 - 190: 26(int) Constant 32 - 191: 187 ConstantComposite 188 189 190 - 192(bounds): 20(ptr) Variable UniformConstant - 193(s2D): 20(ptr) Variable UniformConstant - 194(s2DR): 46(ptr) Variable UniformConstant - 195: TypeImage 14(float) Rect depth sampled format:Unknown - 196: TypeSampledImage 195 - 197: TypePointer UniformConstant 196 - 198(s2DRS): 197(ptr) Variable UniformConstant - 199: TypeImage 14(float) 1D sampled format:Unknown - 200: TypeSampledImage 199 - 201: TypePointer UniformConstant 200 - 202(s1D): 201(ptr) Variable UniformConstant - 203(s2DS): 54(ptr) Variable UniformConstant - 204: TypePointer UniformConstant 14(float) - 205(f): 204(ptr) Variable UniformConstant - 206: TypePointer UniformConstant 23(fvec2) - 207(v2): 206(ptr) Variable UniformConstant - 208: TypePointer UniformConstant 39(fvec3) - 209(v3): 208(ptr) Variable UniformConstant - 210: TypePointer UniformConstant 15(fvec4) - 211(v4): 210(ptr) Variable UniformConstant + 138: 14(float) Constant 1045220557 + 139: 39(fvec3) ConstantComposite 138 138 138 + 155: TypeMatrix 39(fvec3) 4 + 156: TypePointer Function 155 + 161: 14(float) Constant 1073741824 + 164: TypeImage 14(float) Cube sampled format:Unknown + 165: TypeSampledImage 164 + 166: TypePointer UniformConstant 165 + 167(sampC): 166(ptr) Variable UniformConstant + 170: 96(int) Constant 4 + 171: TypeArray 14(float) 170 + 172: TypePointer Input 171 +173(gl_ClipDistance): 172(ptr) Variable Input + 176: TypePointer Output 14(float) + 182: TypePointer Private 14(float) + 183(b): 182(ptr) Variable Private + 184(fflat): 128(ptr) Variable Input + 185(fsmooth): 128(ptr) Variable Input + 186(fnop): 128(ptr) Variable Input + 187(gl_Color): 78(ptr) Variable Input + 188: 96(int) Constant 3 + 189: TypeArray 26(int) 188 + 190: 26(int) Constant 10 + 191: 26(int) Constant 23 + 192: 26(int) Constant 32 + 193: 189 ConstantComposite 190 191 192 + 194(bounds): 20(ptr) Variable UniformConstant + 195(s2D): 20(ptr) Variable UniformConstant + 196(s2DR): 46(ptr) Variable UniformConstant + 197: TypeImage 14(float) Rect depth sampled format:Unknown + 198: TypeSampledImage 197 + 199: TypePointer UniformConstant 198 + 200(s2DRS): 199(ptr) Variable UniformConstant + 201: TypeImage 14(float) 1D sampled format:Unknown + 202: TypeSampledImage 201 + 203: TypePointer UniformConstant 202 + 204(s1D): 203(ptr) Variable UniformConstant + 205(s2DS): 54(ptr) Variable UniformConstant + 206: TypePointer UniformConstant 14(float) + 207(f): 206(ptr) Variable UniformConstant + 208: TypePointer UniformConstant 23(fvec2) + 209(v2): 208(ptr) Variable UniformConstant + 210: TypePointer UniformConstant 39(fvec3) + 211(v3): 210(ptr) Variable UniformConstant + 212: TypePointer UniformConstant 15(fvec4) + 213(v4): 212(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 166: 163 Load 165(sampC) - 167: 15(fvec4) ImageGather 166 137 30 - Store 17(o) 167 - 172: 126(ptr) AccessChain 171(gl_ClipDistance) 74 - 173: 14(float) Load 172 - 175: 174(ptr) AccessChain 17(o) 125 - Store 175 173 - 176: 2 FunctionCall 6(bar3() - 177: 2 FunctionCall 8(bar4() - 178: 2 FunctionCall 10(bar5() - 179: 2 FunctionCall 12(bar6() + 168: 165 Load 167(sampC) + 169: 15(fvec4) ImageGather 168 139 30 + Store 17(o) 169 + 174: 128(ptr) AccessChain 173(gl_ClipDistance) 74 + 175: 14(float) Load 174 + 177: 176(ptr) AccessChain 17(o) 127 + Store 177 175 + 178: 2 FunctionCall 6(bar3() + 179: 2 FunctionCall 8(bar4() + 180: 2 FunctionCall 10(bar5() + 181: 2 FunctionCall 12(bar6() Return FunctionEnd 6(bar3(): 2 Function None 3 @@ -232,74 +232,76 @@ Linked fragment stage: FunctionEnd 10(bar5(): 2 Function None 3 11: Label - 122(f): 121(ptr) Variable Function - 131(c): 130(ptr) Variable Function + 124(f): 123(ptr) Variable Function + 133(c): 132(ptr) Variable Function 73: 70 Load 72(Sca) - 75: 66(ivec3) ImageQuerySizeLod 73 74 - Store 68(io) 75 - 76: 70 Load 72(Sca) - 79: 15(fvec4) Load 78(i) - 80: 15(fvec4) ImageSampleImplicitLod 76 79 - 81: 15(fvec4) Load 17(o) - 82: 15(fvec4) FAdd 81 80 - Store 17(o) 82 - 87: 84 Load 86(Isca) - 88: 15(fvec4) Load 78(i) - 91: 90(ivec4) ImageSampleImplicitLod 87 88 Bias 89 - 92: 66(ivec3) VectorShuffle 91 91 0 1 2 - 93: 66(ivec3) Load 68(io) - 94: 66(ivec3) IAdd 93 92 - Store 68(io) 94 - 103: 100 Load 102(Usca) - 104: 15(fvec4) Load 78(i) - 105: 96(ivec4) ImageSampleImplicitLod 103 104 - Store 98(uo) 105 - 106: 70 Load 72(Sca) - 107: 15(fvec4) Load 78(i) - 109: 15(fvec4) ImageSampleExplicitLod 106 107 Lod 108 - 110: 15(fvec4) Load 17(o) - 111: 15(fvec4) FAdd 110 109 - Store 17(o) 111 - 118: 115 Load 117(Scas) - 119: 66(ivec3) ImageQuerySizeLod 118 74 - 120: 39(fvec3) ConvertSToF 119 - Store 113(a) 120 - 123: 115 Load 117(Scas) - 124: 15(fvec4) Load 78(i) - 127: 126(ptr) AccessChain 78(i) 125 - 128: 14(float) Load 127 - 129: 14(float) ImageSampleDrefImplicitLod 123 124 128 - Store 122(f) 129 - 132: 84 Load 86(Isca) - 133: 15(fvec4) Load 78(i) - 138: 90(ivec4) ImageSampleExplicitLod 132 133 Grad 135 137 - Store 131(c) 138 - 139: 39(fvec3) Load 113(a) - 140: 14(float) Load 122(f) - 141: 90(ivec4) Load 131(c) - 142: 15(fvec4) ConvertSToF 141 - 143: 15(fvec4) CompositeConstruct 140 140 140 140 - 144: 15(fvec4) FAdd 143 142 - 145: 14(float) CompositeExtract 139 0 - 146: 14(float) CompositeExtract 139 1 - 147: 14(float) CompositeExtract 139 2 - 148: 14(float) CompositeExtract 144 0 - 149: 15(fvec4) CompositeConstruct 145 146 147 148 - 150: 15(fvec4) Load 17(o) - 151: 15(fvec4) FAdd 150 149 - Store 17(o) 151 + 75: 69 Image 73 + 76: 66(ivec3) ImageQuerySizeLod 75 74 + Store 68(io) 76 + 77: 70 Load 72(Sca) + 80: 15(fvec4) Load 79(i) + 81: 15(fvec4) ImageSampleImplicitLod 77 80 + 82: 15(fvec4) Load 17(o) + 83: 15(fvec4) FAdd 82 81 + Store 17(o) 83 + 88: 85 Load 87(Isca) + 89: 15(fvec4) Load 79(i) + 92: 91(ivec4) ImageSampleImplicitLod 88 89 Bias 90 + 93: 66(ivec3) VectorShuffle 92 92 0 1 2 + 94: 66(ivec3) Load 68(io) + 95: 66(ivec3) IAdd 94 93 + Store 68(io) 95 + 104: 101 Load 103(Usca) + 105: 15(fvec4) Load 79(i) + 106: 97(ivec4) ImageSampleImplicitLod 104 105 + Store 99(uo) 106 + 107: 70 Load 72(Sca) + 108: 15(fvec4) Load 79(i) + 110: 15(fvec4) ImageSampleExplicitLod 107 108 Lod 109 + 111: 15(fvec4) Load 17(o) + 112: 15(fvec4) FAdd 111 110 + Store 17(o) 112 + 119: 116 Load 118(Scas) + 120: 115 Image 119 + 121: 66(ivec3) ImageQuerySizeLod 120 74 + 122: 39(fvec3) ConvertSToF 121 + Store 114(a) 122 + 125: 116 Load 118(Scas) + 126: 15(fvec4) Load 79(i) + 129: 128(ptr) AccessChain 79(i) 127 + 130: 14(float) Load 129 + 131: 14(float) ImageSampleDrefImplicitLod 125 126 130 + Store 124(f) 131 + 134: 85 Load 87(Isca) + 135: 15(fvec4) Load 79(i) + 140: 91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139 + Store 133(c) 140 + 141: 39(fvec3) Load 114(a) + 142: 14(float) Load 124(f) + 143: 91(ivec4) Load 133(c) + 144: 15(fvec4) ConvertSToF 143 + 145: 15(fvec4) CompositeConstruct 142 142 142 142 + 146: 15(fvec4) FAdd 145 144 + 147: 14(float) CompositeExtract 141 0 + 148: 14(float) CompositeExtract 141 1 + 149: 14(float) CompositeExtract 141 2 + 150: 14(float) CompositeExtract 146 0 + 151: 15(fvec4) CompositeConstruct 147 148 149 150 + 152: 15(fvec4) Load 17(o) + 153: 15(fvec4) FAdd 152 151 + Store 17(o) 153 Return FunctionEnd 12(bar6(): 2 Function None 3 13: Label - 152(a1): 121(ptr) Variable Function - 155(m43): 154(ptr) Variable Function - 158(b): 121(ptr) Variable Function - 156: 121(ptr) AccessChain 155(m43) 74 125 - 157: 14(float) Load 156 - Store 152(a1) 157 - 160: 14(float) Load 152(a1) - 161: 14(float) FMul 159 160 - Store 158(b) 161 + 154(a1): 123(ptr) Variable Function + 157(m43): 156(ptr) Variable Function + 160(b): 123(ptr) Variable Function + 158: 123(ptr) AccessChain 157(m43) 74 127 + 159: 14(float) Load 158 + Store 154(a1) 159 + 162: 14(float) Load 154(a1) + 163: 14(float) FMul 161 162 + Store 160(b) 163 Return FunctionEnd diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out index 9f9891c..672553e 100755 --- a/Test/baseResults/spv.140.frag.out +++ b/Test/baseResults/spv.140.frag.out @@ -5,7 +5,7 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 97 +// Id's are bound by 99 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -22,41 +22,41 @@ Linked fragment stage: Name 33 "gl_ClipDistance" Name 43 "k" Name 55 "sampR" - Name 62 "sampB" - Name 84 "samp2Da" - Name 88 "bn" - MemberName 88(bn) 0 "matra" - MemberName 88(bn) 1 "matca" - MemberName 88(bn) 2 "matr" - MemberName 88(bn) 3 "matc" - MemberName 88(bn) 4 "matrdef" - Name 90 "" - Name 93 "bi" - MemberName 93(bi) 0 "v" - Name 96 "bname" + Name 63 "sampB" + Name 86 "samp2Da" + Name 90 "bn" + MemberName 90(bn) 0 "matra" + MemberName 90(bn) 1 "matca" + MemberName 90(bn) 2 "matr" + MemberName 90(bn) 3 "matc" + MemberName 90(bn) 4 "matrdef" + Name 92 "" + Name 95 "bi" + MemberName 95(bi) 0 "v" + Name 98 "bname" Decorate 16(gl_FrontFacing) BuiltIn FrontFacing Decorate 33(gl_ClipDistance) BuiltIn ClipDistance - Decorate 87 ArrayStride 64 - Decorate 87 ArrayStride 64 - MemberDecorate 88(bn) 0 RowMajor - MemberDecorate 88(bn) 0 Offset 0 - MemberDecorate 88(bn) 0 MatrixStride 16 - MemberDecorate 88(bn) 1 ColMajor - MemberDecorate 88(bn) 1 Offset 256 - MemberDecorate 88(bn) 1 MatrixStride 16 - MemberDecorate 88(bn) 2 RowMajor - MemberDecorate 88(bn) 2 Offset 512 - MemberDecorate 88(bn) 2 MatrixStride 16 - MemberDecorate 88(bn) 3 ColMajor - MemberDecorate 88(bn) 3 Offset 576 - MemberDecorate 88(bn) 3 MatrixStride 16 - MemberDecorate 88(bn) 4 RowMajor - MemberDecorate 88(bn) 4 Offset 640 - MemberDecorate 88(bn) 4 MatrixStride 16 - Decorate 88(bn) Block - Decorate 92 ArrayStride 16 - MemberDecorate 93(bi) 0 Offset 0 - Decorate 93(bi) Block + Decorate 89 ArrayStride 64 + Decorate 89 ArrayStride 64 + MemberDecorate 90(bn) 0 RowMajor + MemberDecorate 90(bn) 0 Offset 0 + MemberDecorate 90(bn) 0 MatrixStride 16 + MemberDecorate 90(bn) 1 ColMajor + MemberDecorate 90(bn) 1 Offset 256 + MemberDecorate 90(bn) 1 MatrixStride 16 + MemberDecorate 90(bn) 2 RowMajor + MemberDecorate 90(bn) 2 Offset 512 + MemberDecorate 90(bn) 2 MatrixStride 16 + MemberDecorate 90(bn) 3 ColMajor + MemberDecorate 90(bn) 3 Offset 576 + MemberDecorate 90(bn) 3 MatrixStride 16 + MemberDecorate 90(bn) 4 RowMajor + MemberDecorate 90(bn) 4 Offset 640 + MemberDecorate 90(bn) 4 MatrixStride 16 + Decorate 90(bn) Block + Decorate 94 ArrayStride 16 + MemberDecorate 95(bi) 0 Offset 0 + Decorate 95(bi) Block 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -92,31 +92,31 @@ Linked fragment stage: 53: TypeSampledImage 52 54: TypePointer UniformConstant 53 55(sampR): 54(ptr) Variable UniformConstant - 57: TypeVector 34(int) 2 - 59: TypeImage 34(int) Buffer sampled format:Unknown - 60: TypeSampledImage 59 - 61: TypePointer UniformConstant 60 - 62(sampB): 61(ptr) Variable UniformConstant - 67: TypeVector 6(float) 2 - 70: 6(float) Constant 1120403456 - 72: 29(int) Constant 3 - 80: TypeImage 6(float) 2D sampled format:Unknown - 81: TypeSampledImage 80 - 82: TypeArray 81 72 - 83: TypePointer UniformConstant 82 - 84(samp2Da): 83(ptr) Variable UniformConstant - 85: TypeMatrix 26(fvec4) 4 - 86: 29(int) Constant 4 - 87: TypeArray 85 86 - 88(bn): TypeStruct 87 87 85 85 85 - 89: TypePointer Uniform 88(bn) - 90: 89(ptr) Variable Uniform - 91: TypeVector 6(float) 3 - 92: TypeArray 91(fvec3) 50 - 93(bi): TypeStruct 92 - 94: TypeArray 93(bi) 86 - 95: TypePointer Uniform 94 - 96(bname): 95(ptr) Variable Uniform + 58: TypeVector 34(int) 2 + 60: TypeImage 34(int) Buffer sampled format:Unknown + 61: TypeSampledImage 60 + 62: TypePointer UniformConstant 61 + 63(sampB): 62(ptr) Variable UniformConstant + 69: TypeVector 6(float) 2 + 72: 6(float) Constant 1120403456 + 74: 29(int) Constant 3 + 82: TypeImage 6(float) 2D sampled format:Unknown + 83: TypeSampledImage 82 + 84: TypeArray 83 74 + 85: TypePointer UniformConstant 84 + 86(samp2Da): 85(ptr) Variable UniformConstant + 87: TypeMatrix 26(fvec4) 4 + 88: 29(int) Constant 4 + 89: TypeArray 87 88 + 90(bn): TypeStruct 89 89 87 87 87 + 91: TypePointer Uniform 90(bn) + 92: 91(ptr) Variable Uniform + 93: TypeVector 6(float) 3 + 94: TypeArray 93(fvec3) 50 + 95(bi): TypeStruct 94 + 96: TypeArray 95(bi) 88 + 97: TypePointer Uniform 96 + 98(bname): 97(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label 13: 12(ptr) Variable Function @@ -145,25 +145,27 @@ Linked fragment stage: 51: 40(ptr) AccessChain 28(o) 50 Store 51 49 56: 53 Load 55(sampR) - 58: 57(ivec2) ImageQuerySize 56 - 63: 60 Load 62(sampB) - 64: 34(int) ImageQuerySize 63 - 65: 57(ivec2) CompositeConstruct 64 64 - 66: 57(ivec2) IAdd 58 65 - 68: 67(fvec2) ConvertSToF 66 - 69: 6(float) CompositeExtract 68 0 - 71: 6(float) FDiv 69 70 - 73: 40(ptr) AccessChain 28(o) 72 - Store 73 71 - 74: 6(float) FunctionCall 8(foo() - 75: 40(ptr) AccessChain 28(o) 50 - Store 75 74 + 57: 52 Image 56 + 59: 58(ivec2) ImageQuerySize 57 + 64: 61 Load 63(sampB) + 65: 60 Image 64 + 66: 34(int) ImageQuerySize 65 + 67: 58(ivec2) CompositeConstruct 66 66 + 68: 58(ivec2) IAdd 59 67 + 70: 69(fvec2) ConvertSToF 68 + 71: 6(float) CompositeExtract 70 0 + 73: 6(float) FDiv 71 72 + 75: 40(ptr) AccessChain 28(o) 74 + Store 75 73 + 76: 6(float) FunctionCall 8(foo() + 77: 40(ptr) AccessChain 28(o) 50 + Store 77 76 Return FunctionEnd 8(foo(): 6(float) Function None 7 9: Label - 76: 6(float) Load 11(i1) - 77: 6(float) Load 24(i2) - 78: 6(float) FAdd 76 77 - ReturnValue 78 + 78: 6(float) Load 11(i1) + 79: 6(float) Load 24(i2) + 80: 6(float) FAdd 78 79 + ReturnValue 80 FunctionEnd diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index c0969db..90bf7ab 100755 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -7,12 +7,12 @@ Linked fragment stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 277 +// Id's are bound by 278 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 29 17 55 26 84 91 81 276 246 + EntryPoint Fragment 4 "main" 29 17 55 26 84 91 81 277 247 ExecutionMode 4 OriginLowerLeft Source GLSL 430 Name 4 "main" @@ -39,17 +39,17 @@ Linked fragment stage: Name 227 "is2DArray" Name 237 "iv2" Name 241 "sCubeShadow" - Name 246 "FragData" - Name 258 "is2Dms" - Name 262 "us2D" - Name 266 "us3D" - Name 270 "usCube" - Name 274 "us2DArray" - Name 276 "ic4D" + Name 247 "FragData" + Name 259 "is2Dms" + Name 263 "us2D" + Name 267 "us3D" + Name 271 "usCube" + Name 275 "us2DArray" + Name 277 "ic4D" Decorate 81(ic3D) Flat Decorate 84(ic1D) Flat Decorate 91(ic2D) Flat - Decorate 276(ic4D) Flat + Decorate 277(ic4D) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -140,31 +140,31 @@ Linked fragment stage: 240: TypePointer UniformConstant 239 241(sCubeShadow): 240(ptr) Variable UniformConstant 243: 67(int) Constant 2 - 245: TypePointer Output 7(fvec4) - 246(FragData): 245(ptr) Variable Output - 250: 6(float) Constant 0 - 255: TypeImage 67(int) 2D multi-sampled sampled format:Unknown - 256: TypeSampledImage 255 - 257: TypePointer UniformConstant 256 - 258(is2Dms): 257(ptr) Variable UniformConstant - 259: TypeImage 32(int) 2D sampled format:Unknown - 260: TypeSampledImage 259 - 261: TypePointer UniformConstant 260 - 262(us2D): 261(ptr) Variable UniformConstant - 263: TypeImage 32(int) 3D sampled format:Unknown - 264: TypeSampledImage 263 - 265: TypePointer UniformConstant 264 - 266(us3D): 265(ptr) Variable UniformConstant - 267: TypeImage 32(int) Cube sampled format:Unknown - 268: TypeSampledImage 267 - 269: TypePointer UniformConstant 268 - 270(usCube): 269(ptr) Variable UniformConstant - 271: TypeImage 32(int) 2D array sampled format:Unknown - 272: TypeSampledImage 271 - 273: TypePointer UniformConstant 272 - 274(us2DArray): 273(ptr) Variable UniformConstant - 275: TypePointer Input 162(ivec4) - 276(ic4D): 275(ptr) Variable Input + 246: TypePointer Output 7(fvec4) + 247(FragData): 246(ptr) Variable Output + 251: 6(float) Constant 0 + 256: TypeImage 67(int) 2D multi-sampled sampled format:Unknown + 257: TypeSampledImage 256 + 258: TypePointer UniformConstant 257 + 259(is2Dms): 258(ptr) Variable UniformConstant + 260: TypeImage 32(int) 2D sampled format:Unknown + 261: TypeSampledImage 260 + 262: TypePointer UniformConstant 261 + 263(us2D): 262(ptr) Variable UniformConstant + 264: TypeImage 32(int) 3D sampled format:Unknown + 265: TypeSampledImage 264 + 266: TypePointer UniformConstant 265 + 267(us3D): 266(ptr) Variable UniformConstant + 268: TypeImage 32(int) Cube sampled format:Unknown + 269: TypeSampledImage 268 + 270: TypePointer UniformConstant 269 + 271(usCube): 270(ptr) Variable UniformConstant + 272: TypeImage 32(int) 2D array sampled format:Unknown + 273: TypeSampledImage 272 + 274: TypePointer UniformConstant 273 + 275(us2DArray): 274(ptr) Variable UniformConstant + 276: TypePointer Input 162(ivec4) + 277(ic4D): 276(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(v): 8(ptr) Variable Function @@ -345,15 +345,16 @@ Linked fragment stage: 235: 7(fvec4) FAdd 234 233 Store 9(v) 235 242: 239 Load 241(sCubeShadow) - 244: 68(ivec2) ImageQuerySizeLod 242 243 - Store 237(iv2) 244 - 247: 7(fvec4) Load 9(v) - 248: 68(ivec2) Load 237(iv2) - 249: 15(fvec2) ConvertSToF 248 - 251: 6(float) CompositeExtract 249 0 - 252: 6(float) CompositeExtract 249 1 - 253: 7(fvec4) CompositeConstruct 251 252 250 250 - 254: 7(fvec4) FAdd 247 253 - Store 246(FragData) 254 + 244: 238 Image 242 + 245: 68(ivec2) ImageQuerySizeLod 244 243 + Store 237(iv2) 245 + 248: 7(fvec4) Load 9(v) + 249: 68(ivec2) Load 237(iv2) + 250: 15(fvec2) ConvertSToF 249 + 252: 6(float) CompositeExtract 250 0 + 253: 6(float) CompositeExtract 250 1 + 254: 7(fvec4) CompositeConstruct 252 253 251 251 + 255: 7(fvec4) FAdd 248 254 + Store 247(FragData) 255 Return FunctionEnd diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out index e9a18e1..81e0ef3 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 211 +// Id's are bound by 237 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -19,28 +19,28 @@ Linked fragment stage: Name 9 "lod" Name 13 "samp1D" Name 16 "pf" - 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 140 "usamp2D" - Name 148 "isamp3D" - Name 156 "isampCube" - Name 168 "samp2DA" - Name 176 "usampCubeA" - Name 206 "sampBuf" - Name 210 "sampRect" + 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" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -51,230 +51,256 @@ Linked fragment stage: 12: TypePointer UniformConstant 11 13(samp1D): 12(ptr) Variable UniformConstant 15: TypePointer Function 6(float) - 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 + 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 107: TypeSampledImage 106 108: TypePointer UniformConstant 107 - 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) - 137: TypeImage 30(int) 2D sampled format:Unknown - 138: TypeSampledImage 137 - 139: TypePointer UniformConstant 138 - 140(usamp2D): 139(ptr) Variable UniformConstant - 145: TypeImage 19(int) 3D sampled format:Unknown - 146: TypeSampledImage 145 - 147: TypePointer UniformConstant 146 - 148(isamp3D): 147(ptr) Variable UniformConstant - 153: TypeImage 19(int) Cube sampled format:Unknown - 154: TypeSampledImage 153 - 155: TypePointer UniformConstant 154 - 156(isampCube): 155(ptr) Variable UniformConstant - 165: TypeImage 6(float) 2D array sampled format:Unknown - 166: TypeSampledImage 165 - 167: TypePointer UniformConstant 166 - 168(samp2DA): 167(ptr) Variable UniformConstant - 173: TypeImage 30(int) Cube array sampled format:Unknown - 174: TypeSampledImage 173 - 175: TypePointer UniformConstant 174 - 176(usampCubeA): 175(ptr) Variable UniformConstant - 203: TypeImage 6(float) Buffer sampled format:Unknown - 204: TypeSampledImage 203 - 205: TypePointer UniformConstant 204 - 206(sampBuf): 205(ptr) Variable UniformConstant - 207: TypeImage 6(float) Rect sampled format:Unknown - 208: TypeSampledImage 207 - 209: TypePointer UniformConstant 208 - 210(sampRect): 209(ptr) Variable UniformConstant + 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 4(main): 2 Function None 3 5: Label 9(lod): 8(ptr) Variable Function 16(pf): 15(ptr) Variable Function - 25(pf2): 8(ptr) Variable Function - 38(pf3): 37(ptr) Variable Function - 134(levels): 133(ptr) Variable Function + 26(pf2): 8(ptr) Variable Function + 40(pf3): 39(ptr) Variable Function + 147(levels): 146(ptr) Variable Function 14: 11 Load 13(samp1D) 17: 6(float) Load 16(pf) - 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 + 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 104: 7(fvec2) Load 9(lod) 105: 7(fvec2) FAdd 104 103 Store 9(lod) 105 - 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: 19(int) ImageQueryLevels 135 - Store 134(levels) 136 - 141: 138 Load 140(usamp2D) - 142: 19(int) ImageQueryLevels 141 - 143: 19(int) Load 134(levels) - 144: 19(int) IAdd 143 142 - Store 134(levels) 144 - 149: 146 Load 148(isamp3D) - 150: 19(int) ImageQueryLevels 149 - 151: 19(int) Load 134(levels) - 152: 19(int) IAdd 151 150 - Store 134(levels) 152 - 157: 154 Load 156(isampCube) - 158: 19(int) ImageQueryLevels 157 - 159: 19(int) Load 134(levels) - 160: 19(int) IAdd 159 158 - Store 134(levels) 160 - 161: 53 Load 55(isamp1DA) - 162: 19(int) ImageQueryLevels 161 - 163: 19(int) Load 134(levels) - 164: 19(int) IAdd 163 162 - Store 134(levels) 164 - 169: 166 Load 168(samp2DA) - 170: 19(int) ImageQueryLevels 169 - 171: 19(int) Load 134(levels) - 172: 19(int) IAdd 171 170 - Store 134(levels) 172 - 177: 174 Load 176(usampCubeA) - 178: 19(int) ImageQueryLevels 177 - 179: 19(int) Load 134(levels) - 180: 19(int) IAdd 179 178 - Store 134(levels) 180 - 181: 80 Load 82(samp1Ds) - 182: 19(int) ImageQueryLevels 181 - Store 134(levels) 182 - 183: 89 Load 91(samp2Ds) - 184: 19(int) ImageQueryLevels 183 - 185: 19(int) Load 134(levels) - 186: 19(int) IAdd 185 184 - Store 134(levels) 186 - 187: 98 Load 100(sampCubes) - 188: 19(int) ImageQueryLevels 187 - 189: 19(int) Load 134(levels) - 190: 19(int) IAdd 189 188 - Store 134(levels) 190 - 191: 107 Load 109(samp1DAs) - 192: 19(int) ImageQueryLevels 191 - 193: 19(int) Load 134(levels) - 194: 19(int) IAdd 193 192 - Store 134(levels) 194 - 195: 116 Load 118(samp2DAs) - 196: 19(int) ImageQueryLevels 195 - 197: 19(int) Load 134(levels) - 198: 19(int) IAdd 197 196 - Store 134(levels) 198 - 199: 125 Load 127(sampCubeAs) - 200: 19(int) ImageQueryLevels 199 - 201: 19(int) Load 134(levels) - 202: 19(int) IAdd 201 200 - Store 134(levels) 202 + 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 Return FunctionEnd diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 4c5b5cb..a21eb50 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "SPIRV99.824" -#define GLSLANG_DATE "06-Dec-2015" +#define GLSLANG_REVISION "SPIRV99.830" +#define GLSLANG_DATE "08-Dec-2015" -- 2.7.4