Sync with NDK master.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2f2355..a7f09fb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,12 +1,18 @@
cmake_minimum_required(VERSION 2.8.12)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" OFF)
+
enable_testing()
set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
project(glslang)
+if(ENABLE_AMD_EXTENSIONS)
+ add_definitions(-DAMD_EXTENSIONS)
+endif(ENABLE_AMD_EXTENSIONS)
+
if(WIN32)
set(CMAKE_DEBUG_POSTFIX "d")
include(ChooseMSVCCRT.cmake)
@@ -19,8 +25,14 @@
endif(WIN32)
if(CMAKE_COMPILER_IS_GNUCXX)
+ add_definitions(-Wall -Wmaybe-uninitialized -Wuninitialized -Wunused -Wunused-local-typedefs
+ -Wunused-parameter -Wunused-value -Wunused-variable -Wunused-but-set-parameter -Wunused-but-set-variable)
+ add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over.
add_definitions(-std=c++11)
elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang")
+ add_definitions(-Wall -Wuninitialized -Wunused -Wunused-local-typedefs
+ -Wunused-parameter -Wunused-value -Wunused-variable)
+ add_definitions(-Wno-reorder) # disable this from -Wall, since it happens all over.
add_definitions(-std=c++11)
endif()
diff --git a/README.md b/README.md
index 3bdbae5..63ffdee 100644
--- a/README.md
+++ b/README.md
@@ -13,12 +13,15 @@
An OpenGL and OpenGL ES shader front end and validator.
-There are two components:
+There are several components:
-1. A front-end library for programmatic parsing of GLSL/ESSL into an AST.
+1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST.
-2. A standalone wrapper, `glslangValidator`, that can be used as a shader
- validation tool.
+2. An HLSL front-end for translation of a broad generic HLL into the AST.
+
+3. A SPIR-V back end for translating the AST to SPIR-V.
+
+4. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above.
How to add a feature protected by a version/extension/stage/profile: See the
comment in `glslang/MachineIndependent/Versions.cpp`.
@@ -54,14 +57,21 @@
### Build steps
-#### 1) Check-Out External Projects
+#### 1) Check-Out this project
```bash
-cd <the directory glslang was cloned to, External will be a subdirectory>
+cd <parent of where you want glslang to be>
+git clone git@github.com:KhronosGroup/glslang.git
+```
+
+#### 2) Check-Out External Projects
+
+```bash
+cd <the directory glslang was cloned to, "External" will be a subdirectory>
git clone https://github.com/google/googletest.git External/googletest
```
-#### 2) Configure
+#### 3) Configure
Assume the source directory is `$SOURCE_DIR` and
the build directory is `$BUILD_DIR`:
@@ -84,7 +94,7 @@
The CMake GUI also works for Windows (version 3.4.1 tested).
-#### 3) Build and Install
+#### 4) Build and Install
```bash
# for Linux:
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
index 5c169b1..9628a82 100755
--- a/SPIRV/CMakeLists.txt
+++ b/SPIRV/CMakeLists.txt
@@ -18,6 +18,11 @@
doc.h
disassemble.h)
+if(ENABLE_AMD_EXTENSIONS)
+ set(HEADERS
+ GLSL.ext.AMD.h)
+endif(ENABLE_AMD_EXTENSIONS)
+
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
set_property(TARGET SPIRV PROPERTY FOLDER glslang)
diff --git a/SPIRV/GLSL.ext.AMD.h b/SPIRV/GLSL.ext.AMD.h
new file mode 100644
index 0000000..633cea0
--- /dev/null
+++ b/SPIRV/GLSL.ext.AMD.h
@@ -0,0 +1,113 @@
+/*
+** Copyright (c) 2014-2016 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a copy
+** of this software and/or associated documentation files (the "Materials"),
+** to deal in the Materials without restriction, including without limitation
+** the rights to use, copy, modify, merge, publish, distribute, sublicense,
+** and/or sell copies of the Materials, and to permit persons to whom the
+** Materials are furnished to do so, subject to the following conditions:
+**
+** The above copyright notice and this permission notice shall be included in
+** all copies or substantial portions of the Materials.
+**
+** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
+** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
+** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
+** IN THE MATERIALS.
+*/
+
+#ifndef GLSLextAMD_H
+#define GLSLextAMD_H
+
+enum BuiltIn;
+enum Decoration;
+enum Op;
+
+static const int GLSLextAMDVersion = 100;
+static const int GLSLextAMDRevision = 1;
+
+// SPV_AMD_shader_ballot
+static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot";
+
+static const Op OpGroupIAddNonUniformAMD = static_cast<Op>(5000);
+static const Op OpGroupFAddNonUniformAMD = static_cast<Op>(5001);
+static const Op OpGroupFMinNonUniformAMD = static_cast<Op>(5002);
+static const Op OpGroupUMinNonUniformAMD = static_cast<Op>(5003);
+static const Op OpGroupSMinNonUniformAMD = static_cast<Op>(5004);
+static const Op OpGroupFMaxNonUniformAMD = static_cast<Op>(5005);
+static const Op OpGroupUMaxNonUniformAMD = static_cast<Op>(5006);
+static const Op OpGroupSMaxNonUniformAMD = static_cast<Op>(5007);
+
+enum ShaderBallotAMD {
+ ShaderBallotBadAMD = 0, // Don't use
+
+ SwizzleInvocationsAMD = 1,
+ SwizzleInvocationsMaskedAMD = 2,
+ WriteInvocationAMD = 3,
+ MbcntAMD = 4,
+
+ ShaderBallotCountAMD
+};
+
+// SPV_AMD_shader_trinary_minmax
+static const char* const E_SPV_AMD_shader_trinary_minmax = "SPV_AMD_shader_trinary_minmax";
+
+enum ShaderTrinaryMinMaxAMD {
+ ShaderTrinaryMinMaxBadAMD = 0, // Don't use
+
+ FMin3AMD = 1,
+ UMin3AMD = 2,
+ SMin3AMD = 3,
+ FMax3AMD = 4,
+ UMax3AMD = 5,
+ SMax3AMD = 6,
+ FMid3AMD = 7,
+ UMid3AMD = 8,
+ SMid3AMD = 9,
+
+ ShaderTrinaryMinMaxCountAMD
+};
+
+// SPV_AMD_shader_explicit_vertex_parameter
+static const char* const E_SPV_AMD_shader_explicit_vertex_parameter = "SPV_AMD_shader_explicit_vertex_parameter";
+
+static const BuiltIn BuiltInBaryCoordNoPerspAMD = static_cast<BuiltIn>(4992);
+static const BuiltIn BuiltInBaryCoordNoPerspCentroidAMD = static_cast<BuiltIn>(4993);
+static const BuiltIn BuiltInBaryCoordNoPerspSampleAMD = static_cast<BuiltIn>(4994);
+static const BuiltIn BuiltInBaryCoordSmoothAMD = static_cast<BuiltIn>(4995);
+static const BuiltIn BuiltInBaryCoordSmoothCentroidAMD = static_cast<BuiltIn>(4996);
+static const BuiltIn BuiltInBaryCoordSmoothSampleAMD = static_cast<BuiltIn>(4997);
+static const BuiltIn BuiltInBaryCoordPullModelAMD = static_cast<BuiltIn>(4998);
+
+static const Decoration DecorationExplicitInterpAMD = static_cast<Decoration>(4999);
+
+enum ShaderExplicitVertexParameterAMD {
+ ShaderExplicitVertexParameterBadAMD = 0, // Don't use
+
+ InterpolateAtVertexAMD = 1,
+
+ ShaderExplicitVertexParameterCountAMD
+};
+
+// SPV_AMD_gcn_shader
+static const char* const E_SPV_AMD_gcn_shader = "SPV_AMD_gcn_shader";
+
+enum GcnShaderAMD {
+ GcnShaderBadAMD = 0, // Don't use
+
+ CubeFaceIndexAMD = 1,
+ CubeFaceCoordAMD = 2,
+ TimeAMD = 3,
+
+ GcnShaderCountAMD
+};
+
+#endif // #ifndef GLSLextAMD_H
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index dd11304..6aec9e6 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -43,6 +43,9 @@
#include "SpvBuilder.h"
namespace spv {
#include "GLSL.std.450.h"
+#ifdef AMD_EXTENSIONS
+ #include "GLSL.ext.AMD.h"
+#endif
}
// Glslang includes
@@ -115,6 +118,9 @@
spv::ImageFormat TranslateImageFormat(const glslang::TType& type);
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
spv::Id getSampledType(const glslang::TSampler&);
+ spv::Id getInvertedSwizzleType(const glslang::TIntermTyped&);
+ spv::Id createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped&, spv::Id parentResult);
+ void convertSwizzle(const glslang::TIntermAggregate&, std::vector<unsigned>& swizzle);
spv::Id convertGlslangToSpvType(const glslang::TType& type);
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&);
spv::Id convertGlslangStructToSpvType(const glslang::TType&, const glslang::TTypeList* glslangStruct,
@@ -147,9 +153,9 @@
spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy);
spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
- spv::Id createInvocationsOperation(glslang::TOperator, spv::Id typeId, spv::Id operand);
+ spv::Id createInvocationsOperation(glslang::TOperator, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy);
spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
- spv::Id createNoArgOperation(glslang::TOperator op);
+ spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId);
spv::Id getSymbolId(const glslang::TIntermSymbol* node);
void addDecoration(spv::Id id, spv::Decoration dec);
void addDecoration(spv::Id id, spv::Decoration dec, unsigned value);
@@ -160,6 +166,7 @@
bool isTrivialLeaf(const glslang::TIntermTyped* node);
bool isTrivial(const glslang::TIntermTyped* node);
spv::Id createShortCircuit(glslang::TOperator, glslang::TIntermTyped& left, glslang::TIntermTyped& right);
+ spv::Id getExtBuiltins(const char* name);
spv::Function* shaderEntry;
spv::Instruction* entryPoint;
@@ -175,6 +182,7 @@
std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface
const glslang::TIntermediate* glslangIntermediate;
spv::Id stdBuiltins;
+ std::unordered_map<const char*, spv::Id> extBuiltinMap;
std::unordered_map<int, spv::Id> symbolValues;
std::unordered_set<int> constReadOnlyParameters; // set of formal function parameters that have glslang qualifier constReadOnly, so we know they are not local function "const" that are write-once
@@ -275,10 +283,10 @@
}
}
-// Translate glslang type to SPIR-V precision decorations.
-spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type)
+// Translate glslang precision to SPIR-V precision decorations.
+spv::Decoration TranslatePrecisionDecoration(glslang::TPrecisionQualifier glslangPrecision)
{
- switch (type.getQualifier().precision) {
+ switch (glslangPrecision) {
case glslang::EpqLow: return spv::DecorationRelaxedPrecision;
case glslang::EpqMedium: return spv::DecorationRelaxedPrecision;
default:
@@ -286,6 +294,12 @@
}
}
+// Translate glslang type to SPIR-V precision decorations.
+spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type)
+{
+ return TranslatePrecisionDecoration(type.getQualifier().precision);
+}
+
// Translate glslang type to SPIR-V block decorations.
spv::Decoration TranslateBlockDecoration(const glslang::TType& type)
{
@@ -371,6 +385,10 @@
return spv::DecorationNoPerspective;
else if (qualifier.flat)
return spv::DecorationFlat;
+#ifdef AMD_EXTENSIONS
+ else if (qualifier.explicitInterp)
+ return spv::DecorationExplicitInterpAMD;
+#endif
else
return spv::DecorationMax;
}
@@ -508,6 +526,15 @@
// TODO: Add SPIR-V builtin ID.
logger->missingFunctionality("shader ballot");
return spv::BuiltInMax;
+#ifdef AMD_EXTENSIONS
+ case glslang::EbvBaryCoordNoPersp: return spv::BuiltInBaryCoordNoPerspAMD;
+ case glslang::EbvBaryCoordNoPerspCentroid: return spv::BuiltInBaryCoordNoPerspCentroidAMD;
+ case glslang::EbvBaryCoordNoPerspSample: return spv::BuiltInBaryCoordNoPerspSampleAMD;
+ case glslang::EbvBaryCoordSmooth: return spv::BuiltInBaryCoordSmoothAMD;
+ case glslang::EbvBaryCoordSmoothCentroid: return spv::BuiltInBaryCoordSmoothCentroidAMD;
+ case glslang::EbvBaryCoordSmoothSample: return spv::BuiltInBaryCoordSmoothSampleAMD;
+ case glslang::EbvBaryCoordPullModel: return spv::BuiltInBaryCoordPullModelAMD;
+#endif
default: return spv::BuiltInMax;
}
}
@@ -628,6 +655,10 @@
child.invariant = true;
if (parent.nopersp)
child.nopersp = true;
+#ifdef AMD_EXTENSIONS
+ if (parent.explicitInterp)
+ child.explicitInterp = true;
+#endif
if (parent.flat)
child.flat = true;
if (parent.centroid)
@@ -915,7 +946,7 @@
spv::Id leftRValue = accessChainLoad(node->getLeft()->getType());
// do the operation
- rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getType()),
+ rValue = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()),
convertGlslangToSpvType(node->getType()), leftRValue, rValue,
node->getType().getBasicType());
@@ -1003,10 +1034,8 @@
case glslang::EOpVectorSwizzle:
{
node->getLeft()->traverse(this);
- glslang::TIntermSequence& swizzleSequence = node->getRight()->getAsAggregate()->getSequence();
std::vector<unsigned> swizzle;
- for (int i = 0; i < (int)swizzleSequence.size(); ++i)
- swizzle.push_back(swizzleSequence[i]->getAsConstantUnion()->getConstArray()[0].getIConst());
+ convertSwizzle(*node->getRight()->getAsAggregate(), swizzle);
builder.accessChainPushSwizzle(swizzle, convertGlslangToSpvType(node->getLeft()->getType()));
}
return false;
@@ -1042,7 +1071,7 @@
spv::Id right = accessChainLoad(node->getRight()->getType());
// get result
- spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getType()),
+ spv::Id result = createBinaryOperation(node->getOp(), TranslatePrecisionDecoration(node->getOperationPrecision()),
TranslateNoContractionDecoration(node->getType().getQualifier()),
convertGlslangToSpvType(node->getType()), left, right,
node->getLeft()->getType().getBasicType());
@@ -1096,8 +1125,18 @@
// Start by evaluating the operand
+ // Does it need a swizzle inversion? If so, evaluation is inverted;
+ // operate first on the swizzle base, then apply the swizzle.
+ spv::Id invertedType = spv::NoType;
+ auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? invertedType : convertGlslangToSpvType(node->getType()); };
+ if (node->getOp() == glslang::EOpInterpolateAtCentroid)
+ invertedType = getInvertedSwizzleType(*node->getOperand());
+
builder.clearAccessChain();
- node->getOperand()->traverse(this);
+ if (invertedType != spv::NoType)
+ node->getOperand()->getAsBinaryNode()->getLeft()->traverse(this);
+ else
+ node->getOperand()->traverse(this);
spv::Id operand = spv::NoResult;
@@ -1109,18 +1148,21 @@
else
operand = accessChainLoad(node->getOperand()->getType());
- spv::Decoration precision = TranslatePrecisionDecoration(node->getType());
+ spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
spv::Decoration noContraction = TranslateNoContractionDecoration(node->getType().getQualifier());
// it could be a conversion
if (! result)
- result = createConversion(node->getOp(), precision, noContraction, convertGlslangToSpvType(node->getType()), operand, node->getOperand()->getBasicType());
+ result = createConversion(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType());
// if not, then possibly an operation
if (! result)
- result = createUnaryOperation(node->getOp(), precision, noContraction, convertGlslangToSpvType(node->getType()), operand, node->getOperand()->getBasicType());
+ result = createUnaryOperation(node->getOp(), precision, noContraction, resultType(), operand, node->getOperand()->getBasicType());
if (result) {
+ if (invertedType)
+ result = createInvertedSwizzle(precision, *node->getOperand(), result);
+
builder.clearAccessChain();
builder.setAccessChainRValue(result);
@@ -1138,6 +1180,8 @@
spv::Id one = 0;
if (node->getBasicType() == glslang::EbtFloat)
one = builder.makeFloatConstant(1.0F);
+ else if (node->getBasicType() == glslang::EbtDouble)
+ one = builder.makeDoubleConstant(1.0);
else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64)
one = builder.makeInt64Constant(1);
else
@@ -1149,7 +1193,7 @@
else
op = glslang::EOpSub;
- spv::Id result = createBinaryOperation(op, TranslatePrecisionDecoration(node->getType()),
+ spv::Id result = createBinaryOperation(op, precision,
TranslateNoContractionDecoration(node->getType().getQualifier()),
convertGlslangToSpvType(node->getType()), operand, one,
node->getType().getBasicType());
@@ -1188,6 +1232,8 @@
spec_constant_op_mode_setter.turnOnSpecConstantOpMode();
spv::Id result = spv::NoResult;
+ spv::Id invertedType = spv::NoType; // to use to override the natural type of the node
+ auto resultType = [&invertedType, &node, this](){ return invertedType != spv::NoType ? invertedType : convertGlslangToSpvType(node->getType()); };
// try texturing
result = createImageTextureFunctionCall(node);
@@ -1209,7 +1255,7 @@
assert(node->getOp());
- spv::Decoration precision = TranslatePrecisionDecoration(node->getType());
+ spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
switch (node->getOp()) {
case glslang::EOpSequence:
@@ -1344,19 +1390,18 @@
{
std::vector<spv::Id> arguments;
translateArguments(*node, arguments);
- spv::Id resultTypeId = convertGlslangToSpvType(node->getType());
spv::Id constructed;
if (node->getOp() == glslang::EOpConstructTextureSampler)
- constructed = builder.createOp(spv::OpSampledImage, resultTypeId, arguments);
+ constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments);
else if (node->getOp() == glslang::EOpConstructStruct || node->getType().isArray()) {
std::vector<spv::Id> constituents;
for (int c = 0; c < (int)arguments.size(); ++c)
constituents.push_back(arguments[c]);
- constructed = builder.createCompositeConstruct(resultTypeId, constituents);
+ constructed = builder.createCompositeConstruct(resultType(), constituents);
} else if (isMatrix)
- constructed = builder.createMatrixConstructor(precision, arguments, resultTypeId);
+ constructed = builder.createMatrixConstructor(precision, arguments, resultType());
else
- constructed = builder.createConstructor(precision, arguments, resultTypeId);
+ constructed = builder.createConstructor(precision, arguments, resultType());
builder.clearAccessChain();
builder.setAccessChainRValue(constructed);
@@ -1385,7 +1430,7 @@
break;
}
case glslang::EOpMul:
- // compontent-wise matrix multiply
+ // component-wise matrix multiply
binOp = glslang::EOpMul;
break;
case glslang::EOpOuterProduct:
@@ -1454,7 +1499,7 @@
spv::Id rightId = accessChainLoad(right->getType());
result = createBinaryOperation(binOp, precision, TranslateNoContractionDecoration(node->getType().getQualifier()),
- convertGlslangToSpvType(node->getType()), leftId, rightId,
+ resultType(), leftId, rightId,
left->getType().getBasicType(), reduceComparison);
// code above should only make binOp that exists in createBinaryOperation
@@ -1471,9 +1516,6 @@
glslang::TIntermSequence& glslangOperands = node->getSequence();
std::vector<spv::Id> operands;
for (int arg = 0; arg < (int)glslangOperands.size(); ++arg) {
- builder.clearAccessChain();
- glslangOperands[arg]->traverse(this);
-
// special case l-value operands; there are just a few
bool lvalue = false;
switch (node->getOp()) {
@@ -1484,8 +1526,18 @@
break;
case glslang::EOpInterpolateAtSample:
case glslang::EOpInterpolateAtOffset:
- if (arg == 0)
+#ifdef AMD_EXTENSIONS
+ case glslang::EOpInterpolateAtVertex:
+#endif
+ if (arg == 0) {
lvalue = true;
+
+ // Does it need a swizzle inversion? If so, evaluation is inverted;
+ // operate first on the swizzle base, then apply the swizzle.
+ if (glslangOperands[0]->getAsOperator() &&
+ glslangOperands[0]->getAsOperator()->getOp() == glslang::EOpVectorSwizzle)
+ invertedType = convertGlslangToSpvType(glslangOperands[0]->getAsBinaryNode()->getLeft()->getType());
+ }
break;
case glslang::EOpAtomicAdd:
case glslang::EOpAtomicMin:
@@ -1511,6 +1563,11 @@
default:
break;
}
+ builder.clearAccessChain();
+ if (invertedType != spv::NoType && arg == 0)
+ glslangOperands[0]->getAsBinaryNode()->getLeft()->traverse(this);
+ else
+ glslangOperands[arg]->traverse(this);
if (lvalue)
operands.push_back(builder.accessChainGetLValue());
else
@@ -1519,24 +1576,26 @@
if (atomic) {
// Handle all atomics
- result = createAtomicOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType());
+ result = createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
} else {
// Pass through to generic operations.
switch (glslangOperands.size()) {
case 0:
- result = createNoArgOperation(node->getOp());
+ result = createNoArgOperation(node->getOp(), precision, resultType());
break;
case 1:
result = createUnaryOperation(
node->getOp(), precision,
TranslateNoContractionDecoration(node->getType().getQualifier()),
- convertGlslangToSpvType(node->getType()), operands.front(),
+ resultType(), operands.front(),
glslangOperands[0]->getAsTyped()->getBasicType());
break;
default:
- result = createMiscOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType());
+ result = createMiscOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
break;
}
+ if (invertedType)
+ result = createInvertedSwizzle(precision, *glslangOperands[0]->getAsBinaryNode(), result);
}
if (noReturnValue)
@@ -1788,6 +1847,36 @@
}
}
+// If node is a swizzle operation, return the type that should be used if
+// the swizzle base is first consumed by another operation, before the swizzle
+// is applied.
+spv::Id TGlslangToSpvTraverser::getInvertedSwizzleType(const glslang::TIntermTyped& node)
+{
+ if (node.getAsOperator() &&
+ node.getAsOperator()->getOp() == glslang::EOpVectorSwizzle)
+ return convertGlslangToSpvType(node.getAsBinaryNode()->getLeft()->getType());
+ else
+ return spv::NoType;
+}
+
+// When inverting a swizzle with a parent op, this function
+// will apply the swizzle operation to a completed parent operation.
+spv::Id TGlslangToSpvTraverser::createInvertedSwizzle(spv::Decoration precision, const glslang::TIntermTyped& node, spv::Id parentResult)
+{
+ std::vector<unsigned> swizzle;
+ convertSwizzle(*node.getAsBinaryNode()->getRight()->getAsAggregate(), swizzle);
+ return builder.createRvalueSwizzle(precision, convertGlslangToSpvType(node.getType()), parentResult, swizzle);
+}
+
+
+// Convert a glslang AST swizzle node to a swizzle vector for building SPIR-V.
+void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& node, std::vector<unsigned>& swizzle)
+{
+ const glslang::TIntermSequence& swizzleSequence = node.getSequence();
+ for (int i = 0; i < (int)swizzleSequence.size(); ++i)
+ swizzle.push_back(swizzleSequence[i]->getAsConstantUnion()->getConstArray()[0].getIConst());
+}
+
// Convert from a glslang type to an SPV type, by calling into a
// recursive version of this function. This establishes the inherited
// layout state rooted from the top-level type.
@@ -2480,6 +2569,7 @@
if (! node->isImage() && ! node->isTexture()) {
return spv::NoResult;
}
+ auto resultType = [&node,this]{ return convertGlslangToSpvType(node->getType()); };
// Process a GLSL texturing op (will be SPV image)
const glslang::TSampler sampler = node->getAsAggregate() ? node->getAsAggregate()->getSequence()[0]->getAsTyped()->getType().getSampler()
@@ -2489,7 +2579,7 @@
translateArguments(*node->getAsAggregate(), arguments);
else
translateArguments(*node->getAsUnaryNode(), arguments);
- spv::Decoration precision = TranslatePrecisionDecoration(node->getType());
+ spv::Decoration precision = TranslatePrecisionDecoration(node->getOperationPrecision());
spv::Builder::TextureParameters params = { };
params.sampler = arguments[0];
@@ -2546,7 +2636,7 @@
operands.push_back(spv::ImageOperandsSampleMask);
operands.push_back(*(opIt++));
}
- return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands);
+ return builder.createOp(spv::OpImageRead, resultType(), operands);
}
operands.push_back(*(opIt++));
@@ -2557,7 +2647,7 @@
}
if (builder.getImageTypeFormat(builder.getImageType(operands.front())) == spv::ImageFormatUnknown)
builder.addCapability(spv::CapabilityStorageImageReadWithoutFormat);
- return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands);
+ return builder.createOp(spv::OpImageRead, resultType(), operands);
} else if (node->getOp() == glslang::EOpImageStore) {
if (sampler.ms) {
operands.push_back(*(opIt + 1));
@@ -2581,7 +2671,7 @@
// Create the return type that was a special structure
spv::Id texelOut = *opIt;
- spv::Id typeId0 = convertGlslangToSpvType(node->getType());
+ spv::Id typeId0 = resultType();
spv::Id typeId1 = builder.getDerefTypeId(texelOut);
spv::Id resultTypeId = builder.makeStructResultType(typeId0, typeId1);
@@ -2597,7 +2687,7 @@
// as the first source operand, is required by SPIR-V atomic operations.
operands.push_back(sampler.ms ? *(opIt++) : builder.makeUintConstant(0)); // For non-MS, the value should be 0
- spv::Id resultTypeId = builder.makePointer(spv::StorageClassImage, convertGlslangToSpvType(node->getType()));
+ spv::Id resultTypeId = builder.makePointer(spv::StorageClassImage, resultType());
spv::Id pointer = builder.createOp(spv::OpImageTexelPointer, resultTypeId, operands);
std::vector<spv::Id> operands;
@@ -2605,7 +2695,7 @@
for (; opIt != arguments.end(); ++opIt)
operands.push_back(*opIt);
- return createAtomicOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType());
+ return createAtomicOperation(node->getOp(), precision, resultType(), operands, node->getBasicType());
}
}
@@ -2745,7 +2835,7 @@
}
}
- return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params);
+ return builder.createTextureCall(precision, resultType(), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params);
}
spv::Id TGlslangToSpvTraverser::handleUserFunctionCall(const glslang::TIntermAggregate* node)
@@ -2776,7 +2866,7 @@
builder.clearAccessChain();
glslangArgs[a]->traverse(this);
argTypes.push_back(¶mType);
- // keep outputs as and opaque objects l-values, evaluate input-only as r-values
+ // keep outputs and opaque objects as l-values, evaluate input-only as r-values
if (qualifiers[a] != glslang::EvqConstReadOnly || paramType.isOpaque()) {
// save l-value
lValues.push_back(builder.getAccessChain());
@@ -3169,6 +3259,7 @@
spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy)
{
spv::Op unaryOp = spv::OpNop;
+ int extBuiltins = -1;
int libCall = -1;
bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
@@ -3448,7 +3539,32 @@
case glslang::EOpAnyInvocation:
case glslang::EOpAllInvocations:
case glslang::EOpAllInvocationsEqual:
- return createInvocationsOperation(op, typeId, operand);
+#ifdef AMD_EXTENSIONS
+ case glslang::EOpMinInvocations:
+ case glslang::EOpMaxInvocations:
+ case glslang::EOpAddInvocations:
+ case glslang::EOpMinInvocationsNonUniform:
+ case glslang::EOpMaxInvocationsNonUniform:
+ case glslang::EOpAddInvocationsNonUniform:
+#endif
+ return createInvocationsOperation(op, typeId, operand, typeProxy);
+
+#ifdef AMD_EXTENSIONS
+ case glslang::EOpMbcnt:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot);
+ libCall = spv::MbcntAMD;
+ break;
+
+ case glslang::EOpCubeFaceIndex:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_gcn_shader);
+ libCall = spv::CubeFaceIndexAMD;
+ break;
+
+ case glslang::EOpCubeFaceCoord:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_gcn_shader);
+ libCall = spv::CubeFaceCoordAMD;
+ break;
+#endif
default:
return 0;
@@ -3458,7 +3574,7 @@
if (libCall >= 0) {
std::vector<spv::Id> args;
args.push_back(operand);
- id = builder.createBuiltinCall(typeId, stdBuiltins, libCall, args);
+ id = builder.createBuiltinCall(typeId, extBuiltins >= 0 ? extBuiltins : stdBuiltins, libCall, args);
} else {
id = builder.createUnaryOp(unaryOp, typeId, operand);
}
@@ -3765,12 +3881,20 @@
}
// Create group invocation operations.
-spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand)
+spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy)
{
+ bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
+ bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
+
builder.addCapability(spv::CapabilityGroups);
std::vector<spv::Id> operands;
operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup));
+#ifdef AMD_EXTENSIONS
+ if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations ||
+ op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform)
+ operands.push_back(spv::GroupOperationReduce);
+#endif
operands.push_back(operand);
switch (op) {
@@ -3786,6 +3910,74 @@
return builder.createBinOp(spv::OpLogicalOr, typeId, groupAll,
builder.createUnaryOp(spv::OpLogicalNot, typeId, groupAny));
}
+#ifdef AMD_EXTENSIONS
+ case glslang::EOpMinInvocations:
+ case glslang::EOpMaxInvocations:
+ case glslang::EOpAddInvocations:
+ {
+ spv::Op spvOp = spv::OpNop;
+ if (op == glslang::EOpMinInvocations) {
+ if (isFloat)
+ spvOp = spv::OpGroupFMin;
+ else {
+ if (isUnsigned)
+ spvOp = spv::OpGroupUMin;
+ else
+ spvOp = spv::OpGroupSMin;
+ }
+ } else if (op == glslang::EOpMaxInvocations) {
+ if (isFloat)
+ spvOp = spv::OpGroupFMax;
+ else {
+ if (isUnsigned)
+ spvOp = spv::OpGroupUMax;
+ else
+ spvOp = spv::OpGroupSMax;
+ }
+ } else {
+ if (isFloat)
+ spvOp = spv::OpGroupFAdd;
+ else
+ spvOp = spv::OpGroupIAdd;
+ }
+
+ return builder.createOp(spvOp, typeId, operands);
+ }
+ case glslang::EOpMinInvocationsNonUniform:
+ case glslang::EOpMaxInvocationsNonUniform:
+ case glslang::EOpAddInvocationsNonUniform:
+ {
+ spv::Op spvOp = spv::OpNop;
+ if (op == glslang::EOpMinInvocationsNonUniform) {
+ if (isFloat)
+ spvOp = spv::OpGroupFMinNonUniformAMD;
+ else {
+ if (isUnsigned)
+ spvOp = spv::OpGroupUMinNonUniformAMD;
+ else
+ spvOp = spv::OpGroupSMinNonUniformAMD;
+ }
+ }
+ else if (op == glslang::EOpMaxInvocationsNonUniform) {
+ if (isFloat)
+ spvOp = spv::OpGroupFMaxNonUniformAMD;
+ else {
+ if (isUnsigned)
+ spvOp = spv::OpGroupUMaxNonUniformAMD;
+ else
+ spvOp = spv::OpGroupSMaxNonUniformAMD;
+ }
+ }
+ else {
+ if (isFloat)
+ spvOp = spv::OpGroupFAddNonUniformAMD;
+ else
+ spvOp = spv::OpGroupIAddNonUniformAMD;
+ }
+
+ return builder.createOp(spvOp, typeId, operands);
+ }
+#endif
default:
logger->missingFunctionality("invocation operation");
return spv::NoResult;
@@ -3798,6 +3990,7 @@
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
spv::Op opCode = spv::OpNop;
+ int extBuiltins = -1;
int libCall = -1;
size_t consumedOperands = operands.size();
spv::Id typeId0 = 0;
@@ -3941,6 +4134,60 @@
libCall = spv::GLSLstd450Bad;
break;
+#ifdef AMD_EXTENSIONS
+ case glslang::EOpSwizzleInvocations:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot);
+ libCall = spv::SwizzleInvocationsAMD;
+ break;
+ case glslang::EOpSwizzleInvocationsMasked:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot);
+ libCall = spv::SwizzleInvocationsMaskedAMD;
+ break;
+ case glslang::EOpWriteInvocation:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot);
+ libCall = spv::WriteInvocationAMD;
+ break;
+
+ case glslang::EOpMin3:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax);
+ if (isFloat)
+ libCall = spv::FMin3AMD;
+ else {
+ if (isUnsigned)
+ libCall = spv::UMin3AMD;
+ else
+ libCall = spv::SMin3AMD;
+ }
+ break;
+ case glslang::EOpMax3:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax);
+ if (isFloat)
+ libCall = spv::FMax3AMD;
+ else {
+ if (isUnsigned)
+ libCall = spv::UMax3AMD;
+ else
+ libCall = spv::SMax3AMD;
+ }
+ break;
+ case glslang::EOpMid3:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_trinary_minmax);
+ if (isFloat)
+ libCall = spv::FMid3AMD;
+ else {
+ if (isUnsigned)
+ libCall = spv::UMid3AMD;
+ else
+ libCall = spv::SMid3AMD;
+ }
+ break;
+
+ case glslang::EOpInterpolateAtVertex:
+ extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+ libCall = spv::InterpolateAtVertexAMD;
+ break;
+#endif
+
default:
return 0;
}
@@ -3951,7 +4198,7 @@
// Construct the call arguments, without modifying the original operands vector.
// We might need the remaining arguments, e.g. in the EOpFrexp case.
std::vector<spv::Id> callArguments(operands.begin(), operands.begin() + consumedOperands);
- id = builder.createBuiltinCall(typeId, stdBuiltins, libCall, callArguments);
+ id = builder.createBuiltinCall(typeId, extBuiltins >= 0 ? extBuiltins : stdBuiltins, libCall, callArguments);
} else {
switch (consumedOperands) {
case 0:
@@ -3997,8 +4244,8 @@
return builder.setPrecision(id, precision);
}
-// Intrinsics with no arguments, no return value, and no precision.
-spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op)
+// Intrinsics with no arguments (or no return value, and no precision).
+spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId)
{
// TODO: get the barrier operands correct
@@ -4045,6 +4292,14 @@
// Control barrier with non-"None" semantic is also a memory barrier.
builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask);
return 0;
+#ifdef AMD_EXTENSIONS
+ case glslang::EOpTime:
+ {
+ std::vector<spv::Id> args; // Dummy arguments
+ spv::Id id = builder.createBuiltinCall(typeId, getExtBuiltins(spv::E_SPV_AMD_gcn_shader), spv::TimeAMD, args);
+ return builder.setPrecision(id, precision);
+ }
+#endif
default:
logger->missingFunctionality("unknown operation with no arguments");
return 0;
@@ -4437,6 +4692,20 @@
return builder.createOp(spv::OpPhi, boolTypeId, phiOperands);
}
+// Return type Id of the imported set of extended instructions corresponds to the name.
+// Import this set if it has not been imported yet.
+spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name)
+{
+ if (extBuiltinMap.find(name) != extBuiltinMap.end())
+ return extBuiltinMap[name];
+ else {
+ builder.addExtensions(name);
+ spv::Id extBuiltins = builder.import(name);
+ extBuiltinMap[name] = extBuiltins;
+ return extBuiltins;
+ }
+}
+
}; // end anonymous namespace
namespace glslang {
diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp
index 1bbd589..05f220a 100755
--- a/SPIRV/SPVRemapper.cpp
+++ b/SPIRV/SPVRemapper.cpp
@@ -440,6 +440,8 @@
for (int op = 0; numOperands > 0; ++op, --numOperands) {
switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
case spv::OperandId:
+ case spv::OperandScope:
+ case spv::OperandMemorySemantics:
idFn(asId(word++));
break;
@@ -500,9 +502,7 @@
case spv::OperandSelect:
case spv::OperandLoop:
case spv::OperandFunction:
- case spv::OperandMemorySemantics:
case spv::OperandMemoryAccess:
- case spv::OperandScope:
case spv::OperandGroupOperation:
case spv::OperandKernelEnqueueFlags:
case spv::OperandKernelProfilingInfo:
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index e5317ab..1411d16 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -2312,7 +2312,11 @@
capInst.dump(out);
}
- // TBD: OpExtension ...
+ for (int e = 0; e < (int)extensions.size(); ++e) {
+ Instruction extInst(0, 0, OpExtension);
+ extInst.addStringOperand(extensions[e]);
+ extInst.dump(out);
+ }
dumpInstructions(out, imports);
Instruction memInst(0, 0, OpMemoryModel);
@@ -2331,10 +2335,10 @@
sourceInst.addImmediateOperand(sourceVersion);
sourceInst.dump(out);
}
- for (int e = 0; e < (int)extensions.size(); ++e) {
- Instruction extInst(0, 0, OpSourceExtension);
- extInst.addStringOperand(extensions[e]);
- extInst.dump(out);
+ for (int e = 0; e < (int)sourceExtensions.size(); ++e) {
+ Instruction sourceExtInst(0, 0, OpSourceExtension);
+ sourceExtInst.addStringOperand(sourceExtensions[e]);
+ sourceExtInst.dump(out);
}
dumpInstructions(out, names);
dumpInstructions(out, lines);
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index c7e3bcd..00e85b8 100755
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -70,7 +70,8 @@
source = lang;
sourceVersion = version;
}
- void addSourceExtension(const char* ext) { extensions.push_back(ext); }
+ void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); }
+ void addExtensions(const char* ext) { extensions.push_back(ext); }
Id import(const char*);
void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem)
{
@@ -552,6 +553,7 @@
SourceLanguage source;
int sourceVersion;
std::vector<const char*> extensions;
+ std::vector<const char*> sourceExtensions;
AddressingModel addressModel;
MemoryModel memoryModel;
std::set<spv::Capability> capabilities;
diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp
index 75688cb..b60b3ba 100644
--- a/SPIRV/disassemble.cpp
+++ b/SPIRV/disassemble.cpp
@@ -44,16 +44,25 @@
#include <sstream>
#include <cstring>
-namespace spv {
- // Include C-based headers that don't have a namespace
- #include "GLSL.std.450.h"
-}
-const char* GlslStd450DebugNames[spv::GLSLstd450Count];
-
#include "disassemble.h"
#include "doc.h"
namespace spv {
+ extern "C" {
+ // Include C-based headers that don't have a namespace
+ #include "GLSL.std.450.h"
+#ifdef AMD_EXTENSIONS
+ #include "GLSL.ext.AMD.h"
+#endif
+ }
+}
+const char* GlslStd450DebugNames[spv::GLSLstd450Count];
+
+namespace spv {
+
+#ifdef AMD_EXTENSIONS
+static const char* GLSLextAMDGetDebugNames(const char*, unsigned);
+#endif
static void Kill(std::ostream& out, const char* message)
{
@@ -64,6 +73,9 @@
// used to identify the extended instruction library imported when printing
enum ExtInstSet {
GLSL450Inst,
+#ifdef AMD_EXTENSIONS
+ GLSLextAMDInst,
+#endif
OpenCLExtInst,
};
@@ -446,14 +458,26 @@
--numOperands;
if (opCode == OpExtInst) {
ExtInstSet extInstSet = GLSL450Inst;
- if (0 == memcmp("OpenCL", (const char*)(idDescriptor[stream[word-2]].c_str()), 6)) {
+ const char* name = idDescriptor[stream[word - 2]].c_str();
+ if (0 == memcmp("OpenCL", name, 6)) {
extInstSet = OpenCLExtInst;
+#ifdef AMD_EXTENSIONS
+ } else if (strcmp(spv::E_SPV_AMD_shader_ballot, name) == 0 ||
+ strcmp(spv::E_SPV_AMD_shader_trinary_minmax, name) == 0 ||
+ strcmp(spv::E_SPV_AMD_shader_explicit_vertex_parameter, name) == 0 ||
+ strcmp(spv::E_SPV_AMD_gcn_shader, name) == 0) {
+ extInstSet = GLSLextAMDInst;
+#endif
}
unsigned entrypoint = stream[word - 1];
if (extInstSet == GLSL450Inst) {
if (entrypoint < GLSLstd450Count) {
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
}
+#ifdef AMD_EXTENSIONS
+ } else if (extInstSet == GLSLextAMDInst) {
+ out << "(" << GLSLextAMDGetDebugNames(name, entrypoint) << ")";
+#endif
}
}
break;
@@ -561,6 +585,50 @@
names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset";
}
+#ifdef AMD_EXTENSIONS
+static const char* GLSLextAMDGetDebugNames(const char* name, unsigned entrypoint)
+{
+ if (strcmp(name, spv::E_SPV_AMD_shader_ballot) == 0) {
+ switch (entrypoint) {
+ case SwizzleInvocationsAMD: return "SwizzleInvocationsAMD";
+ case SwizzleInvocationsMaskedAMD: return "SwizzleInvocationsMaskedAMD";
+ case WriteInvocationAMD: return "WriteInvocationAMD";
+ case MbcntAMD: return "MbcntAMD";
+ default: return "Bad";
+ }
+ } else if (strcmp(name, spv::E_SPV_AMD_shader_trinary_minmax) == 0) {
+ switch (entrypoint) {
+ case FMin3AMD: return "FMin3AMD";
+ case UMin3AMD: return "UMin3AMD";
+ case SMin3AMD: return "SMin3AMD";
+ case FMax3AMD: return "FMax3AMD";
+ case UMax3AMD: return "UMax3AMD";
+ case SMax3AMD: return "SMax3AMD";
+ case FMid3AMD: return "FMid3AMD";
+ case UMid3AMD: return "UMid3AMD";
+ case SMid3AMD: return "SMid3AMD";
+ default: return "Bad";
+ }
+ } else if (strcmp(name, spv::E_SPV_AMD_shader_explicit_vertex_parameter) == 0) {
+ switch (entrypoint) {
+ case InterpolateAtVertexAMD: return "InterpolateAtVertexAMD";
+ default: return "Bad";
+ }
+ }
+ else if (strcmp(name, spv::E_SPV_AMD_gcn_shader) == 0) {
+ switch (entrypoint) {
+ case CubeFaceIndexAMD: return "CubeFaceIndexAMD";
+ case CubeFaceCoordAMD: return "CubeFaceCoordAMD";
+ case TimeAMD: return "TimeAMD";
+ default:
+ break;
+ }
+ }
+
+ return "Bad";
+}
+#endif
+
void Disassemble(std::ostream& out, const std::vector<unsigned int>& stream)
{
SpirvStream SpirvStream(out, stream);
diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp
index fed3ec4..9b58b59 100755
--- a/SPIRV/doc.cpp
+++ b/SPIRV/doc.cpp
@@ -45,6 +45,15 @@
#include <string.h>
#include <algorithm>
+#ifdef AMD_EXTENSIONS
+namespace spv {
+ extern "C" {
+ // Include C-based headers that don't have a namespace
+ #include "GLSL.ext.AMD.h"
+ }
+}
+#endif
+
namespace spv {
//
@@ -243,6 +252,10 @@
case DecorationCeiling:
default: return "Bad";
+
+#ifdef AMD_EXTENSIONS
+ case 4999: return "ExplicitInterpAMD";
+#endif
}
}
@@ -298,6 +311,16 @@
case BuiltInCeiling:
default: return "Bad";
+
+#ifdef AMD_EXTENSIONS
+ case 4992: return "BaryCoordNoPerspAMD";
+ case 4993: return "BaryCoordNoPerspCentroidAMD";
+ case 4994: return "BaryCoordNoPerspSampleAMD";
+ case 4995: return "BaryCoordSmoothAMD";
+ case 4996: return "BaryCoordSmoothCentroidAMD";
+ case 4997: return "BaryCoordSmoothSampleAMD";
+ case 4998: return "BaryCoordPullModelAMD";
+#endif
}
}
@@ -1107,12 +1130,27 @@
case OpcodeCeiling:
default:
return "Bad";
+
+#ifdef AMD_EXTENSIONS
+ case 5000: return "OpGroupIAddNonUniformAMD";
+ case 5001: return "OpGroupFAddNonUniformAMD";
+ case 5002: return "OpGroupFMinNonUniformAMD";
+ case 5003: return "OpGroupUMinNonUniformAMD";
+ case 5004: return "OpGroupSMinNonUniformAMD";
+ case 5005: return "OpGroupFMaxNonUniformAMD";
+ case 5006: return "OpGroupUMaxNonUniformAMD";
+ case 5007: return "OpGroupSMaxNonUniformAMD";
+#endif
}
}
// The set of objects that hold all the instruction/operand
// parameterization information.
+#ifdef AMD_EXTENSIONS
+InstructionParameters InstructionDesc[OpCodeMask + 1];
+#else
InstructionParameters InstructionDesc[OpcodeCeiling];
+#endif
OperandParameters ExecutionModeOperands[ExecutionModeCeiling];
OperandParameters DecorationOperands[DecorationCeiling];
@@ -2703,6 +2741,48 @@
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Num Events'");
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'");
InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'");
+
+#ifdef AMD_EXTENSIONS
+ InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'");
+
+ InstructionDesc[OpGroupFAddNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'");
+
+ InstructionDesc[OpGroupUMinNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'");
+
+ InstructionDesc[OpGroupSMinNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X");
+
+ InstructionDesc[OpGroupFMinNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X");
+
+ InstructionDesc[OpGroupUMaxNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X");
+
+ InstructionDesc[OpGroupSMaxNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X");
+
+ InstructionDesc[OpGroupFMaxNonUniformAMD].capabilities.push_back(CapabilityGroups);
+ InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'");
+ InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'");
+ InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X");
+#endif
}
}; // end spv namespace
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 63e9878..c014be2 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -596,6 +596,8 @@
printf("SPIR-V Version %s\n", spirvVersion.c_str());
printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision);
printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
+ printf("GL_KHR_vulkan_glsl version %d\n", 100);
+ printf("ARB_GL_gl_spirv version %d\n", 100);
if (Worklist.empty())
return ESuccess;
}
diff --git a/Test/420.tese b/Test/420.tese
index 988a26d..4c3693a 100644
--- a/Test/420.tese
+++ b/Test/420.tese
@@ -51,6 +51,18 @@
S3 s[2];
};
+struct Single1 { int f; };
+Single1 single1 = { 10 };
+
+struct Single2 { uvec2 v; };
+Single2 single2 = { { 1, 2 } };
+
+struct Single3 { Single1 s1; };
+Single3 single3 = { { 3 } };
+
+struct Single4 { Single2 s1; };
+Single4 single4 = { { { 4u, 5u } } };
+
const S4 constructed = S4(uvec2(1, 2),
S3[2](S3(3.0, mat2x3(4.0)),
S3(5.0, mat2x3(6.0))));
diff --git a/Test/420.vert b/Test/420.vert
index 49035ea..ab28140 100644
--- a/Test/420.vert
+++ b/Test/420.vert
@@ -156,4 +156,6 @@
levels = textureQueryLevels(samp1D); // ERROR, not until 430
levels = textureQueryLevels(samp1Ds); // ERROR, not until 430
-}
\ No newline at end of file
+}
+
+layout(binding=0) writeonly uniform image1D badArray[];
diff --git a/Test/440.vert b/Test/440.vert
index ac946be..bfcdfd2 100644
--- a/Test/440.vert
+++ b/Test/440.vert
@@ -63,6 +63,17 @@
layout(location = 50, component = 3) out int be;
layout(location = 50, component = 0) out vec3 bf;
+layout(location = 51, component = 1) out double dfo; // ERROR, odd component
+layout(location = 52, component = 2) out dvec2 dvo; // ERROR, overflow
+layout(location = 53) out double dfo2;
+layout(location = 53, component = 2) out vec2 ffv2; // okay, fits
+layout(location = 54) out dvec4 dvec4out; // uses up location 55 too
+layout(location = 55) out float overf; // ERROR, collides with previous dvec4
+layout(location = 56, component = 1) out vec2 df2o;
+layout(location = 56, component = 3) out float sf2o;
+layout(location = 57, component = 2) out vec2 dv3o;
+layout(location = 57, component = 3) out float sf4o; // ERROR, overlapping component
+
out bblck1 {
vec4 bbv;
} bbinst1;
diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out
index 70b8934..edd65ab 100644
--- a/Test/baseResults/100.frag.out
+++ b/Test/baseResults/100.frag.out
@@ -241,7 +241,7 @@
0:122 'sExt' (uniform lowp samplerExternalOES)
0:122 Construct vec3 (temp lowp 3-component vector of float)
0:122 'f13' (invariant global mediump float)
-0:123 textureProj (global lowp 4-component vector of float)
+0:123 textureProj (global lowp 4-component vector of float, operation at mediump)
0:123 'sExt' (uniform lowp samplerExternalOES)
0:123 direct index (smooth temp mediump 4-component vector of float)
0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
@@ -278,7 +278,7 @@
0:145 'a' (in mediump int)
0:145 'b' (in mediump float)
0:147 Sequence
-0:147 textureProjGrad (global lowp 4-component vector of float)
+0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:147 's2Dg' (uniform lowp sampler2D)
0:147 Construct vec3 (temp mediump 3-component vector of float)
0:147 'f13' (invariant global mediump float)
@@ -299,17 +299,17 @@
0:158 Function Definition: foo323433( (global void)
0:158 Function Parameters:
0:160 Sequence
-0:160 textureLod (global lowp 4-component vector of float)
+0:160 textureLod (global lowp 4-component vector of float, operation at mediump)
0:160 's2Dg' (uniform lowp sampler2D)
0:160 'uv2' (invariant uniform mediump 2-component vector of float)
0:160 'f13' (invariant global mediump float)
-0:161 textureProjGrad (global lowp 4-component vector of float)
+0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:161 's2Dg' (uniform lowp sampler2D)
0:161 Construct vec3 (temp mediump 3-component vector of float)
0:161 'f13' (invariant global mediump float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
-0:162 textureGrad (global lowp 4-component vector of float)
+0:162 textureGrad (global lowp 4-component vector of float, operation at mediump)
0:162 's2Dg' (uniform lowp sampler2D)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
@@ -579,7 +579,7 @@
0:122 'sExt' (uniform lowp samplerExternalOES)
0:122 Construct vec3 (temp lowp 3-component vector of float)
0:122 'f13' (invariant global mediump float)
-0:123 textureProj (global lowp 4-component vector of float)
+0:123 textureProj (global lowp 4-component vector of float, operation at mediump)
0:123 'sExt' (uniform lowp samplerExternalOES)
0:123 direct index (smooth temp mediump 4-component vector of float)
0:123 'v' (smooth in 3-element array of mediump 4-component vector of float)
@@ -616,7 +616,7 @@
0:145 'a' (in mediump int)
0:145 'b' (in mediump float)
0:147 Sequence
-0:147 textureProjGrad (global lowp 4-component vector of float)
+0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:147 's2Dg' (uniform lowp sampler2D)
0:147 Construct vec3 (temp mediump 3-component vector of float)
0:147 'f13' (invariant global mediump float)
@@ -637,17 +637,17 @@
0:158 Function Definition: foo323433( (global void)
0:158 Function Parameters:
0:160 Sequence
-0:160 textureLod (global lowp 4-component vector of float)
+0:160 textureLod (global lowp 4-component vector of float, operation at mediump)
0:160 's2Dg' (uniform lowp sampler2D)
0:160 'uv2' (invariant uniform mediump 2-component vector of float)
0:160 'f13' (invariant global mediump float)
-0:161 textureProjGrad (global lowp 4-component vector of float)
+0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump)
0:161 's2Dg' (uniform lowp sampler2D)
0:161 Construct vec3 (temp mediump 3-component vector of float)
0:161 'f13' (invariant global mediump float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
0:161 'uv2' (invariant uniform mediump 2-component vector of float)
-0:162 textureGrad (global lowp 4-component vector of float)
+0:162 textureGrad (global lowp 4-component vector of float, operation at mediump)
0:162 's2Dg' (uniform lowp sampler2D)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
0:162 'uv2' (invariant uniform mediump 2-component vector of float)
diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out
index 78020e1..1736bf0 100644
--- a/Test/baseResults/150.tesc.out
+++ b/Test/baseResults/150.tesc.out
@@ -732,7 +732,7 @@
ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
-ERROR: 0:58: 'initializer list' : wrong number of structure members
+ERROR: 0:70: 'initializer list' : wrong number of structure members
ERROR: 13 compilation errors. No code generated.
@@ -770,51 +770,73 @@
0:42 5.000000
0:42 5.200000
0:42 1.100000
-0:67 Sequence
-0:67 move second child to first child (temp 3-component vector of float)
-0:67 'av3' (global 3-component vector of float)
-0:67 Construct vec3 (global 3-component vector of float)
-0:67 'vc1' (global float)
-0:67 'vc2' (global float)
-0:67 'vc3' (global float)
-0:68 Sequence
-0:68 move second child to first child (temp 3-component vector of float)
-0:68 'bv3' (global 3-component vector of float)
-0:68 Construct vec3 (temp 3-component vector of float)
-0:68 'vc1' (global float)
-0:68 'vc2' (global float)
-0:68 'vc3' (global float)
-0:70 Function Definition: main( (global void)
-0:70 Function Parameters:
-0:72 Sequence
-0:72 MemoryBarrier (global void)
-0:74 Test condition and select (temp void)
-0:74 Condition
-0:74 Compare Equal (temp bool)
-0:74 Constant:
-0:74 1 (const uint)
-0:74 2 (const uint)
-0:74 3.000000
-0:74 4.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 4.000000
-0:74 0.000000
-0:74 5.000000
-0:74 6.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 6.000000
-0:74 0.000000
-0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
-0:74 true case is null
-0:76 Test condition and select (temp void)
-0:76 Condition
-0:76 Constant:
-0:76 true (const bool)
-0:76 true case is null
+0:55 Sequence
+0:55 move second child to first child (temp structure{global int f})
+0:55 'single1' (global structure{global int f})
+0:55 Constant:
+0:55 10 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp structure{global 2-component vector of uint v})
+0:58 'single2' (global structure{global 2-component vector of uint v})
+0:58 Constant:
+0:58 1 (const uint)
+0:58 2 (const uint)
+0:61 Sequence
+0:61 move second child to first child (temp structure{global structure{global int f} s1})
+0:61 'single3' (global structure{global structure{global int f} s1})
+0:61 Constant:
+0:61 3 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
+0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
+0:64 Constant:
+0:64 4 (const uint)
+0:64 5 (const uint)
+0:79 Sequence
+0:79 move second child to first child (temp 3-component vector of float)
+0:79 'av3' (global 3-component vector of float)
+0:79 Construct vec3 (global 3-component vector of float)
+0:79 'vc1' (global float)
+0:79 'vc2' (global float)
+0:79 'vc3' (global float)
+0:80 Sequence
+0:80 move second child to first child (temp 3-component vector of float)
+0:80 'bv3' (global 3-component vector of float)
+0:80 Construct vec3 (temp 3-component vector of float)
+0:80 'vc1' (global float)
+0:80 'vc2' (global float)
+0:80 'vc3' (global float)
+0:82 Function Definition: main( (global void)
+0:82 Function Parameters:
+0:84 Sequence
+0:84 MemoryBarrier (global void)
+0:86 Test condition and select (temp void)
+0:86 Condition
+0:86 Compare Equal (temp bool)
+0:86 Constant:
+0:86 1 (const uint)
+0:86 2 (const uint)
+0:86 3.000000
+0:86 4.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 4.000000
+0:86 0.000000
+0:86 5.000000
+0:86 6.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 6.000000
+0:86 0.000000
+0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:86 true case is null
+0:88 Test condition and select (temp void)
+0:88 Condition
+0:88 Constant:
+0:88 true (const bool)
+0:88 true case is null
0:? Linker Objects
0:? 'a' (const 2X2 matrix of float)
0:? 1.000000
@@ -840,6 +862,10 @@
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global implicitly-sized array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
+0:? 'single1' (global structure{global int f})
+0:? 'single2' (global structure{global 2-component vector of uint v})
+0:? 'single3' (global structure{global structure{global int f} s1})
+0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)
@@ -1524,51 +1550,73 @@
0:42 5.000000
0:42 5.200000
0:42 1.100000
-0:67 Sequence
-0:67 move second child to first child (temp 3-component vector of float)
-0:67 'av3' (global 3-component vector of float)
-0:67 Construct vec3 (global 3-component vector of float)
-0:67 'vc1' (global float)
-0:67 'vc2' (global float)
-0:67 'vc3' (global float)
-0:68 Sequence
-0:68 move second child to first child (temp 3-component vector of float)
-0:68 'bv3' (global 3-component vector of float)
-0:68 Construct vec3 (temp 3-component vector of float)
-0:68 'vc1' (global float)
-0:68 'vc2' (global float)
-0:68 'vc3' (global float)
-0:70 Function Definition: main( (global void)
-0:70 Function Parameters:
-0:72 Sequence
-0:72 MemoryBarrier (global void)
-0:74 Test condition and select (temp void)
-0:74 Condition
-0:74 Compare Equal (temp bool)
-0:74 Constant:
-0:74 1 (const uint)
-0:74 2 (const uint)
-0:74 3.000000
-0:74 4.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 4.000000
-0:74 0.000000
-0:74 5.000000
-0:74 6.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 6.000000
-0:74 0.000000
-0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
-0:74 true case is null
-0:76 Test condition and select (temp void)
-0:76 Condition
-0:76 Constant:
-0:76 true (const bool)
-0:76 true case is null
+0:55 Sequence
+0:55 move second child to first child (temp structure{global int f})
+0:55 'single1' (global structure{global int f})
+0:55 Constant:
+0:55 10 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp structure{global 2-component vector of uint v})
+0:58 'single2' (global structure{global 2-component vector of uint v})
+0:58 Constant:
+0:58 1 (const uint)
+0:58 2 (const uint)
+0:61 Sequence
+0:61 move second child to first child (temp structure{global structure{global int f} s1})
+0:61 'single3' (global structure{global structure{global int f} s1})
+0:61 Constant:
+0:61 3 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
+0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
+0:64 Constant:
+0:64 4 (const uint)
+0:64 5 (const uint)
+0:79 Sequence
+0:79 move second child to first child (temp 3-component vector of float)
+0:79 'av3' (global 3-component vector of float)
+0:79 Construct vec3 (global 3-component vector of float)
+0:79 'vc1' (global float)
+0:79 'vc2' (global float)
+0:79 'vc3' (global float)
+0:80 Sequence
+0:80 move second child to first child (temp 3-component vector of float)
+0:80 'bv3' (global 3-component vector of float)
+0:80 Construct vec3 (temp 3-component vector of float)
+0:80 'vc1' (global float)
+0:80 'vc2' (global float)
+0:80 'vc3' (global float)
+0:82 Function Definition: main( (global void)
+0:82 Function Parameters:
+0:84 Sequence
+0:84 MemoryBarrier (global void)
+0:86 Test condition and select (temp void)
+0:86 Condition
+0:86 Compare Equal (temp bool)
+0:86 Constant:
+0:86 1 (const uint)
+0:86 2 (const uint)
+0:86 3.000000
+0:86 4.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 4.000000
+0:86 0.000000
+0:86 5.000000
+0:86 6.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 6.000000
+0:86 0.000000
+0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:86 true case is null
+0:88 Test condition and select (temp void)
+0:88 Condition
+0:88 Constant:
+0:88 true (const bool)
+0:88 true case is null
0:? Linker Objects
0:? 'patchIn' (patch in 4-component vector of float)
0:? 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 3-element array of float ClipDistance gl_ClipDistance})
@@ -1616,6 +1664,10 @@
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global 1-element array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
+0:? 'single1' (global structure{global int f})
+0:? 'single2' (global structure{global 2-component vector of uint v})
+0:? 'single3' (global structure{global structure{global int f} s1})
+0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)
diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out
index a0c2615..2a3341a 100644
--- a/Test/baseResults/300.frag.out
+++ b/Test/baseResults/300.frag.out
@@ -72,20 +72,20 @@
0:59 1.200000
0:60 move second child to first child (temp lowp float)
0:60 'f' (temp lowp float)
-0:60 textureOffset (global lowp float)
+0:60 textureOffset (global lowp float, operation at mediump)
0:60 's2DShadow' (uniform lowp sampler2DShadow)
0:60 'c3D' (smooth in lowp 3-component vector of float)
0:60 'ic2D' (flat in mediump 2-component vector of int)
0:60 'c1D' (smooth in lowp float)
0:61 move second child to first child (temp lowp 4-component vector of float)
0:61 'v' (temp lowp 4-component vector of float)
-0:61 textureFetch (global lowp 4-component vector of float)
+0:61 textureFetch (global lowp 4-component vector of float, operation at mediump)
0:61 's3D' (uniform lowp sampler3D)
0:61 'ic3D' (flat in mediump 3-component vector of int)
0:61 'ic1D' (flat in mediump int)
0:62 move second child to first child (temp lowp 4-component vector of float)
0:62 'v' (temp lowp 4-component vector of float)
-0:62 textureFetchOffset (global lowp 4-component vector of float)
+0:62 textureFetchOffset (global lowp 4-component vector of float, operation at mediump)
0:62 direct index (temp lowp sampler2D)
0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:62 Constant:
@@ -96,14 +96,14 @@
0:62 'ic2D' (flat in mediump 2-component vector of int)
0:63 move second child to first child (temp lowp float)
0:63 'f' (temp lowp float)
-0:63 textureLodOffset (global lowp float)
+0:63 textureLodOffset (global lowp float, operation at mediump)
0:63 's2DShadow' (uniform lowp sampler2DShadow)
0:63 'c3D' (smooth in lowp 3-component vector of float)
0:63 'c1D' (smooth in lowp float)
0:63 'ic2D' (flat in mediump 2-component vector of int)
0:64 move second child to first child (temp lowp 4-component vector of float)
0:64 'v' (temp lowp 4-component vector of float)
-0:64 textureProjLodOffset (global lowp 4-component vector of float)
+0:64 textureProjLodOffset (global lowp 4-component vector of float, operation at mediump)
0:64 's2D' (uniform lowp sampler2D)
0:64 'c3D' (smooth in lowp 3-component vector of float)
0:64 'c1D' (smooth in lowp float)
@@ -117,7 +117,7 @@
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:66 move second child to first child (temp lowp float)
0:66 'f' (temp lowp float)
-0:66 textureGradOffset (global lowp float)
+0:66 textureGradOffset (global lowp float, operation at mediump)
0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
0:66 'c4D' (smooth temp lowp 4-component vector of float)
0:66 'c2D' (smooth in lowp 2-component vector of float)
@@ -132,7 +132,7 @@
0:67 'c3D' (smooth in lowp 3-component vector of float)
0:68 move second child to first child (temp lowp 4-component vector of float)
0:68 'v' (temp lowp 4-component vector of float)
-0:68 textureProjGradOffset (global lowp 4-component vector of float)
+0:68 textureProjGradOffset (global lowp 4-component vector of float, operation at mediump)
0:68 's2D' (uniform lowp sampler2D)
0:68 'c3D' (smooth in lowp 3-component vector of float)
0:68 'c2D' (smooth in lowp 2-component vector of float)
@@ -152,7 +152,7 @@
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (temp mediump 4-component vector of int)
0:73 'iv' (temp mediump 4-component vector of int)
-0:73 textureProjOffset (global lowp 4-component vector of int)
+0:73 textureProjOffset (global lowp 4-component vector of int, operation at mediump)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth temp lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
@@ -184,7 +184,7 @@
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (temp mediump 4-component vector of int)
0:78 'iv' (temp mediump 4-component vector of int)
-0:78 textureFetch (global lowp 4-component vector of int)
+0:78 textureFetch (global lowp 4-component vector of int, operation at mediump)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)
@@ -196,7 +196,7 @@
0:80 0 (const int)
0:80 Constant:
0:80 1 (const int)
-0:80 textureSize (global highp 2-component vector of int)
+0:80 textureSize (global highp 2-component vector of int, operation at lowp)
0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
0:80 Constant:
0:80 2 (const int)
@@ -428,20 +428,20 @@
0:59 1.200000
0:60 move second child to first child (temp lowp float)
0:60 'f' (temp lowp float)
-0:60 textureOffset (global lowp float)
+0:60 textureOffset (global lowp float, operation at mediump)
0:60 's2DShadow' (uniform lowp sampler2DShadow)
0:60 'c3D' (smooth in lowp 3-component vector of float)
0:60 'ic2D' (flat in mediump 2-component vector of int)
0:60 'c1D' (smooth in lowp float)
0:61 move second child to first child (temp lowp 4-component vector of float)
0:61 'v' (temp lowp 4-component vector of float)
-0:61 textureFetch (global lowp 4-component vector of float)
+0:61 textureFetch (global lowp 4-component vector of float, operation at mediump)
0:61 's3D' (uniform lowp sampler3D)
0:61 'ic3D' (flat in mediump 3-component vector of int)
0:61 'ic1D' (flat in mediump int)
0:62 move second child to first child (temp lowp 4-component vector of float)
0:62 'v' (temp lowp 4-component vector of float)
-0:62 textureFetchOffset (global lowp 4-component vector of float)
+0:62 textureFetchOffset (global lowp 4-component vector of float, operation at mediump)
0:62 direct index (temp lowp sampler2D)
0:62 'arrayedSampler' (uniform 5-element array of lowp sampler2D)
0:62 Constant:
@@ -452,14 +452,14 @@
0:62 'ic2D' (flat in mediump 2-component vector of int)
0:63 move second child to first child (temp lowp float)
0:63 'f' (temp lowp float)
-0:63 textureLodOffset (global lowp float)
+0:63 textureLodOffset (global lowp float, operation at mediump)
0:63 's2DShadow' (uniform lowp sampler2DShadow)
0:63 'c3D' (smooth in lowp 3-component vector of float)
0:63 'c1D' (smooth in lowp float)
0:63 'ic2D' (flat in mediump 2-component vector of int)
0:64 move second child to first child (temp lowp 4-component vector of float)
0:64 'v' (temp lowp 4-component vector of float)
-0:64 textureProjLodOffset (global lowp 4-component vector of float)
+0:64 textureProjLodOffset (global lowp 4-component vector of float, operation at mediump)
0:64 's2D' (uniform lowp sampler2D)
0:64 'c3D' (smooth in lowp 3-component vector of float)
0:64 'c1D' (smooth in lowp float)
@@ -473,7 +473,7 @@
0:65 'c3D' (smooth in lowp 3-component vector of float)
0:66 move second child to first child (temp lowp float)
0:66 'f' (temp lowp float)
-0:66 textureGradOffset (global lowp float)
+0:66 textureGradOffset (global lowp float, operation at mediump)
0:66 's2DArrayShadow' (uniform lowp sampler2DArrayShadow)
0:66 'c4D' (smooth temp lowp 4-component vector of float)
0:66 'c2D' (smooth in lowp 2-component vector of float)
@@ -488,7 +488,7 @@
0:67 'c3D' (smooth in lowp 3-component vector of float)
0:68 move second child to first child (temp lowp 4-component vector of float)
0:68 'v' (temp lowp 4-component vector of float)
-0:68 textureProjGradOffset (global lowp 4-component vector of float)
+0:68 textureProjGradOffset (global lowp 4-component vector of float, operation at mediump)
0:68 's2D' (uniform lowp sampler2D)
0:68 'c3D' (smooth in lowp 3-component vector of float)
0:68 'c2D' (smooth in lowp 2-component vector of float)
@@ -508,7 +508,7 @@
0:72 'c2D' (smooth in lowp 2-component vector of float)
0:73 move second child to first child (temp mediump 4-component vector of int)
0:73 'iv' (temp mediump 4-component vector of int)
-0:73 textureProjOffset (global lowp 4-component vector of int)
+0:73 textureProjOffset (global lowp 4-component vector of int, operation at mediump)
0:73 'is2D' (uniform lowp isampler2D)
0:73 'c4D' (smooth temp lowp 4-component vector of float)
0:73 'ic2D' (flat in mediump 2-component vector of int)
@@ -540,7 +540,7 @@
0:77 'c1D' (smooth in lowp float)
0:78 move second child to first child (temp mediump 4-component vector of int)
0:78 'iv' (temp mediump 4-component vector of int)
-0:78 textureFetch (global lowp 4-component vector of int)
+0:78 textureFetch (global lowp 4-component vector of int, operation at mediump)
0:78 'is2DArray' (uniform lowp isampler2DArray)
0:78 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)
@@ -552,7 +552,7 @@
0:80 0 (const int)
0:80 Constant:
0:80 1 (const int)
-0:80 textureSize (global highp 2-component vector of int)
+0:80 textureSize (global highp 2-component vector of int, operation at lowp)
0:80 'sCubeShadow' (uniform lowp samplerCubeShadow)
0:80 Constant:
0:80 2 (const int)
diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out
index 80745ab..66a0651 100644
--- a/Test/baseResults/300.vert.out
+++ b/Test/baseResults/300.vert.out
@@ -175,7 +175,7 @@
0:120 Sequence
0:120 move second child to first child (temp highp 2-component vector of int)
0:120 'x1' (temp highp 2-component vector of int)
-0:120 textureSize (global highp 2-component vector of int)
+0:120 textureSize (global highp 2-component vector of int, operation at lowp)
0:120 's2D' (uniform lowp sampler2D)
0:120 Constant:
0:120 2 (const int)
@@ -184,7 +184,7 @@
0:122 Sequence
0:122 move second child to first child (temp highp 3-component vector of int)
0:122 'x3' (temp highp 3-component vector of int)
-0:122 textureSize (global highp 3-component vector of int)
+0:122 textureSize (global highp 3-component vector of int, operation at lowp)
0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
0:122 Constant:
0:122 -1 (const int)
@@ -193,7 +193,7 @@
0:124 Sequence
0:124 move second child to first child (temp highp 4-component vector of float)
0:124 'x4' (temp highp 4-component vector of float)
-0:124 texture (global lowp 4-component vector of float)
+0:124 texture (global lowp 4-component vector of float, operation at highp)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
@@ -217,7 +217,7 @@
0:128 Sequence
0:128 move second child to first child (temp highp float)
0:128 'x6' (temp highp float)
-0:128 textureProjGradOffset (global lowp float)
+0:128 textureProjGradOffset (global lowp float, operation at highp)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:
@@ -459,7 +459,7 @@
0:120 Sequence
0:120 move second child to first child (temp highp 2-component vector of int)
0:120 'x1' (temp highp 2-component vector of int)
-0:120 textureSize (global highp 2-component vector of int)
+0:120 textureSize (global highp 2-component vector of int, operation at lowp)
0:120 's2D' (uniform lowp sampler2D)
0:120 Constant:
0:120 2 (const int)
@@ -468,7 +468,7 @@
0:122 Sequence
0:122 move second child to first child (temp highp 3-component vector of int)
0:122 'x3' (temp highp 3-component vector of int)
-0:122 textureSize (global highp 3-component vector of int)
+0:122 textureSize (global highp 3-component vector of int, operation at lowp)
0:122 's2DAS' (uniform lowp sampler2DArrayShadow)
0:122 Constant:
0:122 -1 (const int)
@@ -477,7 +477,7 @@
0:124 Sequence
0:124 move second child to first child (temp highp 4-component vector of float)
0:124 'x4' (temp highp 4-component vector of float)
-0:124 texture (global lowp 4-component vector of float)
+0:124 texture (global lowp 4-component vector of float, operation at highp)
0:124 's2D' (uniform lowp sampler2D)
0:124 'c2D' (in highp 2-component vector of float)
0:125 Constant:
@@ -501,7 +501,7 @@
0:128 Sequence
0:128 move second child to first child (temp highp float)
0:128 'x6' (temp highp float)
-0:128 textureProjGradOffset (global lowp float)
+0:128 textureProjGradOffset (global lowp float, operation at highp)
0:128 's2DS' (uniform lowp sampler2DShadow)
0:128 'invIn' (invariant in highp 4-component vector of float)
0:128 Constant:
diff --git a/Test/baseResults/300BuiltIns.frag.out b/Test/baseResults/300BuiltIns.frag.out
index c2f12c9..a3bab69 100644
--- a/Test/baseResults/300BuiltIns.frag.out
+++ b/Test/baseResults/300BuiltIns.frag.out
@@ -128,12 +128,12 @@
0:52 Sequence
0:52 move second child to first child (temp 2-component vector of bool)
0:52 'b10' (temp 2-component vector of bool)
-0:52 isnan (global 2-component vector of bool)
+0:52 isnan (global 2-component vector of bool, operation at mediump)
0:52 'v2a' (global mediump 2-component vector of float)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of bool)
0:53 'b11' (temp 4-component vector of bool)
-0:53 isinf (global 4-component vector of bool)
+0:53 isinf (global 4-component vector of bool, operation at mediump)
0:53 'v4' (global mediump 4-component vector of float)
0:56 Sequence
0:56 move second child to first child (temp highp int)
@@ -158,17 +158,17 @@
0:62 Sequence
0:62 move second child to first child (temp highp uint)
0:62 'u19' (temp mediump uint)
-0:62 packSnorm2x16 (global highp uint)
+0:62 packSnorm2x16 (global highp uint, operation at mediump)
0:62 'v2a' (global mediump 2-component vector of float)
0:63 Sequence
-0:63 move second child to first child (temp mediump 2-component vector of float)
+0:63 move second child to first child (temp highp 2-component vector of float)
0:63 'v20' (temp mediump 2-component vector of float)
-0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
+0:63 unpackSnorm2x16 (global highp 2-component vector of float)
0:63 'uy' (global mediump uint)
0:64 Sequence
0:64 move second child to first child (temp highp uint)
0:64 'u15' (temp mediump uint)
-0:64 packUnorm2x16 (global highp uint)
+0:64 packUnorm2x16 (global highp uint, operation at mediump)
0:64 'v2a' (global mediump 2-component vector of float)
0:65 Sequence
0:65 move second child to first child (temp highp 2-component vector of float)
@@ -178,12 +178,12 @@
0:66 Sequence
0:66 move second child to first child (temp highp uint)
0:66 'u17' (temp mediump uint)
-0:66 packHalf2x16 (global highp uint)
+0:66 packHalf2x16 (global highp uint, operation at mediump)
0:66 'v2b' (global mediump 2-component vector of float)
0:67 Sequence
0:67 move second child to first child (temp mediump 2-component vector of float)
0:67 'v18' (temp mediump 2-component vector of float)
-0:67 unpackHalf2x16 (global mediump 2-component vector of float)
+0:67 unpackHalf2x16 (global mediump 2-component vector of float, operation at highp)
0:67 'uy' (global mediump uint)
0:70 Constant:
0:70 0.000000
@@ -335,12 +335,12 @@
0:52 Sequence
0:52 move second child to first child (temp 2-component vector of bool)
0:52 'b10' (temp 2-component vector of bool)
-0:52 isnan (global 2-component vector of bool)
+0:52 isnan (global 2-component vector of bool, operation at mediump)
0:52 'v2a' (global mediump 2-component vector of float)
0:53 Sequence
0:53 move second child to first child (temp 4-component vector of bool)
0:53 'b11' (temp 4-component vector of bool)
-0:53 isinf (global 4-component vector of bool)
+0:53 isinf (global 4-component vector of bool, operation at mediump)
0:53 'v4' (global mediump 4-component vector of float)
0:56 Sequence
0:56 move second child to first child (temp highp int)
@@ -365,17 +365,17 @@
0:62 Sequence
0:62 move second child to first child (temp highp uint)
0:62 'u19' (temp mediump uint)
-0:62 packSnorm2x16 (global highp uint)
+0:62 packSnorm2x16 (global highp uint, operation at mediump)
0:62 'v2a' (global mediump 2-component vector of float)
0:63 Sequence
-0:63 move second child to first child (temp mediump 2-component vector of float)
+0:63 move second child to first child (temp highp 2-component vector of float)
0:63 'v20' (temp mediump 2-component vector of float)
-0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
+0:63 unpackSnorm2x16 (global highp 2-component vector of float)
0:63 'uy' (global mediump uint)
0:64 Sequence
0:64 move second child to first child (temp highp uint)
0:64 'u15' (temp mediump uint)
-0:64 packUnorm2x16 (global highp uint)
+0:64 packUnorm2x16 (global highp uint, operation at mediump)
0:64 'v2a' (global mediump 2-component vector of float)
0:65 Sequence
0:65 move second child to first child (temp highp 2-component vector of float)
@@ -385,12 +385,12 @@
0:66 Sequence
0:66 move second child to first child (temp highp uint)
0:66 'u17' (temp mediump uint)
-0:66 packHalf2x16 (global highp uint)
+0:66 packHalf2x16 (global highp uint, operation at mediump)
0:66 'v2b' (global mediump 2-component vector of float)
0:67 Sequence
0:67 move second child to first child (temp mediump 2-component vector of float)
0:67 'v18' (temp mediump 2-component vector of float)
-0:67 unpackHalf2x16 (global mediump 2-component vector of float)
+0:67 unpackHalf2x16 (global mediump 2-component vector of float, operation at highp)
0:67 'uy' (global mediump uint)
0:70 Constant:
0:70 0.000000
diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out
index b56f070..9a5e4e8 100644
--- a/Test/baseResults/310.comp.out
+++ b/Test/baseResults/310.comp.out
@@ -122,7 +122,7 @@
0:61 2 (const int)
0:61 Constant:
0:61 4.700000
-0:62 array length (temp highp int)
+0:62 array length (temp int)
0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
0:62 Constant:
@@ -178,9 +178,9 @@
0:92 0 (const int)
0:92 0 (const int)
0:92 0 (const int)
-0:93 imageLoad (global highp 4-component vector of float)
+0:93 imageLoad (global mediump 4-component vector of float)
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
-0:93 Construct ivec2 (temp highp 2-component vector of int)
+0:93 Construct ivec2 (temp mediump 2-component vector of int)
0:93 'i' (temp highp int)
0:93 'i' (temp highp int)
0:94 imageLoad (global highp 4-component vector of int)
@@ -549,7 +549,7 @@
0:61 2 (const int)
0:61 Constant:
0:61 4.700000
-0:62 array length (temp highp int)
+0:62 array length (temp int)
0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
0:62 Constant:
@@ -605,9 +605,9 @@
0:92 0 (const int)
0:92 0 (const int)
0:92 0 (const int)
-0:93 imageLoad (global highp 4-component vector of float)
+0:93 imageLoad (global mediump 4-component vector of float)
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D)
-0:93 Construct ivec2 (temp highp 2-component vector of int)
+0:93 Construct ivec2 (temp mediump 2-component vector of int)
0:93 'i' (temp highp int)
0:93 'i' (temp highp int)
0:94 imageLoad (global highp 4-component vector of int)
diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out
index 905a9ca..6cfd3f4 100644
--- a/Test/baseResults/310.frag.out
+++ b/Test/baseResults/310.frag.out
@@ -353,7 +353,7 @@
0:101 3 (const int)
0:102 move second child to first child (temp highp 2-component vector of int)
0:102 'v2' (temp highp 2-component vector of int)
-0:102 textureSize (global highp 2-component vector of int)
+0:102 textureSize (global highp 2-component vector of int, operation at mediump)
0:102 's2dms' (uniform mediump sampler2DMS)
0:103 move second child to first child (temp highp 2-component vector of int)
0:103 'v2' (temp highp 2-component vector of int)
@@ -361,19 +361,19 @@
0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
0:104 move second child to first child (temp highp 3-component vector of int)
0:104 'v3' (temp highp 3-component vector of int)
-0:104 imageQuerySize (global highp 3-component vector of int)
+0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
0:105 move second child to first child (temp highp 2-component vector of int)
0:105 'v2' (temp highp 2-component vector of int)
-0:105 imageQuerySize (global highp 2-component vector of int)
+0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
0:106 move second child to first child (temp highp 3-component vector of int)
0:106 'v3' (temp highp 3-component vector of int)
-0:106 imageQuerySize (global highp 3-component vector of int)
+0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
0:107 move second child to first child (temp highp 2-component vector of int)
0:107 'v2' (temp highp 2-component vector of int)
-0:107 imageQuerySize (global highp 2-component vector of int)
+0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
0:165 Function Definition: fooIO( (global void)
0:165 Function Parameters:
@@ -1234,7 +1234,7 @@
0:101 3 (const int)
0:102 move second child to first child (temp highp 2-component vector of int)
0:102 'v2' (temp highp 2-component vector of int)
-0:102 textureSize (global highp 2-component vector of int)
+0:102 textureSize (global highp 2-component vector of int, operation at mediump)
0:102 's2dms' (uniform mediump sampler2DMS)
0:103 move second child to first child (temp highp 2-component vector of int)
0:103 'v2' (temp highp 2-component vector of int)
@@ -1242,19 +1242,19 @@
0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D)
0:104 move second child to first child (temp highp 3-component vector of int)
0:104 'v3' (temp highp 3-component vector of int)
-0:104 imageQuerySize (global highp 3-component vector of int)
+0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D)
0:105 move second child to first child (temp highp 2-component vector of int)
0:105 'v2' (temp highp 2-component vector of int)
-0:105 imageQuerySize (global highp 2-component vector of int)
+0:105 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:105 'iCube' (layout(binding=5 ) uniform mediump imageCube)
0:106 move second child to first child (temp highp 3-component vector of int)
0:106 'v3' (temp highp 3-component vector of int)
-0:106 imageQuerySize (global highp 3-component vector of int)
+0:106 imageQuerySize (global highp 3-component vector of int, operation at mediump)
0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray)
0:107 move second child to first child (temp highp 2-component vector of int)
0:107 'v2' (temp highp 2-component vector of int)
-0:107 imageQuerySize (global highp 2-component vector of int)
+0:107 imageQuerySize (global highp 2-component vector of int, operation at mediump)
0:107 'i2Dqualified' (layout(binding=6 ) coherent volatile restrict uniform mediump image2D)
0:165 Function Definition: fooIO( (global void)
0:165 Function Parameters:
diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out
index 678c3e1..84a50e8 100644
--- a/Test/baseResults/310.vert.out
+++ b/Test/baseResults/310.vert.out
@@ -125,12 +125,12 @@
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
-0:19 uMulExtended (global void)
+0:19 uMulExtended (global highp void)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
-0:21 iMulExtended (global void)
+0:21 iMulExtended (global highp void)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
@@ -179,27 +179,27 @@
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
-0:32 bitCount (global highp int)
+0:32 bitCount (global lowp int, operation at highp)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
-0:33 bitCount (global highp 3-component vector of int)
+0:33 bitCount (global lowp 3-component vector of int, operation at highp)
0:33 'u3' (temp highp 3-component vector of uint)
0:34 move second child to first child (temp highp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
-0:34 findLSB (global highp 2-component vector of int)
+0:34 findLSB (global lowp 2-component vector of int, operation at highp)
0:34 'i2' (temp highp 2-component vector of int)
0:35 move second child to first child (temp highp 4-component vector of int)
0:35 'i4' (temp highp 4-component vector of int)
-0:35 findLSB (global highp 4-component vector of int)
+0:35 findLSB (global lowp 4-component vector of int, operation at highp)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
-0:36 findMSB (global highp int)
+0:36 findMSB (global lowp int, operation at highp)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
-0:37 findMSB (global highp 2-component vector of int)
+0:37 findMSB (global lowp 2-component vector of int, operation at highp)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@@ -213,19 +213,19 @@
0:42 'i2' (temp highp 2-component vector of int)
0:45 move second child to first child (temp highp uint)
0:45 'u1' (temp highp uint)
-0:45 PackUnorm4x8 (global highp uint)
+0:45 PackUnorm4x8 (global highp uint, operation at mediump)
0:45 'v4' (temp mediump 4-component vector of float)
0:46 move second child to first child (temp highp uint)
0:46 'u1' (temp highp uint)
-0:46 PackSnorm4x8 (global highp uint)
+0:46 PackSnorm4x8 (global highp uint, operation at mediump)
0:46 'v4' (temp mediump 4-component vector of float)
-0:47 move second child to first child (temp highp 4-component vector of float)
+0:47 move second child to first child (temp mediump 4-component vector of float)
0:47 'v4' (temp mediump 4-component vector of float)
-0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
+0:47 UnpackUnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:47 'u1' (temp highp uint)
-0:48 move second child to first child (temp highp 4-component vector of float)
+0:48 move second child to first child (temp mediump 4-component vector of float)
0:48 'v4' (temp mediump 4-component vector of float)
-0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
+0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:48 'u1' (temp highp uint)
0:60 Function Definition: foo( (global void)
0:60 Function Parameters:
@@ -340,7 +340,7 @@
0:165 0.100000
0:165 Convert float to int (temp lowp 2-component vector of int)
0:165 'inf' (in highp 2-component vector of float)
-0:166 textureGatherOffsets (global lowp 4-component vector of float)
+0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:166 direct index (temp lowp sampler2D)
0:166 'sArray' (uniform 4-element array of lowp sampler2D)
0:166 Constant:
@@ -404,7 +404,7 @@
0:180 0.100000
0:180 Convert float to int (temp lowp 2-component vector of int)
0:180 'inf' (in highp 2-component vector of float)
-0:181 textureGatherOffsets (global lowp 4-component vector of float)
+0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:181 direct index (temp lowp sampler2D)
0:181 'sArray' (uniform 4-element array of lowp sampler2D)
0:181 Constant:
@@ -421,7 +421,7 @@
0:181 0 (const int)
0:181 0 (const int)
0:181 0 (const int)
-0:182 textureGatherOffsets (global lowp 4-component vector of float)
+0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:182 direct index (temp lowp sampler2D)
0:182 'sArray' (uniform 4-element array of lowp sampler2D)
0:182 Constant:
@@ -1056,12 +1056,12 @@
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
0:17 'u1' (temp highp uint)
-0:19 uMulExtended (global void)
+0:19 uMulExtended (global highp void)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
0:19 'u4' (temp highp 4-component vector of uint)
-0:21 iMulExtended (global void)
+0:21 iMulExtended (global highp void)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
0:21 'i4' (temp highp 4-component vector of int)
@@ -1110,27 +1110,27 @@
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
-0:32 bitCount (global highp int)
+0:32 bitCount (global lowp int, operation at highp)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
-0:33 bitCount (global highp 3-component vector of int)
+0:33 bitCount (global lowp 3-component vector of int, operation at highp)
0:33 'u3' (temp highp 3-component vector of uint)
0:34 move second child to first child (temp highp 2-component vector of int)
0:34 'i2' (temp highp 2-component vector of int)
-0:34 findLSB (global highp 2-component vector of int)
+0:34 findLSB (global lowp 2-component vector of int, operation at highp)
0:34 'i2' (temp highp 2-component vector of int)
0:35 move second child to first child (temp highp 4-component vector of int)
0:35 'i4' (temp highp 4-component vector of int)
-0:35 findLSB (global highp 4-component vector of int)
+0:35 findLSB (global lowp 4-component vector of int, operation at highp)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
-0:36 findMSB (global highp int)
+0:36 findMSB (global lowp int, operation at highp)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
-0:37 findMSB (global highp 2-component vector of int)
+0:37 findMSB (global lowp 2-component vector of int, operation at highp)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@@ -1144,19 +1144,19 @@
0:42 'i2' (temp highp 2-component vector of int)
0:45 move second child to first child (temp highp uint)
0:45 'u1' (temp highp uint)
-0:45 PackUnorm4x8 (global highp uint)
+0:45 PackUnorm4x8 (global highp uint, operation at mediump)
0:45 'v4' (temp mediump 4-component vector of float)
0:46 move second child to first child (temp highp uint)
0:46 'u1' (temp highp uint)
-0:46 PackSnorm4x8 (global highp uint)
+0:46 PackSnorm4x8 (global highp uint, operation at mediump)
0:46 'v4' (temp mediump 4-component vector of float)
-0:47 move second child to first child (temp highp 4-component vector of float)
+0:47 move second child to first child (temp mediump 4-component vector of float)
0:47 'v4' (temp mediump 4-component vector of float)
-0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
+0:47 UnpackUnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:47 'u1' (temp highp uint)
-0:48 move second child to first child (temp highp 4-component vector of float)
+0:48 move second child to first child (temp mediump 4-component vector of float)
0:48 'v4' (temp mediump 4-component vector of float)
-0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
+0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp)
0:48 'u1' (temp highp uint)
0:60 Function Definition: foo( (global void)
0:60 Function Parameters:
@@ -1271,7 +1271,7 @@
0:165 0.100000
0:165 Convert float to int (temp lowp 2-component vector of int)
0:165 'inf' (in highp 2-component vector of float)
-0:166 textureGatherOffsets (global lowp 4-component vector of float)
+0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:166 direct index (temp lowp sampler2D)
0:166 'sArray' (uniform 4-element array of lowp sampler2D)
0:166 Constant:
@@ -1335,7 +1335,7 @@
0:180 0.100000
0:180 Convert float to int (temp lowp 2-component vector of int)
0:180 'inf' (in highp 2-component vector of float)
-0:181 textureGatherOffsets (global lowp 4-component vector of float)
+0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:181 direct index (temp lowp sampler2D)
0:181 'sArray' (uniform 4-element array of lowp sampler2D)
0:181 Constant:
@@ -1352,7 +1352,7 @@
0:181 0 (const int)
0:181 0 (const int)
0:181 0 (const int)
-0:182 textureGatherOffsets (global lowp 4-component vector of float)
+0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp)
0:182 direct index (temp lowp sampler2D)
0:182 'sArray' (uniform 4-element array of lowp sampler2D)
0:182 Constant:
diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out
index 40c4321..83f105c 100644
--- a/Test/baseResults/310AofA.vert.out
+++ b/Test/baseResults/310AofA.vert.out
@@ -310,7 +310,7 @@
0:96 1 (const int)
0:98 Constant:
0:98 7 (const int)
-0:99 array length (temp highp int)
+0:99 array length (temp int)
0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
@@ -622,7 +622,7 @@
0:96 1 (const int)
0:98 Constant:
0:98 7 (const int)
-0:99 array length (temp highp int)
+0:99 array length (temp int)
0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float)
0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v})
diff --git a/Test/baseResults/420.tese.out b/Test/baseResults/420.tese.out
index fb9bc20..b8379d1 100644
--- a/Test/baseResults/420.tese.out
+++ b/Test/baseResults/420.tese.out
@@ -12,7 +12,7 @@
ERROR: 0:29: '=' : cannot convert from 'const float' to 'global 2-element array of 4-component vector of float'
ERROR: 0:30: 'initializer list' : wrong number of matrix columns: temp 4X2 matrix of float
ERROR: 0:40: 'constructor' : cannot convert parameter 1 from 'temp float' to 'temp structure{global float s, global float t}'
-ERROR: 0:58: 'initializer list' : wrong number of structure members
+ERROR: 0:70: 'initializer list' : wrong number of structure members
ERROR: 13 compilation errors. No code generated.
@@ -50,51 +50,73 @@
0:42 5.000000
0:42 5.200000
0:42 1.100000
-0:67 Sequence
-0:67 move second child to first child (temp 3-component vector of float)
-0:67 'av3' (global 3-component vector of float)
-0:67 Construct vec3 (global 3-component vector of float)
-0:67 'vc1' (global float)
-0:67 'vc2' (global float)
-0:67 'vc3' (global float)
-0:68 Sequence
-0:68 move second child to first child (temp 3-component vector of float)
-0:68 'bv3' (global 3-component vector of float)
-0:68 Construct vec3 (temp 3-component vector of float)
-0:68 'vc1' (global float)
-0:68 'vc2' (global float)
-0:68 'vc3' (global float)
-0:70 Function Definition: main( (global void)
-0:70 Function Parameters:
-0:72 Sequence
-0:72 MemoryBarrier (global void)
-0:74 Test condition and select (temp void)
-0:74 Condition
-0:74 Compare Equal (temp bool)
-0:74 Constant:
-0:74 1 (const uint)
-0:74 2 (const uint)
-0:74 3.000000
-0:74 4.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 4.000000
-0:74 0.000000
-0:74 5.000000
-0:74 6.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 6.000000
-0:74 0.000000
-0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
-0:74 true case is null
-0:76 Test condition and select (temp void)
-0:76 Condition
-0:76 Constant:
-0:76 true (const bool)
-0:76 true case is null
+0:55 Sequence
+0:55 move second child to first child (temp structure{global int f})
+0:55 'single1' (global structure{global int f})
+0:55 Constant:
+0:55 10 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp structure{global 2-component vector of uint v})
+0:58 'single2' (global structure{global 2-component vector of uint v})
+0:58 Constant:
+0:58 1 (const uint)
+0:58 2 (const uint)
+0:61 Sequence
+0:61 move second child to first child (temp structure{global structure{global int f} s1})
+0:61 'single3' (global structure{global structure{global int f} s1})
+0:61 Constant:
+0:61 3 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
+0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
+0:64 Constant:
+0:64 4 (const uint)
+0:64 5 (const uint)
+0:79 Sequence
+0:79 move second child to first child (temp 3-component vector of float)
+0:79 'av3' (global 3-component vector of float)
+0:79 Construct vec3 (global 3-component vector of float)
+0:79 'vc1' (global float)
+0:79 'vc2' (global float)
+0:79 'vc3' (global float)
+0:80 Sequence
+0:80 move second child to first child (temp 3-component vector of float)
+0:80 'bv3' (global 3-component vector of float)
+0:80 Construct vec3 (temp 3-component vector of float)
+0:80 'vc1' (global float)
+0:80 'vc2' (global float)
+0:80 'vc3' (global float)
+0:82 Function Definition: main( (global void)
+0:82 Function Parameters:
+0:84 Sequence
+0:84 MemoryBarrier (global void)
+0:86 Test condition and select (temp void)
+0:86 Condition
+0:86 Compare Equal (temp bool)
+0:86 Constant:
+0:86 1 (const uint)
+0:86 2 (const uint)
+0:86 3.000000
+0:86 4.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 4.000000
+0:86 0.000000
+0:86 5.000000
+0:86 6.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 6.000000
+0:86 0.000000
+0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:86 true case is null
+0:88 Test condition and select (temp void)
+0:88 Condition
+0:88 Constant:
+0:88 true (const bool)
+0:88 true case is null
0:? Linker Objects
0:? 'a' (const 2X2 matrix of float)
0:? 1.000000
@@ -120,6 +142,10 @@
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global implicitly-sized array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
+0:? 'single1' (global structure{global int f})
+0:? 'single2' (global structure{global 2-component vector of uint v})
+0:? 'single3' (global structure{global structure{global int f} s1})
+0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)
@@ -200,51 +226,73 @@
0:42 5.000000
0:42 5.200000
0:42 1.100000
-0:67 Sequence
-0:67 move second child to first child (temp 3-component vector of float)
-0:67 'av3' (global 3-component vector of float)
-0:67 Construct vec3 (global 3-component vector of float)
-0:67 'vc1' (global float)
-0:67 'vc2' (global float)
-0:67 'vc3' (global float)
-0:68 Sequence
-0:68 move second child to first child (temp 3-component vector of float)
-0:68 'bv3' (global 3-component vector of float)
-0:68 Construct vec3 (temp 3-component vector of float)
-0:68 'vc1' (global float)
-0:68 'vc2' (global float)
-0:68 'vc3' (global float)
-0:70 Function Definition: main( (global void)
-0:70 Function Parameters:
-0:72 Sequence
-0:72 MemoryBarrier (global void)
-0:74 Test condition and select (temp void)
-0:74 Condition
-0:74 Compare Equal (temp bool)
-0:74 Constant:
-0:74 1 (const uint)
-0:74 2 (const uint)
-0:74 3.000000
-0:74 4.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 4.000000
-0:74 0.000000
-0:74 5.000000
-0:74 6.000000
-0:74 0.000000
-0:74 0.000000
-0:74 0.000000
-0:74 6.000000
-0:74 0.000000
-0:74 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
-0:74 true case is null
-0:76 Test condition and select (temp void)
-0:76 Condition
-0:76 Constant:
-0:76 true (const bool)
-0:76 true case is null
+0:55 Sequence
+0:55 move second child to first child (temp structure{global int f})
+0:55 'single1' (global structure{global int f})
+0:55 Constant:
+0:55 10 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp structure{global 2-component vector of uint v})
+0:58 'single2' (global structure{global 2-component vector of uint v})
+0:58 Constant:
+0:58 1 (const uint)
+0:58 2 (const uint)
+0:61 Sequence
+0:61 move second child to first child (temp structure{global structure{global int f} s1})
+0:61 'single3' (global structure{global structure{global int f} s1})
+0:61 Constant:
+0:61 3 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp structure{global structure{global 2-component vector of uint v} s1})
+0:64 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
+0:64 Constant:
+0:64 4 (const uint)
+0:64 5 (const uint)
+0:79 Sequence
+0:79 move second child to first child (temp 3-component vector of float)
+0:79 'av3' (global 3-component vector of float)
+0:79 Construct vec3 (global 3-component vector of float)
+0:79 'vc1' (global float)
+0:79 'vc2' (global float)
+0:79 'vc3' (global float)
+0:80 Sequence
+0:80 move second child to first child (temp 3-component vector of float)
+0:80 'bv3' (global 3-component vector of float)
+0:80 Construct vec3 (temp 3-component vector of float)
+0:80 'vc1' (global float)
+0:80 'vc2' (global float)
+0:80 'vc3' (global float)
+0:82 Function Definition: main( (global void)
+0:82 Function Parameters:
+0:84 Sequence
+0:84 MemoryBarrier (global void)
+0:86 Test condition and select (temp void)
+0:86 Condition
+0:86 Compare Equal (temp bool)
+0:86 Constant:
+0:86 1 (const uint)
+0:86 2 (const uint)
+0:86 3.000000
+0:86 4.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 4.000000
+0:86 0.000000
+0:86 5.000000
+0:86 6.000000
+0:86 0.000000
+0:86 0.000000
+0:86 0.000000
+0:86 6.000000
+0:86 0.000000
+0:86 'curlybad1' (temp structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
+0:86 true case is null
+0:88 Test condition and select (temp void)
+0:88 Condition
+0:88 Constant:
+0:88 true (const bool)
+0:88 true case is null
0:? Linker Objects
0:? 'a' (const 2X2 matrix of float)
0:? 1.000000
@@ -270,6 +318,10 @@
0:? 'c3' (global 4X2 matrix of float)
0:? 'd2' (global 1-element array of structure{global float s, global float t})
0:? 'b5' (global 5-element array of float)
+0:? 'single1' (global structure{global int f})
+0:? 'single2' (global structure{global 2-component vector of uint v})
+0:? 'single3' (global structure{global structure{global int f} s1})
+0:? 'single4' (global structure{global structure{global 2-component vector of uint v} s1})
0:? 'constructed' (const structure{global 2-component vector of uint uv2, global 2-element array of structure{global float f, global 2X3 matrix of float m23} s})
0:? 1 (const uint)
0:? 2 (const uint)
diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out
index 0f5110c..a234970 100644
--- a/Test/baseResults/420.vert.out
+++ b/Test/baseResults/420.vert.out
@@ -51,6 +51,7 @@
ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int'
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int'
+WARNING: 0:161: '[]' : assuming array size of one for compile-time checking of binding numbers for implicitly-sized array
ERROR: 50 compilation errors. No code generated.
@@ -299,6 +300,7 @@
0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
0:? 'samp1D' (uniform sampler1D)
0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'badArray' (layout(binding=0 ) writeonly uniform implicitly-sized array of image1D)
0:? 'gl_VertexID' (gl_VertexId int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
@@ -551,6 +553,7 @@
0:? 'offcheckI' (layout(column_major shared ) uniform block{layout(column_major shared offset=16 ) uniform int foo})
0:? 'samp1D' (uniform sampler1D)
0:? 'samp1Ds' (uniform sampler1DShadow)
+0:? 'badArray' (layout(binding=0 ) writeonly uniform 1-element array of image1D)
0:? 'gl_VertexID' (gl_VertexId int VertexId)
0:? 'gl_InstanceID' (gl_InstanceId int InstanceId)
diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out
index 9ad3c1b..d4cbb0b 100644
--- a/Test/baseResults/440.vert.out
+++ b/Test/baseResults/440.vert.out
@@ -19,74 +19,78 @@
ERROR: 0:57: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:58: 'component' : cannot apply to a matrix, structure, or block
ERROR: 0:61: 'location/component/index' : cannot declare a default, use a full declaration
-ERROR: 0:81: 'xfb layout qualifier' : can only be used on an output
-ERROR: 0:87: 'xfb_offset' : cannot declare a default, use a full declaration
-ERROR: 0:97: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
-ERROR: 0:102: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
-ERROR: 0:102: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3
-ERROR: 0:103: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2
-ERROR: 0:105: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2
-ERROR: 0:108: 'xfb_stride' : all stride settings must match for xfb buffer 15
-ERROR: 0:112: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1
-ERROR: 0:114: 'xfb_stride' : all stride settings must match for xfb buffer 3
-ERROR: 0:115: 'xfb_stride' : all stride settings must match for xfb buffer 3
-ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 3
-ERROR: 0:117: 'xfb_stride' : all stride settings must match for xfb buffer 3
-ERROR: 0:138: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0
-ERROR: 0:143: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
-ERROR: 0:144: 'xfb_offset' : must be a multiple of size of first component
-ERROR: 0:145: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
-ERROR: 0:147: 'xfb_offset' : must be a multiple of size of first component
-ERROR: 0:148: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
-ERROR: 0:152: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
-ERROR: 0:155: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
-ERROR: 0:155: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64
-ERROR: 0:157: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
-ERROR: 0:165: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters
-ERROR: 0:165: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters
-ERROR: 0:165: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters
-ERROR: 0:173: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input)
-ERROR: 0:174: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input)
-ERROR: 0:175: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input)
-ERROR: 0:176: 'glBaseInstanceARB' : undeclared identifier
-ERROR: 49 compilation errors. No code generated.
+ERROR: 0:66: 'component' : doubles cannot start on an odd-numbered component
+ERROR: 0:67: 'component' : type overflows the available 4 components
+ERROR: 0:71: 'location' : overlapping use of location 55
+ERROR: 0:75: 'location' : overlapping use of location 57
+ERROR: 0:92: 'xfb layout qualifier' : can only be used on an output
+ERROR: 0:98: 'xfb_offset' : cannot declare a default, use a full declaration
+ERROR: 0:108: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
+ERROR: 0:113: 'xfb_buffer' : member cannot contradict block (or what block inherited from global)
+ERROR: 0:113: 'xfb_offset' : overlapping offsets at offset 32 in buffer 3
+ERROR: 0:114: 'xfb_offset' : overlapping offsets at offset 0 in buffer 2
+ERROR: 0:116: 'xfb_offset' : overlapping offsets at offset 24 in buffer 2
+ERROR: 0:119: 'xfb_stride' : all stride settings must match for xfb buffer 15
+ERROR: 0:123: 'xfb_offset' : overlapping offsets at offset 4 in buffer 1
+ERROR: 0:125: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:126: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:130: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:128: 'xfb_stride' : all stride settings must match for xfb buffer 3
+ERROR: 0:149: 'xfb_offset' : overlapping offsets at offset 64 in buffer 0
+ERROR: 0:154: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:155: 'xfb_offset' : must be a multiple of size of first component
+ERROR: 0:156: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
+ERROR: 0:158: 'xfb_offset' : must be a multiple of size of first component
+ERROR: 0:159: 'xfb_offset' : type contains double; xfb_offset must be a multiple of 8
+ERROR: 0:163: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:166: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:166: 'xfb_stride' : 1/4 stride is too large: gl_MaxTransformFeedbackInterleavedComponents is 64
+ERROR: 0:168: 'xfb_buffer' : buffer is too large: gl_MaxTransformFeedbackBuffers is 4
+ERROR: 0:176: 'gl_BaseVertexARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:176: 'gl_BaseInstanceARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:176: 'gl_DrawIDARB' : required extension not requested: GL_ARB_shader_draw_parameters
+ERROR: 0:184: 'assign' : l-value required "gl_BaseVertexARB" (can't modify shader input)
+ERROR: 0:185: 'assign' : l-value required "gl_BaseInstanceARB" (can't modify shader input)
+ERROR: 0:186: 'assign' : l-value required "gl_DrawIDARB" (can't modify shader input)
+ERROR: 0:187: 'glBaseInstanceARB' : undeclared identifier
+ERROR: 53 compilation errors. No code generated.
Shader version: 440
Requested GL_ARB_shader_draw_parameters
in xfb mode
ERROR: node is still EOpNull!
-0:163 Function Definition: drawParamsBad( (global int)
-0:163 Function Parameters:
-0:165 Sequence
-0:165 Branch: Return with expression
-0:165 add (temp int)
-0:165 add (temp int)
-0:165 'gl_BaseVertexARB' (in int BaseVertex)
-0:165 'gl_BaseInstanceARB' (in int BaseInstance)
-0:165 'gl_DrawIDARB' (in int DrawId)
-0:170 Function Definition: drawParams( (global int)
-0:170 Function Parameters:
-0:172 Sequence
-0:172 Branch: Return with expression
-0:172 add (temp int)
-0:172 add (temp int)
-0:172 'gl_BaseVertexARB' (in int BaseVertex)
-0:172 'gl_BaseInstanceARB' (in int BaseInstance)
-0:172 'gl_DrawIDARB' (in int DrawId)
-0:173 move second child to first child (temp int)
-0:173 'gl_BaseVertexARB' (in int BaseVertex)
-0:173 Constant:
-0:173 3 (const int)
-0:174 move second child to first child (temp int)
-0:174 'gl_BaseInstanceARB' (in int BaseInstance)
-0:174 Constant:
-0:174 3 (const int)
-0:175 move second child to first child (temp int)
-0:175 'gl_DrawIDARB' (in int DrawId)
-0:175 Constant:
-0:175 3 (const int)
-0:176 'glBaseInstanceARB' (temp float)
+0:174 Function Definition: drawParamsBad( (global int)
+0:174 Function Parameters:
+0:176 Sequence
+0:176 Branch: Return with expression
+0:176 add (temp int)
+0:176 add (temp int)
+0:176 'gl_BaseVertexARB' (in int BaseVertex)
+0:176 'gl_BaseInstanceARB' (in int BaseInstance)
+0:176 'gl_DrawIDARB' (in int DrawId)
+0:181 Function Definition: drawParams( (global int)
+0:181 Function Parameters:
+0:183 Sequence
+0:183 Branch: Return with expression
+0:183 add (temp int)
+0:183 add (temp int)
+0:183 'gl_BaseVertexARB' (in int BaseVertex)
+0:183 'gl_BaseInstanceARB' (in int BaseInstance)
+0:183 'gl_DrawIDARB' (in int DrawId)
+0:184 move second child to first child (temp int)
+0:184 'gl_BaseVertexARB' (in int BaseVertex)
+0:184 Constant:
+0:184 3 (const int)
+0:185 move second child to first child (temp int)
+0:185 'gl_BaseInstanceARB' (in int BaseInstance)
+0:185 Constant:
+0:185 3 (const int)
+0:186 move second child to first child (temp int)
+0:186 'gl_DrawIDARB' (in int DrawId)
+0:186 Constant:
+0:186 3 (const int)
+0:187 'glBaseInstanceARB' (temp float)
0:? Linker Objects
0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
0:? 'b' (layout(location=2 component=1 ) in float)
@@ -119,6 +123,16 @@
0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
0:? 'be' (layout(location=50 component=3 ) smooth out int)
0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
+0:? 'dfo' (layout(location=51 component=1 ) smooth out double)
+0:? 'dvo' (layout(location=52 component=2 ) smooth out 2-component vector of double)
+0:? 'dfo2' (layout(location=53 ) smooth out double)
+0:? 'ffv2' (layout(location=53 component=2 ) smooth out 2-component vector of float)
+0:? 'dvec4out' (layout(location=54 ) smooth out 4-component vector of double)
+0:? 'overf' (layout(location=55 ) smooth out float)
+0:? 'df2o' (layout(location=56 component=1 ) smooth out 2-component vector of float)
+0:? 'sf2o' (layout(location=56 component=3 ) smooth out float)
+0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float)
+0:? 'sf4o' (layout(location=57 component=3 ) smooth out float)
0:? 'bbinst1' (out block{out 4-component vector of float bbv})
0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
@@ -156,37 +170,37 @@
Requested GL_ARB_shader_draw_parameters
in xfb mode
ERROR: node is still EOpNull!
-0:163 Function Definition: drawParamsBad( (global int)
-0:163 Function Parameters:
-0:165 Sequence
-0:165 Branch: Return with expression
-0:165 add (temp int)
-0:165 add (temp int)
-0:165 'gl_BaseVertexARB' (in int BaseVertex)
-0:165 'gl_BaseInstanceARB' (in int BaseInstance)
-0:165 'gl_DrawIDARB' (in int DrawId)
-0:170 Function Definition: drawParams( (global int)
-0:170 Function Parameters:
-0:172 Sequence
-0:172 Branch: Return with expression
-0:172 add (temp int)
-0:172 add (temp int)
-0:172 'gl_BaseVertexARB' (in int BaseVertex)
-0:172 'gl_BaseInstanceARB' (in int BaseInstance)
-0:172 'gl_DrawIDARB' (in int DrawId)
-0:173 move second child to first child (temp int)
-0:173 'gl_BaseVertexARB' (in int BaseVertex)
-0:173 Constant:
-0:173 3 (const int)
-0:174 move second child to first child (temp int)
-0:174 'gl_BaseInstanceARB' (in int BaseInstance)
-0:174 Constant:
-0:174 3 (const int)
-0:175 move second child to first child (temp int)
-0:175 'gl_DrawIDARB' (in int DrawId)
-0:175 Constant:
-0:175 3 (const int)
-0:176 'glBaseInstanceARB' (temp float)
+0:174 Function Definition: drawParamsBad( (global int)
+0:174 Function Parameters:
+0:176 Sequence
+0:176 Branch: Return with expression
+0:176 add (temp int)
+0:176 add (temp int)
+0:176 'gl_BaseVertexARB' (in int BaseVertex)
+0:176 'gl_BaseInstanceARB' (in int BaseInstance)
+0:176 'gl_DrawIDARB' (in int DrawId)
+0:181 Function Definition: drawParams( (global int)
+0:181 Function Parameters:
+0:183 Sequence
+0:183 Branch: Return with expression
+0:183 add (temp int)
+0:183 add (temp int)
+0:183 'gl_BaseVertexARB' (in int BaseVertex)
+0:183 'gl_BaseInstanceARB' (in int BaseInstance)
+0:183 'gl_DrawIDARB' (in int DrawId)
+0:184 move second child to first child (temp int)
+0:184 'gl_BaseVertexARB' (in int BaseVertex)
+0:184 Constant:
+0:184 3 (const int)
+0:185 move second child to first child (temp int)
+0:185 'gl_BaseInstanceARB' (in int BaseInstance)
+0:185 Constant:
+0:185 3 (const int)
+0:186 move second child to first child (temp int)
+0:186 'gl_DrawIDARB' (in int DrawId)
+0:186 Constant:
+0:186 3 (const int)
+0:187 'glBaseInstanceARB' (temp float)
0:? Linker Objects
0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float)
0:? 'b' (layout(location=2 component=1 ) in float)
@@ -219,6 +233,16 @@
0:? 'bd' (out block{layout(location=40 component=2 ) out float u, layout(location=40 component=0 ) out float v, layout(location=40 component=3 ) out float w, layout(location=40 component=1 ) out 2-component vector of float x, layout(location=41 component=3 ) out 2-component vector of float y, layout(location=42 component=1 ) out 4-component vector of float z, layout(location=42 component=1 ) out 4X4 matrix of float ba, layout(location=43 component=1 ) out structure{global int a} Ss})
0:? 'be' (layout(location=50 component=3 ) smooth out int)
0:? 'bf' (layout(location=50 component=0 ) smooth out 3-component vector of float)
+0:? 'dfo' (layout(location=51 component=1 ) smooth out double)
+0:? 'dvo' (layout(location=52 component=2 ) smooth out 2-component vector of double)
+0:? 'dfo2' (layout(location=53 ) smooth out double)
+0:? 'ffv2' (layout(location=53 component=2 ) smooth out 2-component vector of float)
+0:? 'dvec4out' (layout(location=54 ) smooth out 4-component vector of double)
+0:? 'overf' (layout(location=55 ) smooth out float)
+0:? 'df2o' (layout(location=56 component=1 ) smooth out 2-component vector of float)
+0:? 'sf2o' (layout(location=56 component=3 ) smooth out float)
+0:? 'dv3o' (layout(location=57 component=2 ) smooth out 2-component vector of float)
+0:? 'sf4o' (layout(location=57 component=3 ) smooth out float)
0:? 'bbinst1' (out block{out 4-component vector of float bbv})
0:? 'bbinst2' (out block{layout(xfb_buffer=0 xfb_offset=64 ) out 4-component vector of float bbv})
0:? 'bbinst3' (out block{layout(xfb_buffer=3 xfb_offset=16 ) out 4-component vector of float bbv})
diff --git a/Test/baseResults/cppBad.vert.out b/Test/baseResults/cppBad.vert.out
new file mode 100755
index 0000000..6938af6
--- /dev/null
+++ b/Test/baseResults/cppBad.vert.out
@@ -0,0 +1,22 @@
+cppBad.vert
+ERROR: 0:2: 'preprocessor evaluation' : bad expression
+ERROR: 0:2: '#if' : unexpected tokens following directive
+ERROR: 0:5: 'string' : End of line in string
+ERROR: 0:5: 'macro expansion' : expected '(' following n
+ERROR: 0:5: '' : syntax error
+ERROR: 5 compilation errors. No code generated.
+
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:? Linker Objects
+
+
+Linked vertex stage:
+
+ERROR: Linking vertex stage: Missing entry point: Each stage requires one "void main()" entry point
+
+Shader version: 100
+ERROR: node is still EOpNull!
+0:? Linker Objects
+
diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out
index 6f29aa2..abc7ebb 100755
--- a/Test/baseResults/hlsl.array.frag.out
+++ b/Test/baseResults/hlsl.array.frag.out
@@ -11,38 +11,38 @@
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
-0:10 direct index (temp 4-component vector of float)
-0:10 'a' (global 4-element array of 4-component vector of float)
-0:10 Constant:
-0:10 1 (const int)
-0:10 indirect index (temp 4-component vector of float)
-0:10 'a' (global 4-element array of 4-component vector of float)
-0:10 'i' (in int)
-0:10 add (temp 4-component vector of float)
-0:10 direct index (temp 4-component vector of float)
-0:10 'input' (in 3-element array of 4-component vector of float)
-0:10 Constant:
-0:10 2 (const int)
-0:10 indirect index (temp 4-component vector of float)
-0:10 'input' (in 3-element array of 4-component vector of float)
-0:10 'i' (in int)
-0:10 add (temp 4-component vector of float)
-0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 direct index (temp 4-component vector of float)
+0:10 'a' (global 4-element array of 4-component vector of float)
+0:10 Constant:
+0:10 1 (const int)
+0:10 indirect index (temp 4-component vector of float)
+0:10 'a' (global 4-element array of 4-component vector of float)
+0:10 'i' (in int)
+0:10 direct index (temp 4-component vector of float)
+0:10 'input' (in 3-element array of 4-component vector of float)
+0:10 Constant:
+0:10 2 (const int)
+0:10 indirect index (temp 4-component vector of float)
+0:10 'input' (in 3-element array of 4-component vector of float)
+0:10 'i' (in int)
0:10 direct index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 Constant:
0:10 5 (const int)
-0:10 indirect index (temp 4-component vector of float)
-0:10 'b' (temp 10-element array of 4-component vector of float)
-0:10 'i' (in int)
0:10 indirect index (temp 4-component vector of float)
-0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
-0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
-0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
-0:10 'i' (in int)
-0:10 Constant:
-0:10 0 (const int)
+0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 'i' (in int)
+0:10 indirect index (temp 4-component vector of float)
+0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
+0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
+0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
+0:10 'i' (in int)
+0:10 Constant:
+0:10 0 (const int)
+0:10 'i' (in int)
0:? Linker Objects
0:? 'a' (global 4-element array of 4-component vector of float)
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
@@ -63,38 +63,38 @@
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
-0:10 direct index (temp 4-component vector of float)
-0:10 'a' (global 4-element array of 4-component vector of float)
-0:10 Constant:
-0:10 1 (const int)
-0:10 indirect index (temp 4-component vector of float)
-0:10 'a' (global 4-element array of 4-component vector of float)
-0:10 'i' (in int)
-0:10 add (temp 4-component vector of float)
-0:10 direct index (temp 4-component vector of float)
-0:10 'input' (in 3-element array of 4-component vector of float)
-0:10 Constant:
-0:10 2 (const int)
-0:10 indirect index (temp 4-component vector of float)
-0:10 'input' (in 3-element array of 4-component vector of float)
-0:10 'i' (in int)
-0:10 add (temp 4-component vector of float)
-0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 direct index (temp 4-component vector of float)
+0:10 'a' (global 4-element array of 4-component vector of float)
+0:10 Constant:
+0:10 1 (const int)
+0:10 indirect index (temp 4-component vector of float)
+0:10 'a' (global 4-element array of 4-component vector of float)
+0:10 'i' (in int)
+0:10 direct index (temp 4-component vector of float)
+0:10 'input' (in 3-element array of 4-component vector of float)
+0:10 Constant:
+0:10 2 (const int)
+0:10 indirect index (temp 4-component vector of float)
+0:10 'input' (in 3-element array of 4-component vector of float)
+0:10 'i' (in int)
0:10 direct index (temp 4-component vector of float)
0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 Constant:
0:10 5 (const int)
-0:10 indirect index (temp 4-component vector of float)
-0:10 'b' (temp 10-element array of 4-component vector of float)
-0:10 'i' (in int)
0:10 indirect index (temp 4-component vector of float)
-0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
-0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
-0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
-0:10 'i' (in int)
-0:10 Constant:
-0:10 0 (const int)
+0:10 'b' (temp 10-element array of 4-component vector of float)
0:10 'i' (in int)
+0:10 indirect index (temp 4-component vector of float)
+0:10 m: direct index for structure (temp 7-element array of 4-component vector of float)
+0:10 indirect index (temp structure{temp 7-element array of 4-component vector of float m})
+0:10 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
+0:10 'i' (in int)
+0:10 Constant:
+0:10 0 (const int)
+0:10 'i' (in int)
0:? Linker Objects
0:? 'a' (global 4-element array of 4-component vector of float)
0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
@@ -114,9 +114,9 @@
Name 19 "i"
Name 27 "input"
Name 40 "b"
- Name 51 ""
- MemberName 51 0 "m"
- Name 55 "s"
+ Name 52 ""
+ MemberName 52 0 "m"
+ Name 56 "s"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -142,14 +142,14 @@
39: TypePointer Function 38
41: 13(int) Constant 5
42: TypePointer Function 7(fvec4)
- 49: 8(int) Constant 7
- 50: TypeArray 7(fvec4) 49
- 51: TypeStruct 50
- 52: 8(int) Constant 11
- 53: TypeArray 51(struct) 52
- 54: TypePointer Private 53
- 55(s): 54(ptr) Variable Private
- 57: 13(int) Constant 0
+ 50: 8(int) Constant 7
+ 51: TypeArray 7(fvec4) 50
+ 52: TypeStruct 51
+ 53: 8(int) Constant 11
+ 54: TypeArray 52(struct) 53
+ 55: TypePointer Private 54
+ 56(s): 55(ptr) Variable Private
+ 58: 13(int) Constant 0
4(PixelShaderFunction): 2 Function None 3
5: Label
40(b): 39(ptr) Variable Function
@@ -161,22 +161,22 @@
23: 7(fvec4) FAdd 17 22
30: 29(ptr) AccessChain 27(input) 28
31: 7(fvec4) Load 30
- 32: 13(int) Load 19(i)
- 33: 29(ptr) AccessChain 27(input) 32
- 34: 7(fvec4) Load 33
- 35: 7(fvec4) FAdd 31 34
- 36: 7(fvec4) FAdd 23 35
+ 32: 7(fvec4) FAdd 23 31
+ 33: 13(int) Load 19(i)
+ 34: 29(ptr) AccessChain 27(input) 33
+ 35: 7(fvec4) Load 34
+ 36: 7(fvec4) FAdd 32 35
43: 42(ptr) AccessChain 40(b) 41
44: 7(fvec4) Load 43
- 45: 13(int) Load 19(i)
- 46: 42(ptr) AccessChain 40(b) 45
- 47: 7(fvec4) Load 46
- 48: 7(fvec4) FAdd 44 47
- 56: 13(int) Load 19(i)
- 58: 13(int) Load 19(i)
- 59: 15(ptr) AccessChain 55(s) 56 57 58
- 60: 7(fvec4) Load 59
- 61: 7(fvec4) FAdd 48 60
- 62: 7(fvec4) FAdd 36 61
+ 45: 7(fvec4) FAdd 36 44
+ 46: 13(int) Load 19(i)
+ 47: 42(ptr) AccessChain 40(b) 46
+ 48: 7(fvec4) Load 47
+ 49: 7(fvec4) FAdd 45 48
+ 57: 13(int) Load 19(i)
+ 59: 13(int) Load 19(i)
+ 60: 15(ptr) AccessChain 56(s) 57 58 59
+ 61: 7(fvec4) Load 60
+ 62: 7(fvec4) FAdd 49 61
ReturnValue 62
FunctionEnd
diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out
index 251c7be..89eea72 100755
--- a/Test/baseResults/hlsl.assoc.frag.out
+++ b/Test/baseResults/hlsl.assoc.frag.out
@@ -23,11 +23,11 @@
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
-0:10 'a1' (in 4-component vector of float)
-0:10 'a2' (in 4-component vector of float)
-0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 'a1' (in 4-component vector of float)
+0:10 'a2' (in 4-component vector of float)
0:10 'a3' (in 4-component vector of float)
-0:10 'a4' (in 4-component vector of float)
+0:10 'a4' (in 4-component vector of float)
0:10 'a5' (in 4-component vector of float)
0:? Linker Objects
@@ -59,11 +59,11 @@
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
0:10 add (temp 4-component vector of float)
-0:10 'a1' (in 4-component vector of float)
-0:10 'a2' (in 4-component vector of float)
-0:10 add (temp 4-component vector of float)
+0:10 add (temp 4-component vector of float)
+0:10 'a1' (in 4-component vector of float)
+0:10 'a2' (in 4-component vector of float)
0:10 'a3' (in 4-component vector of float)
-0:10 'a4' (in 4-component vector of float)
+0:10 'a4' (in 4-component vector of float)
0:10 'a5' (in 4-component vector of float)
0:? Linker Objects
@@ -104,9 +104,9 @@
16: 7(fvec4) Load 10(a2)
17: 7(fvec4) FAdd 15 16
18: 7(fvec4) Load 11(a3)
- 19: 7(fvec4) Load 12(a4)
- 20: 7(fvec4) FAdd 18 19
- 21: 7(fvec4) FAdd 17 20
+ 19: 7(fvec4) FAdd 17 18
+ 20: 7(fvec4) Load 12(a4)
+ 21: 7(fvec4) FAdd 19 20
22: 7(fvec4) Load 13(a5)
23: 7(fvec4) FAdd 21 22
ReturnValue 23
diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out
new file mode 100755
index 0000000..a51be51
--- /dev/null
+++ b/Test/baseResults/hlsl.buffer.frag.out
@@ -0,0 +1,165 @@
+hlsl.buffer.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:26 Function Parameters:
+0:26 'input' (in 4-component vector of float)
+0:? Sequence
+0:27 Branch: Return with expression
+0:27 add (temp 4-component vector of float)
+0:27 add (temp 4-component vector of float)
+0:27 add (temp 4-component vector of float)
+0:27 add (temp 4-component vector of float)
+0:27 'input' (in 4-component vector of float)
+0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
+0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
+0:27 Constant:
+0:27 0 (const uint)
+0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float)
+0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
+0:27 Constant:
+0:27 0 (const uint)
+0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
+0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
+0:27 Constant:
+0:27 0 (const uint)
+0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float)
+0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
+0:27 Constant:
+0:27 0 (const uint)
+0:? Linker Objects
+0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
+0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
+0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
+0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:26 Function Parameters:
+0:26 'input' (in 4-component vector of float)
+0:? Sequence
+0:27 Branch: Return with expression
+0:27 add (temp 4-component vector of float)
+0:27 add (temp 4-component vector of float)
+0:27 add (temp 4-component vector of float)
+0:27 add (temp 4-component vector of float)
+0:27 'input' (in 4-component vector of float)
+0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
+0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
+0:27 Constant:
+0:27 0 (const uint)
+0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float)
+0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
+0:27 Constant:
+0:27 0 (const uint)
+0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float)
+0:27 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
+0:27 Constant:
+0:27 0 (const uint)
+0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float)
+0:27 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
+0:27 Constant:
+0:27 0 (const uint)
+0:? Linker Objects
+0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1})
+0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2})
+0:? 'anon@2' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3})
+0:? 'anon@3' (layout(column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 39
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction" 9
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 9 "input"
+ Name 11 ""
+ MemberName 11 0 "v1"
+ Name 13 ""
+ Name 20 ""
+ MemberName 20 0 "v2"
+ Name 22 ""
+ Name 26 ""
+ MemberName 26 0 "v3"
+ MemberName 26 1 "i3"
+ Name 28 ""
+ Name 32 ""
+ MemberName 32 0 "v4"
+ MemberName 32 1 "i4"
+ MemberName 32 2 "f1"
+ MemberName 32 3 "f3"
+ MemberName 32 4 "f4"
+ MemberName 32 5 "f5"
+ MemberName 32 6 "f6"
+ MemberName 32 7 "f7"
+ Name 34 ""
+ MemberDecorate 11 0 Offset 0
+ Decorate 11 Block
+ Decorate 13 DescriptorSet 0
+ MemberDecorate 20 0 Offset 0
+ Decorate 20 BufferBlock
+ Decorate 22 DescriptorSet 0
+ MemberDecorate 26 0 Offset 0
+ MemberDecorate 26 1 Offset 20
+ Decorate 26 Block
+ Decorate 28 DescriptorSet 0
+ MemberDecorate 32 0 Offset 16
+ MemberDecorate 32 1 Offset 48
+ MemberDecorate 32 2 Offset 60
+ MemberDecorate 32 3 Offset 64
+ MemberDecorate 32 4 Offset 68
+ MemberDecorate 32 5 Offset 72
+ MemberDecorate 32 6 Offset 76
+ MemberDecorate 32 7 Offset 80
+ Decorate 32 BufferBlock
+ Decorate 34 DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Input 7(fvec4)
+ 9(input): 8(ptr) Variable Input
+ 11: TypeStruct 7(fvec4)
+ 12: TypePointer Uniform 11(struct)
+ 13: 12(ptr) Variable Uniform
+ 14: TypeInt 32 1
+ 15: 14(int) Constant 0
+ 16: TypePointer Uniform 7(fvec4)
+ 20: TypeStruct 7(fvec4)
+ 21: TypePointer Uniform 20(struct)
+ 22: 21(ptr) Variable Uniform
+ 26: TypeStruct 7(fvec4) 14(int)
+ 27: TypePointer Uniform 26(struct)
+ 28: 27(ptr) Variable Uniform
+ 32: TypeStruct 7(fvec4) 14(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float)
+ 33: TypePointer Uniform 32(struct)
+ 34: 33(ptr) Variable Uniform
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 10: 7(fvec4) Load 9(input)
+ 17: 16(ptr) AccessChain 13 15
+ 18: 7(fvec4) Load 17
+ 19: 7(fvec4) FAdd 10 18
+ 23: 16(ptr) AccessChain 22 15
+ 24: 7(fvec4) Load 23
+ 25: 7(fvec4) FAdd 19 24
+ 29: 16(ptr) AccessChain 28 15
+ 30: 7(fvec4) Load 29
+ 31: 7(fvec4) FAdd 25 30
+ 35: 16(ptr) AccessChain 34 15
+ 36: 7(fvec4) Load 35
+ 37: 7(fvec4) FAdd 31 36
+ ReturnValue 37
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
new file mode 100644
index 0000000..43232fb
--- /dev/null
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -0,0 +1,521 @@
+hlsl.calculatelod.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'txval10' (temp float)
+0:28 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:28 Construct combined texture-sampler (temp sampler1DArray)
+0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:28 Constant:
+0:28 0.100000
+0:28 Constant:
+0:28 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'txval11' (temp float)
+0:29 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:29 Construct combined texture-sampler (temp isampler1DArray)
+0:29 'g_tTex1di4a' (uniform itexture1DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:29 Constant:
+0:29 0.200000
+0:29 Constant:
+0:29 0 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'txval12' (temp float)
+0:30 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:30 Construct combined texture-sampler (temp usampler1DArray)
+0:30 'g_tTex1du4a' (uniform utexture1DArray)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:30 Constant:
+0:30 0.300000
+0:30 Constant:
+0:30 0 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp float)
+0:32 'txval20' (temp float)
+0:32 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:32 Construct combined texture-sampler (temp sampler2DArray)
+0:32 'g_tTex2df4a' (uniform texture2DArray)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'txval21' (temp float)
+0:33 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:33 Construct combined texture-sampler (temp isampler2DArray)
+0:33 'g_tTex2di4a' (uniform itexture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:33 Constant:
+0:33 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'txval22' (temp float)
+0:34 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:34 Construct combined texture-sampler (temp usampler2DArray)
+0:34 'g_tTex2du4a' (uniform utexture2DArray)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:34 Constant:
+0:34 0 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp float)
+0:36 'txval40' (temp float)
+0:36 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:36 Construct combined texture-sampler (temp samplerCubeArray)
+0:36 'g_tTexcdf4a' (uniform textureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:36 Constant:
+0:36 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp float)
+0:37 'txval41' (temp float)
+0:37 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:37 Construct combined texture-sampler (temp isamplerCubeArray)
+0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:37 Constant:
+0:37 0 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp float)
+0:38 'txval42' (temp float)
+0:38 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:38 Construct combined texture-sampler (temp usamplerCubeArray)
+0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:38 Constant:
+0:38 0 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 Color: direct index for structure (temp 4-component vector of float)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:41 move second child to first child (temp float)
+0:41 Depth: direct index for structure (temp float FragDepth)
+0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 1.000000
+0:43 Branch: Return with expression
+0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'txval10' (temp float)
+0:28 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:28 Construct combined texture-sampler (temp sampler1DArray)
+0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:28 Constant:
+0:28 0.100000
+0:28 Constant:
+0:28 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'txval11' (temp float)
+0:29 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:29 Construct combined texture-sampler (temp isampler1DArray)
+0:29 'g_tTex1di4a' (uniform itexture1DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:29 Constant:
+0:29 0.200000
+0:29 Constant:
+0:29 0 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'txval12' (temp float)
+0:30 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:30 Construct combined texture-sampler (temp usampler1DArray)
+0:30 'g_tTex1du4a' (uniform utexture1DArray)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:30 Constant:
+0:30 0.300000
+0:30 Constant:
+0:30 0 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp float)
+0:32 'txval20' (temp float)
+0:32 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:32 Construct combined texture-sampler (temp sampler2DArray)
+0:32 'g_tTex2df4a' (uniform texture2DArray)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'txval21' (temp float)
+0:33 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:33 Construct combined texture-sampler (temp isampler2DArray)
+0:33 'g_tTex2di4a' (uniform itexture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:33 Constant:
+0:33 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'txval22' (temp float)
+0:34 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:34 Construct combined texture-sampler (temp usampler2DArray)
+0:34 'g_tTex2du4a' (uniform utexture2DArray)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:34 Constant:
+0:34 0 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp float)
+0:36 'txval40' (temp float)
+0:36 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:36 Construct combined texture-sampler (temp samplerCubeArray)
+0:36 'g_tTexcdf4a' (uniform textureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:36 Constant:
+0:36 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp float)
+0:37 'txval41' (temp float)
+0:37 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:37 Construct combined texture-sampler (temp isamplerCubeArray)
+0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:37 Constant:
+0:37 0 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp float)
+0:38 'txval42' (temp float)
+0:38 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:38 Construct combined texture-sampler (temp usamplerCubeArray)
+0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:38 Constant:
+0:38 0 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 Color: direct index for structure (temp 4-component vector of float)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:41 move second child to first child (temp float)
+0:41 Depth: direct index for structure (temp float FragDepth)
+0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 1.000000
+0:43 Branch: Return with expression
+0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 143
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ Capability ImageQuery
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ 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 142 "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
+ MemberDecorate 131(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 142(g_tTex1df4) DescriptorSet 0
+ Decorate 142(g_tTex1df4) Binding 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D array sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4a): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 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
+ 142(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
+ 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
+ 140:131(PS_OUTPUT) Load 133(psout)
+ ReturnValue 140
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
new file mode 100644
index 0000000..e2dc1db
--- /dev/null
+++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
@@ -0,0 +1,328 @@
+hlsl.calculatelodunclamped.dx10.frag
+ERROR: 0:28: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:29: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:30: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:32: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:33: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:34: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:36: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:37: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 0:38: '' : unimplemented: CalculateLevelOfDetailUnclamped
+ERROR: 9 compilation errors. No code generated.
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'txval10' (temp float)
+0:28 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:28 Construct combined texture-sampler (temp sampler1DArray)
+0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:28 Constant:
+0:28 0.100000
+0:28 Constant:
+0:28 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'txval11' (temp float)
+0:29 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:29 Construct combined texture-sampler (temp isampler1DArray)
+0:29 'g_tTex1di4a' (uniform itexture1DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:29 Constant:
+0:29 0.200000
+0:29 Constant:
+0:29 0 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'txval12' (temp float)
+0:30 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:30 Construct combined texture-sampler (temp usampler1DArray)
+0:30 'g_tTex1du4a' (uniform utexture1DArray)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:30 Constant:
+0:30 0.300000
+0:30 Constant:
+0:30 0 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp float)
+0:32 'txval20' (temp float)
+0:32 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:32 Construct combined texture-sampler (temp sampler2DArray)
+0:32 'g_tTex2df4a' (uniform texture2DArray)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'txval21' (temp float)
+0:33 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:33 Construct combined texture-sampler (temp isampler2DArray)
+0:33 'g_tTex2di4a' (uniform itexture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:33 Constant:
+0:33 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'txval22' (temp float)
+0:34 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:34 Construct combined texture-sampler (temp usampler2DArray)
+0:34 'g_tTex2du4a' (uniform utexture2DArray)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:34 Constant:
+0:34 0 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp float)
+0:36 'txval40' (temp float)
+0:36 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:36 Construct combined texture-sampler (temp samplerCubeArray)
+0:36 'g_tTexcdf4a' (uniform textureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:36 Constant:
+0:36 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp float)
+0:37 'txval41' (temp float)
+0:37 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:37 Construct combined texture-sampler (temp isamplerCubeArray)
+0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:37 Constant:
+0:37 0 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp float)
+0:38 'txval42' (temp float)
+0:38 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:38 Construct combined texture-sampler (temp usamplerCubeArray)
+0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:38 Constant:
+0:38 0 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 Color: direct index for structure (temp 4-component vector of float)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:41 move second child to first child (temp float)
+0:41 Depth: direct index for structure (temp float FragDepth)
+0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 1.000000
+0:43 Branch: Return with expression
+0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:28 Sequence
+0:28 move second child to first child (temp float)
+0:28 'txval10' (temp float)
+0:28 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:28 Construct combined texture-sampler (temp sampler1DArray)
+0:28 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:28 Constant:
+0:28 0.100000
+0:28 Constant:
+0:28 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp float)
+0:29 'txval11' (temp float)
+0:29 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:29 Construct combined texture-sampler (temp isampler1DArray)
+0:29 'g_tTex1di4a' (uniform itexture1DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:29 Constant:
+0:29 0.200000
+0:29 Constant:
+0:29 0 (const int)
+0:30 Sequence
+0:30 move second child to first child (temp float)
+0:30 'txval12' (temp float)
+0:30 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:30 Construct combined texture-sampler (temp usampler1DArray)
+0:30 'g_tTex1du4a' (uniform utexture1DArray)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:30 Constant:
+0:30 0.300000
+0:30 Constant:
+0:30 0 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp float)
+0:32 'txval20' (temp float)
+0:32 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:32 Construct combined texture-sampler (temp sampler2DArray)
+0:32 'g_tTex2df4a' (uniform texture2DArray)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:32 Constant:
+0:32 0 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'txval21' (temp float)
+0:33 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:33 Construct combined texture-sampler (temp isampler2DArray)
+0:33 'g_tTex2di4a' (uniform itexture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:33 Constant:
+0:33 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp float)
+0:34 'txval22' (temp float)
+0:34 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:34 Construct combined texture-sampler (temp usampler2DArray)
+0:34 'g_tTex2du4a' (uniform utexture2DArray)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:34 Constant:
+0:34 0 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp float)
+0:36 'txval40' (temp float)
+0:36 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:36 Construct combined texture-sampler (temp samplerCubeArray)
+0:36 'g_tTexcdf4a' (uniform textureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:36 Constant:
+0:36 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp float)
+0:37 'txval41' (temp float)
+0:37 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:37 Construct combined texture-sampler (temp isamplerCubeArray)
+0:37 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:37 Constant:
+0:37 0 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp float)
+0:38 'txval42' (temp float)
+0:38 direct index (temp float)
+0:? textureQueryLod (temp float)
+0:38 Construct combined texture-sampler (temp usamplerCubeArray)
+0:38 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:38 Constant:
+0:38 0 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 Color: direct index for structure (temp 4-component vector of float)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:41 move second child to first child (temp float)
+0:41 Depth: direct index for structure (temp float FragDepth)
+0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 1.000000
+0:43 Branch: Return with expression
+0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out
new file mode 100755
index 0000000..1e62e9c
--- /dev/null
+++ b/Test/baseResults/hlsl.conditional.frag.out
@@ -0,0 +1,357 @@
+hlsl.conditional.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (in 4-component vector of float)
+0:? Sequence
+0:3 Sequence
+0:3 move second child to first child (temp int)
+0:3 'a' (temp int)
+0:3 Constant:
+0:3 5 (const int)
+0:4 Sequence
+0:4 move second child to first child (temp int)
+0:4 'b' (temp int)
+0:4 Constant:
+0:4 6 (const int)
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'c' (temp int)
+0:5 Constant:
+0:5 7 (const int)
+0:6 Sequence
+0:6 move second child to first child (temp int)
+0:6 'd' (temp int)
+0:6 Constant:
+0:6 7 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'ret' (temp 4-component vector of float)
+0:9 add (temp 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:7 add (temp 4-component vector of float)
+0:7 vector-scale (temp 4-component vector of float)
+0:7 Convert int to float (temp float)
+0:7 'a' (temp int)
+0:7 'input' (in 4-component vector of float)
+0:8 vector-scale (temp 4-component vector of float)
+0:8 Convert int to float (temp float)
+0:8 'b' (temp int)
+0:8 'input' (in 4-component vector of float)
+0:9 vector-scale (temp 4-component vector of float)
+0:9 Convert int to float (temp float)
+0:9 'c' (temp int)
+0:9 'input' (in 4-component vector of float)
+0:10 vector-scale (temp 4-component vector of float)
+0:10 Convert int to float (temp float)
+0:10 'd' (temp int)
+0:10 'input' (in 4-component vector of float)
+0:12 Comma (temp int)
+0:12 move second child to first child (temp int)
+0:12 'e' (temp int)
+0:12 move second child to first child (temp int)
+0:12 'a' (temp int)
+0:12 Test condition and select (temp int)
+0:12 Condition
+0:12 'b' (temp int)
+0:12 true case
+0:12 move second child to first child (temp int)
+0:12 'c' (temp int)
+0:12 'd' (temp int)
+0:12 false case
+0:12 Constant:
+0:12 10 (const int)
+0:12 move second child to first child (temp int)
+0:12 'b' (temp int)
+0:12 Test condition and select (temp int)
+0:12 Condition
+0:12 'a' (temp int)
+0:12 true case
+0:12 move second child to first child (temp int)
+0:12 'd' (temp int)
+0:12 'c' (temp int)
+0:12 false case
+0:12 Constant:
+0:12 11 (const int)
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 'f' (temp 4-component vector of float)
+0:14 Test condition and select (temp 4-component vector of float)
+0:14 Condition
+0:14 Compare Less Than (temp bool)
+0:14 direct index (temp float)
+0:14 'ret' (temp 4-component vector of float)
+0:14 Constant:
+0:14 0 (const int)
+0:14 direct index (temp float)
+0:14 'input' (in 4-component vector of float)
+0:14 Constant:
+0:14 1 (const int)
+0:14 true case
+0:14 vector-scale (temp 4-component vector of float)
+0:14 Convert int to float (temp float)
+0:14 'c' (temp int)
+0:14 'input' (in 4-component vector of float)
+0:14 false case
+0:14 vector-scale (temp 4-component vector of float)
+0:14 Convert int to float (temp float)
+0:14 'd' (temp int)
+0:14 'input' (in 4-component vector of float)
+0:15 Branch: Return with expression
+0:15 add (temp 4-component vector of float)
+0:15 vector-scale (temp 4-component vector of float)
+0:15 Convert int to float (temp float)
+0:15 'e' (temp int)
+0:15 'ret' (temp 4-component vector of float)
+0:15 'f' (temp 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:17 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (in 4-component vector of float)
+0:? Sequence
+0:3 Sequence
+0:3 move second child to first child (temp int)
+0:3 'a' (temp int)
+0:3 Constant:
+0:3 5 (const int)
+0:4 Sequence
+0:4 move second child to first child (temp int)
+0:4 'b' (temp int)
+0:4 Constant:
+0:4 6 (const int)
+0:5 Sequence
+0:5 move second child to first child (temp int)
+0:5 'c' (temp int)
+0:5 Constant:
+0:5 7 (const int)
+0:6 Sequence
+0:6 move second child to first child (temp int)
+0:6 'd' (temp int)
+0:6 Constant:
+0:6 7 (const int)
+0:7 Sequence
+0:7 move second child to first child (temp 4-component vector of float)
+0:7 'ret' (temp 4-component vector of float)
+0:9 add (temp 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:7 add (temp 4-component vector of float)
+0:7 vector-scale (temp 4-component vector of float)
+0:7 Convert int to float (temp float)
+0:7 'a' (temp int)
+0:7 'input' (in 4-component vector of float)
+0:8 vector-scale (temp 4-component vector of float)
+0:8 Convert int to float (temp float)
+0:8 'b' (temp int)
+0:8 'input' (in 4-component vector of float)
+0:9 vector-scale (temp 4-component vector of float)
+0:9 Convert int to float (temp float)
+0:9 'c' (temp int)
+0:9 'input' (in 4-component vector of float)
+0:10 vector-scale (temp 4-component vector of float)
+0:10 Convert int to float (temp float)
+0:10 'd' (temp int)
+0:10 'input' (in 4-component vector of float)
+0:12 Comma (temp int)
+0:12 move second child to first child (temp int)
+0:12 'e' (temp int)
+0:12 move second child to first child (temp int)
+0:12 'a' (temp int)
+0:12 Test condition and select (temp int)
+0:12 Condition
+0:12 'b' (temp int)
+0:12 true case
+0:12 move second child to first child (temp int)
+0:12 'c' (temp int)
+0:12 'd' (temp int)
+0:12 false case
+0:12 Constant:
+0:12 10 (const int)
+0:12 move second child to first child (temp int)
+0:12 'b' (temp int)
+0:12 Test condition and select (temp int)
+0:12 Condition
+0:12 'a' (temp int)
+0:12 true case
+0:12 move second child to first child (temp int)
+0:12 'd' (temp int)
+0:12 'c' (temp int)
+0:12 false case
+0:12 Constant:
+0:12 11 (const int)
+0:14 move second child to first child (temp 4-component vector of float)
+0:14 'f' (temp 4-component vector of float)
+0:14 Test condition and select (temp 4-component vector of float)
+0:14 Condition
+0:14 Compare Less Than (temp bool)
+0:14 direct index (temp float)
+0:14 'ret' (temp 4-component vector of float)
+0:14 Constant:
+0:14 0 (const int)
+0:14 direct index (temp float)
+0:14 'input' (in 4-component vector of float)
+0:14 Constant:
+0:14 1 (const int)
+0:14 true case
+0:14 vector-scale (temp 4-component vector of float)
+0:14 Convert int to float (temp float)
+0:14 'c' (temp int)
+0:14 'input' (in 4-component vector of float)
+0:14 false case
+0:14 vector-scale (temp 4-component vector of float)
+0:14 Convert int to float (temp float)
+0:14 'd' (temp int)
+0:14 'input' (in 4-component vector of float)
+0:15 Branch: Return with expression
+0:15 add (temp 4-component vector of float)
+0:15 vector-scale (temp 4-component vector of float)
+0:15 Convert int to float (temp float)
+0:15 'e' (temp int)
+0:15 'ret' (temp 4-component vector of float)
+0:15 'f' (temp 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 89
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction" 22
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "PixelShaderFunction"
+ Name 8 "a"
+ Name 10 "b"
+ Name 12 "c"
+ Name 14 "d"
+ Name 18 "ret"
+ Name 22 "input"
+ Name 40 "e"
+ Name 57 "f"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 5
+ 11: 6(int) Constant 6
+ 13: 6(int) Constant 7
+ 15: TypeFloat 32
+ 16: TypeVector 15(float) 4
+ 17: TypePointer Function 16(fvec4)
+ 21: TypePointer Input 16(fvec4)
+ 22(input): 21(ptr) Variable Input
+ 47: 6(int) Constant 10
+ 55: 6(int) Constant 11
+ 59: TypeInt 32 0
+ 60: 59(int) Constant 0
+ 61: TypePointer Function 15(float)
+ 64: 59(int) Constant 1
+ 65: TypePointer Input 15(float)
+ 68: TypeBool
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 8(a): 7(ptr) Variable Function
+ 10(b): 7(ptr) Variable Function
+ 12(c): 7(ptr) Variable Function
+ 14(d): 7(ptr) Variable Function
+ 18(ret): 17(ptr) Variable Function
+ 40(e): 7(ptr) Variable Function
+ 41: 7(ptr) Variable Function
+ 49: 7(ptr) Variable Function
+ 57(f): 17(ptr) Variable Function
+ 58: 17(ptr) Variable Function
+ Store 8(a) 9
+ Store 10(b) 11
+ Store 12(c) 13
+ Store 14(d) 13
+ 19: 6(int) Load 8(a)
+ 20: 15(float) ConvertSToF 19
+ 23: 16(fvec4) Load 22(input)
+ 24: 16(fvec4) VectorTimesScalar 23 20
+ 25: 6(int) Load 10(b)
+ 26: 15(float) ConvertSToF 25
+ 27: 16(fvec4) Load 22(input)
+ 28: 16(fvec4) VectorTimesScalar 27 26
+ 29: 16(fvec4) FAdd 24 28
+ 30: 6(int) Load 12(c)
+ 31: 15(float) ConvertSToF 30
+ 32: 16(fvec4) Load 22(input)
+ 33: 16(fvec4) VectorTimesScalar 32 31
+ 34: 16(fvec4) FAdd 29 33
+ 35: 6(int) Load 14(d)
+ 36: 15(float) ConvertSToF 35
+ 37: 16(fvec4) Load 22(input)
+ 38: 16(fvec4) VectorTimesScalar 37 36
+ 39: 16(fvec4) FAdd 34 38
+ Store 18(ret) 39
+ 42: 6(int) Load 10(b)
+ SelectionMerge 44 None
+ BranchConditional 42 43 46
+ 43: Label
+ 45: 6(int) Load 14(d)
+ Store 12(c) 45
+ Store 41 45
+ Branch 44
+ 46: Label
+ Store 41 47
+ Branch 44
+ 44: Label
+ 48: 6(int) Load 41
+ Store 8(a) 48
+ Store 40(e) 48
+ 50: 6(int) Load 8(a)
+ SelectionMerge 52 None
+ BranchConditional 50 51 54
+ 51: Label
+ 53: 6(int) Load 12(c)
+ Store 14(d) 53
+ Store 49 53
+ Branch 52
+ 54: Label
+ Store 49 55
+ Branch 52
+ 52: Label
+ 56: 6(int) Load 49
+ Store 10(b) 56
+ 62: 61(ptr) AccessChain 18(ret) 60
+ 63: 15(float) Load 62
+ 66: 65(ptr) AccessChain 22(input) 64
+ 67: 15(float) Load 66
+ 69: 68(bool) FOrdLessThan 63 67
+ SelectionMerge 71 None
+ BranchConditional 69 70 76
+ 70: Label
+ 72: 6(int) Load 12(c)
+ 73: 15(float) ConvertSToF 72
+ 74: 16(fvec4) Load 22(input)
+ 75: 16(fvec4) VectorTimesScalar 74 73
+ Store 58 75
+ Branch 71
+ 76: Label
+ 77: 6(int) Load 14(d)
+ 78: 15(float) ConvertSToF 77
+ 79: 16(fvec4) Load 22(input)
+ 80: 16(fvec4) VectorTimesScalar 79 78
+ Store 58 80
+ Branch 71
+ 71: Label
+ 81: 16(fvec4) Load 58
+ Store 57(f) 81
+ 82: 6(int) Load 40(e)
+ 83: 15(float) ConvertSToF 82
+ 84: 16(fvec4) Load 18(ret)
+ 85: 16(fvec4) VectorTimesScalar 84 83
+ 86: 16(fvec4) Load 57(f)
+ 87: 16(fvec4) FAdd 85 86
+ ReturnValue 87
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out
new file mode 100644
index 0000000..2eef7c0
--- /dev/null
+++ b/Test/baseResults/hlsl.constructexpr.frag.out
@@ -0,0 +1,129 @@
+hlsl.constructexpr.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:18 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:4 Function Parameters:
+0:? Sequence
+0:6 Constant:
+0:6 3 (const int)
+0:7 Constant:
+0:7 4 (const int)
+0:8 Constant:
+0:8 5 (const int)
+0:9 Constant:
+0:9 6 (const int)
+0:10 Constant:
+0:10 7 (const int)
+0:11 Constant:
+0:11 8 (const int)
+0:12 Comma (temp 2-component vector of float)
+0:? Constant:
+0:? 9.000000
+0:? 10.000000
+0:? Constant:
+0:? 11.000000
+0:? 12.000000
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 color: direct index for structure (temp 4-component vector of float)
+0:15 'ps_output' (temp structure{temp 4-component vector of float color})
+0:15 Constant:
+0:15 0 (const int)
+0:15 Constant:
+0:15 1.000000
+0:15 1.000000
+0:15 1.000000
+0:15 1.000000
+0:16 Branch: Return with expression
+0:16 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:18 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:4 Function Parameters:
+0:? Sequence
+0:6 Constant:
+0:6 3 (const int)
+0:7 Constant:
+0:7 4 (const int)
+0:8 Constant:
+0:8 5 (const int)
+0:9 Constant:
+0:9 6 (const int)
+0:10 Constant:
+0:10 7 (const int)
+0:11 Constant:
+0:11 8 (const int)
+0:12 Comma (temp 2-component vector of float)
+0:? Constant:
+0:? 9.000000
+0:? 10.000000
+0:? Constant:
+0:? 11.000000
+0:? 12.000000
+0:15 move second child to first child (temp 4-component vector of float)
+0:15 color: direct index for structure (temp 4-component vector of float)
+0:15 'ps_output' (temp structure{temp 4-component vector of float color})
+0:15 Constant:
+0:15 0 (const int)
+0:15 Constant:
+0:15 1.000000
+0:15 1.000000
+0:15 1.000000
+0:15 1.000000
+0:16 Branch: Return with expression
+0:16 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 32
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 22 "PS_OUTPUT"
+ MemberName 22(PS_OUTPUT) 0 "color"
+ Name 24 "ps_output"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: 6(int) Constant 3
+ 8: 6(int) Constant 4
+ 9: 6(int) Constant 5
+ 10: 6(int) Constant 6
+ 11: 6(int) Constant 7
+ 12: 6(int) Constant 8
+ 13: TypeFloat 32
+ 14: TypeVector 13(float) 2
+ 15: 13(float) Constant 1091567616
+ 16: 13(float) Constant 1092616192
+ 17: 14(fvec2) ConstantComposite 15 16
+ 18: 13(float) Constant 1093664768
+ 19: 13(float) Constant 1094713344
+ 20: 14(fvec2) ConstantComposite 18 19
+ 21: TypeVector 13(float) 4
+ 22(PS_OUTPUT): TypeStruct 21(fvec4)
+ 23: TypePointer Function 22(PS_OUTPUT)
+ 25: 6(int) Constant 0
+ 26: 13(float) Constant 1065353216
+ 27: 21(fvec4) ConstantComposite 26 26 26 26
+ 28: TypePointer Function 21(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 24(ps_output): 23(ptr) Variable Function
+ 29: 28(ptr) AccessChain 24(ps_output) 25
+ Store 29 27
+ 30:22(PS_OUTPUT) Load 24(ps_output)
+ ReturnValue 30
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out
index a086d95..370a506 100755
--- a/Test/baseResults/hlsl.float4.frag.out
+++ b/Test/baseResults/hlsl.float4.frag.out
@@ -1,4 +1,7 @@
hlsl.float4.frag
+WARNING: 0:5: 'register' : ignoring shader_profile
+WARNING: 0:6: 'register' : ignoring shader_profile
+
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
@@ -21,9 +24,9 @@
0:? Linker Objects
0:? 'AmbientColor' (global 4-component vector of float)
0:? 'ff1' (global bool Face)
-0:? 'ff2' (global 4-component vector of float)
-0:? 'ff3' (global 4-component vector of float)
-0:? 'ff4' (global 4-component vector of float FragCoord)
+0:? 'ff2' (layout(offset=4 ) global 4-component vector of float)
+0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float)
+0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float FragCoord)
Linked fragment stage:
@@ -51,9 +54,9 @@
0:? Linker Objects
0:? 'AmbientColor' (global 4-component vector of float)
0:? 'ff1' (global bool Face)
-0:? 'ff2' (global 4-component vector of float)
-0:? 'ff3' (global 4-component vector of float)
-0:? 'ff4' (global 4-component vector of float FragCoord)
+0:? 'ff2' (layout(offset=4 ) global 4-component vector of float)
+0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float)
+0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float FragCoord)
// Module Version 10000
// Generated by (magic number): 80001
@@ -74,6 +77,11 @@
Name 28 "ff3"
Name 29 "ff4"
Decorate 26(ff1) BuiltIn FrontFacing
+ Decorate 27(ff2) Offset 4
+ Decorate 28(ff3) Offset 4
+ Decorate 28(ff3) Binding 0
+ Decorate 29(ff4) Offset 4
+ Decorate 29(ff4) Binding 1
Decorate 29(ff4) BuiltIn FragCoord
2: TypeVoid
3: TypeFunction 2
diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out
new file mode 100644
index 0000000..70d1bf1
--- /dev/null
+++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out
@@ -0,0 +1,385 @@
+hlsl.gather.array.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of float)
+0:29 'txval20' (temp 4-component vector of float)
+0:29 textureGather (global 4-component vector of float)
+0:29 Construct combined texture-sampler (temp sampler2DArray)
+0:29 'g_tTex2df4a' (uniform texture2DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of int)
+0:30 'txval21' (temp 4-component vector of int)
+0:30 textureGather (global 4-component vector of int)
+0:30 Construct combined texture-sampler (temp isampler2DArray)
+0:30 'g_tTex2di4a' (uniform itexture2DArray)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.500000
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of uint)
+0:31 'txval22' (temp 4-component vector of uint)
+0:31 textureGather (global 4-component vector of uint)
+0:31 Construct combined texture-sampler (temp usampler2DArray)
+0:31 'g_tTex2du4a' (uniform utexture2DArray)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'txval40' (temp 4-component vector of float)
+0:35 textureGather (global 4-component vector of float)
+0:35 Construct combined texture-sampler (temp samplerCubeArray)
+0:35 'g_tTexcdf4a' (uniform textureCubeArray)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of int)
+0:36 'txval41' (temp 4-component vector of int)
+0:36 textureGather (global 4-component vector of int)
+0:36 Construct combined texture-sampler (temp isamplerCubeArray)
+0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of uint)
+0:37 'txval42' (temp 4-component vector of uint)
+0:37 textureGather (global 4-component vector of uint)
+0:37 Construct combined texture-sampler (temp usamplerCubeArray)
+0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:? 1.000000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:40 move second child to first child (temp float)
+0:40 Depth: direct index for structure (temp float FragDepth)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 1 (const int)
+0:40 Constant:
+0:40 1.000000
+0:42 Branch: Return with expression
+0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of float)
+0:29 'txval20' (temp 4-component vector of float)
+0:29 textureGather (global 4-component vector of float)
+0:29 Construct combined texture-sampler (temp sampler2DArray)
+0:29 'g_tTex2df4a' (uniform texture2DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of int)
+0:30 'txval21' (temp 4-component vector of int)
+0:30 textureGather (global 4-component vector of int)
+0:30 Construct combined texture-sampler (temp isampler2DArray)
+0:30 'g_tTex2di4a' (uniform itexture2DArray)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.500000
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of uint)
+0:31 'txval22' (temp 4-component vector of uint)
+0:31 textureGather (global 4-component vector of uint)
+0:31 Construct combined texture-sampler (temp usampler2DArray)
+0:31 'g_tTex2du4a' (uniform utexture2DArray)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'txval40' (temp 4-component vector of float)
+0:35 textureGather (global 4-component vector of float)
+0:35 Construct combined texture-sampler (temp samplerCubeArray)
+0:35 'g_tTexcdf4a' (uniform textureCubeArray)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of int)
+0:36 'txval41' (temp 4-component vector of int)
+0:36 textureGather (global 4-component vector of int)
+0:36 Construct combined texture-sampler (temp isamplerCubeArray)
+0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of uint)
+0:37 'txval42' (temp 4-component vector of uint)
+0:37 textureGather (global 4-component vector of uint)
+0:37 Construct combined texture-sampler (temp usamplerCubeArray)
+0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:? 1.000000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:40 move second child to first child (temp float)
+0:40 Depth: direct index for structure (temp float FragDepth)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 1 (const int)
+0:40 Constant:
+0:40 1.000000
+0:42 Branch: Return with expression
+0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 110
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval20"
+ Name 12 "g_tTex2df4a"
+ Name 16 "g_sSamp"
+ Name 30 "txval21"
+ Name 33 "g_tTex2di4a"
+ Name 45 "txval22"
+ Name 48 "g_tTex2du4a"
+ Name 57 "txval40"
+ Name 60 "g_tTexcdf4a"
+ Name 67 "txval41"
+ Name 70 "g_tTexcdi4a"
+ Name 77 "txval42"
+ Name 80 "g_tTexcdu4a"
+ Name 90 "PS_OUTPUT"
+ MemberName 90(PS_OUTPUT) 0 "Color"
+ MemberName 90(PS_OUTPUT) 1 "Depth"
+ Name 92 "psout"
+ Name 102 "g_tTex1df4a"
+ Name 103 "g_tTex1df4"
+ Name 106 "g_tTex1di4a"
+ Name 109 "g_tTex1du4a"
+ Decorate 12(g_tTex2df4a) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 33(g_tTex2di4a) DescriptorSet 0
+ Decorate 48(g_tTex2du4a) DescriptorSet 0
+ Decorate 60(g_tTexcdf4a) DescriptorSet 0
+ Decorate 70(g_tTexcdi4a) DescriptorSet 0
+ Decorate 80(g_tTexcdu4a) DescriptorSet 0
+ MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 102(g_tTex1df4a) DescriptorSet 0
+ Decorate 102(g_tTex1df4a) Binding 1
+ Decorate 103(g_tTex1df4) DescriptorSet 0
+ Decorate 103(g_tTex1df4) Binding 0
+ Decorate 106(g_tTex1di4a) DescriptorSet 0
+ Decorate 109(g_tTex1du4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D array sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4a): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 3
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 6(float) Constant 1050253722
+ 24: 20(fvec3) ConstantComposite 21 22 23
+ 25: TypeInt 32 1
+ 26: 25(int) Constant 0
+ 28: TypeVector 25(int) 4
+ 29: TypePointer Function 28(ivec4)
+ 31: TypeImage 25(int) 2D array sampled format:Unknown
+ 32: TypePointer UniformConstant 31
+ 33(g_tTex2di4a): 32(ptr) Variable UniformConstant
+ 36: TypeSampledImage 31
+ 38: 6(float) Constant 1053609165
+ 39: 6(float) Constant 1056964608
+ 40: 20(fvec3) ConstantComposite 23 38 39
+ 42: TypeInt 32 0
+ 43: TypeVector 42(int) 4
+ 44: TypePointer Function 43(ivec4)
+ 46: TypeImage 42(int) 2D array sampled format:Unknown
+ 47: TypePointer UniformConstant 46
+ 48(g_tTex2du4a): 47(ptr) Variable UniformConstant
+ 51: TypeSampledImage 46
+ 53: 6(float) Constant 1058642330
+ 54: 6(float) Constant 1060320051
+ 55: 20(fvec3) ConstantComposite 39 53 54
+ 58: TypeImage 6(float) Cube array sampled format:Unknown
+ 59: TypePointer UniformConstant 58
+ 60(g_tTexcdf4a): 59(ptr) Variable UniformConstant
+ 63: TypeSampledImage 58
+ 65: 7(fvec4) ConstantComposite 21 22 23 38
+ 68: TypeImage 25(int) Cube array sampled format:Unknown
+ 69: TypePointer UniformConstant 68
+ 70(g_tTexcdi4a): 69(ptr) Variable UniformConstant
+ 73: TypeSampledImage 68
+ 75: 7(fvec4) ConstantComposite 38 39 53 54
+ 78: TypeImage 42(int) Cube array sampled format:Unknown
+ 79: TypePointer UniformConstant 78
+ 80(g_tTexcdu4a): 79(ptr) Variable UniformConstant
+ 83: TypeSampledImage 78
+ 85: 6(float) Constant 1061997773
+ 86: 6(float) Constant 1063675494
+ 87: 6(float) Constant 1065353216
+ 88: 7(fvec4) ConstantComposite 54 85 86 87
+ 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 91: TypePointer Function 90(PS_OUTPUT)
+ 93: 7(fvec4) ConstantComposite 87 87 87 87
+ 95: 25(int) Constant 1
+ 96: TypePointer Function 6(float)
+ 100: TypeImage 6(float) 1D array sampled format:Unknown
+ 101: TypePointer UniformConstant 100
+102(g_tTex1df4a): 101(ptr) Variable UniformConstant
+ 103(g_tTex1df4): 101(ptr) Variable UniformConstant
+ 104: TypeImage 25(int) 1D array sampled format:Unknown
+ 105: TypePointer UniformConstant 104
+106(g_tTex1di4a): 105(ptr) Variable UniformConstant
+ 107: TypeImage 42(int) 1D array sampled format:Unknown
+ 108: TypePointer UniformConstant 107
+109(g_tTex1du4a): 108(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval20): 8(ptr) Variable Function
+ 30(txval21): 29(ptr) Variable Function
+ 45(txval22): 44(ptr) Variable Function
+ 57(txval40): 8(ptr) Variable Function
+ 67(txval41): 29(ptr) Variable Function
+ 77(txval42): 44(ptr) Variable Function
+ 92(psout): 91(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4a)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 27: 7(fvec4) ImageGather 19 24 26
+ Store 9(txval20) 27
+ 34: 31 Load 33(g_tTex2di4a)
+ 35: 14 Load 16(g_sSamp)
+ 37: 36 SampledImage 34 35
+ 41: 28(ivec4) ImageGather 37 40 26
+ Store 30(txval21) 41
+ 49: 46 Load 48(g_tTex2du4a)
+ 50: 14 Load 16(g_sSamp)
+ 52: 51 SampledImage 49 50
+ 56: 43(ivec4) ImageGather 52 55 26
+ Store 45(txval22) 56
+ 61: 58 Load 60(g_tTexcdf4a)
+ 62: 14 Load 16(g_sSamp)
+ 64: 63 SampledImage 61 62
+ 66: 7(fvec4) ImageGather 64 65 26
+ Store 57(txval40) 66
+ 71: 68 Load 70(g_tTexcdi4a)
+ 72: 14 Load 16(g_sSamp)
+ 74: 73 SampledImage 71 72
+ 76: 28(ivec4) ImageGather 74 75 26
+ Store 67(txval41) 76
+ 81: 78 Load 80(g_tTexcdu4a)
+ 82: 14 Load 16(g_sSamp)
+ 84: 83 SampledImage 81 82
+ 89: 43(ivec4) ImageGather 84 88 26
+ Store 77(txval42) 89
+ 94: 8(ptr) AccessChain 92(psout) 26
+ Store 94 93
+ 97: 96(ptr) AccessChain 92(psout) 95
+ Store 97 87
+ 98:90(PS_OUTPUT) Load 92(psout)
+ ReturnValue 98
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
new file mode 100644
index 0000000..c52d7cd
--- /dev/null
+++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
@@ -0,0 +1,399 @@
+hlsl.gather.basic.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29 Function Parameters:
+0:? Sequence
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 'txval20' (temp 4-component vector of float)
+0:34 textureGather (global 4-component vector of float)
+0:34 Construct combined texture-sampler (temp sampler2D)
+0:34 'g_tTex2df4' (uniform texture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of int)
+0:35 'txval21' (temp 4-component vector of int)
+0:35 textureGather (global 4-component vector of int)
+0:35 Construct combined texture-sampler (temp isampler2D)
+0:35 'g_tTex2di4' (uniform itexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of uint)
+0:36 'txval22' (temp 4-component vector of uint)
+0:36 textureGather (global 4-component vector of uint)
+0:36 Construct combined texture-sampler (temp usampler2D)
+0:36 'g_tTex2du4' (uniform utexture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'txval40' (temp 4-component vector of float)
+0:40 textureGather (global 4-component vector of float)
+0:40 Construct combined texture-sampler (temp samplerCube)
+0:40 'g_tTexcdf4' (uniform textureCube)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of int)
+0:41 'txval41' (temp 4-component vector of int)
+0:41 textureGather (global 4-component vector of int)
+0:41 Construct combined texture-sampler (temp isamplerCube)
+0:41 'g_tTexcdi4' (uniform itextureCube)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of uint)
+0:42 'txval42' (temp 4-component vector of uint)
+0:42 textureGather (global 4-component vector of uint)
+0:42 Construct combined texture-sampler (temp usamplerCube)
+0:42 'g_tTexcdu4' (uniform utextureCube)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 Color: direct index for structure (temp 4-component vector of float)
+0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:44 Constant:
+0:44 0 (const int)
+0:44 Constant:
+0:44 1.000000
+0:44 1.000000
+0:44 1.000000
+0:44 1.000000
+0:45 move second child to first child (temp float)
+0:45 Depth: direct index for structure (temp float FragDepth)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 1 (const int)
+0:45 Constant:
+0:45 1.000000
+0:47 Branch: Return with expression
+0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:49 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29 Function Parameters:
+0:? Sequence
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 'txval20' (temp 4-component vector of float)
+0:34 textureGather (global 4-component vector of float)
+0:34 Construct combined texture-sampler (temp sampler2D)
+0:34 'g_tTex2df4' (uniform texture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of int)
+0:35 'txval21' (temp 4-component vector of int)
+0:35 textureGather (global 4-component vector of int)
+0:35 Construct combined texture-sampler (temp isampler2D)
+0:35 'g_tTex2di4' (uniform itexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of uint)
+0:36 'txval22' (temp 4-component vector of uint)
+0:36 textureGather (global 4-component vector of uint)
+0:36 Construct combined texture-sampler (temp usampler2D)
+0:36 'g_tTex2du4' (uniform utexture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'txval40' (temp 4-component vector of float)
+0:40 textureGather (global 4-component vector of float)
+0:40 Construct combined texture-sampler (temp samplerCube)
+0:40 'g_tTexcdf4' (uniform textureCube)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of int)
+0:41 'txval41' (temp 4-component vector of int)
+0:41 textureGather (global 4-component vector of int)
+0:41 Construct combined texture-sampler (temp isamplerCube)
+0:41 'g_tTexcdi4' (uniform itextureCube)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of uint)
+0:42 'txval42' (temp 4-component vector of uint)
+0:42 textureGather (global 4-component vector of uint)
+0:42 Construct combined texture-sampler (temp usamplerCube)
+0:42 'g_tTexcdu4' (uniform utextureCube)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 Color: direct index for structure (temp 4-component vector of float)
+0:44 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:44 Constant:
+0:44 0 (const int)
+0:44 Constant:
+0:44 1.000000
+0:44 1.000000
+0:44 1.000000
+0:44 1.000000
+0:45 move second child to first child (temp float)
+0:45 Depth: direct index for structure (temp float FragDepth)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 1 (const int)
+0:45 Constant:
+0:45 1.000000
+0:47 Branch: Return with expression
+0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 121
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval20"
+ Name 12 "g_tTex2df4"
+ Name 16 "g_sSamp"
+ Name 29 "txval21"
+ Name 32 "g_tTex2di4"
+ Name 44 "txval22"
+ Name 47 "g_tTex2du4"
+ Name 56 "txval40"
+ Name 59 "g_tTexcdf4"
+ Name 67 "txval41"
+ Name 70 "g_tTexcdi4"
+ Name 77 "txval42"
+ Name 80 "g_tTexcdu4"
+ Name 90 "PS_OUTPUT"
+ MemberName 90(PS_OUTPUT) 0 "Color"
+ MemberName 90(PS_OUTPUT) 1 "Depth"
+ Name 92 "psout"
+ Name 101 "g_sSamp2d"
+ Name 104 "g_tTex1df4a"
+ Name 105 "g_tTex1df4"
+ Name 108 "g_tTex1di4"
+ Name 111 "g_tTex1du4"
+ Name 114 "g_tTex3df4"
+ Name 117 "g_tTex3di4"
+ Name 120 "g_tTex3du4"
+ Decorate 12(g_tTex2df4) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 32(g_tTex2di4) DescriptorSet 0
+ Decorate 47(g_tTex2du4) DescriptorSet 0
+ Decorate 59(g_tTexcdf4) DescriptorSet 0
+ Decorate 70(g_tTexcdi4) DescriptorSet 0
+ Decorate 80(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 90(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 101(g_sSamp2d) DescriptorSet 0
+ Decorate 104(g_tTex1df4a) DescriptorSet 0
+ Decorate 104(g_tTex1df4a) Binding 1
+ Decorate 105(g_tTex1df4) DescriptorSet 0
+ Decorate 105(g_tTex1df4) Binding 0
+ Decorate 108(g_tTex1di4) DescriptorSet 0
+ Decorate 111(g_tTex1du4) DescriptorSet 0
+ Decorate 114(g_tTex3df4) DescriptorSet 0
+ Decorate 117(g_tTex3di4) DescriptorSet 0
+ Decorate 120(g_tTex3du4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: TypeInt 32 1
+ 25: 24(int) Constant 0
+ 27: TypeVector 24(int) 4
+ 28: TypePointer Function 27(ivec4)
+ 30: TypeImage 24(int) 2D sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex2di4): 31(ptr) Variable UniformConstant
+ 35: TypeSampledImage 30
+ 37: 6(float) Constant 1050253722
+ 38: 6(float) Constant 1053609165
+ 39: 20(fvec2) ConstantComposite 37 38
+ 41: TypeInt 32 0
+ 42: TypeVector 41(int) 4
+ 43: TypePointer Function 42(ivec4)
+ 45: TypeImage 41(int) 2D sampled format:Unknown
+ 46: TypePointer UniformConstant 45
+ 47(g_tTex2du4): 46(ptr) Variable UniformConstant
+ 50: TypeSampledImage 45
+ 52: 6(float) Constant 1056964608
+ 53: 6(float) Constant 1058642330
+ 54: 20(fvec2) ConstantComposite 52 53
+ 57: TypeImage 6(float) Cube sampled format:Unknown
+ 58: TypePointer UniformConstant 57
+ 59(g_tTexcdf4): 58(ptr) Variable UniformConstant
+ 62: TypeSampledImage 57
+ 64: TypeVector 6(float) 3
+ 65: 64(fvec3) ConstantComposite 21 22 37
+ 68: TypeImage 24(int) Cube sampled format:Unknown
+ 69: TypePointer UniformConstant 68
+ 70(g_tTexcdi4): 69(ptr) Variable UniformConstant
+ 73: TypeSampledImage 68
+ 75: 64(fvec3) ConstantComposite 38 52 53
+ 78: TypeImage 41(int) Cube sampled format:Unknown
+ 79: TypePointer UniformConstant 78
+ 80(g_tTexcdu4): 79(ptr) Variable UniformConstant
+ 83: TypeSampledImage 78
+ 85: 6(float) Constant 1060320051
+ 86: 6(float) Constant 1061997773
+ 87: 6(float) Constant 1063675494
+ 88: 64(fvec3) ConstantComposite 85 86 87
+ 90(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 91: TypePointer Function 90(PS_OUTPUT)
+ 93: 6(float) Constant 1065353216
+ 94: 7(fvec4) ConstantComposite 93 93 93 93
+ 96: 24(int) Constant 1
+ 97: TypePointer Function 6(float)
+ 101(g_sSamp2d): 15(ptr) Variable UniformConstant
+ 102: TypeImage 6(float) 1D sampled format:Unknown
+ 103: TypePointer UniformConstant 102
+104(g_tTex1df4a): 103(ptr) Variable UniformConstant
+ 105(g_tTex1df4): 103(ptr) Variable UniformConstant
+ 106: TypeImage 24(int) 1D sampled format:Unknown
+ 107: TypePointer UniformConstant 106
+ 108(g_tTex1di4): 107(ptr) Variable UniformConstant
+ 109: TypeImage 41(int) 1D sampled format:Unknown
+ 110: TypePointer UniformConstant 109
+ 111(g_tTex1du4): 110(ptr) Variable UniformConstant
+ 112: TypeImage 6(float) 3D sampled format:Unknown
+ 113: TypePointer UniformConstant 112
+ 114(g_tTex3df4): 113(ptr) Variable UniformConstant
+ 115: TypeImage 24(int) 3D sampled format:Unknown
+ 116: TypePointer UniformConstant 115
+ 117(g_tTex3di4): 116(ptr) Variable UniformConstant
+ 118: TypeImage 41(int) 3D sampled format:Unknown
+ 119: TypePointer UniformConstant 118
+ 120(g_tTex3du4): 119(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval20): 8(ptr) Variable Function
+ 29(txval21): 28(ptr) Variable Function
+ 44(txval22): 43(ptr) Variable Function
+ 56(txval40): 8(ptr) Variable Function
+ 67(txval41): 28(ptr) Variable Function
+ 77(txval42): 43(ptr) Variable Function
+ 92(psout): 91(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 26: 7(fvec4) ImageGather 19 23 25
+ Store 9(txval20) 26
+ 33: 30 Load 32(g_tTex2di4)
+ 34: 14 Load 16(g_sSamp)
+ 36: 35 SampledImage 33 34
+ 40: 27(ivec4) ImageGather 36 39 25
+ Store 29(txval21) 40
+ 48: 45 Load 47(g_tTex2du4)
+ 49: 14 Load 16(g_sSamp)
+ 51: 50 SampledImage 48 49
+ 55: 42(ivec4) ImageGather 51 54 25
+ Store 44(txval22) 55
+ 60: 57 Load 59(g_tTexcdf4)
+ 61: 14 Load 16(g_sSamp)
+ 63: 62 SampledImage 60 61
+ 66: 7(fvec4) ImageGather 63 65 25
+ Store 56(txval40) 66
+ 71: 68 Load 70(g_tTexcdi4)
+ 72: 14 Load 16(g_sSamp)
+ 74: 73 SampledImage 71 72
+ 76: 27(ivec4) ImageGather 74 75 25
+ Store 67(txval41) 76
+ 81: 78 Load 80(g_tTexcdu4)
+ 82: 14 Load 16(g_sSamp)
+ 84: 83 SampledImage 81 82
+ 89: 42(ivec4) ImageGather 84 88 25
+ Store 77(txval42) 89
+ 95: 8(ptr) AccessChain 92(psout) 25
+ Store 95 94
+ 98: 97(ptr) AccessChain 92(psout) 96
+ Store 98 93
+ 99:90(PS_OUTPUT) Load 92(psout)
+ ReturnValue 99
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
new file mode 100644
index 0000000..667c39f
--- /dev/null
+++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
@@ -0,0 +1,377 @@
+hlsl.gather.basic.dx10.vert
+Shader version: 450
+0:? Sequence
+0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
+0:28 Function Parameters:
+0:? Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'txval20' (temp 4-component vector of float)
+0:33 textureGather (global 4-component vector of float)
+0:33 Construct combined texture-sampler (temp sampler2D)
+0:33 'g_tTex2df4' (uniform texture2D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of int)
+0:34 'txval21' (temp 4-component vector of int)
+0:34 textureGather (global 4-component vector of int)
+0:34 Construct combined texture-sampler (temp isampler2D)
+0:34 'g_tTex2di4' (uniform itexture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of uint)
+0:35 'txval22' (temp 4-component vector of uint)
+0:35 textureGather (global 4-component vector of uint)
+0:35 Construct combined texture-sampler (temp usampler2D)
+0:35 'g_tTex2du4' (uniform utexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 'txval40' (temp 4-component vector of float)
+0:39 textureGather (global 4-component vector of float)
+0:39 Construct combined texture-sampler (temp samplerCube)
+0:39 'g_tTexcdf4' (uniform textureCube)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 'txval41' (temp 4-component vector of int)
+0:40 textureGather (global 4-component vector of int)
+0:40 Construct combined texture-sampler (temp isamplerCube)
+0:40 'g_tTexcdi4' (uniform itextureCube)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 'txval42' (temp 4-component vector of uint)
+0:41 textureGather (global 4-component vector of uint)
+0:41 Construct combined texture-sampler (temp usamplerCube)
+0:41 'g_tTexcdu4' (uniform utextureCube)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord)
+0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:43 Constant:
+0:43 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:45 Branch: Return with expression
+0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:47 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
+0:28 Function Parameters:
+0:? Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'txval20' (temp 4-component vector of float)
+0:33 textureGather (global 4-component vector of float)
+0:33 Construct combined texture-sampler (temp sampler2D)
+0:33 'g_tTex2df4' (uniform texture2D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of int)
+0:34 'txval21' (temp 4-component vector of int)
+0:34 textureGather (global 4-component vector of int)
+0:34 Construct combined texture-sampler (temp isampler2D)
+0:34 'g_tTex2di4' (uniform itexture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of uint)
+0:35 'txval22' (temp 4-component vector of uint)
+0:35 textureGather (global 4-component vector of uint)
+0:35 Construct combined texture-sampler (temp usampler2D)
+0:35 'g_tTex2du4' (uniform utexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 'txval40' (temp 4-component vector of float)
+0:39 textureGather (global 4-component vector of float)
+0:39 Construct combined texture-sampler (temp samplerCube)
+0:39 'g_tTexcdf4' (uniform textureCube)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 'txval41' (temp 4-component vector of int)
+0:40 textureGather (global 4-component vector of int)
+0:40 Construct combined texture-sampler (temp isamplerCube)
+0:40 'g_tTexcdi4' (uniform itextureCube)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 'txval42' (temp 4-component vector of uint)
+0:41 textureGather (global 4-component vector of uint)
+0:41 Construct combined texture-sampler (temp usamplerCube)
+0:41 'g_tTexcdu4' (uniform utextureCube)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 Pos: direct index for structure (temp 4-component vector of float FragCoord)
+0:43 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:43 Constant:
+0:43 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:45 Branch: Return with expression
+0:45 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 118
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval20"
+ Name 12 "g_tTex2df4"
+ Name 16 "g_sSamp"
+ Name 29 "txval21"
+ Name 32 "g_tTex2di4"
+ Name 44 "txval22"
+ Name 47 "g_tTex2du4"
+ Name 56 "txval40"
+ Name 59 "g_tTexcdf4"
+ Name 67 "txval41"
+ Name 70 "g_tTexcdi4"
+ Name 77 "txval42"
+ Name 80 "g_tTexcdu4"
+ Name 90 "VS_OUTPUT"
+ MemberName 90(VS_OUTPUT) 0 "Pos"
+ Name 92 "vsout"
+ Name 98 "g_sSamp2d"
+ Name 101 "g_tTex1df4a"
+ Name 102 "g_tTex1df4"
+ Name 105 "g_tTex1di4"
+ Name 108 "g_tTex1du4"
+ Name 111 "g_tTex3df4"
+ Name 114 "g_tTex3di4"
+ Name 117 "g_tTex3du4"
+ Decorate 12(g_tTex2df4) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 32(g_tTex2di4) DescriptorSet 0
+ Decorate 47(g_tTex2du4) DescriptorSet 0
+ Decorate 59(g_tTexcdf4) DescriptorSet 0
+ Decorate 70(g_tTexcdi4) DescriptorSet 0
+ Decorate 80(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 90(VS_OUTPUT) 0 BuiltIn FragCoord
+ Decorate 98(g_sSamp2d) DescriptorSet 0
+ Decorate 101(g_tTex1df4a) DescriptorSet 0
+ Decorate 101(g_tTex1df4a) Binding 1
+ Decorate 102(g_tTex1df4) DescriptorSet 0
+ Decorate 102(g_tTex1df4) Binding 0
+ Decorate 105(g_tTex1di4) DescriptorSet 0
+ Decorate 108(g_tTex1du4) DescriptorSet 0
+ Decorate 111(g_tTex3df4) DescriptorSet 0
+ Decorate 114(g_tTex3di4) DescriptorSet 0
+ Decorate 117(g_tTex3du4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: TypeInt 32 1
+ 25: 24(int) Constant 0
+ 27: TypeVector 24(int) 4
+ 28: TypePointer Function 27(ivec4)
+ 30: TypeImage 24(int) 2D sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex2di4): 31(ptr) Variable UniformConstant
+ 35: TypeSampledImage 30
+ 37: 6(float) Constant 1050253722
+ 38: 6(float) Constant 1053609165
+ 39: 20(fvec2) ConstantComposite 37 38
+ 41: TypeInt 32 0
+ 42: TypeVector 41(int) 4
+ 43: TypePointer Function 42(ivec4)
+ 45: TypeImage 41(int) 2D sampled format:Unknown
+ 46: TypePointer UniformConstant 45
+ 47(g_tTex2du4): 46(ptr) Variable UniformConstant
+ 50: TypeSampledImage 45
+ 52: 6(float) Constant 1056964608
+ 53: 6(float) Constant 1058642330
+ 54: 20(fvec2) ConstantComposite 52 53
+ 57: TypeImage 6(float) Cube sampled format:Unknown
+ 58: TypePointer UniformConstant 57
+ 59(g_tTexcdf4): 58(ptr) Variable UniformConstant
+ 62: TypeSampledImage 57
+ 64: TypeVector 6(float) 3
+ 65: 64(fvec3) ConstantComposite 21 22 37
+ 68: TypeImage 24(int) Cube sampled format:Unknown
+ 69: TypePointer UniformConstant 68
+ 70(g_tTexcdi4): 69(ptr) Variable UniformConstant
+ 73: TypeSampledImage 68
+ 75: 64(fvec3) ConstantComposite 38 52 53
+ 78: TypeImage 41(int) Cube sampled format:Unknown
+ 79: TypePointer UniformConstant 78
+ 80(g_tTexcdu4): 79(ptr) Variable UniformConstant
+ 83: TypeSampledImage 78
+ 85: 6(float) Constant 1060320051
+ 86: 6(float) Constant 1061997773
+ 87: 6(float) Constant 1063675494
+ 88: 64(fvec3) ConstantComposite 85 86 87
+ 90(VS_OUTPUT): TypeStruct 7(fvec4)
+ 91: TypePointer Function 90(VS_OUTPUT)
+ 93: 6(float) Constant 0
+ 94: 7(fvec4) ConstantComposite 93 93 93 93
+ 98(g_sSamp2d): 15(ptr) Variable UniformConstant
+ 99: TypeImage 6(float) 1D sampled format:Unknown
+ 100: TypePointer UniformConstant 99
+101(g_tTex1df4a): 100(ptr) Variable UniformConstant
+ 102(g_tTex1df4): 100(ptr) Variable UniformConstant
+ 103: TypeImage 24(int) 1D sampled format:Unknown
+ 104: TypePointer UniformConstant 103
+ 105(g_tTex1di4): 104(ptr) Variable UniformConstant
+ 106: TypeImage 41(int) 1D sampled format:Unknown
+ 107: TypePointer UniformConstant 106
+ 108(g_tTex1du4): 107(ptr) Variable UniformConstant
+ 109: TypeImage 6(float) 3D sampled format:Unknown
+ 110: TypePointer UniformConstant 109
+ 111(g_tTex3df4): 110(ptr) Variable UniformConstant
+ 112: TypeImage 24(int) 3D sampled format:Unknown
+ 113: TypePointer UniformConstant 112
+ 114(g_tTex3di4): 113(ptr) Variable UniformConstant
+ 115: TypeImage 41(int) 3D sampled format:Unknown
+ 116: TypePointer UniformConstant 115
+ 117(g_tTex3du4): 116(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval20): 8(ptr) Variable Function
+ 29(txval21): 28(ptr) Variable Function
+ 44(txval22): 43(ptr) Variable Function
+ 56(txval40): 8(ptr) Variable Function
+ 67(txval41): 28(ptr) Variable Function
+ 77(txval42): 43(ptr) Variable Function
+ 92(vsout): 91(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 26: 7(fvec4) ImageGather 19 23 25
+ Store 9(txval20) 26
+ 33: 30 Load 32(g_tTex2di4)
+ 34: 14 Load 16(g_sSamp)
+ 36: 35 SampledImage 33 34
+ 40: 27(ivec4) ImageGather 36 39 25
+ Store 29(txval21) 40
+ 48: 45 Load 47(g_tTex2du4)
+ 49: 14 Load 16(g_sSamp)
+ 51: 50 SampledImage 48 49
+ 55: 42(ivec4) ImageGather 51 54 25
+ Store 44(txval22) 55
+ 60: 57 Load 59(g_tTexcdf4)
+ 61: 14 Load 16(g_sSamp)
+ 63: 62 SampledImage 60 61
+ 66: 7(fvec4) ImageGather 63 65 25
+ Store 56(txval40) 66
+ 71: 68 Load 70(g_tTexcdi4)
+ 72: 14 Load 16(g_sSamp)
+ 74: 73 SampledImage 71 72
+ 76: 27(ivec4) ImageGather 74 75 25
+ Store 67(txval41) 76
+ 81: 78 Load 80(g_tTexcdu4)
+ 82: 14 Load 16(g_sSamp)
+ 84: 83 SampledImage 81 82
+ 89: 42(ivec4) ImageGather 84 88 25
+ Store 77(txval42) 89
+ 95: 8(ptr) AccessChain 92(vsout) 25
+ Store 95 94
+ 96:90(VS_OUTPUT) Load 92(vsout)
+ ReturnValue 96
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
new file mode 100644
index 0000000..d5a3921
--- /dev/null
+++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
@@ -0,0 +1,320 @@
+hlsl.gather.offset.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'txval20' (temp 4-component vector of float)
+0:33 textureGatherOffset (global 4-component vector of float)
+0:33 Construct combined texture-sampler (temp sampler2D)
+0:33 'g_tTex2df4' (uniform texture2D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of int)
+0:34 'txval21' (temp 4-component vector of int)
+0:34 textureGatherOffset (global 4-component vector of int)
+0:34 Construct combined texture-sampler (temp isampler2D)
+0:34 'g_tTex2di4' (uniform itexture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of uint)
+0:35 'txval22' (temp 4-component vector of uint)
+0:35 textureGatherOffset (global 4-component vector of uint)
+0:35 Construct combined texture-sampler (temp usampler2D)
+0:35 'g_tTex2du4' (uniform utexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? Constant:
+0:? 1 (const int)
+0:? -1 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 Color: direct index for structure (temp 4-component vector of float)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:41 move second child to first child (temp float)
+0:41 Depth: direct index for structure (temp float FragDepth)
+0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 1.000000
+0:43 Branch: Return with expression
+0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:45 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'txval20' (temp 4-component vector of float)
+0:33 textureGatherOffset (global 4-component vector of float)
+0:33 Construct combined texture-sampler (temp sampler2D)
+0:33 'g_tTex2df4' (uniform texture2D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of int)
+0:34 'txval21' (temp 4-component vector of int)
+0:34 textureGatherOffset (global 4-component vector of int)
+0:34 Construct combined texture-sampler (temp isampler2D)
+0:34 'g_tTex2di4' (uniform itexture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of uint)
+0:35 'txval22' (temp 4-component vector of uint)
+0:35 textureGatherOffset (global 4-component vector of uint)
+0:35 Construct combined texture-sampler (temp usampler2D)
+0:35 'g_tTex2du4' (uniform utexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? Constant:
+0:? 1 (const int)
+0:? -1 (const int)
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 Color: direct index for structure (temp 4-component vector of float)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 0 (const int)
+0:40 Constant:
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:40 1.000000
+0:41 move second child to first child (temp float)
+0:41 Depth: direct index for structure (temp float FragDepth)
+0:41 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:41 Constant:
+0:41 1 (const int)
+0:41 Constant:
+0:41 1.000000
+0:43 Branch: Return with expression
+0:43 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 100
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval20"
+ Name 12 "g_tTex2df4"
+ Name 16 "g_sSamp"
+ Name 32 "txval21"
+ Name 35 "g_tTex2di4"
+ Name 48 "txval22"
+ Name 51 "g_tTex2du4"
+ Name 62 "PS_OUTPUT"
+ MemberName 62(PS_OUTPUT) 0 "Color"
+ MemberName 62(PS_OUTPUT) 1 "Depth"
+ Name 64 "psout"
+ Name 74 "g_tTex1df4a"
+ Name 75 "g_tTex1df4"
+ Name 78 "g_tTex1di4"
+ Name 81 "g_tTex1du4"
+ Name 84 "g_tTex3df4"
+ Name 87 "g_tTex3di4"
+ Name 90 "g_tTex3du4"
+ Name 93 "g_tTexcdf4"
+ Name 96 "g_tTexcdi4"
+ Name 99 "g_tTexcdu4"
+ Decorate 12(g_tTex2df4) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 35(g_tTex2di4) DescriptorSet 0
+ Decorate 51(g_tTex2du4) DescriptorSet 0
+ MemberDecorate 62(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 74(g_tTex1df4a) DescriptorSet 0
+ Decorate 74(g_tTex1df4a) Binding 1
+ Decorate 75(g_tTex1df4) DescriptorSet 0
+ Decorate 75(g_tTex1df4) Binding 0
+ Decorate 78(g_tTex1di4) DescriptorSet 0
+ Decorate 81(g_tTex1du4) DescriptorSet 0
+ Decorate 84(g_tTex3df4) DescriptorSet 0
+ Decorate 87(g_tTex3di4) DescriptorSet 0
+ Decorate 90(g_tTex3du4) DescriptorSet 0
+ Decorate 93(g_tTexcdf4) DescriptorSet 0
+ Decorate 96(g_tTexcdi4) DescriptorSet 0
+ Decorate 99(g_tTexcdu4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: TypeInt 32 1
+ 25: TypeVector 24(int) 2
+ 26: 24(int) Constant 1
+ 27: 24(int) Constant 0
+ 28: 25(ivec2) ConstantComposite 26 27
+ 30: TypeVector 24(int) 4
+ 31: TypePointer Function 30(ivec4)
+ 33: TypeImage 24(int) 2D sampled format:Unknown
+ 34: TypePointer UniformConstant 33
+ 35(g_tTex2di4): 34(ptr) Variable UniformConstant
+ 38: TypeSampledImage 33
+ 40: 6(float) Constant 1050253722
+ 41: 6(float) Constant 1053609165
+ 42: 20(fvec2) ConstantComposite 40 41
+ 43: 25(ivec2) ConstantComposite 26 26
+ 45: TypeInt 32 0
+ 46: TypeVector 45(int) 4
+ 47: TypePointer Function 46(ivec4)
+ 49: TypeImage 45(int) 2D sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex2du4): 50(ptr) Variable UniformConstant
+ 54: TypeSampledImage 49
+ 56: 6(float) Constant 1056964608
+ 57: 6(float) Constant 1058642330
+ 58: 20(fvec2) ConstantComposite 56 57
+ 59: 24(int) Constant 4294967295
+ 60: 25(ivec2) ConstantComposite 26 59
+ 62(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 63: TypePointer Function 62(PS_OUTPUT)
+ 65: 6(float) Constant 1065353216
+ 66: 7(fvec4) ConstantComposite 65 65 65 65
+ 68: TypePointer Function 6(float)
+ 72: TypeImage 6(float) 1D sampled format:Unknown
+ 73: TypePointer UniformConstant 72
+ 74(g_tTex1df4a): 73(ptr) Variable UniformConstant
+ 75(g_tTex1df4): 73(ptr) Variable UniformConstant
+ 76: TypeImage 24(int) 1D sampled format:Unknown
+ 77: TypePointer UniformConstant 76
+ 78(g_tTex1di4): 77(ptr) Variable UniformConstant
+ 79: TypeImage 45(int) 1D sampled format:Unknown
+ 80: TypePointer UniformConstant 79
+ 81(g_tTex1du4): 80(ptr) Variable UniformConstant
+ 82: TypeImage 6(float) 3D sampled format:Unknown
+ 83: TypePointer UniformConstant 82
+ 84(g_tTex3df4): 83(ptr) Variable UniformConstant
+ 85: TypeImage 24(int) 3D sampled format:Unknown
+ 86: TypePointer UniformConstant 85
+ 87(g_tTex3di4): 86(ptr) Variable UniformConstant
+ 88: TypeImage 45(int) 3D sampled format:Unknown
+ 89: TypePointer UniformConstant 88
+ 90(g_tTex3du4): 89(ptr) Variable UniformConstant
+ 91: TypeImage 6(float) Cube sampled format:Unknown
+ 92: TypePointer UniformConstant 91
+ 93(g_tTexcdf4): 92(ptr) Variable UniformConstant
+ 94: TypeImage 24(int) Cube sampled format:Unknown
+ 95: TypePointer UniformConstant 94
+ 96(g_tTexcdi4): 95(ptr) Variable UniformConstant
+ 97: TypeImage 45(int) Cube sampled format:Unknown
+ 98: TypePointer UniformConstant 97
+ 99(g_tTexcdu4): 98(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval20): 8(ptr) Variable Function
+ 32(txval21): 31(ptr) Variable Function
+ 48(txval22): 47(ptr) Variable Function
+ 64(psout): 63(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 29: 7(fvec4) ImageGather 19 23 27 ConstOffset 28
+ Store 9(txval20) 29
+ 36: 33 Load 35(g_tTex2di4)
+ 37: 14 Load 16(g_sSamp)
+ 39: 38 SampledImage 36 37
+ 44: 30(ivec4) ImageGather 39 42 27 ConstOffset 43
+ Store 32(txval21) 44
+ 52: 49 Load 51(g_tTex2du4)
+ 53: 14 Load 16(g_sSamp)
+ 55: 54 SampledImage 52 53
+ 61: 46(ivec4) ImageGather 55 58 27 ConstOffset 60
+ Store 48(txval22) 61
+ 67: 8(ptr) AccessChain 64(psout) 27
+ Store 67 66
+ 69: 68(ptr) AccessChain 64(psout) 26
+ Store 69 65
+ 70:62(PS_OUTPUT) Load 64(psout)
+ ReturnValue 70
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
new file mode 100644
index 0000000..a1f628a
--- /dev/null
+++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
@@ -0,0 +1,285 @@
+hlsl.gather.offsetarray.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20 Function Parameters:
+0:? Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'txval20' (temp 4-component vector of float)
+0:25 textureGatherOffset (global 4-component vector of float)
+0:25 Construct combined texture-sampler (temp sampler2DArray)
+0:25 'g_tTex2df4' (uniform texture2DArray)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of int)
+0:26 'txval21' (temp 4-component vector of int)
+0:26 textureGatherOffset (global 4-component vector of int)
+0:26 Construct combined texture-sampler (temp isampler2DArray)
+0:26 'g_tTex2di4' (uniform itexture2DArray)
+0:26 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.400000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of uint)
+0:27 'txval22' (temp 4-component vector of uint)
+0:27 textureGatherOffset (global 4-component vector of uint)
+0:27 Construct combined texture-sampler (temp usampler2DArray)
+0:27 'g_tTex2du4' (uniform utexture2DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:? Constant:
+0:? 1 (const int)
+0:? -1 (const int)
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 Color: direct index for structure (temp 4-component vector of float)
+0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:33 move second child to first child (temp float)
+0:33 Depth: direct index for structure (temp float FragDepth)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1.000000
+0:35 Branch: Return with expression
+0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4' (uniform itexture1DArray)
+0:? 'g_tTex1du4' (uniform utexture1DArray)
+0:? 'g_tTex2df4' (uniform texture2DArray)
+0:? 'g_tTex2di4' (uniform itexture2DArray)
+0:? 'g_tTex2du4' (uniform utexture2DArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:37 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20 Function Parameters:
+0:? Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 'txval20' (temp 4-component vector of float)
+0:25 textureGatherOffset (global 4-component vector of float)
+0:25 Construct combined texture-sampler (temp sampler2DArray)
+0:25 'g_tTex2df4' (uniform texture2DArray)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of int)
+0:26 'txval21' (temp 4-component vector of int)
+0:26 textureGatherOffset (global 4-component vector of int)
+0:26 Construct combined texture-sampler (temp isampler2DArray)
+0:26 'g_tTex2di4' (uniform itexture2DArray)
+0:26 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.400000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of uint)
+0:27 'txval22' (temp 4-component vector of uint)
+0:27 textureGatherOffset (global 4-component vector of uint)
+0:27 Construct combined texture-sampler (temp usampler2DArray)
+0:27 'g_tTex2du4' (uniform utexture2DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:? Constant:
+0:? 1 (const int)
+0:? -1 (const int)
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 Color: direct index for structure (temp 4-component vector of float)
+0:32 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:32 1.000000
+0:33 move second child to first child (temp float)
+0:33 Depth: direct index for structure (temp float FragDepth)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 1 (const int)
+0:33 Constant:
+0:33 1.000000
+0:35 Branch: Return with expression
+0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4' (uniform itexture1DArray)
+0:? 'g_tTex1du4' (uniform utexture1DArray)
+0:? 'g_tTex2df4' (uniform texture2DArray)
+0:? 'g_tTex2di4' (uniform itexture2DArray)
+0:? 'g_tTex2du4' (uniform utexture2DArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 83
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval20"
+ Name 12 "g_tTex2df4"
+ Name 16 "g_sSamp"
+ Name 33 "txval21"
+ Name 36 "g_tTex2di4"
+ Name 48 "txval22"
+ Name 51 "g_tTex2du4"
+ Name 63 "PS_OUTPUT"
+ MemberName 63(PS_OUTPUT) 0 "Color"
+ MemberName 63(PS_OUTPUT) 1 "Depth"
+ Name 65 "psout"
+ Name 75 "g_tTex1df4a"
+ Name 76 "g_tTex1df4"
+ Name 79 "g_tTex1di4"
+ Name 82 "g_tTex1du4"
+ Decorate 12(g_tTex2df4) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 36(g_tTex2di4) DescriptorSet 0
+ Decorate 51(g_tTex2du4) DescriptorSet 0
+ MemberDecorate 63(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 75(g_tTex1df4a) DescriptorSet 0
+ Decorate 75(g_tTex1df4a) Binding 1
+ Decorate 76(g_tTex1df4) DescriptorSet 0
+ Decorate 76(g_tTex1df4) Binding 0
+ Decorate 79(g_tTex1di4) DescriptorSet 0
+ Decorate 82(g_tTex1du4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D array sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 3
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 6(float) Constant 1050253722
+ 24: 20(fvec3) ConstantComposite 21 22 23
+ 25: TypeInt 32 1
+ 26: TypeVector 25(int) 2
+ 27: 25(int) Constant 1
+ 28: 25(int) Constant 0
+ 29: 26(ivec2) ConstantComposite 27 28
+ 31: TypeVector 25(int) 4
+ 32: TypePointer Function 31(ivec4)
+ 34: TypeImage 25(int) 2D array sampled format:Unknown
+ 35: TypePointer UniformConstant 34
+ 36(g_tTex2di4): 35(ptr) Variable UniformConstant
+ 39: TypeSampledImage 34
+ 41: 6(float) Constant 1053609165
+ 42: 20(fvec3) ConstantComposite 23 41 41
+ 43: 26(ivec2) ConstantComposite 27 27
+ 45: TypeInt 32 0
+ 46: TypeVector 45(int) 4
+ 47: TypePointer Function 46(ivec4)
+ 49: TypeImage 45(int) 2D array sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex2du4): 50(ptr) Variable UniformConstant
+ 54: TypeSampledImage 49
+ 56: 6(float) Constant 1056964608
+ 57: 6(float) Constant 1058642330
+ 58: 6(float) Constant 1060320051
+ 59: 20(fvec3) ConstantComposite 56 57 58
+ 60: 25(int) Constant 4294967295
+ 61: 26(ivec2) ConstantComposite 27 60
+ 63(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 64: TypePointer Function 63(PS_OUTPUT)
+ 66: 6(float) Constant 1065353216
+ 67: 7(fvec4) ConstantComposite 66 66 66 66
+ 69: TypePointer Function 6(float)
+ 73: TypeImage 6(float) 1D array sampled format:Unknown
+ 74: TypePointer UniformConstant 73
+ 75(g_tTex1df4a): 74(ptr) Variable UniformConstant
+ 76(g_tTex1df4): 74(ptr) Variable UniformConstant
+ 77: TypeImage 25(int) 1D array sampled format:Unknown
+ 78: TypePointer UniformConstant 77
+ 79(g_tTex1di4): 78(ptr) Variable UniformConstant
+ 80: TypeImage 45(int) 1D array sampled format:Unknown
+ 81: TypePointer UniformConstant 80
+ 82(g_tTex1du4): 81(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval20): 8(ptr) Variable Function
+ 33(txval21): 32(ptr) Variable Function
+ 48(txval22): 47(ptr) Variable Function
+ 65(psout): 64(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 30: 7(fvec4) ImageGather 19 24 28 ConstOffset 29
+ Store 9(txval20) 30
+ 37: 34 Load 36(g_tTex2di4)
+ 38: 14 Load 16(g_sSamp)
+ 40: 39 SampledImage 37 38
+ 44: 31(ivec4) ImageGather 40 42 28 ConstOffset 43
+ Store 33(txval21) 44
+ 52: 49 Load 51(g_tTex2du4)
+ 53: 14 Load 16(g_sSamp)
+ 55: 54 SampledImage 52 53
+ 62: 46(ivec4) ImageGather 55 59 28 ConstOffset 61
+ Store 48(txval22) 62
+ 68: 8(ptr) AccessChain 65(psout) 28
+ Store 68 67
+ 70: 69(ptr) AccessChain 65(psout) 27
+ Store 70 66
+ 71:63(PS_OUTPUT) Load 65(psout)
+ ReturnValue 71
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
new file mode 100644
index 0000000..cad56b6
--- /dev/null
+++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
@@ -0,0 +1,884 @@
+hlsl.gatherRGBA.array.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'txval00' (temp 4-component vector of float)
+0:33 textureGather (global 4-component vector of float)
+0:33 Construct combined texture-sampler (temp sampler2DArray)
+0:33 'g_tTex2df4a' (uniform texture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:33 'c3' (uniform 3-component vector of float)
+0:33 Constant:
+0:33 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of int)
+0:34 'txval01' (temp 4-component vector of int)
+0:34 textureGather (global 4-component vector of int)
+0:34 Construct combined texture-sampler (temp isampler2DArray)
+0:34 'g_tTex2di4a' (uniform itexture2DArray)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:34 'c3' (uniform 3-component vector of float)
+0:34 Constant:
+0:34 0 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of uint)
+0:35 'txval02' (temp 4-component vector of uint)
+0:35 textureGather (global 4-component vector of uint)
+0:35 Construct combined texture-sampler (temp usampler2DArray)
+0:35 'g_tTex2du4a' (uniform utexture2DArray)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:35 'c3' (uniform 3-component vector of float)
+0:35 Constant:
+0:35 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'txval10' (temp 4-component vector of float)
+0:37 textureGather (global 4-component vector of float)
+0:37 Construct combined texture-sampler (temp sampler2DArray)
+0:37 'g_tTex2df4a' (uniform texture2DArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:37 'c3' (uniform 3-component vector of float)
+0:37 Constant:
+0:37 1 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of int)
+0:38 'txval11' (temp 4-component vector of int)
+0:38 textureGather (global 4-component vector of int)
+0:38 Construct combined texture-sampler (temp isampler2DArray)
+0:38 'g_tTex2di4a' (uniform itexture2DArray)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:38 'c3' (uniform 3-component vector of float)
+0:38 Constant:
+0:38 1 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of uint)
+0:39 'txval12' (temp 4-component vector of uint)
+0:39 textureGather (global 4-component vector of uint)
+0:39 Construct combined texture-sampler (temp usampler2DArray)
+0:39 'g_tTex2du4a' (uniform utexture2DArray)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:39 'c3' (uniform 3-component vector of float)
+0:39 Constant:
+0:39 1 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of float)
+0:41 'txval20' (temp 4-component vector of float)
+0:41 textureGather (global 4-component vector of float)
+0:41 Construct combined texture-sampler (temp sampler2DArray)
+0:41 'g_tTex2df4a' (uniform texture2DArray)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:41 'c3' (uniform 3-component vector of float)
+0:41 Constant:
+0:41 2 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of int)
+0:42 'txval21' (temp 4-component vector of int)
+0:42 textureGather (global 4-component vector of int)
+0:42 Construct combined texture-sampler (temp isampler2DArray)
+0:42 'g_tTex2di4a' (uniform itexture2DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 'c3' (uniform 3-component vector of float)
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of uint)
+0:43 'txval22' (temp 4-component vector of uint)
+0:43 textureGather (global 4-component vector of uint)
+0:43 Construct combined texture-sampler (temp usampler2DArray)
+0:43 'g_tTex2du4a' (uniform utexture2DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 'c3' (uniform 3-component vector of float)
+0:43 Constant:
+0:43 2 (const int)
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 'txval30' (temp 4-component vector of float)
+0:45 textureGather (global 4-component vector of float)
+0:45 Construct combined texture-sampler (temp sampler2DArray)
+0:45 'g_tTex2df4a' (uniform texture2DArray)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:45 'c3' (uniform 3-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of int)
+0:46 'txval31' (temp 4-component vector of int)
+0:46 textureGather (global 4-component vector of int)
+0:46 Construct combined texture-sampler (temp isampler2DArray)
+0:46 'g_tTex2di4a' (uniform itexture2DArray)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:46 'c3' (uniform 3-component vector of float)
+0:46 Constant:
+0:46 3 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 4-component vector of uint)
+0:47 'txval32' (temp 4-component vector of uint)
+0:47 textureGather (global 4-component vector of uint)
+0:47 Construct combined texture-sampler (temp usampler2DArray)
+0:47 'g_tTex2du4a' (uniform utexture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 'c3' (uniform 3-component vector of float)
+0:47 Constant:
+0:47 3 (const int)
+0:51 Sequence
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 'txval40' (temp 4-component vector of float)
+0:51 textureGather (global 4-component vector of float)
+0:51 Construct combined texture-sampler (temp samplerCubeArray)
+0:51 'g_tTexcdf4a' (uniform textureCubeArray)
+0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:51 'c4' (uniform 4-component vector of float)
+0:51 Constant:
+0:51 0 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of int)
+0:52 'txval41' (temp 4-component vector of int)
+0:52 textureGather (global 4-component vector of int)
+0:52 Construct combined texture-sampler (temp isamplerCubeArray)
+0:52 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 'c4' (uniform 4-component vector of float)
+0:52 Constant:
+0:52 0 (const int)
+0:53 Sequence
+0:53 move second child to first child (temp 4-component vector of uint)
+0:53 'txval42' (temp 4-component vector of uint)
+0:53 textureGather (global 4-component vector of uint)
+0:53 Construct combined texture-sampler (temp usamplerCubeArray)
+0:53 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 'c4' (uniform 4-component vector of float)
+0:53 Constant:
+0:53 0 (const int)
+0:55 Sequence
+0:55 move second child to first child (temp 4-component vector of float)
+0:55 'txval50' (temp 4-component vector of float)
+0:55 textureGather (global 4-component vector of float)
+0:55 Construct combined texture-sampler (temp samplerCubeArray)
+0:55 'g_tTexcdf4a' (uniform textureCubeArray)
+0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:55 'c4' (uniform 4-component vector of float)
+0:55 Constant:
+0:55 1 (const int)
+0:56 Sequence
+0:56 move second child to first child (temp 4-component vector of int)
+0:56 'txval51' (temp 4-component vector of int)
+0:56 textureGather (global 4-component vector of int)
+0:56 Construct combined texture-sampler (temp isamplerCubeArray)
+0:56 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:56 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:56 'c4' (uniform 4-component vector of float)
+0:56 Constant:
+0:56 1 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp 4-component vector of uint)
+0:57 'txval52' (temp 4-component vector of uint)
+0:57 textureGather (global 4-component vector of uint)
+0:57 Construct combined texture-sampler (temp usamplerCubeArray)
+0:57 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:57 'c4' (uniform 4-component vector of float)
+0:57 Constant:
+0:57 1 (const int)
+0:59 Sequence
+0:59 move second child to first child (temp 4-component vector of float)
+0:59 'txval60' (temp 4-component vector of float)
+0:59 textureGather (global 4-component vector of float)
+0:59 Construct combined texture-sampler (temp samplerCubeArray)
+0:59 'g_tTexcdf4a' (uniform textureCubeArray)
+0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:59 'c4' (uniform 4-component vector of float)
+0:59 Constant:
+0:59 2 (const int)
+0:60 Sequence
+0:60 move second child to first child (temp 4-component vector of int)
+0:60 'txval61' (temp 4-component vector of int)
+0:60 textureGather (global 4-component vector of int)
+0:60 Construct combined texture-sampler (temp isamplerCubeArray)
+0:60 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:60 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:60 'c4' (uniform 4-component vector of float)
+0:60 Constant:
+0:60 2 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 4-component vector of uint)
+0:61 'txval62' (temp 4-component vector of uint)
+0:61 textureGather (global 4-component vector of uint)
+0:61 Construct combined texture-sampler (temp usamplerCubeArray)
+0:61 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:61 'c4' (uniform 4-component vector of float)
+0:61 Constant:
+0:61 2 (const int)
+0:63 Sequence
+0:63 move second child to first child (temp 4-component vector of float)
+0:63 'txval70' (temp 4-component vector of float)
+0:63 textureGather (global 4-component vector of float)
+0:63 Construct combined texture-sampler (temp samplerCubeArray)
+0:63 'g_tTexcdf4a' (uniform textureCubeArray)
+0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:63 'c4' (uniform 4-component vector of float)
+0:63 Constant:
+0:63 3 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp 4-component vector of int)
+0:64 'txval71' (temp 4-component vector of int)
+0:64 textureGather (global 4-component vector of int)
+0:64 Construct combined texture-sampler (temp isamplerCubeArray)
+0:64 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:64 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:64 'c4' (uniform 4-component vector of float)
+0:64 Constant:
+0:64 3 (const int)
+0:65 Sequence
+0:65 move second child to first child (temp 4-component vector of uint)
+0:65 'txval72' (temp 4-component vector of uint)
+0:65 textureGather (global 4-component vector of uint)
+0:65 Construct combined texture-sampler (temp usamplerCubeArray)
+0:65 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:65 'c4' (uniform 4-component vector of float)
+0:65 Constant:
+0:65 3 (const int)
+0:67 move second child to first child (temp 4-component vector of float)
+0:67 Color: direct index for structure (temp 4-component vector of float)
+0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:67 Constant:
+0:67 0 (const int)
+0:67 Constant:
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:68 move second child to first child (temp float)
+0:68 Depth: direct index for structure (temp float FragDepth)
+0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:68 Constant:
+0:68 1 (const int)
+0:68 Constant:
+0:68 1.000000
+0:70 Branch: Return with expression
+0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 'txval00' (temp 4-component vector of float)
+0:33 textureGather (global 4-component vector of float)
+0:33 Construct combined texture-sampler (temp sampler2DArray)
+0:33 'g_tTex2df4a' (uniform texture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:33 'c3' (uniform 3-component vector of float)
+0:33 Constant:
+0:33 0 (const int)
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of int)
+0:34 'txval01' (temp 4-component vector of int)
+0:34 textureGather (global 4-component vector of int)
+0:34 Construct combined texture-sampler (temp isampler2DArray)
+0:34 'g_tTex2di4a' (uniform itexture2DArray)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:34 'c3' (uniform 3-component vector of float)
+0:34 Constant:
+0:34 0 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of uint)
+0:35 'txval02' (temp 4-component vector of uint)
+0:35 textureGather (global 4-component vector of uint)
+0:35 Construct combined texture-sampler (temp usampler2DArray)
+0:35 'g_tTex2du4a' (uniform utexture2DArray)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:35 'c3' (uniform 3-component vector of float)
+0:35 Constant:
+0:35 0 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of float)
+0:37 'txval10' (temp 4-component vector of float)
+0:37 textureGather (global 4-component vector of float)
+0:37 Construct combined texture-sampler (temp sampler2DArray)
+0:37 'g_tTex2df4a' (uniform texture2DArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:37 'c3' (uniform 3-component vector of float)
+0:37 Constant:
+0:37 1 (const int)
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of int)
+0:38 'txval11' (temp 4-component vector of int)
+0:38 textureGather (global 4-component vector of int)
+0:38 Construct combined texture-sampler (temp isampler2DArray)
+0:38 'g_tTex2di4a' (uniform itexture2DArray)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:38 'c3' (uniform 3-component vector of float)
+0:38 Constant:
+0:38 1 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of uint)
+0:39 'txval12' (temp 4-component vector of uint)
+0:39 textureGather (global 4-component vector of uint)
+0:39 Construct combined texture-sampler (temp usampler2DArray)
+0:39 'g_tTex2du4a' (uniform utexture2DArray)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:39 'c3' (uniform 3-component vector of float)
+0:39 Constant:
+0:39 1 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of float)
+0:41 'txval20' (temp 4-component vector of float)
+0:41 textureGather (global 4-component vector of float)
+0:41 Construct combined texture-sampler (temp sampler2DArray)
+0:41 'g_tTex2df4a' (uniform texture2DArray)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:41 'c3' (uniform 3-component vector of float)
+0:41 Constant:
+0:41 2 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of int)
+0:42 'txval21' (temp 4-component vector of int)
+0:42 textureGather (global 4-component vector of int)
+0:42 Construct combined texture-sampler (temp isampler2DArray)
+0:42 'g_tTex2di4a' (uniform itexture2DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 'c3' (uniform 3-component vector of float)
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of uint)
+0:43 'txval22' (temp 4-component vector of uint)
+0:43 textureGather (global 4-component vector of uint)
+0:43 Construct combined texture-sampler (temp usampler2DArray)
+0:43 'g_tTex2du4a' (uniform utexture2DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 'c3' (uniform 3-component vector of float)
+0:43 Constant:
+0:43 2 (const int)
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 'txval30' (temp 4-component vector of float)
+0:45 textureGather (global 4-component vector of float)
+0:45 Construct combined texture-sampler (temp sampler2DArray)
+0:45 'g_tTex2df4a' (uniform texture2DArray)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:45 'c3' (uniform 3-component vector of float)
+0:45 Constant:
+0:45 3 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of int)
+0:46 'txval31' (temp 4-component vector of int)
+0:46 textureGather (global 4-component vector of int)
+0:46 Construct combined texture-sampler (temp isampler2DArray)
+0:46 'g_tTex2di4a' (uniform itexture2DArray)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:46 'c3' (uniform 3-component vector of float)
+0:46 Constant:
+0:46 3 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 4-component vector of uint)
+0:47 'txval32' (temp 4-component vector of uint)
+0:47 textureGather (global 4-component vector of uint)
+0:47 Construct combined texture-sampler (temp usampler2DArray)
+0:47 'g_tTex2du4a' (uniform utexture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 'c3' (uniform 3-component vector of float)
+0:47 Constant:
+0:47 3 (const int)
+0:51 Sequence
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 'txval40' (temp 4-component vector of float)
+0:51 textureGather (global 4-component vector of float)
+0:51 Construct combined texture-sampler (temp samplerCubeArray)
+0:51 'g_tTexcdf4a' (uniform textureCubeArray)
+0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:51 'c4' (uniform 4-component vector of float)
+0:51 Constant:
+0:51 0 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of int)
+0:52 'txval41' (temp 4-component vector of int)
+0:52 textureGather (global 4-component vector of int)
+0:52 Construct combined texture-sampler (temp isamplerCubeArray)
+0:52 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 'c4' (uniform 4-component vector of float)
+0:52 Constant:
+0:52 0 (const int)
+0:53 Sequence
+0:53 move second child to first child (temp 4-component vector of uint)
+0:53 'txval42' (temp 4-component vector of uint)
+0:53 textureGather (global 4-component vector of uint)
+0:53 Construct combined texture-sampler (temp usamplerCubeArray)
+0:53 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 'c4' (uniform 4-component vector of float)
+0:53 Constant:
+0:53 0 (const int)
+0:55 Sequence
+0:55 move second child to first child (temp 4-component vector of float)
+0:55 'txval50' (temp 4-component vector of float)
+0:55 textureGather (global 4-component vector of float)
+0:55 Construct combined texture-sampler (temp samplerCubeArray)
+0:55 'g_tTexcdf4a' (uniform textureCubeArray)
+0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:55 'c4' (uniform 4-component vector of float)
+0:55 Constant:
+0:55 1 (const int)
+0:56 Sequence
+0:56 move second child to first child (temp 4-component vector of int)
+0:56 'txval51' (temp 4-component vector of int)
+0:56 textureGather (global 4-component vector of int)
+0:56 Construct combined texture-sampler (temp isamplerCubeArray)
+0:56 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:56 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:56 'c4' (uniform 4-component vector of float)
+0:56 Constant:
+0:56 1 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp 4-component vector of uint)
+0:57 'txval52' (temp 4-component vector of uint)
+0:57 textureGather (global 4-component vector of uint)
+0:57 Construct combined texture-sampler (temp usamplerCubeArray)
+0:57 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:57 'c4' (uniform 4-component vector of float)
+0:57 Constant:
+0:57 1 (const int)
+0:59 Sequence
+0:59 move second child to first child (temp 4-component vector of float)
+0:59 'txval60' (temp 4-component vector of float)
+0:59 textureGather (global 4-component vector of float)
+0:59 Construct combined texture-sampler (temp samplerCubeArray)
+0:59 'g_tTexcdf4a' (uniform textureCubeArray)
+0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:59 'c4' (uniform 4-component vector of float)
+0:59 Constant:
+0:59 2 (const int)
+0:60 Sequence
+0:60 move second child to first child (temp 4-component vector of int)
+0:60 'txval61' (temp 4-component vector of int)
+0:60 textureGather (global 4-component vector of int)
+0:60 Construct combined texture-sampler (temp isamplerCubeArray)
+0:60 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:60 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:60 'c4' (uniform 4-component vector of float)
+0:60 Constant:
+0:60 2 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 4-component vector of uint)
+0:61 'txval62' (temp 4-component vector of uint)
+0:61 textureGather (global 4-component vector of uint)
+0:61 Construct combined texture-sampler (temp usamplerCubeArray)
+0:61 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:61 'c4' (uniform 4-component vector of float)
+0:61 Constant:
+0:61 2 (const int)
+0:63 Sequence
+0:63 move second child to first child (temp 4-component vector of float)
+0:63 'txval70' (temp 4-component vector of float)
+0:63 textureGather (global 4-component vector of float)
+0:63 Construct combined texture-sampler (temp samplerCubeArray)
+0:63 'g_tTexcdf4a' (uniform textureCubeArray)
+0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:63 'c4' (uniform 4-component vector of float)
+0:63 Constant:
+0:63 3 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp 4-component vector of int)
+0:64 'txval71' (temp 4-component vector of int)
+0:64 textureGather (global 4-component vector of int)
+0:64 Construct combined texture-sampler (temp isamplerCubeArray)
+0:64 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:64 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:64 'c4' (uniform 4-component vector of float)
+0:64 Constant:
+0:64 3 (const int)
+0:65 Sequence
+0:65 move second child to first child (temp 4-component vector of uint)
+0:65 'txval72' (temp 4-component vector of uint)
+0:65 textureGather (global 4-component vector of uint)
+0:65 Construct combined texture-sampler (temp usamplerCubeArray)
+0:65 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:65 'c4' (uniform 4-component vector of float)
+0:65 Constant:
+0:65 3 (const int)
+0:67 move second child to first child (temp 4-component vector of float)
+0:67 Color: direct index for structure (temp 4-component vector of float)
+0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:67 Constant:
+0:67 0 (const int)
+0:67 Constant:
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:68 move second child to first child (temp float)
+0:68 Depth: direct index for structure (temp float FragDepth)
+0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:68 Constant:
+0:68 1 (const int)
+0:68 Constant:
+0:68 1.000000
+0:70 Branch: Return with expression
+0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 220
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval00"
+ Name 12 "g_tTex2df4a"
+ Name 16 "g_sSamp"
+ Name 22 "c3"
+ Name 29 "txval01"
+ Name 32 "g_tTex2di4a"
+ Name 42 "txval02"
+ Name 45 "g_tTex2du4a"
+ Name 52 "txval10"
+ Name 59 "txval11"
+ Name 65 "txval12"
+ Name 71 "txval20"
+ Name 78 "txval21"
+ Name 84 "txval22"
+ Name 90 "txval30"
+ Name 97 "txval31"
+ Name 103 "txval32"
+ Name 109 "txval40"
+ Name 112 "g_tTexcdf4a"
+ Name 118 "c4"
+ Name 121 "txval41"
+ Name 124 "g_tTexcdi4a"
+ Name 131 "txval42"
+ Name 134 "g_tTexcdu4a"
+ Name 141 "txval50"
+ Name 147 "txval51"
+ Name 153 "txval52"
+ Name 159 "txval60"
+ Name 165 "txval61"
+ Name 171 "txval62"
+ Name 177 "txval70"
+ Name 183 "txval71"
+ Name 189 "txval72"
+ Name 195 "PS_OUTPUT"
+ MemberName 195(PS_OUTPUT) 0 "Color"
+ MemberName 195(PS_OUTPUT) 1 "Depth"
+ Name 197 "psout"
+ Name 205 "g_sSamp2d"
+ Name 208 "g_tTex1df4a"
+ Name 211 "g_tTex1di4a"
+ Name 214 "g_tTex1du4a"
+ Name 216 "c1"
+ Name 219 "c2"
+ Decorate 12(g_tTex2df4a) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 32(g_tTex2di4a) DescriptorSet 0
+ Decorate 45(g_tTex2du4a) DescriptorSet 0
+ Decorate 112(g_tTexcdf4a) DescriptorSet 0
+ Decorate 124(g_tTexcdi4a) DescriptorSet 0
+ Decorate 134(g_tTexcdu4a) DescriptorSet 0
+ MemberDecorate 195(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 205(g_sSamp2d) DescriptorSet 0
+ Decorate 208(g_tTex1df4a) DescriptorSet 0
+ Decorate 208(g_tTex1df4a) Binding 0
+ Decorate 211(g_tTex1di4a) DescriptorSet 0
+ Decorate 214(g_tTex1du4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D array sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4a): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 3
+ 21: TypePointer UniformConstant 20(fvec3)
+ 22(c3): 21(ptr) Variable UniformConstant
+ 24: TypeInt 32 1
+ 25: 24(int) Constant 0
+ 27: TypeVector 24(int) 4
+ 28: TypePointer Function 27(ivec4)
+ 30: TypeImage 24(int) 2D array sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex2di4a): 31(ptr) Variable UniformConstant
+ 35: TypeSampledImage 30
+ 39: TypeInt 32 0
+ 40: TypeVector 39(int) 4
+ 41: TypePointer Function 40(ivec4)
+ 43: TypeImage 39(int) 2D array sampled format:Unknown
+ 44: TypePointer UniformConstant 43
+ 45(g_tTex2du4a): 44(ptr) Variable UniformConstant
+ 48: TypeSampledImage 43
+ 57: 24(int) Constant 1
+ 76: 24(int) Constant 2
+ 95: 24(int) Constant 3
+ 110: TypeImage 6(float) Cube array sampled format:Unknown
+ 111: TypePointer UniformConstant 110
+112(g_tTexcdf4a): 111(ptr) Variable UniformConstant
+ 115: TypeSampledImage 110
+ 117: TypePointer UniformConstant 7(fvec4)
+ 118(c4): 117(ptr) Variable UniformConstant
+ 122: TypeImage 24(int) Cube array sampled format:Unknown
+ 123: TypePointer UniformConstant 122
+124(g_tTexcdi4a): 123(ptr) Variable UniformConstant
+ 127: TypeSampledImage 122
+ 132: TypeImage 39(int) Cube array sampled format:Unknown
+ 133: TypePointer UniformConstant 132
+134(g_tTexcdu4a): 133(ptr) Variable UniformConstant
+ 137: TypeSampledImage 132
+ 195(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 196: TypePointer Function 195(PS_OUTPUT)
+ 198: 6(float) Constant 1065353216
+ 199: 7(fvec4) ConstantComposite 198 198 198 198
+ 201: TypePointer Function 6(float)
+ 205(g_sSamp2d): 15(ptr) Variable UniformConstant
+ 206: TypeImage 6(float) 1D array sampled format:Unknown
+ 207: TypePointer UniformConstant 206
+208(g_tTex1df4a): 207(ptr) Variable UniformConstant
+ 209: TypeImage 24(int) 1D array sampled format:Unknown
+ 210: TypePointer UniformConstant 209
+211(g_tTex1di4a): 210(ptr) Variable UniformConstant
+ 212: TypeImage 39(int) 1D array sampled format:Unknown
+ 213: TypePointer UniformConstant 212
+214(g_tTex1du4a): 213(ptr) Variable UniformConstant
+ 215: TypePointer UniformConstant 6(float)
+ 216(c1): 215(ptr) Variable UniformConstant
+ 217: TypeVector 6(float) 2
+ 218: TypePointer UniformConstant 217(fvec2)
+ 219(c2): 218(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval00): 8(ptr) Variable Function
+ 29(txval01): 28(ptr) Variable Function
+ 42(txval02): 41(ptr) Variable Function
+ 52(txval10): 8(ptr) Variable Function
+ 59(txval11): 28(ptr) Variable Function
+ 65(txval12): 41(ptr) Variable Function
+ 71(txval20): 8(ptr) Variable Function
+ 78(txval21): 28(ptr) Variable Function
+ 84(txval22): 41(ptr) Variable Function
+ 90(txval30): 8(ptr) Variable Function
+ 97(txval31): 28(ptr) Variable Function
+ 103(txval32): 41(ptr) Variable Function
+ 109(txval40): 8(ptr) Variable Function
+ 121(txval41): 28(ptr) Variable Function
+ 131(txval42): 41(ptr) Variable Function
+ 141(txval50): 8(ptr) Variable Function
+ 147(txval51): 28(ptr) Variable Function
+ 153(txval52): 41(ptr) Variable Function
+ 159(txval60): 8(ptr) Variable Function
+ 165(txval61): 28(ptr) Variable Function
+ 171(txval62): 41(ptr) Variable Function
+ 177(txval70): 8(ptr) Variable Function
+ 183(txval71): 28(ptr) Variable Function
+ 189(txval72): 41(ptr) Variable Function
+ 197(psout): 196(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4a)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 23: 20(fvec3) Load 22(c3)
+ 26: 7(fvec4) ImageGather 19 23 25
+ Store 9(txval00) 26
+ 33: 30 Load 32(g_tTex2di4a)
+ 34: 14 Load 16(g_sSamp)
+ 36: 35 SampledImage 33 34
+ 37: 20(fvec3) Load 22(c3)
+ 38: 27(ivec4) ImageGather 36 37 25
+ Store 29(txval01) 38
+ 46: 43 Load 45(g_tTex2du4a)
+ 47: 14 Load 16(g_sSamp)
+ 49: 48 SampledImage 46 47
+ 50: 20(fvec3) Load 22(c3)
+ 51: 40(ivec4) ImageGather 49 50 25
+ Store 42(txval02) 51
+ 53: 10 Load 12(g_tTex2df4a)
+ 54: 14 Load 16(g_sSamp)
+ 55: 18 SampledImage 53 54
+ 56: 20(fvec3) Load 22(c3)
+ 58: 7(fvec4) ImageGather 55 56 57
+ Store 52(txval10) 58
+ 60: 30 Load 32(g_tTex2di4a)
+ 61: 14 Load 16(g_sSamp)
+ 62: 35 SampledImage 60 61
+ 63: 20(fvec3) Load 22(c3)
+ 64: 27(ivec4) ImageGather 62 63 57
+ Store 59(txval11) 64
+ 66: 43 Load 45(g_tTex2du4a)
+ 67: 14 Load 16(g_sSamp)
+ 68: 48 SampledImage 66 67
+ 69: 20(fvec3) Load 22(c3)
+ 70: 40(ivec4) ImageGather 68 69 57
+ Store 65(txval12) 70
+ 72: 10 Load 12(g_tTex2df4a)
+ 73: 14 Load 16(g_sSamp)
+ 74: 18 SampledImage 72 73
+ 75: 20(fvec3) Load 22(c3)
+ 77: 7(fvec4) ImageGather 74 75 76
+ Store 71(txval20) 77
+ 79: 30 Load 32(g_tTex2di4a)
+ 80: 14 Load 16(g_sSamp)
+ 81: 35 SampledImage 79 80
+ 82: 20(fvec3) Load 22(c3)
+ 83: 27(ivec4) ImageGather 81 82 76
+ Store 78(txval21) 83
+ 85: 43 Load 45(g_tTex2du4a)
+ 86: 14 Load 16(g_sSamp)
+ 87: 48 SampledImage 85 86
+ 88: 20(fvec3) Load 22(c3)
+ 89: 40(ivec4) ImageGather 87 88 76
+ Store 84(txval22) 89
+ 91: 10 Load 12(g_tTex2df4a)
+ 92: 14 Load 16(g_sSamp)
+ 93: 18 SampledImage 91 92
+ 94: 20(fvec3) Load 22(c3)
+ 96: 7(fvec4) ImageGather 93 94 95
+ Store 90(txval30) 96
+ 98: 30 Load 32(g_tTex2di4a)
+ 99: 14 Load 16(g_sSamp)
+ 100: 35 SampledImage 98 99
+ 101: 20(fvec3) Load 22(c3)
+ 102: 27(ivec4) ImageGather 100 101 95
+ Store 97(txval31) 102
+ 104: 43 Load 45(g_tTex2du4a)
+ 105: 14 Load 16(g_sSamp)
+ 106: 48 SampledImage 104 105
+ 107: 20(fvec3) Load 22(c3)
+ 108: 40(ivec4) ImageGather 106 107 95
+ Store 103(txval32) 108
+ 113: 110 Load 112(g_tTexcdf4a)
+ 114: 14 Load 16(g_sSamp)
+ 116: 115 SampledImage 113 114
+ 119: 7(fvec4) Load 118(c4)
+ 120: 7(fvec4) ImageGather 116 119 25
+ Store 109(txval40) 120
+ 125: 122 Load 124(g_tTexcdi4a)
+ 126: 14 Load 16(g_sSamp)
+ 128: 127 SampledImage 125 126
+ 129: 7(fvec4) Load 118(c4)
+ 130: 27(ivec4) ImageGather 128 129 25
+ Store 121(txval41) 130
+ 135: 132 Load 134(g_tTexcdu4a)
+ 136: 14 Load 16(g_sSamp)
+ 138: 137 SampledImage 135 136
+ 139: 7(fvec4) Load 118(c4)
+ 140: 40(ivec4) ImageGather 138 139 25
+ Store 131(txval42) 140
+ 142: 110 Load 112(g_tTexcdf4a)
+ 143: 14 Load 16(g_sSamp)
+ 144: 115 SampledImage 142 143
+ 145: 7(fvec4) Load 118(c4)
+ 146: 7(fvec4) ImageGather 144 145 57
+ Store 141(txval50) 146
+ 148: 122 Load 124(g_tTexcdi4a)
+ 149: 14 Load 16(g_sSamp)
+ 150: 127 SampledImage 148 149
+ 151: 7(fvec4) Load 118(c4)
+ 152: 27(ivec4) ImageGather 150 151 57
+ Store 147(txval51) 152
+ 154: 132 Load 134(g_tTexcdu4a)
+ 155: 14 Load 16(g_sSamp)
+ 156: 137 SampledImage 154 155
+ 157: 7(fvec4) Load 118(c4)
+ 158: 40(ivec4) ImageGather 156 157 57
+ Store 153(txval52) 158
+ 160: 110 Load 112(g_tTexcdf4a)
+ 161: 14 Load 16(g_sSamp)
+ 162: 115 SampledImage 160 161
+ 163: 7(fvec4) Load 118(c4)
+ 164: 7(fvec4) ImageGather 162 163 76
+ Store 159(txval60) 164
+ 166: 122 Load 124(g_tTexcdi4a)
+ 167: 14 Load 16(g_sSamp)
+ 168: 127 SampledImage 166 167
+ 169: 7(fvec4) Load 118(c4)
+ 170: 27(ivec4) ImageGather 168 169 76
+ Store 165(txval61) 170
+ 172: 132 Load 134(g_tTexcdu4a)
+ 173: 14 Load 16(g_sSamp)
+ 174: 137 SampledImage 172 173
+ 175: 7(fvec4) Load 118(c4)
+ 176: 40(ivec4) ImageGather 174 175 76
+ Store 171(txval62) 176
+ 178: 110 Load 112(g_tTexcdf4a)
+ 179: 14 Load 16(g_sSamp)
+ 180: 115 SampledImage 178 179
+ 181: 7(fvec4) Load 118(c4)
+ 182: 7(fvec4) ImageGather 180 181 95
+ Store 177(txval70) 182
+ 184: 122 Load 124(g_tTexcdi4a)
+ 185: 14 Load 16(g_sSamp)
+ 186: 127 SampledImage 184 185
+ 187: 7(fvec4) Load 118(c4)
+ 188: 27(ivec4) ImageGather 186 187 95
+ Store 183(txval71) 188
+ 190: 132 Load 134(g_tTexcdu4a)
+ 191: 14 Load 16(g_sSamp)
+ 192: 137 SampledImage 190 191
+ 193: 7(fvec4) Load 118(c4)
+ 194: 40(ivec4) ImageGather 192 193 95
+ Store 189(txval72) 194
+ 200: 8(ptr) AccessChain 197(psout) 25
+ Store 200 199
+ 202: 201(ptr) AccessChain 197(psout) 57
+ Store 202 198
+ 203:195(PS_OUTPUT) Load 197(psout)
+ ReturnValue 203
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
new file mode 100644
index 0000000..8fd9691
--- /dev/null
+++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
@@ -0,0 +1,910 @@
+hlsl.gatherRGBA.basic.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34 Function Parameters:
+0:? Sequence
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 'txval00' (temp 4-component vector of float)
+0:39 textureGather (global 4-component vector of float)
+0:39 Construct combined texture-sampler (temp sampler2D)
+0:39 'g_tTex2df4' (uniform texture2D)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:39 'c2' (uniform 2-component vector of float)
+0:39 Constant:
+0:39 0 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 'txval01' (temp 4-component vector of int)
+0:40 textureGather (global 4-component vector of int)
+0:40 Construct combined texture-sampler (temp isampler2D)
+0:40 'g_tTex2di4' (uniform itexture2D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:40 'c2' (uniform 2-component vector of float)
+0:40 Constant:
+0:40 0 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 'txval02' (temp 4-component vector of uint)
+0:41 textureGather (global 4-component vector of uint)
+0:41 Construct combined texture-sampler (temp usampler2D)
+0:41 'g_tTex2du4' (uniform utexture2D)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:41 'c2' (uniform 2-component vector of float)
+0:41 Constant:
+0:41 0 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'txval10' (temp 4-component vector of float)
+0:43 textureGather (global 4-component vector of float)
+0:43 Construct combined texture-sampler (temp sampler2D)
+0:43 'g_tTex2df4' (uniform texture2D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 'c2' (uniform 2-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of int)
+0:44 'txval11' (temp 4-component vector of int)
+0:44 textureGather (global 4-component vector of int)
+0:44 Construct combined texture-sampler (temp isampler2D)
+0:44 'g_tTex2di4' (uniform itexture2D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 'c2' (uniform 2-component vector of float)
+0:44 Constant:
+0:44 1 (const int)
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of uint)
+0:45 'txval12' (temp 4-component vector of uint)
+0:45 textureGather (global 4-component vector of uint)
+0:45 Construct combined texture-sampler (temp usampler2D)
+0:45 'g_tTex2du4' (uniform utexture2D)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:45 'c2' (uniform 2-component vector of float)
+0:45 Constant:
+0:45 1 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 'txval20' (temp 4-component vector of float)
+0:47 textureGather (global 4-component vector of float)
+0:47 Construct combined texture-sampler (temp sampler2D)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 'c2' (uniform 2-component vector of float)
+0:47 Constant:
+0:47 2 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of int)
+0:48 'txval21' (temp 4-component vector of int)
+0:48 textureGather (global 4-component vector of int)
+0:48 Construct combined texture-sampler (temp isampler2D)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 'c2' (uniform 2-component vector of float)
+0:48 Constant:
+0:48 2 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp 4-component vector of uint)
+0:49 'txval22' (temp 4-component vector of uint)
+0:49 textureGather (global 4-component vector of uint)
+0:49 Construct combined texture-sampler (temp usampler2D)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 'c2' (uniform 2-component vector of float)
+0:49 Constant:
+0:49 2 (const int)
+0:51 Sequence
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 'txval30' (temp 4-component vector of float)
+0:51 textureGather (global 4-component vector of float)
+0:51 Construct combined texture-sampler (temp sampler2D)
+0:51 'g_tTex2df4' (uniform texture2D)
+0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:51 'c2' (uniform 2-component vector of float)
+0:51 Constant:
+0:51 3 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of int)
+0:52 'txval31' (temp 4-component vector of int)
+0:52 textureGather (global 4-component vector of int)
+0:52 Construct combined texture-sampler (temp isampler2D)
+0:52 'g_tTex2di4' (uniform itexture2D)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 'c2' (uniform 2-component vector of float)
+0:52 Constant:
+0:52 3 (const int)
+0:53 Sequence
+0:53 move second child to first child (temp 4-component vector of uint)
+0:53 'txval32' (temp 4-component vector of uint)
+0:53 textureGather (global 4-component vector of uint)
+0:53 Construct combined texture-sampler (temp usampler2D)
+0:53 'g_tTex2du4' (uniform utexture2D)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 'c2' (uniform 2-component vector of float)
+0:53 Constant:
+0:53 3 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp 4-component vector of float)
+0:57 'txval40' (temp 4-component vector of float)
+0:57 textureGather (global 4-component vector of float)
+0:57 Construct combined texture-sampler (temp samplerCube)
+0:57 'g_tTexcdf4' (uniform textureCube)
+0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:57 'c3' (uniform 3-component vector of float)
+0:57 Constant:
+0:57 0 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp 4-component vector of int)
+0:58 'txval41' (temp 4-component vector of int)
+0:58 textureGather (global 4-component vector of int)
+0:58 Construct combined texture-sampler (temp isamplerCube)
+0:58 'g_tTexcdi4' (uniform itextureCube)
+0:58 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:58 'c3' (uniform 3-component vector of float)
+0:58 Constant:
+0:58 0 (const int)
+0:59 Sequence
+0:59 move second child to first child (temp 4-component vector of uint)
+0:59 'txval42' (temp 4-component vector of uint)
+0:59 textureGather (global 4-component vector of uint)
+0:59 Construct combined texture-sampler (temp usamplerCube)
+0:59 'g_tTexcdu4' (uniform utextureCube)
+0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:59 'c3' (uniform 3-component vector of float)
+0:59 Constant:
+0:59 0 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 4-component vector of float)
+0:61 'txval50' (temp 4-component vector of float)
+0:61 textureGather (global 4-component vector of float)
+0:61 Construct combined texture-sampler (temp samplerCube)
+0:61 'g_tTexcdf4' (uniform textureCube)
+0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:61 'c3' (uniform 3-component vector of float)
+0:61 Constant:
+0:61 1 (const int)
+0:62 Sequence
+0:62 move second child to first child (temp 4-component vector of int)
+0:62 'txval51' (temp 4-component vector of int)
+0:62 textureGather (global 4-component vector of int)
+0:62 Construct combined texture-sampler (temp isamplerCube)
+0:62 'g_tTexcdi4' (uniform itextureCube)
+0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:62 'c3' (uniform 3-component vector of float)
+0:62 Constant:
+0:62 1 (const int)
+0:63 Sequence
+0:63 move second child to first child (temp 4-component vector of uint)
+0:63 'txval52' (temp 4-component vector of uint)
+0:63 textureGather (global 4-component vector of uint)
+0:63 Construct combined texture-sampler (temp usamplerCube)
+0:63 'g_tTexcdu4' (uniform utextureCube)
+0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:63 'c3' (uniform 3-component vector of float)
+0:63 Constant:
+0:63 1 (const int)
+0:65 Sequence
+0:65 move second child to first child (temp 4-component vector of float)
+0:65 'txval60' (temp 4-component vector of float)
+0:65 textureGather (global 4-component vector of float)
+0:65 Construct combined texture-sampler (temp samplerCube)
+0:65 'g_tTexcdf4' (uniform textureCube)
+0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:65 'c3' (uniform 3-component vector of float)
+0:65 Constant:
+0:65 2 (const int)
+0:66 Sequence
+0:66 move second child to first child (temp 4-component vector of int)
+0:66 'txval61' (temp 4-component vector of int)
+0:66 textureGather (global 4-component vector of int)
+0:66 Construct combined texture-sampler (temp isamplerCube)
+0:66 'g_tTexcdi4' (uniform itextureCube)
+0:66 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:66 'c3' (uniform 3-component vector of float)
+0:66 Constant:
+0:66 2 (const int)
+0:67 Sequence
+0:67 move second child to first child (temp 4-component vector of uint)
+0:67 'txval62' (temp 4-component vector of uint)
+0:67 textureGather (global 4-component vector of uint)
+0:67 Construct combined texture-sampler (temp usamplerCube)
+0:67 'g_tTexcdu4' (uniform utextureCube)
+0:67 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:67 'c3' (uniform 3-component vector of float)
+0:67 Constant:
+0:67 2 (const int)
+0:69 Sequence
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 'txval70' (temp 4-component vector of float)
+0:69 textureGather (global 4-component vector of float)
+0:69 Construct combined texture-sampler (temp samplerCube)
+0:69 'g_tTexcdf4' (uniform textureCube)
+0:69 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:69 'c3' (uniform 3-component vector of float)
+0:69 Constant:
+0:69 3 (const int)
+0:70 Sequence
+0:70 move second child to first child (temp 4-component vector of int)
+0:70 'txval71' (temp 4-component vector of int)
+0:70 textureGather (global 4-component vector of int)
+0:70 Construct combined texture-sampler (temp isamplerCube)
+0:70 'g_tTexcdi4' (uniform itextureCube)
+0:70 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:70 'c3' (uniform 3-component vector of float)
+0:70 Constant:
+0:70 3 (const int)
+0:71 Sequence
+0:71 move second child to first child (temp 4-component vector of uint)
+0:71 'txval72' (temp 4-component vector of uint)
+0:71 textureGather (global 4-component vector of uint)
+0:71 Construct combined texture-sampler (temp usamplerCube)
+0:71 'g_tTexcdu4' (uniform utextureCube)
+0:71 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:71 'c3' (uniform 3-component vector of float)
+0:71 Constant:
+0:71 3 (const int)
+0:73 move second child to first child (temp 4-component vector of float)
+0:73 Color: direct index for structure (temp 4-component vector of float)
+0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:73 Constant:
+0:73 0 (const int)
+0:73 Constant:
+0:73 1.000000
+0:73 1.000000
+0:73 1.000000
+0:73 1.000000
+0:74 move second child to first child (temp float)
+0:74 Depth: direct index for structure (temp float FragDepth)
+0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:74 Constant:
+0:74 1 (const int)
+0:74 Constant:
+0:74 1.000000
+0:76 Branch: Return with expression
+0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:78 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34 Function Parameters:
+0:? Sequence
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 'txval00' (temp 4-component vector of float)
+0:39 textureGather (global 4-component vector of float)
+0:39 Construct combined texture-sampler (temp sampler2D)
+0:39 'g_tTex2df4' (uniform texture2D)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:39 'c2' (uniform 2-component vector of float)
+0:39 Constant:
+0:39 0 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 'txval01' (temp 4-component vector of int)
+0:40 textureGather (global 4-component vector of int)
+0:40 Construct combined texture-sampler (temp isampler2D)
+0:40 'g_tTex2di4' (uniform itexture2D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:40 'c2' (uniform 2-component vector of float)
+0:40 Constant:
+0:40 0 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 'txval02' (temp 4-component vector of uint)
+0:41 textureGather (global 4-component vector of uint)
+0:41 Construct combined texture-sampler (temp usampler2D)
+0:41 'g_tTex2du4' (uniform utexture2D)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:41 'c2' (uniform 2-component vector of float)
+0:41 Constant:
+0:41 0 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of float)
+0:43 'txval10' (temp 4-component vector of float)
+0:43 textureGather (global 4-component vector of float)
+0:43 Construct combined texture-sampler (temp sampler2D)
+0:43 'g_tTex2df4' (uniform texture2D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 'c2' (uniform 2-component vector of float)
+0:43 Constant:
+0:43 1 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of int)
+0:44 'txval11' (temp 4-component vector of int)
+0:44 textureGather (global 4-component vector of int)
+0:44 Construct combined texture-sampler (temp isampler2D)
+0:44 'g_tTex2di4' (uniform itexture2D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 'c2' (uniform 2-component vector of float)
+0:44 Constant:
+0:44 1 (const int)
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of uint)
+0:45 'txval12' (temp 4-component vector of uint)
+0:45 textureGather (global 4-component vector of uint)
+0:45 Construct combined texture-sampler (temp usampler2D)
+0:45 'g_tTex2du4' (uniform utexture2D)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:45 'c2' (uniform 2-component vector of float)
+0:45 Constant:
+0:45 1 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 'txval20' (temp 4-component vector of float)
+0:47 textureGather (global 4-component vector of float)
+0:47 Construct combined texture-sampler (temp sampler2D)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 'c2' (uniform 2-component vector of float)
+0:47 Constant:
+0:47 2 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of int)
+0:48 'txval21' (temp 4-component vector of int)
+0:48 textureGather (global 4-component vector of int)
+0:48 Construct combined texture-sampler (temp isampler2D)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 'c2' (uniform 2-component vector of float)
+0:48 Constant:
+0:48 2 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp 4-component vector of uint)
+0:49 'txval22' (temp 4-component vector of uint)
+0:49 textureGather (global 4-component vector of uint)
+0:49 Construct combined texture-sampler (temp usampler2D)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 'c2' (uniform 2-component vector of float)
+0:49 Constant:
+0:49 2 (const int)
+0:51 Sequence
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 'txval30' (temp 4-component vector of float)
+0:51 textureGather (global 4-component vector of float)
+0:51 Construct combined texture-sampler (temp sampler2D)
+0:51 'g_tTex2df4' (uniform texture2D)
+0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:51 'c2' (uniform 2-component vector of float)
+0:51 Constant:
+0:51 3 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of int)
+0:52 'txval31' (temp 4-component vector of int)
+0:52 textureGather (global 4-component vector of int)
+0:52 Construct combined texture-sampler (temp isampler2D)
+0:52 'g_tTex2di4' (uniform itexture2D)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 'c2' (uniform 2-component vector of float)
+0:52 Constant:
+0:52 3 (const int)
+0:53 Sequence
+0:53 move second child to first child (temp 4-component vector of uint)
+0:53 'txval32' (temp 4-component vector of uint)
+0:53 textureGather (global 4-component vector of uint)
+0:53 Construct combined texture-sampler (temp usampler2D)
+0:53 'g_tTex2du4' (uniform utexture2D)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 'c2' (uniform 2-component vector of float)
+0:53 Constant:
+0:53 3 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp 4-component vector of float)
+0:57 'txval40' (temp 4-component vector of float)
+0:57 textureGather (global 4-component vector of float)
+0:57 Construct combined texture-sampler (temp samplerCube)
+0:57 'g_tTexcdf4' (uniform textureCube)
+0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:57 'c3' (uniform 3-component vector of float)
+0:57 Constant:
+0:57 0 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp 4-component vector of int)
+0:58 'txval41' (temp 4-component vector of int)
+0:58 textureGather (global 4-component vector of int)
+0:58 Construct combined texture-sampler (temp isamplerCube)
+0:58 'g_tTexcdi4' (uniform itextureCube)
+0:58 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:58 'c3' (uniform 3-component vector of float)
+0:58 Constant:
+0:58 0 (const int)
+0:59 Sequence
+0:59 move second child to first child (temp 4-component vector of uint)
+0:59 'txval42' (temp 4-component vector of uint)
+0:59 textureGather (global 4-component vector of uint)
+0:59 Construct combined texture-sampler (temp usamplerCube)
+0:59 'g_tTexcdu4' (uniform utextureCube)
+0:59 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:59 'c3' (uniform 3-component vector of float)
+0:59 Constant:
+0:59 0 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 4-component vector of float)
+0:61 'txval50' (temp 4-component vector of float)
+0:61 textureGather (global 4-component vector of float)
+0:61 Construct combined texture-sampler (temp samplerCube)
+0:61 'g_tTexcdf4' (uniform textureCube)
+0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:61 'c3' (uniform 3-component vector of float)
+0:61 Constant:
+0:61 1 (const int)
+0:62 Sequence
+0:62 move second child to first child (temp 4-component vector of int)
+0:62 'txval51' (temp 4-component vector of int)
+0:62 textureGather (global 4-component vector of int)
+0:62 Construct combined texture-sampler (temp isamplerCube)
+0:62 'g_tTexcdi4' (uniform itextureCube)
+0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:62 'c3' (uniform 3-component vector of float)
+0:62 Constant:
+0:62 1 (const int)
+0:63 Sequence
+0:63 move second child to first child (temp 4-component vector of uint)
+0:63 'txval52' (temp 4-component vector of uint)
+0:63 textureGather (global 4-component vector of uint)
+0:63 Construct combined texture-sampler (temp usamplerCube)
+0:63 'g_tTexcdu4' (uniform utextureCube)
+0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:63 'c3' (uniform 3-component vector of float)
+0:63 Constant:
+0:63 1 (const int)
+0:65 Sequence
+0:65 move second child to first child (temp 4-component vector of float)
+0:65 'txval60' (temp 4-component vector of float)
+0:65 textureGather (global 4-component vector of float)
+0:65 Construct combined texture-sampler (temp samplerCube)
+0:65 'g_tTexcdf4' (uniform textureCube)
+0:65 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:65 'c3' (uniform 3-component vector of float)
+0:65 Constant:
+0:65 2 (const int)
+0:66 Sequence
+0:66 move second child to first child (temp 4-component vector of int)
+0:66 'txval61' (temp 4-component vector of int)
+0:66 textureGather (global 4-component vector of int)
+0:66 Construct combined texture-sampler (temp isamplerCube)
+0:66 'g_tTexcdi4' (uniform itextureCube)
+0:66 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:66 'c3' (uniform 3-component vector of float)
+0:66 Constant:
+0:66 2 (const int)
+0:67 Sequence
+0:67 move second child to first child (temp 4-component vector of uint)
+0:67 'txval62' (temp 4-component vector of uint)
+0:67 textureGather (global 4-component vector of uint)
+0:67 Construct combined texture-sampler (temp usamplerCube)
+0:67 'g_tTexcdu4' (uniform utextureCube)
+0:67 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:67 'c3' (uniform 3-component vector of float)
+0:67 Constant:
+0:67 2 (const int)
+0:69 Sequence
+0:69 move second child to first child (temp 4-component vector of float)
+0:69 'txval70' (temp 4-component vector of float)
+0:69 textureGather (global 4-component vector of float)
+0:69 Construct combined texture-sampler (temp samplerCube)
+0:69 'g_tTexcdf4' (uniform textureCube)
+0:69 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:69 'c3' (uniform 3-component vector of float)
+0:69 Constant:
+0:69 3 (const int)
+0:70 Sequence
+0:70 move second child to first child (temp 4-component vector of int)
+0:70 'txval71' (temp 4-component vector of int)
+0:70 textureGather (global 4-component vector of int)
+0:70 Construct combined texture-sampler (temp isamplerCube)
+0:70 'g_tTexcdi4' (uniform itextureCube)
+0:70 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:70 'c3' (uniform 3-component vector of float)
+0:70 Constant:
+0:70 3 (const int)
+0:71 Sequence
+0:71 move second child to first child (temp 4-component vector of uint)
+0:71 'txval72' (temp 4-component vector of uint)
+0:71 textureGather (global 4-component vector of uint)
+0:71 Construct combined texture-sampler (temp usamplerCube)
+0:71 'g_tTexcdu4' (uniform utextureCube)
+0:71 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:71 'c3' (uniform 3-component vector of float)
+0:71 Constant:
+0:71 3 (const int)
+0:73 move second child to first child (temp 4-component vector of float)
+0:73 Color: direct index for structure (temp 4-component vector of float)
+0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:73 Constant:
+0:73 0 (const int)
+0:73 Constant:
+0:73 1.000000
+0:73 1.000000
+0:73 1.000000
+0:73 1.000000
+0:74 move second child to first child (temp float)
+0:74 Depth: direct index for structure (temp float FragDepth)
+0:74 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:74 Constant:
+0:74 1 (const int)
+0:74 Constant:
+0:74 1.000000
+0:76 Branch: Return with expression
+0:76 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 230
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval00"
+ Name 12 "g_tTex2df4"
+ Name 16 "g_sSamp"
+ Name 22 "c2"
+ Name 29 "txval01"
+ Name 32 "g_tTex2di4"
+ Name 42 "txval02"
+ Name 45 "g_tTex2du4"
+ Name 52 "txval10"
+ Name 59 "txval11"
+ Name 65 "txval12"
+ Name 71 "txval20"
+ Name 78 "txval21"
+ Name 84 "txval22"
+ Name 90 "txval30"
+ Name 97 "txval31"
+ Name 103 "txval32"
+ Name 109 "txval40"
+ Name 112 "g_tTexcdf4"
+ Name 119 "c3"
+ Name 122 "txval41"
+ Name 125 "g_tTexcdi4"
+ Name 132 "txval42"
+ Name 135 "g_tTexcdu4"
+ Name 142 "txval50"
+ Name 148 "txval51"
+ Name 154 "txval52"
+ Name 160 "txval60"
+ Name 166 "txval61"
+ Name 172 "txval62"
+ Name 178 "txval70"
+ Name 184 "txval71"
+ Name 190 "txval72"
+ Name 196 "PS_OUTPUT"
+ MemberName 196(PS_OUTPUT) 0 "Color"
+ MemberName 196(PS_OUTPUT) 1 "Depth"
+ Name 198 "psout"
+ Name 206 "g_sSamp2d"
+ Name 209 "g_tTex1df4a"
+ Name 210 "g_tTex1df4"
+ Name 213 "g_tTex1di4"
+ Name 216 "g_tTex1du4"
+ Name 219 "g_tTex3df4"
+ Name 222 "g_tTex3di4"
+ Name 225 "g_tTex3du4"
+ Name 227 "c1"
+ Name 229 "c4"
+ Decorate 12(g_tTex2df4) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 32(g_tTex2di4) DescriptorSet 0
+ Decorate 45(g_tTex2du4) DescriptorSet 0
+ Decorate 112(g_tTexcdf4) DescriptorSet 0
+ Decorate 125(g_tTexcdi4) DescriptorSet 0
+ Decorate 135(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 196(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 206(g_sSamp2d) DescriptorSet 0
+ Decorate 209(g_tTex1df4a) DescriptorSet 0
+ Decorate 209(g_tTex1df4a) Binding 1
+ Decorate 210(g_tTex1df4) DescriptorSet 0
+ Decorate 210(g_tTex1df4) Binding 0
+ Decorate 213(g_tTex1di4) DescriptorSet 0
+ Decorate 216(g_tTex1du4) DescriptorSet 0
+ Decorate 219(g_tTex3df4) DescriptorSet 0
+ Decorate 222(g_tTex3di4) DescriptorSet 0
+ Decorate 225(g_tTex3du4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: TypePointer UniformConstant 20(fvec2)
+ 22(c2): 21(ptr) Variable UniformConstant
+ 24: TypeInt 32 1
+ 25: 24(int) Constant 0
+ 27: TypeVector 24(int) 4
+ 28: TypePointer Function 27(ivec4)
+ 30: TypeImage 24(int) 2D sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex2di4): 31(ptr) Variable UniformConstant
+ 35: TypeSampledImage 30
+ 39: TypeInt 32 0
+ 40: TypeVector 39(int) 4
+ 41: TypePointer Function 40(ivec4)
+ 43: TypeImage 39(int) 2D sampled format:Unknown
+ 44: TypePointer UniformConstant 43
+ 45(g_tTex2du4): 44(ptr) Variable UniformConstant
+ 48: TypeSampledImage 43
+ 57: 24(int) Constant 1
+ 76: 24(int) Constant 2
+ 95: 24(int) Constant 3
+ 110: TypeImage 6(float) Cube sampled format:Unknown
+ 111: TypePointer UniformConstant 110
+ 112(g_tTexcdf4): 111(ptr) Variable UniformConstant
+ 115: TypeSampledImage 110
+ 117: TypeVector 6(float) 3
+ 118: TypePointer UniformConstant 117(fvec3)
+ 119(c3): 118(ptr) Variable UniformConstant
+ 123: TypeImage 24(int) Cube sampled format:Unknown
+ 124: TypePointer UniformConstant 123
+ 125(g_tTexcdi4): 124(ptr) Variable UniformConstant
+ 128: TypeSampledImage 123
+ 133: TypeImage 39(int) Cube sampled format:Unknown
+ 134: TypePointer UniformConstant 133
+ 135(g_tTexcdu4): 134(ptr) Variable UniformConstant
+ 138: TypeSampledImage 133
+ 196(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 197: TypePointer Function 196(PS_OUTPUT)
+ 199: 6(float) Constant 1065353216
+ 200: 7(fvec4) ConstantComposite 199 199 199 199
+ 202: TypePointer Function 6(float)
+ 206(g_sSamp2d): 15(ptr) Variable UniformConstant
+ 207: TypeImage 6(float) 1D sampled format:Unknown
+ 208: TypePointer UniformConstant 207
+209(g_tTex1df4a): 208(ptr) Variable UniformConstant
+ 210(g_tTex1df4): 208(ptr) Variable UniformConstant
+ 211: TypeImage 24(int) 1D sampled format:Unknown
+ 212: TypePointer UniformConstant 211
+ 213(g_tTex1di4): 212(ptr) Variable UniformConstant
+ 214: TypeImage 39(int) 1D sampled format:Unknown
+ 215: TypePointer UniformConstant 214
+ 216(g_tTex1du4): 215(ptr) Variable UniformConstant
+ 217: TypeImage 6(float) 3D sampled format:Unknown
+ 218: TypePointer UniformConstant 217
+ 219(g_tTex3df4): 218(ptr) Variable UniformConstant
+ 220: TypeImage 24(int) 3D sampled format:Unknown
+ 221: TypePointer UniformConstant 220
+ 222(g_tTex3di4): 221(ptr) Variable UniformConstant
+ 223: TypeImage 39(int) 3D sampled format:Unknown
+ 224: TypePointer UniformConstant 223
+ 225(g_tTex3du4): 224(ptr) Variable UniformConstant
+ 226: TypePointer UniformConstant 6(float)
+ 227(c1): 226(ptr) Variable UniformConstant
+ 228: TypePointer UniformConstant 7(fvec4)
+ 229(c4): 228(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval00): 8(ptr) Variable Function
+ 29(txval01): 28(ptr) Variable Function
+ 42(txval02): 41(ptr) Variable Function
+ 52(txval10): 8(ptr) Variable Function
+ 59(txval11): 28(ptr) Variable Function
+ 65(txval12): 41(ptr) Variable Function
+ 71(txval20): 8(ptr) Variable Function
+ 78(txval21): 28(ptr) Variable Function
+ 84(txval22): 41(ptr) Variable Function
+ 90(txval30): 8(ptr) Variable Function
+ 97(txval31): 28(ptr) Variable Function
+ 103(txval32): 41(ptr) Variable Function
+ 109(txval40): 8(ptr) Variable Function
+ 122(txval41): 28(ptr) Variable Function
+ 132(txval42): 41(ptr) Variable Function
+ 142(txval50): 8(ptr) Variable Function
+ 148(txval51): 28(ptr) Variable Function
+ 154(txval52): 41(ptr) Variable Function
+ 160(txval60): 8(ptr) Variable Function
+ 166(txval61): 28(ptr) Variable Function
+ 172(txval62): 41(ptr) Variable Function
+ 178(txval70): 8(ptr) Variable Function
+ 184(txval71): 28(ptr) Variable Function
+ 190(txval72): 41(ptr) Variable Function
+ 198(psout): 197(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 23: 20(fvec2) Load 22(c2)
+ 26: 7(fvec4) ImageGather 19 23 25
+ Store 9(txval00) 26
+ 33: 30 Load 32(g_tTex2di4)
+ 34: 14 Load 16(g_sSamp)
+ 36: 35 SampledImage 33 34
+ 37: 20(fvec2) Load 22(c2)
+ 38: 27(ivec4) ImageGather 36 37 25
+ Store 29(txval01) 38
+ 46: 43 Load 45(g_tTex2du4)
+ 47: 14 Load 16(g_sSamp)
+ 49: 48 SampledImage 46 47
+ 50: 20(fvec2) Load 22(c2)
+ 51: 40(ivec4) ImageGather 49 50 25
+ Store 42(txval02) 51
+ 53: 10 Load 12(g_tTex2df4)
+ 54: 14 Load 16(g_sSamp)
+ 55: 18 SampledImage 53 54
+ 56: 20(fvec2) Load 22(c2)
+ 58: 7(fvec4) ImageGather 55 56 57
+ Store 52(txval10) 58
+ 60: 30 Load 32(g_tTex2di4)
+ 61: 14 Load 16(g_sSamp)
+ 62: 35 SampledImage 60 61
+ 63: 20(fvec2) Load 22(c2)
+ 64: 27(ivec4) ImageGather 62 63 57
+ Store 59(txval11) 64
+ 66: 43 Load 45(g_tTex2du4)
+ 67: 14 Load 16(g_sSamp)
+ 68: 48 SampledImage 66 67
+ 69: 20(fvec2) Load 22(c2)
+ 70: 40(ivec4) ImageGather 68 69 57
+ Store 65(txval12) 70
+ 72: 10 Load 12(g_tTex2df4)
+ 73: 14 Load 16(g_sSamp)
+ 74: 18 SampledImage 72 73
+ 75: 20(fvec2) Load 22(c2)
+ 77: 7(fvec4) ImageGather 74 75 76
+ Store 71(txval20) 77
+ 79: 30 Load 32(g_tTex2di4)
+ 80: 14 Load 16(g_sSamp)
+ 81: 35 SampledImage 79 80
+ 82: 20(fvec2) Load 22(c2)
+ 83: 27(ivec4) ImageGather 81 82 76
+ Store 78(txval21) 83
+ 85: 43 Load 45(g_tTex2du4)
+ 86: 14 Load 16(g_sSamp)
+ 87: 48 SampledImage 85 86
+ 88: 20(fvec2) Load 22(c2)
+ 89: 40(ivec4) ImageGather 87 88 76
+ Store 84(txval22) 89
+ 91: 10 Load 12(g_tTex2df4)
+ 92: 14 Load 16(g_sSamp)
+ 93: 18 SampledImage 91 92
+ 94: 20(fvec2) Load 22(c2)
+ 96: 7(fvec4) ImageGather 93 94 95
+ Store 90(txval30) 96
+ 98: 30 Load 32(g_tTex2di4)
+ 99: 14 Load 16(g_sSamp)
+ 100: 35 SampledImage 98 99
+ 101: 20(fvec2) Load 22(c2)
+ 102: 27(ivec4) ImageGather 100 101 95
+ Store 97(txval31) 102
+ 104: 43 Load 45(g_tTex2du4)
+ 105: 14 Load 16(g_sSamp)
+ 106: 48 SampledImage 104 105
+ 107: 20(fvec2) Load 22(c2)
+ 108: 40(ivec4) ImageGather 106 107 95
+ Store 103(txval32) 108
+ 113: 110 Load 112(g_tTexcdf4)
+ 114: 14 Load 16(g_sSamp)
+ 116: 115 SampledImage 113 114
+ 120: 117(fvec3) Load 119(c3)
+ 121: 7(fvec4) ImageGather 116 120 25
+ Store 109(txval40) 121
+ 126: 123 Load 125(g_tTexcdi4)
+ 127: 14 Load 16(g_sSamp)
+ 129: 128 SampledImage 126 127
+ 130: 117(fvec3) Load 119(c3)
+ 131: 27(ivec4) ImageGather 129 130 25
+ Store 122(txval41) 131
+ 136: 133 Load 135(g_tTexcdu4)
+ 137: 14 Load 16(g_sSamp)
+ 139: 138 SampledImage 136 137
+ 140: 117(fvec3) Load 119(c3)
+ 141: 40(ivec4) ImageGather 139 140 25
+ Store 132(txval42) 141
+ 143: 110 Load 112(g_tTexcdf4)
+ 144: 14 Load 16(g_sSamp)
+ 145: 115 SampledImage 143 144
+ 146: 117(fvec3) Load 119(c3)
+ 147: 7(fvec4) ImageGather 145 146 57
+ Store 142(txval50) 147
+ 149: 123 Load 125(g_tTexcdi4)
+ 150: 14 Load 16(g_sSamp)
+ 151: 128 SampledImage 149 150
+ 152: 117(fvec3) Load 119(c3)
+ 153: 27(ivec4) ImageGather 151 152 57
+ Store 148(txval51) 153
+ 155: 133 Load 135(g_tTexcdu4)
+ 156: 14 Load 16(g_sSamp)
+ 157: 138 SampledImage 155 156
+ 158: 117(fvec3) Load 119(c3)
+ 159: 40(ivec4) ImageGather 157 158 57
+ Store 154(txval52) 159
+ 161: 110 Load 112(g_tTexcdf4)
+ 162: 14 Load 16(g_sSamp)
+ 163: 115 SampledImage 161 162
+ 164: 117(fvec3) Load 119(c3)
+ 165: 7(fvec4) ImageGather 163 164 76
+ Store 160(txval60) 165
+ 167: 123 Load 125(g_tTexcdi4)
+ 168: 14 Load 16(g_sSamp)
+ 169: 128 SampledImage 167 168
+ 170: 117(fvec3) Load 119(c3)
+ 171: 27(ivec4) ImageGather 169 170 76
+ Store 166(txval61) 171
+ 173: 133 Load 135(g_tTexcdu4)
+ 174: 14 Load 16(g_sSamp)
+ 175: 138 SampledImage 173 174
+ 176: 117(fvec3) Load 119(c3)
+ 177: 40(ivec4) ImageGather 175 176 76
+ Store 172(txval62) 177
+ 179: 110 Load 112(g_tTexcdf4)
+ 180: 14 Load 16(g_sSamp)
+ 181: 115 SampledImage 179 180
+ 182: 117(fvec3) Load 119(c3)
+ 183: 7(fvec4) ImageGather 181 182 95
+ Store 178(txval70) 183
+ 185: 123 Load 125(g_tTexcdi4)
+ 186: 14 Load 16(g_sSamp)
+ 187: 128 SampledImage 185 186
+ 188: 117(fvec3) Load 119(c3)
+ 189: 27(ivec4) ImageGather 187 188 95
+ Store 184(txval71) 189
+ 191: 133 Load 135(g_tTexcdu4)
+ 192: 14 Load 16(g_sSamp)
+ 193: 138 SampledImage 191 192
+ 194: 117(fvec3) Load 119(c3)
+ 195: 40(ivec4) ImageGather 193 194 95
+ Store 190(txval72) 195
+ 201: 8(ptr) AccessChain 198(psout) 25
+ Store 201 200
+ 203: 202(ptr) AccessChain 198(psout) 57
+ Store 203 199
+ 204:196(PS_OUTPUT) Load 198(psout)
+ ReturnValue 204
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
new file mode 100644
index 0000000..ea0d94a
--- /dev/null
+++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
@@ -0,0 +1,1148 @@
+hlsl.gatherRGBA.offset.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Function Parameters:
+0:? Sequence
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of float)
+0:46 'txval001' (temp 4-component vector of float)
+0:46 textureGatherOffset (global 4-component vector of float)
+0:46 Construct combined texture-sampler (temp sampler2D)
+0:46 'g_tTex2df4' (uniform texture2D)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:46 'c2' (uniform 2-component vector of float)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 Constant:
+0:46 0 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 4-component vector of int)
+0:47 'txval011' (temp 4-component vector of int)
+0:47 textureGatherOffset (global 4-component vector of int)
+0:47 Construct combined texture-sampler (temp isampler2D)
+0:47 'g_tTex2di4' (uniform itexture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 'c2' (uniform 2-component vector of float)
+0:47 'o2' (uniform 2-component vector of int)
+0:47 Constant:
+0:47 0 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of uint)
+0:48 'txval021' (temp 4-component vector of uint)
+0:48 textureGatherOffset (global 4-component vector of uint)
+0:48 Construct combined texture-sampler (temp usampler2D)
+0:48 'g_tTex2du4' (uniform utexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 'c2' (uniform 2-component vector of float)
+0:48 'o2' (uniform 2-component vector of int)
+0:48 Constant:
+0:48 0 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'txval004' (temp 4-component vector of float)
+0:50 textureGatherOffsets (global 4-component vector of float)
+0:50 Construct combined texture-sampler (temp sampler2D)
+0:50 'g_tTex2df4' (uniform texture2D)
+0:50 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:50 'c2' (uniform 2-component vector of float)
+0:50 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 Constant:
+0:50 0 (const int)
+0:51 Sequence
+0:51 move second child to first child (temp 4-component vector of int)
+0:51 'txval014' (temp 4-component vector of int)
+0:51 textureGatherOffsets (global 4-component vector of int)
+0:51 Construct combined texture-sampler (temp isampler2D)
+0:51 'g_tTex2di4' (uniform itexture2D)
+0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:51 'c2' (uniform 2-component vector of float)
+0:51 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 Constant:
+0:51 0 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of uint)
+0:52 'txval024' (temp 4-component vector of uint)
+0:52 textureGatherOffsets (global 4-component vector of uint)
+0:52 Construct combined texture-sampler (temp usampler2D)
+0:52 'g_tTex2du4' (uniform utexture2D)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 'c2' (uniform 2-component vector of float)
+0:52 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 0 (const int)
+0:62 Sequence
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 'txval101' (temp 4-component vector of float)
+0:62 textureGatherOffset (global 4-component vector of float)
+0:62 Construct combined texture-sampler (temp sampler2D)
+0:62 'g_tTex2df4' (uniform texture2D)
+0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:62 'c2' (uniform 2-component vector of float)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 Constant:
+0:62 1 (const int)
+0:63 Sequence
+0:63 move second child to first child (temp 4-component vector of int)
+0:63 'txval111' (temp 4-component vector of int)
+0:63 textureGatherOffset (global 4-component vector of int)
+0:63 Construct combined texture-sampler (temp isampler2D)
+0:63 'g_tTex2di4' (uniform itexture2D)
+0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:63 'c2' (uniform 2-component vector of float)
+0:63 'o2' (uniform 2-component vector of int)
+0:63 Constant:
+0:63 1 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp 4-component vector of uint)
+0:64 'txval121' (temp 4-component vector of uint)
+0:64 textureGatherOffset (global 4-component vector of uint)
+0:64 Construct combined texture-sampler (temp usampler2D)
+0:64 'g_tTex2du4' (uniform utexture2D)
+0:64 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:64 'c2' (uniform 2-component vector of float)
+0:64 'o2' (uniform 2-component vector of int)
+0:64 Constant:
+0:64 1 (const int)
+0:66 Sequence
+0:66 move second child to first child (temp 4-component vector of float)
+0:66 'txval104' (temp 4-component vector of float)
+0:66 textureGatherOffsets (global 4-component vector of float)
+0:66 Construct combined texture-sampler (temp sampler2D)
+0:66 'g_tTex2df4' (uniform texture2D)
+0:66 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:66 'c2' (uniform 2-component vector of float)
+0:66 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 Constant:
+0:66 1 (const int)
+0:67 Sequence
+0:67 move second child to first child (temp 4-component vector of int)
+0:67 'txval114' (temp 4-component vector of int)
+0:67 textureGatherOffsets (global 4-component vector of int)
+0:67 Construct combined texture-sampler (temp isampler2D)
+0:67 'g_tTex2di4' (uniform itexture2D)
+0:67 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:67 'c2' (uniform 2-component vector of float)
+0:67 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 Constant:
+0:67 1 (const int)
+0:68 Sequence
+0:68 move second child to first child (temp 4-component vector of uint)
+0:68 'txval124' (temp 4-component vector of uint)
+0:68 textureGatherOffsets (global 4-component vector of uint)
+0:68 Construct combined texture-sampler (temp usampler2D)
+0:68 'g_tTex2du4' (uniform utexture2D)
+0:68 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:68 'c2' (uniform 2-component vector of float)
+0:68 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 Constant:
+0:68 1 (const int)
+0:78 Sequence
+0:78 move second child to first child (temp 4-component vector of float)
+0:78 'txval201' (temp 4-component vector of float)
+0:78 textureGatherOffset (global 4-component vector of float)
+0:78 Construct combined texture-sampler (temp sampler2D)
+0:78 'g_tTex2df4' (uniform texture2D)
+0:78 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:78 'c2' (uniform 2-component vector of float)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 Constant:
+0:78 2 (const int)
+0:79 Sequence
+0:79 move second child to first child (temp 4-component vector of int)
+0:79 'txval211' (temp 4-component vector of int)
+0:79 textureGatherOffset (global 4-component vector of int)
+0:79 Construct combined texture-sampler (temp isampler2D)
+0:79 'g_tTex2di4' (uniform itexture2D)
+0:79 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:79 'c2' (uniform 2-component vector of float)
+0:79 'o2' (uniform 2-component vector of int)
+0:79 Constant:
+0:79 2 (const int)
+0:80 Sequence
+0:80 move second child to first child (temp 4-component vector of uint)
+0:80 'txval221' (temp 4-component vector of uint)
+0:80 textureGatherOffset (global 4-component vector of uint)
+0:80 Construct combined texture-sampler (temp usampler2D)
+0:80 'g_tTex2du4' (uniform utexture2D)
+0:80 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:80 'c2' (uniform 2-component vector of float)
+0:80 'o2' (uniform 2-component vector of int)
+0:80 Constant:
+0:80 2 (const int)
+0:82 Sequence
+0:82 move second child to first child (temp 4-component vector of float)
+0:82 'txval204' (temp 4-component vector of float)
+0:82 textureGatherOffsets (global 4-component vector of float)
+0:82 Construct combined texture-sampler (temp sampler2D)
+0:82 'g_tTex2df4' (uniform texture2D)
+0:82 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:82 'c2' (uniform 2-component vector of float)
+0:82 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 Constant:
+0:82 2 (const int)
+0:83 Sequence
+0:83 move second child to first child (temp 4-component vector of int)
+0:83 'txval214' (temp 4-component vector of int)
+0:83 textureGatherOffsets (global 4-component vector of int)
+0:83 Construct combined texture-sampler (temp isampler2D)
+0:83 'g_tTex2di4' (uniform itexture2D)
+0:83 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:83 'c2' (uniform 2-component vector of float)
+0:83 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 Constant:
+0:83 2 (const int)
+0:84 Sequence
+0:84 move second child to first child (temp 4-component vector of uint)
+0:84 'txval224' (temp 4-component vector of uint)
+0:84 textureGatherOffsets (global 4-component vector of uint)
+0:84 Construct combined texture-sampler (temp usampler2D)
+0:84 'g_tTex2du4' (uniform utexture2D)
+0:84 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:84 'c2' (uniform 2-component vector of float)
+0:84 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 Constant:
+0:84 2 (const int)
+0:94 Sequence
+0:94 move second child to first child (temp 4-component vector of float)
+0:94 'txval301' (temp 4-component vector of float)
+0:94 textureGatherOffset (global 4-component vector of float)
+0:94 Construct combined texture-sampler (temp sampler2D)
+0:94 'g_tTex2df4' (uniform texture2D)
+0:94 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:94 'c2' (uniform 2-component vector of float)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 Constant:
+0:94 3 (const int)
+0:95 Sequence
+0:95 move second child to first child (temp 4-component vector of int)
+0:95 'txval311' (temp 4-component vector of int)
+0:95 textureGatherOffset (global 4-component vector of int)
+0:95 Construct combined texture-sampler (temp isampler2D)
+0:95 'g_tTex2di4' (uniform itexture2D)
+0:95 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:95 'c2' (uniform 2-component vector of float)
+0:95 'o2' (uniform 2-component vector of int)
+0:95 Constant:
+0:95 3 (const int)
+0:96 Sequence
+0:96 move second child to first child (temp 4-component vector of uint)
+0:96 'txval321' (temp 4-component vector of uint)
+0:96 textureGatherOffset (global 4-component vector of uint)
+0:96 Construct combined texture-sampler (temp usampler2D)
+0:96 'g_tTex2du4' (uniform utexture2D)
+0:96 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:96 'c2' (uniform 2-component vector of float)
+0:96 'o2' (uniform 2-component vector of int)
+0:96 Constant:
+0:96 3 (const int)
+0:98 Sequence
+0:98 move second child to first child (temp 4-component vector of float)
+0:98 'txval304' (temp 4-component vector of float)
+0:98 textureGatherOffsets (global 4-component vector of float)
+0:98 Construct combined texture-sampler (temp sampler2D)
+0:98 'g_tTex2df4' (uniform texture2D)
+0:98 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:98 'c2' (uniform 2-component vector of float)
+0:98 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 Constant:
+0:98 3 (const int)
+0:99 Sequence
+0:99 move second child to first child (temp 4-component vector of int)
+0:99 'txval314' (temp 4-component vector of int)
+0:99 textureGatherOffsets (global 4-component vector of int)
+0:99 Construct combined texture-sampler (temp isampler2D)
+0:99 'g_tTex2di4' (uniform itexture2D)
+0:99 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:99 'c2' (uniform 2-component vector of float)
+0:99 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 Constant:
+0:99 3 (const int)
+0:100 Sequence
+0:100 move second child to first child (temp 4-component vector of uint)
+0:100 'txval324' (temp 4-component vector of uint)
+0:100 textureGatherOffsets (global 4-component vector of uint)
+0:100 Construct combined texture-sampler (temp usampler2D)
+0:100 'g_tTex2du4' (uniform utexture2D)
+0:100 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:100 'c2' (uniform 2-component vector of float)
+0:100 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 Constant:
+0:100 3 (const int)
+0:112 move second child to first child (temp 4-component vector of float)
+0:112 Color: direct index for structure (temp 4-component vector of float)
+0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:112 Constant:
+0:112 0 (const int)
+0:112 Constant:
+0:112 1.000000
+0:112 1.000000
+0:112 1.000000
+0:112 1.000000
+0:113 move second child to first child (temp float)
+0:113 Depth: direct index for structure (temp float FragDepth)
+0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:113 Constant:
+0:113 1 (const int)
+0:113 Constant:
+0:113 1.000000
+0:115 Branch: Return with expression
+0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:117 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Function Parameters:
+0:? Sequence
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of float)
+0:46 'txval001' (temp 4-component vector of float)
+0:46 textureGatherOffset (global 4-component vector of float)
+0:46 Construct combined texture-sampler (temp sampler2D)
+0:46 'g_tTex2df4' (uniform texture2D)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:46 'c2' (uniform 2-component vector of float)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 Constant:
+0:46 0 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp 4-component vector of int)
+0:47 'txval011' (temp 4-component vector of int)
+0:47 textureGatherOffset (global 4-component vector of int)
+0:47 Construct combined texture-sampler (temp isampler2D)
+0:47 'g_tTex2di4' (uniform itexture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 'c2' (uniform 2-component vector of float)
+0:47 'o2' (uniform 2-component vector of int)
+0:47 Constant:
+0:47 0 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of uint)
+0:48 'txval021' (temp 4-component vector of uint)
+0:48 textureGatherOffset (global 4-component vector of uint)
+0:48 Construct combined texture-sampler (temp usampler2D)
+0:48 'g_tTex2du4' (uniform utexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 'c2' (uniform 2-component vector of float)
+0:48 'o2' (uniform 2-component vector of int)
+0:48 Constant:
+0:48 0 (const int)
+0:50 Sequence
+0:50 move second child to first child (temp 4-component vector of float)
+0:50 'txval004' (temp 4-component vector of float)
+0:50 textureGatherOffsets (global 4-component vector of float)
+0:50 Construct combined texture-sampler (temp sampler2D)
+0:50 'g_tTex2df4' (uniform texture2D)
+0:50 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:50 'c2' (uniform 2-component vector of float)
+0:50 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 'o2' (uniform 2-component vector of int)
+0:50 Constant:
+0:50 0 (const int)
+0:51 Sequence
+0:51 move second child to first child (temp 4-component vector of int)
+0:51 'txval014' (temp 4-component vector of int)
+0:51 textureGatherOffsets (global 4-component vector of int)
+0:51 Construct combined texture-sampler (temp isampler2D)
+0:51 'g_tTex2di4' (uniform itexture2D)
+0:51 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:51 'c2' (uniform 2-component vector of float)
+0:51 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 'o2' (uniform 2-component vector of int)
+0:51 Constant:
+0:51 0 (const int)
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of uint)
+0:52 'txval024' (temp 4-component vector of uint)
+0:52 textureGatherOffsets (global 4-component vector of uint)
+0:52 Construct combined texture-sampler (temp usampler2D)
+0:52 'g_tTex2du4' (uniform utexture2D)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 'c2' (uniform 2-component vector of float)
+0:52 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 'o2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 0 (const int)
+0:62 Sequence
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 'txval101' (temp 4-component vector of float)
+0:62 textureGatherOffset (global 4-component vector of float)
+0:62 Construct combined texture-sampler (temp sampler2D)
+0:62 'g_tTex2df4' (uniform texture2D)
+0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:62 'c2' (uniform 2-component vector of float)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 Constant:
+0:62 1 (const int)
+0:63 Sequence
+0:63 move second child to first child (temp 4-component vector of int)
+0:63 'txval111' (temp 4-component vector of int)
+0:63 textureGatherOffset (global 4-component vector of int)
+0:63 Construct combined texture-sampler (temp isampler2D)
+0:63 'g_tTex2di4' (uniform itexture2D)
+0:63 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:63 'c2' (uniform 2-component vector of float)
+0:63 'o2' (uniform 2-component vector of int)
+0:63 Constant:
+0:63 1 (const int)
+0:64 Sequence
+0:64 move second child to first child (temp 4-component vector of uint)
+0:64 'txval121' (temp 4-component vector of uint)
+0:64 textureGatherOffset (global 4-component vector of uint)
+0:64 Construct combined texture-sampler (temp usampler2D)
+0:64 'g_tTex2du4' (uniform utexture2D)
+0:64 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:64 'c2' (uniform 2-component vector of float)
+0:64 'o2' (uniform 2-component vector of int)
+0:64 Constant:
+0:64 1 (const int)
+0:66 Sequence
+0:66 move second child to first child (temp 4-component vector of float)
+0:66 'txval104' (temp 4-component vector of float)
+0:66 textureGatherOffsets (global 4-component vector of float)
+0:66 Construct combined texture-sampler (temp sampler2D)
+0:66 'g_tTex2df4' (uniform texture2D)
+0:66 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:66 'c2' (uniform 2-component vector of float)
+0:66 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 'o2' (uniform 2-component vector of int)
+0:66 Constant:
+0:66 1 (const int)
+0:67 Sequence
+0:67 move second child to first child (temp 4-component vector of int)
+0:67 'txval114' (temp 4-component vector of int)
+0:67 textureGatherOffsets (global 4-component vector of int)
+0:67 Construct combined texture-sampler (temp isampler2D)
+0:67 'g_tTex2di4' (uniform itexture2D)
+0:67 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:67 'c2' (uniform 2-component vector of float)
+0:67 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 'o2' (uniform 2-component vector of int)
+0:67 Constant:
+0:67 1 (const int)
+0:68 Sequence
+0:68 move second child to first child (temp 4-component vector of uint)
+0:68 'txval124' (temp 4-component vector of uint)
+0:68 textureGatherOffsets (global 4-component vector of uint)
+0:68 Construct combined texture-sampler (temp usampler2D)
+0:68 'g_tTex2du4' (uniform utexture2D)
+0:68 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:68 'c2' (uniform 2-component vector of float)
+0:68 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 'o2' (uniform 2-component vector of int)
+0:68 Constant:
+0:68 1 (const int)
+0:78 Sequence
+0:78 move second child to first child (temp 4-component vector of float)
+0:78 'txval201' (temp 4-component vector of float)
+0:78 textureGatherOffset (global 4-component vector of float)
+0:78 Construct combined texture-sampler (temp sampler2D)
+0:78 'g_tTex2df4' (uniform texture2D)
+0:78 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:78 'c2' (uniform 2-component vector of float)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 Constant:
+0:78 2 (const int)
+0:79 Sequence
+0:79 move second child to first child (temp 4-component vector of int)
+0:79 'txval211' (temp 4-component vector of int)
+0:79 textureGatherOffset (global 4-component vector of int)
+0:79 Construct combined texture-sampler (temp isampler2D)
+0:79 'g_tTex2di4' (uniform itexture2D)
+0:79 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:79 'c2' (uniform 2-component vector of float)
+0:79 'o2' (uniform 2-component vector of int)
+0:79 Constant:
+0:79 2 (const int)
+0:80 Sequence
+0:80 move second child to first child (temp 4-component vector of uint)
+0:80 'txval221' (temp 4-component vector of uint)
+0:80 textureGatherOffset (global 4-component vector of uint)
+0:80 Construct combined texture-sampler (temp usampler2D)
+0:80 'g_tTex2du4' (uniform utexture2D)
+0:80 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:80 'c2' (uniform 2-component vector of float)
+0:80 'o2' (uniform 2-component vector of int)
+0:80 Constant:
+0:80 2 (const int)
+0:82 Sequence
+0:82 move second child to first child (temp 4-component vector of float)
+0:82 'txval204' (temp 4-component vector of float)
+0:82 textureGatherOffsets (global 4-component vector of float)
+0:82 Construct combined texture-sampler (temp sampler2D)
+0:82 'g_tTex2df4' (uniform texture2D)
+0:82 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:82 'c2' (uniform 2-component vector of float)
+0:82 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 'o2' (uniform 2-component vector of int)
+0:82 Constant:
+0:82 2 (const int)
+0:83 Sequence
+0:83 move second child to first child (temp 4-component vector of int)
+0:83 'txval214' (temp 4-component vector of int)
+0:83 textureGatherOffsets (global 4-component vector of int)
+0:83 Construct combined texture-sampler (temp isampler2D)
+0:83 'g_tTex2di4' (uniform itexture2D)
+0:83 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:83 'c2' (uniform 2-component vector of float)
+0:83 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 'o2' (uniform 2-component vector of int)
+0:83 Constant:
+0:83 2 (const int)
+0:84 Sequence
+0:84 move second child to first child (temp 4-component vector of uint)
+0:84 'txval224' (temp 4-component vector of uint)
+0:84 textureGatherOffsets (global 4-component vector of uint)
+0:84 Construct combined texture-sampler (temp usampler2D)
+0:84 'g_tTex2du4' (uniform utexture2D)
+0:84 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:84 'c2' (uniform 2-component vector of float)
+0:84 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 'o2' (uniform 2-component vector of int)
+0:84 Constant:
+0:84 2 (const int)
+0:94 Sequence
+0:94 move second child to first child (temp 4-component vector of float)
+0:94 'txval301' (temp 4-component vector of float)
+0:94 textureGatherOffset (global 4-component vector of float)
+0:94 Construct combined texture-sampler (temp sampler2D)
+0:94 'g_tTex2df4' (uniform texture2D)
+0:94 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:94 'c2' (uniform 2-component vector of float)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 Constant:
+0:94 3 (const int)
+0:95 Sequence
+0:95 move second child to first child (temp 4-component vector of int)
+0:95 'txval311' (temp 4-component vector of int)
+0:95 textureGatherOffset (global 4-component vector of int)
+0:95 Construct combined texture-sampler (temp isampler2D)
+0:95 'g_tTex2di4' (uniform itexture2D)
+0:95 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:95 'c2' (uniform 2-component vector of float)
+0:95 'o2' (uniform 2-component vector of int)
+0:95 Constant:
+0:95 3 (const int)
+0:96 Sequence
+0:96 move second child to first child (temp 4-component vector of uint)
+0:96 'txval321' (temp 4-component vector of uint)
+0:96 textureGatherOffset (global 4-component vector of uint)
+0:96 Construct combined texture-sampler (temp usampler2D)
+0:96 'g_tTex2du4' (uniform utexture2D)
+0:96 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:96 'c2' (uniform 2-component vector of float)
+0:96 'o2' (uniform 2-component vector of int)
+0:96 Constant:
+0:96 3 (const int)
+0:98 Sequence
+0:98 move second child to first child (temp 4-component vector of float)
+0:98 'txval304' (temp 4-component vector of float)
+0:98 textureGatherOffsets (global 4-component vector of float)
+0:98 Construct combined texture-sampler (temp sampler2D)
+0:98 'g_tTex2df4' (uniform texture2D)
+0:98 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:98 'c2' (uniform 2-component vector of float)
+0:98 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 'o2' (uniform 2-component vector of int)
+0:98 Constant:
+0:98 3 (const int)
+0:99 Sequence
+0:99 move second child to first child (temp 4-component vector of int)
+0:99 'txval314' (temp 4-component vector of int)
+0:99 textureGatherOffsets (global 4-component vector of int)
+0:99 Construct combined texture-sampler (temp isampler2D)
+0:99 'g_tTex2di4' (uniform itexture2D)
+0:99 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:99 'c2' (uniform 2-component vector of float)
+0:99 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 'o2' (uniform 2-component vector of int)
+0:99 Constant:
+0:99 3 (const int)
+0:100 Sequence
+0:100 move second child to first child (temp 4-component vector of uint)
+0:100 'txval324' (temp 4-component vector of uint)
+0:100 textureGatherOffsets (global 4-component vector of uint)
+0:100 Construct combined texture-sampler (temp usampler2D)
+0:100 'g_tTex2du4' (uniform utexture2D)
+0:100 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:100 'c2' (uniform 2-component vector of float)
+0:100 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 'o2' (uniform 2-component vector of int)
+0:100 Constant:
+0:100 3 (const int)
+0:112 move second child to first child (temp 4-component vector of float)
+0:112 Color: direct index for structure (temp 4-component vector of float)
+0:112 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:112 Constant:
+0:112 0 (const int)
+0:112 Constant:
+0:112 1.000000
+0:112 1.000000
+0:112 1.000000
+0:112 1.000000
+0:113 move second child to first child (temp float)
+0:113 Depth: direct index for structure (temp float FragDepth)
+0:113 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:113 Constant:
+0:113 1 (const int)
+0:113 Constant:
+0:113 1.000000
+0:115 Branch: Return with expression
+0:115 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 311
+
+ Capability Shader
+ Capability ImageGatherExtended
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval001"
+ Name 12 "g_tTex2df4"
+ Name 16 "g_sSamp"
+ Name 22 "c2"
+ Name 27 "o2"
+ Name 33 "txval011"
+ Name 36 "g_tTex2di4"
+ Name 47 "txval021"
+ Name 50 "g_tTex2du4"
+ Name 58 "txval004"
+ Name 71 "txval014"
+ Name 82 "txval024"
+ Name 93 "txval101"
+ Name 101 "txval111"
+ Name 108 "txval121"
+ Name 115 "txval104"
+ Name 126 "txval114"
+ Name 137 "txval124"
+ Name 148 "txval201"
+ Name 156 "txval211"
+ Name 163 "txval221"
+ Name 170 "txval204"
+ Name 181 "txval214"
+ Name 192 "txval224"
+ Name 203 "txval301"
+ Name 211 "txval311"
+ Name 218 "txval321"
+ Name 225 "txval304"
+ Name 236 "txval314"
+ Name 247 "txval324"
+ Name 258 "PS_OUTPUT"
+ MemberName 258(PS_OUTPUT) 0 "Color"
+ MemberName 258(PS_OUTPUT) 1 "Depth"
+ Name 260 "psout"
+ Name 268 "g_sSamp2d"
+ Name 271 "g_tTex1df4a"
+ Name 272 "g_tTex1df4"
+ Name 275 "g_tTex1di4"
+ Name 278 "g_tTex1du4"
+ Name 281 "g_tTex3df4"
+ Name 284 "g_tTex3di4"
+ Name 287 "g_tTex3du4"
+ Name 290 "g_tTexcdf4"
+ Name 293 "g_tTexcdi4"
+ Name 296 "g_tTexcdu4"
+ Name 298 "c1"
+ Name 301 "c3"
+ Name 303 "c4"
+ Name 305 "o1"
+ Name 308 "o3"
+ Name 310 "o4"
+ Decorate 12(g_tTex2df4) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 36(g_tTex2di4) DescriptorSet 0
+ Decorate 50(g_tTex2du4) DescriptorSet 0
+ MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 268(g_sSamp2d) DescriptorSet 0
+ Decorate 271(g_tTex1df4a) DescriptorSet 0
+ Decorate 271(g_tTex1df4a) Binding 1
+ Decorate 272(g_tTex1df4) DescriptorSet 0
+ Decorate 272(g_tTex1df4) Binding 0
+ Decorate 275(g_tTex1di4) DescriptorSet 0
+ Decorate 278(g_tTex1du4) DescriptorSet 0
+ Decorate 281(g_tTex3df4) DescriptorSet 0
+ Decorate 284(g_tTex3di4) DescriptorSet 0
+ Decorate 287(g_tTex3du4) DescriptorSet 0
+ Decorate 290(g_tTexcdf4) DescriptorSet 0
+ Decorate 293(g_tTexcdi4) DescriptorSet 0
+ Decorate 296(g_tTexcdu4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: TypePointer UniformConstant 20(fvec2)
+ 22(c2): 21(ptr) Variable UniformConstant
+ 24: TypeInt 32 1
+ 25: TypeVector 24(int) 2
+ 26: TypePointer UniformConstant 25(ivec2)
+ 27(o2): 26(ptr) Variable UniformConstant
+ 29: 24(int) Constant 0
+ 31: TypeVector 24(int) 4
+ 32: TypePointer Function 31(ivec4)
+ 34: TypeImage 24(int) 2D sampled format:Unknown
+ 35: TypePointer UniformConstant 34
+ 36(g_tTex2di4): 35(ptr) Variable UniformConstant
+ 39: TypeSampledImage 34
+ 44: TypeInt 32 0
+ 45: TypeVector 44(int) 4
+ 46: TypePointer Function 45(ivec4)
+ 48: TypeImage 44(int) 2D sampled format:Unknown
+ 49: TypePointer UniformConstant 48
+ 50(g_tTex2du4): 49(ptr) Variable UniformConstant
+ 53: TypeSampledImage 48
+ 67: 44(int) Constant 4
+ 68: TypeArray 25(ivec2) 67
+ 99: 24(int) Constant 1
+ 154: 24(int) Constant 2
+ 209: 24(int) Constant 3
+ 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 259: TypePointer Function 258(PS_OUTPUT)
+ 261: 6(float) Constant 1065353216
+ 262: 7(fvec4) ConstantComposite 261 261 261 261
+ 264: TypePointer Function 6(float)
+ 268(g_sSamp2d): 15(ptr) Variable UniformConstant
+ 269: TypeImage 6(float) 1D sampled format:Unknown
+ 270: TypePointer UniformConstant 269
+271(g_tTex1df4a): 270(ptr) Variable UniformConstant
+ 272(g_tTex1df4): 270(ptr) Variable UniformConstant
+ 273: TypeImage 24(int) 1D sampled format:Unknown
+ 274: TypePointer UniformConstant 273
+ 275(g_tTex1di4): 274(ptr) Variable UniformConstant
+ 276: TypeImage 44(int) 1D sampled format:Unknown
+ 277: TypePointer UniformConstant 276
+ 278(g_tTex1du4): 277(ptr) Variable UniformConstant
+ 279: TypeImage 6(float) 3D sampled format:Unknown
+ 280: TypePointer UniformConstant 279
+ 281(g_tTex3df4): 280(ptr) Variable UniformConstant
+ 282: TypeImage 24(int) 3D sampled format:Unknown
+ 283: TypePointer UniformConstant 282
+ 284(g_tTex3di4): 283(ptr) Variable UniformConstant
+ 285: TypeImage 44(int) 3D sampled format:Unknown
+ 286: TypePointer UniformConstant 285
+ 287(g_tTex3du4): 286(ptr) Variable UniformConstant
+ 288: TypeImage 6(float) Cube sampled format:Unknown
+ 289: TypePointer UniformConstant 288
+ 290(g_tTexcdf4): 289(ptr) Variable UniformConstant
+ 291: TypeImage 24(int) Cube sampled format:Unknown
+ 292: TypePointer UniformConstant 291
+ 293(g_tTexcdi4): 292(ptr) Variable UniformConstant
+ 294: TypeImage 44(int) Cube sampled format:Unknown
+ 295: TypePointer UniformConstant 294
+ 296(g_tTexcdu4): 295(ptr) Variable UniformConstant
+ 297: TypePointer UniformConstant 6(float)
+ 298(c1): 297(ptr) Variable UniformConstant
+ 299: TypeVector 6(float) 3
+ 300: TypePointer UniformConstant 299(fvec3)
+ 301(c3): 300(ptr) Variable UniformConstant
+ 302: TypePointer UniformConstant 7(fvec4)
+ 303(c4): 302(ptr) Variable UniformConstant
+ 304: TypePointer UniformConstant 24(int)
+ 305(o1): 304(ptr) Variable UniformConstant
+ 306: TypeVector 24(int) 3
+ 307: TypePointer UniformConstant 306(ivec3)
+ 308(o3): 307(ptr) Variable UniformConstant
+ 309: TypePointer UniformConstant 31(ivec4)
+ 310(o4): 309(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval001): 8(ptr) Variable Function
+ 33(txval011): 32(ptr) Variable Function
+ 47(txval021): 46(ptr) Variable Function
+ 58(txval004): 8(ptr) Variable Function
+ 71(txval014): 32(ptr) Variable Function
+ 82(txval024): 46(ptr) Variable Function
+ 93(txval101): 8(ptr) Variable Function
+ 101(txval111): 32(ptr) Variable Function
+ 108(txval121): 46(ptr) Variable Function
+ 115(txval104): 8(ptr) Variable Function
+ 126(txval114): 32(ptr) Variable Function
+ 137(txval124): 46(ptr) Variable Function
+ 148(txval201): 8(ptr) Variable Function
+ 156(txval211): 32(ptr) Variable Function
+ 163(txval221): 46(ptr) Variable Function
+ 170(txval204): 8(ptr) Variable Function
+ 181(txval214): 32(ptr) Variable Function
+ 192(txval224): 46(ptr) Variable Function
+ 203(txval301): 8(ptr) Variable Function
+ 211(txval311): 32(ptr) Variable Function
+ 218(txval321): 46(ptr) Variable Function
+ 225(txval304): 8(ptr) Variable Function
+ 236(txval314): 32(ptr) Variable Function
+ 247(txval324): 46(ptr) Variable Function
+ 260(psout): 259(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 23: 20(fvec2) Load 22(c2)
+ 28: 25(ivec2) Load 27(o2)
+ 30: 7(fvec4) ImageGather 19 23 29 Offset 28
+ Store 9(txval001) 30
+ 37: 34 Load 36(g_tTex2di4)
+ 38: 14 Load 16(g_sSamp)
+ 40: 39 SampledImage 37 38
+ 41: 20(fvec2) Load 22(c2)
+ 42: 25(ivec2) Load 27(o2)
+ 43: 31(ivec4) ImageGather 40 41 29 Offset 42
+ Store 33(txval011) 43
+ 51: 48 Load 50(g_tTex2du4)
+ 52: 14 Load 16(g_sSamp)
+ 54: 53 SampledImage 51 52
+ 55: 20(fvec2) Load 22(c2)
+ 56: 25(ivec2) Load 27(o2)
+ 57: 45(ivec4) ImageGather 54 55 29 Offset 56
+ Store 47(txval021) 57
+ 59: 10 Load 12(g_tTex2df4)
+ 60: 14 Load 16(g_sSamp)
+ 61: 18 SampledImage 59 60
+ 62: 20(fvec2) Load 22(c2)
+ 63: 25(ivec2) Load 27(o2)
+ 64: 25(ivec2) Load 27(o2)
+ 65: 25(ivec2) Load 27(o2)
+ 66: 25(ivec2) Load 27(o2)
+ 69: 68 CompositeConstruct 63 64 65 66
+ 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69
+ Store 58(txval004) 70
+ 72: 34 Load 36(g_tTex2di4)
+ 73: 14 Load 16(g_sSamp)
+ 74: 39 SampledImage 72 73
+ 75: 20(fvec2) Load 22(c2)
+ 76: 25(ivec2) Load 27(o2)
+ 77: 25(ivec2) Load 27(o2)
+ 78: 25(ivec2) Load 27(o2)
+ 79: 25(ivec2) Load 27(o2)
+ 80: 68 CompositeConstruct 76 77 78 79
+ 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80
+ Store 71(txval014) 81
+ 83: 48 Load 50(g_tTex2du4)
+ 84: 14 Load 16(g_sSamp)
+ 85: 53 SampledImage 83 84
+ 86: 20(fvec2) Load 22(c2)
+ 87: 25(ivec2) Load 27(o2)
+ 88: 25(ivec2) Load 27(o2)
+ 89: 25(ivec2) Load 27(o2)
+ 90: 25(ivec2) Load 27(o2)
+ 91: 68 CompositeConstruct 87 88 89 90
+ 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91
+ Store 82(txval024) 92
+ 94: 10 Load 12(g_tTex2df4)
+ 95: 14 Load 16(g_sSamp)
+ 96: 18 SampledImage 94 95
+ 97: 20(fvec2) Load 22(c2)
+ 98: 25(ivec2) Load 27(o2)
+ 100: 7(fvec4) ImageGather 96 97 99 Offset 98
+ Store 93(txval101) 100
+ 102: 34 Load 36(g_tTex2di4)
+ 103: 14 Load 16(g_sSamp)
+ 104: 39 SampledImage 102 103
+ 105: 20(fvec2) Load 22(c2)
+ 106: 25(ivec2) Load 27(o2)
+ 107: 31(ivec4) ImageGather 104 105 99 Offset 106
+ Store 101(txval111) 107
+ 109: 48 Load 50(g_tTex2du4)
+ 110: 14 Load 16(g_sSamp)
+ 111: 53 SampledImage 109 110
+ 112: 20(fvec2) Load 22(c2)
+ 113: 25(ivec2) Load 27(o2)
+ 114: 45(ivec4) ImageGather 111 112 99 Offset 113
+ Store 108(txval121) 114
+ 116: 10 Load 12(g_tTex2df4)
+ 117: 14 Load 16(g_sSamp)
+ 118: 18 SampledImage 116 117
+ 119: 20(fvec2) Load 22(c2)
+ 120: 25(ivec2) Load 27(o2)
+ 121: 25(ivec2) Load 27(o2)
+ 122: 25(ivec2) Load 27(o2)
+ 123: 25(ivec2) Load 27(o2)
+ 124: 68 CompositeConstruct 120 121 122 123
+ 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124
+ Store 115(txval104) 125
+ 127: 34 Load 36(g_tTex2di4)
+ 128: 14 Load 16(g_sSamp)
+ 129: 39 SampledImage 127 128
+ 130: 20(fvec2) Load 22(c2)
+ 131: 25(ivec2) Load 27(o2)
+ 132: 25(ivec2) Load 27(o2)
+ 133: 25(ivec2) Load 27(o2)
+ 134: 25(ivec2) Load 27(o2)
+ 135: 68 CompositeConstruct 131 132 133 134
+ 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135
+ Store 126(txval114) 136
+ 138: 48 Load 50(g_tTex2du4)
+ 139: 14 Load 16(g_sSamp)
+ 140: 53 SampledImage 138 139
+ 141: 20(fvec2) Load 22(c2)
+ 142: 25(ivec2) Load 27(o2)
+ 143: 25(ivec2) Load 27(o2)
+ 144: 25(ivec2) Load 27(o2)
+ 145: 25(ivec2) Load 27(o2)
+ 146: 68 CompositeConstruct 142 143 144 145
+ 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146
+ Store 137(txval124) 147
+ 149: 10 Load 12(g_tTex2df4)
+ 150: 14 Load 16(g_sSamp)
+ 151: 18 SampledImage 149 150
+ 152: 20(fvec2) Load 22(c2)
+ 153: 25(ivec2) Load 27(o2)
+ 155: 7(fvec4) ImageGather 151 152 154 Offset 153
+ Store 148(txval201) 155
+ 157: 34 Load 36(g_tTex2di4)
+ 158: 14 Load 16(g_sSamp)
+ 159: 39 SampledImage 157 158
+ 160: 20(fvec2) Load 22(c2)
+ 161: 25(ivec2) Load 27(o2)
+ 162: 31(ivec4) ImageGather 159 160 154 Offset 161
+ Store 156(txval211) 162
+ 164: 48 Load 50(g_tTex2du4)
+ 165: 14 Load 16(g_sSamp)
+ 166: 53 SampledImage 164 165
+ 167: 20(fvec2) Load 22(c2)
+ 168: 25(ivec2) Load 27(o2)
+ 169: 45(ivec4) ImageGather 166 167 154 Offset 168
+ Store 163(txval221) 169
+ 171: 10 Load 12(g_tTex2df4)
+ 172: 14 Load 16(g_sSamp)
+ 173: 18 SampledImage 171 172
+ 174: 20(fvec2) Load 22(c2)
+ 175: 25(ivec2) Load 27(o2)
+ 176: 25(ivec2) Load 27(o2)
+ 177: 25(ivec2) Load 27(o2)
+ 178: 25(ivec2) Load 27(o2)
+ 179: 68 CompositeConstruct 175 176 177 178
+ 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179
+ Store 170(txval204) 180
+ 182: 34 Load 36(g_tTex2di4)
+ 183: 14 Load 16(g_sSamp)
+ 184: 39 SampledImage 182 183
+ 185: 20(fvec2) Load 22(c2)
+ 186: 25(ivec2) Load 27(o2)
+ 187: 25(ivec2) Load 27(o2)
+ 188: 25(ivec2) Load 27(o2)
+ 189: 25(ivec2) Load 27(o2)
+ 190: 68 CompositeConstruct 186 187 188 189
+ 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190
+ Store 181(txval214) 191
+ 193: 48 Load 50(g_tTex2du4)
+ 194: 14 Load 16(g_sSamp)
+ 195: 53 SampledImage 193 194
+ 196: 20(fvec2) Load 22(c2)
+ 197: 25(ivec2) Load 27(o2)
+ 198: 25(ivec2) Load 27(o2)
+ 199: 25(ivec2) Load 27(o2)
+ 200: 25(ivec2) Load 27(o2)
+ 201: 68 CompositeConstruct 197 198 199 200
+ 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201
+ Store 192(txval224) 202
+ 204: 10 Load 12(g_tTex2df4)
+ 205: 14 Load 16(g_sSamp)
+ 206: 18 SampledImage 204 205
+ 207: 20(fvec2) Load 22(c2)
+ 208: 25(ivec2) Load 27(o2)
+ 210: 7(fvec4) ImageGather 206 207 209 Offset 208
+ Store 203(txval301) 210
+ 212: 34 Load 36(g_tTex2di4)
+ 213: 14 Load 16(g_sSamp)
+ 214: 39 SampledImage 212 213
+ 215: 20(fvec2) Load 22(c2)
+ 216: 25(ivec2) Load 27(o2)
+ 217: 31(ivec4) ImageGather 214 215 209 Offset 216
+ Store 211(txval311) 217
+ 219: 48 Load 50(g_tTex2du4)
+ 220: 14 Load 16(g_sSamp)
+ 221: 53 SampledImage 219 220
+ 222: 20(fvec2) Load 22(c2)
+ 223: 25(ivec2) Load 27(o2)
+ 224: 45(ivec4) ImageGather 221 222 209 Offset 223
+ Store 218(txval321) 224
+ 226: 10 Load 12(g_tTex2df4)
+ 227: 14 Load 16(g_sSamp)
+ 228: 18 SampledImage 226 227
+ 229: 20(fvec2) Load 22(c2)
+ 230: 25(ivec2) Load 27(o2)
+ 231: 25(ivec2) Load 27(o2)
+ 232: 25(ivec2) Load 27(o2)
+ 233: 25(ivec2) Load 27(o2)
+ 234: 68 CompositeConstruct 230 231 232 233
+ 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234
+ Store 225(txval304) 235
+ 237: 34 Load 36(g_tTex2di4)
+ 238: 14 Load 16(g_sSamp)
+ 239: 39 SampledImage 237 238
+ 240: 20(fvec2) Load 22(c2)
+ 241: 25(ivec2) Load 27(o2)
+ 242: 25(ivec2) Load 27(o2)
+ 243: 25(ivec2) Load 27(o2)
+ 244: 25(ivec2) Load 27(o2)
+ 245: 68 CompositeConstruct 241 242 243 244
+ 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245
+ Store 236(txval314) 246
+ 248: 48 Load 50(g_tTex2du4)
+ 249: 14 Load 16(g_sSamp)
+ 250: 53 SampledImage 248 249
+ 251: 20(fvec2) Load 22(c2)
+ 252: 25(ivec2) Load 27(o2)
+ 253: 25(ivec2) Load 27(o2)
+ 254: 25(ivec2) Load 27(o2)
+ 255: 25(ivec2) Load 27(o2)
+ 256: 68 CompositeConstruct 252 253 254 255
+ 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256
+ Store 247(txval324) 257
+ 263: 8(ptr) AccessChain 260(psout) 29
+ Store 263 262
+ 265: 264(ptr) AccessChain 260(psout) 99
+ Store 265 261
+ 266:258(PS_OUTPUT) Load 260(psout)
+ ReturnValue 266
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
new file mode 100644
index 0000000..f9c28d0
--- /dev/null
+++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
@@ -0,0 +1,1122 @@
+hlsl.gatherRGBA.offsetarray.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Function Parameters:
+0:? Sequence
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'txval001' (temp 4-component vector of float)
+0:40 textureGatherOffset (global 4-component vector of float)
+0:40 Construct combined texture-sampler (temp sampler2DArray)
+0:40 'g_tTex2df4a' (uniform texture2DArray)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:40 'c3' (uniform 3-component vector of float)
+0:40 'o2' (uniform 2-component vector of int)
+0:40 Constant:
+0:40 0 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of int)
+0:41 'txval011' (temp 4-component vector of int)
+0:41 textureGatherOffset (global 4-component vector of int)
+0:41 Construct combined texture-sampler (temp isampler2DArray)
+0:41 'g_tTex2di4a' (uniform itexture2DArray)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:41 'c3' (uniform 3-component vector of float)
+0:41 'o2' (uniform 2-component vector of int)
+0:41 Constant:
+0:41 0 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of uint)
+0:42 'txval021' (temp 4-component vector of uint)
+0:42 textureGatherOffset (global 4-component vector of uint)
+0:42 Construct combined texture-sampler (temp usampler2DArray)
+0:42 'g_tTex2du4a' (uniform utexture2DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 'c3' (uniform 3-component vector of float)
+0:42 'o2' (uniform 2-component vector of int)
+0:42 Constant:
+0:42 0 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'txval004' (temp 4-component vector of float)
+0:44 textureGatherOffsets (global 4-component vector of float)
+0:44 Construct combined texture-sampler (temp sampler2DArray)
+0:44 'g_tTex2df4a' (uniform texture2DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 'c3' (uniform 3-component vector of float)
+0:44 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 Constant:
+0:44 0 (const int)
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of int)
+0:45 'txval014' (temp 4-component vector of int)
+0:45 textureGatherOffsets (global 4-component vector of int)
+0:45 Construct combined texture-sampler (temp isampler2DArray)
+0:45 'g_tTex2di4a' (uniform itexture2DArray)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:45 'c3' (uniform 3-component vector of float)
+0:45 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 Constant:
+0:45 0 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of uint)
+0:46 'txval024' (temp 4-component vector of uint)
+0:46 textureGatherOffsets (global 4-component vector of uint)
+0:46 Construct combined texture-sampler (temp usampler2DArray)
+0:46 'g_tTex2du4a' (uniform utexture2DArray)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:46 'c3' (uniform 3-component vector of float)
+0:46 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 Constant:
+0:46 0 (const int)
+0:56 Sequence
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 'txval101' (temp 4-component vector of float)
+0:56 textureGatherOffset (global 4-component vector of float)
+0:56 Construct combined texture-sampler (temp sampler2DArray)
+0:56 'g_tTex2df4a' (uniform texture2DArray)
+0:56 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:56 'c3' (uniform 3-component vector of float)
+0:56 'o2' (uniform 2-component vector of int)
+0:56 Constant:
+0:56 1 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp 4-component vector of int)
+0:57 'txval111' (temp 4-component vector of int)
+0:57 textureGatherOffset (global 4-component vector of int)
+0:57 Construct combined texture-sampler (temp isampler2DArray)
+0:57 'g_tTex2di4a' (uniform itexture2DArray)
+0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:57 'c3' (uniform 3-component vector of float)
+0:57 'o2' (uniform 2-component vector of int)
+0:57 Constant:
+0:57 1 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp 4-component vector of uint)
+0:58 'txval121' (temp 4-component vector of uint)
+0:58 textureGatherOffset (global 4-component vector of uint)
+0:58 Construct combined texture-sampler (temp usampler2DArray)
+0:58 'g_tTex2du4a' (uniform utexture2DArray)
+0:58 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:58 'c3' (uniform 3-component vector of float)
+0:58 'o2' (uniform 2-component vector of int)
+0:58 Constant:
+0:58 1 (const int)
+0:60 Sequence
+0:60 move second child to first child (temp 4-component vector of float)
+0:60 'txval104' (temp 4-component vector of float)
+0:60 textureGatherOffsets (global 4-component vector of float)
+0:60 Construct combined texture-sampler (temp sampler2DArray)
+0:60 'g_tTex2df4a' (uniform texture2DArray)
+0:60 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:60 'c3' (uniform 3-component vector of float)
+0:60 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 Constant:
+0:60 1 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 4-component vector of int)
+0:61 'txval114' (temp 4-component vector of int)
+0:61 textureGatherOffsets (global 4-component vector of int)
+0:61 Construct combined texture-sampler (temp isampler2DArray)
+0:61 'g_tTex2di4a' (uniform itexture2DArray)
+0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:61 'c3' (uniform 3-component vector of float)
+0:61 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 Constant:
+0:61 1 (const int)
+0:62 Sequence
+0:62 move second child to first child (temp 4-component vector of uint)
+0:62 'txval124' (temp 4-component vector of uint)
+0:62 textureGatherOffsets (global 4-component vector of uint)
+0:62 Construct combined texture-sampler (temp usampler2DArray)
+0:62 'g_tTex2du4a' (uniform utexture2DArray)
+0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:62 'c3' (uniform 3-component vector of float)
+0:62 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 Constant:
+0:62 1 (const int)
+0:72 Sequence
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 'txval201' (temp 4-component vector of float)
+0:72 textureGatherOffset (global 4-component vector of float)
+0:72 Construct combined texture-sampler (temp sampler2DArray)
+0:72 'g_tTex2df4a' (uniform texture2DArray)
+0:72 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:72 'c3' (uniform 3-component vector of float)
+0:72 'o2' (uniform 2-component vector of int)
+0:72 Constant:
+0:72 2 (const int)
+0:73 Sequence
+0:73 move second child to first child (temp 4-component vector of int)
+0:73 'txval211' (temp 4-component vector of int)
+0:73 textureGatherOffset (global 4-component vector of int)
+0:73 Construct combined texture-sampler (temp isampler2DArray)
+0:73 'g_tTex2di4a' (uniform itexture2DArray)
+0:73 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:73 'c3' (uniform 3-component vector of float)
+0:73 'o2' (uniform 2-component vector of int)
+0:73 Constant:
+0:73 2 (const int)
+0:74 Sequence
+0:74 move second child to first child (temp 4-component vector of uint)
+0:74 'txval221' (temp 4-component vector of uint)
+0:74 textureGatherOffset (global 4-component vector of uint)
+0:74 Construct combined texture-sampler (temp usampler2DArray)
+0:74 'g_tTex2du4a' (uniform utexture2DArray)
+0:74 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:74 'c3' (uniform 3-component vector of float)
+0:74 'o2' (uniform 2-component vector of int)
+0:74 Constant:
+0:74 2 (const int)
+0:76 Sequence
+0:76 move second child to first child (temp 4-component vector of float)
+0:76 'txval204' (temp 4-component vector of float)
+0:76 textureGatherOffsets (global 4-component vector of float)
+0:76 Construct combined texture-sampler (temp sampler2DArray)
+0:76 'g_tTex2df4a' (uniform texture2DArray)
+0:76 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:76 'c3' (uniform 3-component vector of float)
+0:76 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 Constant:
+0:76 2 (const int)
+0:77 Sequence
+0:77 move second child to first child (temp 4-component vector of int)
+0:77 'txval214' (temp 4-component vector of int)
+0:77 textureGatherOffsets (global 4-component vector of int)
+0:77 Construct combined texture-sampler (temp isampler2DArray)
+0:77 'g_tTex2di4a' (uniform itexture2DArray)
+0:77 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:77 'c3' (uniform 3-component vector of float)
+0:77 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 Constant:
+0:77 2 (const int)
+0:78 Sequence
+0:78 move second child to first child (temp 4-component vector of uint)
+0:78 'txval224' (temp 4-component vector of uint)
+0:78 textureGatherOffsets (global 4-component vector of uint)
+0:78 Construct combined texture-sampler (temp usampler2DArray)
+0:78 'g_tTex2du4a' (uniform utexture2DArray)
+0:78 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:78 'c3' (uniform 3-component vector of float)
+0:78 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 Constant:
+0:78 2 (const int)
+0:88 Sequence
+0:88 move second child to first child (temp 4-component vector of float)
+0:88 'txval301' (temp 4-component vector of float)
+0:88 textureGatherOffset (global 4-component vector of float)
+0:88 Construct combined texture-sampler (temp sampler2DArray)
+0:88 'g_tTex2df4a' (uniform texture2DArray)
+0:88 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:88 'c3' (uniform 3-component vector of float)
+0:88 'o2' (uniform 2-component vector of int)
+0:88 Constant:
+0:88 3 (const int)
+0:89 Sequence
+0:89 move second child to first child (temp 4-component vector of int)
+0:89 'txval311' (temp 4-component vector of int)
+0:89 textureGatherOffset (global 4-component vector of int)
+0:89 Construct combined texture-sampler (temp isampler2DArray)
+0:89 'g_tTex2di4a' (uniform itexture2DArray)
+0:89 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:89 'c3' (uniform 3-component vector of float)
+0:89 'o2' (uniform 2-component vector of int)
+0:89 Constant:
+0:89 3 (const int)
+0:90 Sequence
+0:90 move second child to first child (temp 4-component vector of uint)
+0:90 'txval321' (temp 4-component vector of uint)
+0:90 textureGatherOffset (global 4-component vector of uint)
+0:90 Construct combined texture-sampler (temp usampler2DArray)
+0:90 'g_tTex2du4a' (uniform utexture2DArray)
+0:90 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:90 'c3' (uniform 3-component vector of float)
+0:90 'o2' (uniform 2-component vector of int)
+0:90 Constant:
+0:90 3 (const int)
+0:92 Sequence
+0:92 move second child to first child (temp 4-component vector of float)
+0:92 'txval304' (temp 4-component vector of float)
+0:92 textureGatherOffsets (global 4-component vector of float)
+0:92 Construct combined texture-sampler (temp sampler2DArray)
+0:92 'g_tTex2df4a' (uniform texture2DArray)
+0:92 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:92 'c3' (uniform 3-component vector of float)
+0:92 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 Constant:
+0:92 3 (const int)
+0:93 Sequence
+0:93 move second child to first child (temp 4-component vector of int)
+0:93 'txval314' (temp 4-component vector of int)
+0:93 textureGatherOffsets (global 4-component vector of int)
+0:93 Construct combined texture-sampler (temp isampler2DArray)
+0:93 'g_tTex2di4a' (uniform itexture2DArray)
+0:93 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:93 'c3' (uniform 3-component vector of float)
+0:93 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 Constant:
+0:93 3 (const int)
+0:94 Sequence
+0:94 move second child to first child (temp 4-component vector of uint)
+0:94 'txval324' (temp 4-component vector of uint)
+0:94 textureGatherOffsets (global 4-component vector of uint)
+0:94 Construct combined texture-sampler (temp usampler2DArray)
+0:94 'g_tTex2du4a' (uniform utexture2DArray)
+0:94 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:94 'c3' (uniform 3-component vector of float)
+0:94 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 Constant:
+0:94 3 (const int)
+0:106 move second child to first child (temp 4-component vector of float)
+0:106 Color: direct index for structure (temp 4-component vector of float)
+0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:106 Constant:
+0:106 0 (const int)
+0:106 Constant:
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:107 move second child to first child (temp float)
+0:107 Depth: direct index for structure (temp float FragDepth)
+0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:107 Constant:
+0:107 1 (const int)
+0:107 Constant:
+0:107 1.000000
+0:109 Branch: Return with expression
+0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:111 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Function Parameters:
+0:? Sequence
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'txval001' (temp 4-component vector of float)
+0:40 textureGatherOffset (global 4-component vector of float)
+0:40 Construct combined texture-sampler (temp sampler2DArray)
+0:40 'g_tTex2df4a' (uniform texture2DArray)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:40 'c3' (uniform 3-component vector of float)
+0:40 'o2' (uniform 2-component vector of int)
+0:40 Constant:
+0:40 0 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of int)
+0:41 'txval011' (temp 4-component vector of int)
+0:41 textureGatherOffset (global 4-component vector of int)
+0:41 Construct combined texture-sampler (temp isampler2DArray)
+0:41 'g_tTex2di4a' (uniform itexture2DArray)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:41 'c3' (uniform 3-component vector of float)
+0:41 'o2' (uniform 2-component vector of int)
+0:41 Constant:
+0:41 0 (const int)
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of uint)
+0:42 'txval021' (temp 4-component vector of uint)
+0:42 textureGatherOffset (global 4-component vector of uint)
+0:42 Construct combined texture-sampler (temp usampler2DArray)
+0:42 'g_tTex2du4a' (uniform utexture2DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 'c3' (uniform 3-component vector of float)
+0:42 'o2' (uniform 2-component vector of int)
+0:42 Constant:
+0:42 0 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'txval004' (temp 4-component vector of float)
+0:44 textureGatherOffsets (global 4-component vector of float)
+0:44 Construct combined texture-sampler (temp sampler2DArray)
+0:44 'g_tTex2df4a' (uniform texture2DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 'c3' (uniform 3-component vector of float)
+0:44 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 'o2' (uniform 2-component vector of int)
+0:44 Constant:
+0:44 0 (const int)
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of int)
+0:45 'txval014' (temp 4-component vector of int)
+0:45 textureGatherOffsets (global 4-component vector of int)
+0:45 Construct combined texture-sampler (temp isampler2DArray)
+0:45 'g_tTex2di4a' (uniform itexture2DArray)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:45 'c3' (uniform 3-component vector of float)
+0:45 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 'o2' (uniform 2-component vector of int)
+0:45 Constant:
+0:45 0 (const int)
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of uint)
+0:46 'txval024' (temp 4-component vector of uint)
+0:46 textureGatherOffsets (global 4-component vector of uint)
+0:46 Construct combined texture-sampler (temp usampler2DArray)
+0:46 'g_tTex2du4a' (uniform utexture2DArray)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:46 'c3' (uniform 3-component vector of float)
+0:46 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 'o2' (uniform 2-component vector of int)
+0:46 Constant:
+0:46 0 (const int)
+0:56 Sequence
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 'txval101' (temp 4-component vector of float)
+0:56 textureGatherOffset (global 4-component vector of float)
+0:56 Construct combined texture-sampler (temp sampler2DArray)
+0:56 'g_tTex2df4a' (uniform texture2DArray)
+0:56 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:56 'c3' (uniform 3-component vector of float)
+0:56 'o2' (uniform 2-component vector of int)
+0:56 Constant:
+0:56 1 (const int)
+0:57 Sequence
+0:57 move second child to first child (temp 4-component vector of int)
+0:57 'txval111' (temp 4-component vector of int)
+0:57 textureGatherOffset (global 4-component vector of int)
+0:57 Construct combined texture-sampler (temp isampler2DArray)
+0:57 'g_tTex2di4a' (uniform itexture2DArray)
+0:57 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:57 'c3' (uniform 3-component vector of float)
+0:57 'o2' (uniform 2-component vector of int)
+0:57 Constant:
+0:57 1 (const int)
+0:58 Sequence
+0:58 move second child to first child (temp 4-component vector of uint)
+0:58 'txval121' (temp 4-component vector of uint)
+0:58 textureGatherOffset (global 4-component vector of uint)
+0:58 Construct combined texture-sampler (temp usampler2DArray)
+0:58 'g_tTex2du4a' (uniform utexture2DArray)
+0:58 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:58 'c3' (uniform 3-component vector of float)
+0:58 'o2' (uniform 2-component vector of int)
+0:58 Constant:
+0:58 1 (const int)
+0:60 Sequence
+0:60 move second child to first child (temp 4-component vector of float)
+0:60 'txval104' (temp 4-component vector of float)
+0:60 textureGatherOffsets (global 4-component vector of float)
+0:60 Construct combined texture-sampler (temp sampler2DArray)
+0:60 'g_tTex2df4a' (uniform texture2DArray)
+0:60 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:60 'c3' (uniform 3-component vector of float)
+0:60 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 'o2' (uniform 2-component vector of int)
+0:60 Constant:
+0:60 1 (const int)
+0:61 Sequence
+0:61 move second child to first child (temp 4-component vector of int)
+0:61 'txval114' (temp 4-component vector of int)
+0:61 textureGatherOffsets (global 4-component vector of int)
+0:61 Construct combined texture-sampler (temp isampler2DArray)
+0:61 'g_tTex2di4a' (uniform itexture2DArray)
+0:61 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:61 'c3' (uniform 3-component vector of float)
+0:61 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 'o2' (uniform 2-component vector of int)
+0:61 Constant:
+0:61 1 (const int)
+0:62 Sequence
+0:62 move second child to first child (temp 4-component vector of uint)
+0:62 'txval124' (temp 4-component vector of uint)
+0:62 textureGatherOffsets (global 4-component vector of uint)
+0:62 Construct combined texture-sampler (temp usampler2DArray)
+0:62 'g_tTex2du4a' (uniform utexture2DArray)
+0:62 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:62 'c3' (uniform 3-component vector of float)
+0:62 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 'o2' (uniform 2-component vector of int)
+0:62 Constant:
+0:62 1 (const int)
+0:72 Sequence
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 'txval201' (temp 4-component vector of float)
+0:72 textureGatherOffset (global 4-component vector of float)
+0:72 Construct combined texture-sampler (temp sampler2DArray)
+0:72 'g_tTex2df4a' (uniform texture2DArray)
+0:72 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:72 'c3' (uniform 3-component vector of float)
+0:72 'o2' (uniform 2-component vector of int)
+0:72 Constant:
+0:72 2 (const int)
+0:73 Sequence
+0:73 move second child to first child (temp 4-component vector of int)
+0:73 'txval211' (temp 4-component vector of int)
+0:73 textureGatherOffset (global 4-component vector of int)
+0:73 Construct combined texture-sampler (temp isampler2DArray)
+0:73 'g_tTex2di4a' (uniform itexture2DArray)
+0:73 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:73 'c3' (uniform 3-component vector of float)
+0:73 'o2' (uniform 2-component vector of int)
+0:73 Constant:
+0:73 2 (const int)
+0:74 Sequence
+0:74 move second child to first child (temp 4-component vector of uint)
+0:74 'txval221' (temp 4-component vector of uint)
+0:74 textureGatherOffset (global 4-component vector of uint)
+0:74 Construct combined texture-sampler (temp usampler2DArray)
+0:74 'g_tTex2du4a' (uniform utexture2DArray)
+0:74 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:74 'c3' (uniform 3-component vector of float)
+0:74 'o2' (uniform 2-component vector of int)
+0:74 Constant:
+0:74 2 (const int)
+0:76 Sequence
+0:76 move second child to first child (temp 4-component vector of float)
+0:76 'txval204' (temp 4-component vector of float)
+0:76 textureGatherOffsets (global 4-component vector of float)
+0:76 Construct combined texture-sampler (temp sampler2DArray)
+0:76 'g_tTex2df4a' (uniform texture2DArray)
+0:76 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:76 'c3' (uniform 3-component vector of float)
+0:76 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 'o2' (uniform 2-component vector of int)
+0:76 Constant:
+0:76 2 (const int)
+0:77 Sequence
+0:77 move second child to first child (temp 4-component vector of int)
+0:77 'txval214' (temp 4-component vector of int)
+0:77 textureGatherOffsets (global 4-component vector of int)
+0:77 Construct combined texture-sampler (temp isampler2DArray)
+0:77 'g_tTex2di4a' (uniform itexture2DArray)
+0:77 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:77 'c3' (uniform 3-component vector of float)
+0:77 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 'o2' (uniform 2-component vector of int)
+0:77 Constant:
+0:77 2 (const int)
+0:78 Sequence
+0:78 move second child to first child (temp 4-component vector of uint)
+0:78 'txval224' (temp 4-component vector of uint)
+0:78 textureGatherOffsets (global 4-component vector of uint)
+0:78 Construct combined texture-sampler (temp usampler2DArray)
+0:78 'g_tTex2du4a' (uniform utexture2DArray)
+0:78 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:78 'c3' (uniform 3-component vector of float)
+0:78 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 'o2' (uniform 2-component vector of int)
+0:78 Constant:
+0:78 2 (const int)
+0:88 Sequence
+0:88 move second child to first child (temp 4-component vector of float)
+0:88 'txval301' (temp 4-component vector of float)
+0:88 textureGatherOffset (global 4-component vector of float)
+0:88 Construct combined texture-sampler (temp sampler2DArray)
+0:88 'g_tTex2df4a' (uniform texture2DArray)
+0:88 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:88 'c3' (uniform 3-component vector of float)
+0:88 'o2' (uniform 2-component vector of int)
+0:88 Constant:
+0:88 3 (const int)
+0:89 Sequence
+0:89 move second child to first child (temp 4-component vector of int)
+0:89 'txval311' (temp 4-component vector of int)
+0:89 textureGatherOffset (global 4-component vector of int)
+0:89 Construct combined texture-sampler (temp isampler2DArray)
+0:89 'g_tTex2di4a' (uniform itexture2DArray)
+0:89 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:89 'c3' (uniform 3-component vector of float)
+0:89 'o2' (uniform 2-component vector of int)
+0:89 Constant:
+0:89 3 (const int)
+0:90 Sequence
+0:90 move second child to first child (temp 4-component vector of uint)
+0:90 'txval321' (temp 4-component vector of uint)
+0:90 textureGatherOffset (global 4-component vector of uint)
+0:90 Construct combined texture-sampler (temp usampler2DArray)
+0:90 'g_tTex2du4a' (uniform utexture2DArray)
+0:90 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:90 'c3' (uniform 3-component vector of float)
+0:90 'o2' (uniform 2-component vector of int)
+0:90 Constant:
+0:90 3 (const int)
+0:92 Sequence
+0:92 move second child to first child (temp 4-component vector of float)
+0:92 'txval304' (temp 4-component vector of float)
+0:92 textureGatherOffsets (global 4-component vector of float)
+0:92 Construct combined texture-sampler (temp sampler2DArray)
+0:92 'g_tTex2df4a' (uniform texture2DArray)
+0:92 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:92 'c3' (uniform 3-component vector of float)
+0:92 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 'o2' (uniform 2-component vector of int)
+0:92 Constant:
+0:92 3 (const int)
+0:93 Sequence
+0:93 move second child to first child (temp 4-component vector of int)
+0:93 'txval314' (temp 4-component vector of int)
+0:93 textureGatherOffsets (global 4-component vector of int)
+0:93 Construct combined texture-sampler (temp isampler2DArray)
+0:93 'g_tTex2di4a' (uniform itexture2DArray)
+0:93 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:93 'c3' (uniform 3-component vector of float)
+0:93 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 'o2' (uniform 2-component vector of int)
+0:93 Constant:
+0:93 3 (const int)
+0:94 Sequence
+0:94 move second child to first child (temp 4-component vector of uint)
+0:94 'txval324' (temp 4-component vector of uint)
+0:94 textureGatherOffsets (global 4-component vector of uint)
+0:94 Construct combined texture-sampler (temp usampler2DArray)
+0:94 'g_tTex2du4a' (uniform utexture2DArray)
+0:94 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:94 'c3' (uniform 3-component vector of float)
+0:94 Construct ivec2 (temp 4-element array of 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 'o2' (uniform 2-component vector of int)
+0:94 Constant:
+0:94 3 (const int)
+0:106 move second child to first child (temp 4-component vector of float)
+0:106 Color: direct index for structure (temp 4-component vector of float)
+0:106 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:106 Constant:
+0:106 0 (const int)
+0:106 Constant:
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:106 1.000000
+0:107 move second child to first child (temp float)
+0:107 Depth: direct index for structure (temp float FragDepth)
+0:107 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:107 Constant:
+0:107 1 (const int)
+0:107 Constant:
+0:107 1.000000
+0:109 Branch: Return with expression
+0:109 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform float)
+0:? 'c2' (uniform 2-component vector of float)
+0:? 'c3' (uniform 3-component vector of float)
+0:? 'c4' (uniform 4-component vector of float)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 301
+
+ Capability Shader
+ Capability ImageGatherExtended
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval001"
+ Name 12 "g_tTex2df4a"
+ Name 16 "g_sSamp"
+ Name 22 "c3"
+ Name 27 "o2"
+ Name 33 "txval011"
+ Name 36 "g_tTex2di4a"
+ Name 47 "txval021"
+ Name 50 "g_tTex2du4a"
+ Name 58 "txval004"
+ Name 71 "txval014"
+ Name 82 "txval024"
+ Name 93 "txval101"
+ Name 101 "txval111"
+ Name 108 "txval121"
+ Name 115 "txval104"
+ Name 126 "txval114"
+ Name 137 "txval124"
+ Name 148 "txval201"
+ Name 156 "txval211"
+ Name 163 "txval221"
+ Name 170 "txval204"
+ Name 181 "txval214"
+ Name 192 "txval224"
+ Name 203 "txval301"
+ Name 211 "txval311"
+ Name 218 "txval321"
+ Name 225 "txval304"
+ Name 236 "txval314"
+ Name 247 "txval324"
+ Name 258 "PS_OUTPUT"
+ MemberName 258(PS_OUTPUT) 0 "Color"
+ MemberName 258(PS_OUTPUT) 1 "Depth"
+ Name 260 "psout"
+ Name 268 "g_sSamp2d"
+ Name 271 "g_tTex1df4a"
+ Name 274 "g_tTex1di4a"
+ Name 277 "g_tTex1du4a"
+ Name 280 "g_tTexcdf4a"
+ Name 283 "g_tTexcdi4a"
+ Name 286 "g_tTexcdu4a"
+ Name 288 "c1"
+ Name 291 "c2"
+ Name 293 "c4"
+ Name 295 "o1"
+ Name 298 "o3"
+ Name 300 "o4"
+ Decorate 12(g_tTex2df4a) DescriptorSet 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 36(g_tTex2di4a) DescriptorSet 0
+ Decorate 50(g_tTex2du4a) DescriptorSet 0
+ MemberDecorate 258(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 268(g_sSamp2d) DescriptorSet 0
+ Decorate 271(g_tTex1df4a) DescriptorSet 0
+ Decorate 271(g_tTex1df4a) Binding 0
+ Decorate 274(g_tTex1di4a) DescriptorSet 0
+ Decorate 277(g_tTex1du4a) DescriptorSet 0
+ Decorate 280(g_tTexcdf4a) DescriptorSet 0
+ Decorate 283(g_tTexcdi4a) DescriptorSet 0
+ Decorate 286(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 2D array sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex2df4a): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 3
+ 21: TypePointer UniformConstant 20(fvec3)
+ 22(c3): 21(ptr) Variable UniformConstant
+ 24: TypeInt 32 1
+ 25: TypeVector 24(int) 2
+ 26: TypePointer UniformConstant 25(ivec2)
+ 27(o2): 26(ptr) Variable UniformConstant
+ 29: 24(int) Constant 0
+ 31: TypeVector 24(int) 4
+ 32: TypePointer Function 31(ivec4)
+ 34: TypeImage 24(int) 2D array sampled format:Unknown
+ 35: TypePointer UniformConstant 34
+ 36(g_tTex2di4a): 35(ptr) Variable UniformConstant
+ 39: TypeSampledImage 34
+ 44: TypeInt 32 0
+ 45: TypeVector 44(int) 4
+ 46: TypePointer Function 45(ivec4)
+ 48: TypeImage 44(int) 2D array sampled format:Unknown
+ 49: TypePointer UniformConstant 48
+ 50(g_tTex2du4a): 49(ptr) Variable UniformConstant
+ 53: TypeSampledImage 48
+ 67: 44(int) Constant 4
+ 68: TypeArray 25(ivec2) 67
+ 99: 24(int) Constant 1
+ 154: 24(int) Constant 2
+ 209: 24(int) Constant 3
+ 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 259: TypePointer Function 258(PS_OUTPUT)
+ 261: 6(float) Constant 1065353216
+ 262: 7(fvec4) ConstantComposite 261 261 261 261
+ 264: TypePointer Function 6(float)
+ 268(g_sSamp2d): 15(ptr) Variable UniformConstant
+ 269: TypeImage 6(float) 1D array sampled format:Unknown
+ 270: TypePointer UniformConstant 269
+271(g_tTex1df4a): 270(ptr) Variable UniformConstant
+ 272: TypeImage 24(int) 1D array sampled format:Unknown
+ 273: TypePointer UniformConstant 272
+274(g_tTex1di4a): 273(ptr) Variable UniformConstant
+ 275: TypeImage 44(int) 1D array sampled format:Unknown
+ 276: TypePointer UniformConstant 275
+277(g_tTex1du4a): 276(ptr) Variable UniformConstant
+ 278: TypeImage 6(float) Cube array sampled format:Unknown
+ 279: TypePointer UniformConstant 278
+280(g_tTexcdf4a): 279(ptr) Variable UniformConstant
+ 281: TypeImage 24(int) Cube array sampled format:Unknown
+ 282: TypePointer UniformConstant 281
+283(g_tTexcdi4a): 282(ptr) Variable UniformConstant
+ 284: TypeImage 44(int) Cube array sampled format:Unknown
+ 285: TypePointer UniformConstant 284
+286(g_tTexcdu4a): 285(ptr) Variable UniformConstant
+ 287: TypePointer UniformConstant 6(float)
+ 288(c1): 287(ptr) Variable UniformConstant
+ 289: TypeVector 6(float) 2
+ 290: TypePointer UniformConstant 289(fvec2)
+ 291(c2): 290(ptr) Variable UniformConstant
+ 292: TypePointer UniformConstant 7(fvec4)
+ 293(c4): 292(ptr) Variable UniformConstant
+ 294: TypePointer UniformConstant 24(int)
+ 295(o1): 294(ptr) Variable UniformConstant
+ 296: TypeVector 24(int) 3
+ 297: TypePointer UniformConstant 296(ivec3)
+ 298(o3): 297(ptr) Variable UniformConstant
+ 299: TypePointer UniformConstant 31(ivec4)
+ 300(o4): 299(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval001): 8(ptr) Variable Function
+ 33(txval011): 32(ptr) Variable Function
+ 47(txval021): 46(ptr) Variable Function
+ 58(txval004): 8(ptr) Variable Function
+ 71(txval014): 32(ptr) Variable Function
+ 82(txval024): 46(ptr) Variable Function
+ 93(txval101): 8(ptr) Variable Function
+ 101(txval111): 32(ptr) Variable Function
+ 108(txval121): 46(ptr) Variable Function
+ 115(txval104): 8(ptr) Variable Function
+ 126(txval114): 32(ptr) Variable Function
+ 137(txval124): 46(ptr) Variable Function
+ 148(txval201): 8(ptr) Variable Function
+ 156(txval211): 32(ptr) Variable Function
+ 163(txval221): 46(ptr) Variable Function
+ 170(txval204): 8(ptr) Variable Function
+ 181(txval214): 32(ptr) Variable Function
+ 192(txval224): 46(ptr) Variable Function
+ 203(txval301): 8(ptr) Variable Function
+ 211(txval311): 32(ptr) Variable Function
+ 218(txval321): 46(ptr) Variable Function
+ 225(txval304): 8(ptr) Variable Function
+ 236(txval314): 32(ptr) Variable Function
+ 247(txval324): 46(ptr) Variable Function
+ 260(psout): 259(ptr) Variable Function
+ 13: 10 Load 12(g_tTex2df4a)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 23: 20(fvec3) Load 22(c3)
+ 28: 25(ivec2) Load 27(o2)
+ 30: 7(fvec4) ImageGather 19 23 29 Offset 28
+ Store 9(txval001) 30
+ 37: 34 Load 36(g_tTex2di4a)
+ 38: 14 Load 16(g_sSamp)
+ 40: 39 SampledImage 37 38
+ 41: 20(fvec3) Load 22(c3)
+ 42: 25(ivec2) Load 27(o2)
+ 43: 31(ivec4) ImageGather 40 41 29 Offset 42
+ Store 33(txval011) 43
+ 51: 48 Load 50(g_tTex2du4a)
+ 52: 14 Load 16(g_sSamp)
+ 54: 53 SampledImage 51 52
+ 55: 20(fvec3) Load 22(c3)
+ 56: 25(ivec2) Load 27(o2)
+ 57: 45(ivec4) ImageGather 54 55 29 Offset 56
+ Store 47(txval021) 57
+ 59: 10 Load 12(g_tTex2df4a)
+ 60: 14 Load 16(g_sSamp)
+ 61: 18 SampledImage 59 60
+ 62: 20(fvec3) Load 22(c3)
+ 63: 25(ivec2) Load 27(o2)
+ 64: 25(ivec2) Load 27(o2)
+ 65: 25(ivec2) Load 27(o2)
+ 66: 25(ivec2) Load 27(o2)
+ 69: 68 CompositeConstruct 63 64 65 66
+ 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69
+ Store 58(txval004) 70
+ 72: 34 Load 36(g_tTex2di4a)
+ 73: 14 Load 16(g_sSamp)
+ 74: 39 SampledImage 72 73
+ 75: 20(fvec3) Load 22(c3)
+ 76: 25(ivec2) Load 27(o2)
+ 77: 25(ivec2) Load 27(o2)
+ 78: 25(ivec2) Load 27(o2)
+ 79: 25(ivec2) Load 27(o2)
+ 80: 68 CompositeConstruct 76 77 78 79
+ 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80
+ Store 71(txval014) 81
+ 83: 48 Load 50(g_tTex2du4a)
+ 84: 14 Load 16(g_sSamp)
+ 85: 53 SampledImage 83 84
+ 86: 20(fvec3) Load 22(c3)
+ 87: 25(ivec2) Load 27(o2)
+ 88: 25(ivec2) Load 27(o2)
+ 89: 25(ivec2) Load 27(o2)
+ 90: 25(ivec2) Load 27(o2)
+ 91: 68 CompositeConstruct 87 88 89 90
+ 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91
+ Store 82(txval024) 92
+ 94: 10 Load 12(g_tTex2df4a)
+ 95: 14 Load 16(g_sSamp)
+ 96: 18 SampledImage 94 95
+ 97: 20(fvec3) Load 22(c3)
+ 98: 25(ivec2) Load 27(o2)
+ 100: 7(fvec4) ImageGather 96 97 99 Offset 98
+ Store 93(txval101) 100
+ 102: 34 Load 36(g_tTex2di4a)
+ 103: 14 Load 16(g_sSamp)
+ 104: 39 SampledImage 102 103
+ 105: 20(fvec3) Load 22(c3)
+ 106: 25(ivec2) Load 27(o2)
+ 107: 31(ivec4) ImageGather 104 105 99 Offset 106
+ Store 101(txval111) 107
+ 109: 48 Load 50(g_tTex2du4a)
+ 110: 14 Load 16(g_sSamp)
+ 111: 53 SampledImage 109 110
+ 112: 20(fvec3) Load 22(c3)
+ 113: 25(ivec2) Load 27(o2)
+ 114: 45(ivec4) ImageGather 111 112 99 Offset 113
+ Store 108(txval121) 114
+ 116: 10 Load 12(g_tTex2df4a)
+ 117: 14 Load 16(g_sSamp)
+ 118: 18 SampledImage 116 117
+ 119: 20(fvec3) Load 22(c3)
+ 120: 25(ivec2) Load 27(o2)
+ 121: 25(ivec2) Load 27(o2)
+ 122: 25(ivec2) Load 27(o2)
+ 123: 25(ivec2) Load 27(o2)
+ 124: 68 CompositeConstruct 120 121 122 123
+ 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124
+ Store 115(txval104) 125
+ 127: 34 Load 36(g_tTex2di4a)
+ 128: 14 Load 16(g_sSamp)
+ 129: 39 SampledImage 127 128
+ 130: 20(fvec3) Load 22(c3)
+ 131: 25(ivec2) Load 27(o2)
+ 132: 25(ivec2) Load 27(o2)
+ 133: 25(ivec2) Load 27(o2)
+ 134: 25(ivec2) Load 27(o2)
+ 135: 68 CompositeConstruct 131 132 133 134
+ 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135
+ Store 126(txval114) 136
+ 138: 48 Load 50(g_tTex2du4a)
+ 139: 14 Load 16(g_sSamp)
+ 140: 53 SampledImage 138 139
+ 141: 20(fvec3) Load 22(c3)
+ 142: 25(ivec2) Load 27(o2)
+ 143: 25(ivec2) Load 27(o2)
+ 144: 25(ivec2) Load 27(o2)
+ 145: 25(ivec2) Load 27(o2)
+ 146: 68 CompositeConstruct 142 143 144 145
+ 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146
+ Store 137(txval124) 147
+ 149: 10 Load 12(g_tTex2df4a)
+ 150: 14 Load 16(g_sSamp)
+ 151: 18 SampledImage 149 150
+ 152: 20(fvec3) Load 22(c3)
+ 153: 25(ivec2) Load 27(o2)
+ 155: 7(fvec4) ImageGather 151 152 154 Offset 153
+ Store 148(txval201) 155
+ 157: 34 Load 36(g_tTex2di4a)
+ 158: 14 Load 16(g_sSamp)
+ 159: 39 SampledImage 157 158
+ 160: 20(fvec3) Load 22(c3)
+ 161: 25(ivec2) Load 27(o2)
+ 162: 31(ivec4) ImageGather 159 160 154 Offset 161
+ Store 156(txval211) 162
+ 164: 48 Load 50(g_tTex2du4a)
+ 165: 14 Load 16(g_sSamp)
+ 166: 53 SampledImage 164 165
+ 167: 20(fvec3) Load 22(c3)
+ 168: 25(ivec2) Load 27(o2)
+ 169: 45(ivec4) ImageGather 166 167 154 Offset 168
+ Store 163(txval221) 169
+ 171: 10 Load 12(g_tTex2df4a)
+ 172: 14 Load 16(g_sSamp)
+ 173: 18 SampledImage 171 172
+ 174: 20(fvec3) Load 22(c3)
+ 175: 25(ivec2) Load 27(o2)
+ 176: 25(ivec2) Load 27(o2)
+ 177: 25(ivec2) Load 27(o2)
+ 178: 25(ivec2) Load 27(o2)
+ 179: 68 CompositeConstruct 175 176 177 178
+ 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179
+ Store 170(txval204) 180
+ 182: 34 Load 36(g_tTex2di4a)
+ 183: 14 Load 16(g_sSamp)
+ 184: 39 SampledImage 182 183
+ 185: 20(fvec3) Load 22(c3)
+ 186: 25(ivec2) Load 27(o2)
+ 187: 25(ivec2) Load 27(o2)
+ 188: 25(ivec2) Load 27(o2)
+ 189: 25(ivec2) Load 27(o2)
+ 190: 68 CompositeConstruct 186 187 188 189
+ 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190
+ Store 181(txval214) 191
+ 193: 48 Load 50(g_tTex2du4a)
+ 194: 14 Load 16(g_sSamp)
+ 195: 53 SampledImage 193 194
+ 196: 20(fvec3) Load 22(c3)
+ 197: 25(ivec2) Load 27(o2)
+ 198: 25(ivec2) Load 27(o2)
+ 199: 25(ivec2) Load 27(o2)
+ 200: 25(ivec2) Load 27(o2)
+ 201: 68 CompositeConstruct 197 198 199 200
+ 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201
+ Store 192(txval224) 202
+ 204: 10 Load 12(g_tTex2df4a)
+ 205: 14 Load 16(g_sSamp)
+ 206: 18 SampledImage 204 205
+ 207: 20(fvec3) Load 22(c3)
+ 208: 25(ivec2) Load 27(o2)
+ 210: 7(fvec4) ImageGather 206 207 209 Offset 208
+ Store 203(txval301) 210
+ 212: 34 Load 36(g_tTex2di4a)
+ 213: 14 Load 16(g_sSamp)
+ 214: 39 SampledImage 212 213
+ 215: 20(fvec3) Load 22(c3)
+ 216: 25(ivec2) Load 27(o2)
+ 217: 31(ivec4) ImageGather 214 215 209 Offset 216
+ Store 211(txval311) 217
+ 219: 48 Load 50(g_tTex2du4a)
+ 220: 14 Load 16(g_sSamp)
+ 221: 53 SampledImage 219 220
+ 222: 20(fvec3) Load 22(c3)
+ 223: 25(ivec2) Load 27(o2)
+ 224: 45(ivec4) ImageGather 221 222 209 Offset 223
+ Store 218(txval321) 224
+ 226: 10 Load 12(g_tTex2df4a)
+ 227: 14 Load 16(g_sSamp)
+ 228: 18 SampledImage 226 227
+ 229: 20(fvec3) Load 22(c3)
+ 230: 25(ivec2) Load 27(o2)
+ 231: 25(ivec2) Load 27(o2)
+ 232: 25(ivec2) Load 27(o2)
+ 233: 25(ivec2) Load 27(o2)
+ 234: 68 CompositeConstruct 230 231 232 233
+ 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234
+ Store 225(txval304) 235
+ 237: 34 Load 36(g_tTex2di4a)
+ 238: 14 Load 16(g_sSamp)
+ 239: 39 SampledImage 237 238
+ 240: 20(fvec3) Load 22(c3)
+ 241: 25(ivec2) Load 27(o2)
+ 242: 25(ivec2) Load 27(o2)
+ 243: 25(ivec2) Load 27(o2)
+ 244: 25(ivec2) Load 27(o2)
+ 245: 68 CompositeConstruct 241 242 243 244
+ 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245
+ Store 236(txval314) 246
+ 248: 48 Load 50(g_tTex2du4a)
+ 249: 14 Load 16(g_sSamp)
+ 250: 53 SampledImage 248 249
+ 251: 20(fvec3) Load 22(c3)
+ 252: 25(ivec2) Load 27(o2)
+ 253: 25(ivec2) Load 27(o2)
+ 254: 25(ivec2) Load 27(o2)
+ 255: 25(ivec2) Load 27(o2)
+ 256: 68 CompositeConstruct 252 253 254 255
+ 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256
+ Store 247(txval324) 257
+ 263: 8(ptr) AccessChain 260(psout) 29
+ Store 263 262
+ 265: 264(ptr) AccessChain 260(psout) 99
+ Store 265 261
+ 266:258(PS_OUTPUT) Load 260(psout)
+ ReturnValue 266
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
index c1556b4..dd47567 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
@@ -2,58 +2,14 @@
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
-0:238 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
-0:38 Function Parameters:
+0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:46 Function Parameters:
0:? Sequence
-0:57 Sequence
-0:57 move second child to first child (temp uint)
-0:57 'sizeQueryTemp' (temp uint)
-0:57 textureSize (temp uint)
-0:57 'g_tTex1df4' (uniform texture1D)
-0:57 move second child to first child (temp uint)
-0:57 'WidthU' (temp uint)
-0:57 'sizeQueryTemp' (temp uint)
-0:58 Sequence
-0:58 move second child to first child (temp uint)
-0:58 'sizeQueryTemp' (temp uint)
-0:58 textureSize (temp uint)
-0:58 'g_tTex1df4' (uniform texture1D)
-0:58 Constant:
-0:58 6 (const uint)
-0:58 move second child to first child (temp uint)
-0:58 'WidthU' (temp uint)
-0:58 'sizeQueryTemp' (temp uint)
-0:58 move second child to first child (temp uint)
-0:58 'NumberOfLevelsU' (temp uint)
-0:58 textureQueryLevels (temp uint)
-0:58 'g_tTex1df4' (uniform texture1D)
-0:61 Sequence
-0:61 move second child to first child (temp uint)
-0:61 'sizeQueryTemp' (temp uint)
-0:61 textureSize (temp uint)
-0:61 'g_tTex1di4' (uniform itexture1D)
-0:61 move second child to first child (temp uint)
-0:61 'WidthU' (temp uint)
-0:61 'sizeQueryTemp' (temp uint)
-0:62 Sequence
-0:62 move second child to first child (temp uint)
-0:62 'sizeQueryTemp' (temp uint)
-0:62 textureSize (temp uint)
-0:62 'g_tTex1di4' (uniform itexture1D)
-0:62 Constant:
-0:62 6 (const uint)
-0:62 move second child to first child (temp uint)
-0:62 'WidthU' (temp uint)
-0:62 'sizeQueryTemp' (temp uint)
-0:62 move second child to first child (temp uint)
-0:62 'NumberOfLevelsU' (temp uint)
-0:62 textureQueryLevels (temp uint)
-0:62 'g_tTex1di4' (uniform itexture1D)
0:65 Sequence
0:65 move second child to first child (temp uint)
0:65 'sizeQueryTemp' (temp uint)
0:65 textureSize (temp uint)
-0:65 'g_tTex1du4' (uniform utexture1D)
+0:65 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:65 move second child to first child (temp uint)
0:65 'WidthU' (temp uint)
0:65 'sizeQueryTemp' (temp uint)
@@ -61,7 +17,7 @@
0:66 move second child to first child (temp uint)
0:66 'sizeQueryTemp' (temp uint)
0:66 textureSize (temp uint)
-0:66 'g_tTex1du4' (uniform utexture1D)
+0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:66 Constant:
0:66 6 (const uint)
0:66 move second child to first child (temp uint)
@@ -70,92 +26,56 @@
0:66 move second child to first child (temp uint)
0:66 'NumberOfLevelsU' (temp uint)
0:66 textureQueryLevels (temp uint)
-0:66 'g_tTex1du4' (uniform utexture1D)
+0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:69 Sequence
-0:69 move second child to first child (temp 2-component vector of uint)
-0:69 'sizeQueryTemp' (temp 2-component vector of uint)
-0:69 textureSize (temp 2-component vector of uint)
-0:69 'g_tTex1df4a' (uniform texture1DArray)
+0:69 move second child to first child (temp uint)
+0:69 'sizeQueryTemp' (temp uint)
+0:69 textureSize (temp uint)
+0:69 'g_tTex1di4' (uniform itexture1D)
0:69 move second child to first child (temp uint)
0:69 'WidthU' (temp uint)
-0:69 direct index (temp uint)
-0:69 'sizeQueryTemp' (temp 2-component vector of uint)
-0:69 Constant:
-0:69 0 (const int)
-0:69 move second child to first child (temp uint)
-0:69 'ElementsU' (temp uint)
-0:69 direct index (temp uint)
-0:69 'sizeQueryTemp' (temp 2-component vector of uint)
-0:69 Constant:
-0:69 1 (const int)
+0:69 'sizeQueryTemp' (temp uint)
0:70 Sequence
-0:70 move second child to first child (temp 2-component vector of uint)
-0:70 'sizeQueryTemp' (temp 2-component vector of uint)
-0:70 textureSize (temp 2-component vector of uint)
-0:70 'g_tTex1df4a' (uniform texture1DArray)
+0:70 move second child to first child (temp uint)
+0:70 'sizeQueryTemp' (temp uint)
+0:70 textureSize (temp uint)
+0:70 'g_tTex1di4' (uniform itexture1D)
0:70 Constant:
0:70 6 (const uint)
0:70 move second child to first child (temp uint)
0:70 'WidthU' (temp uint)
-0:70 direct index (temp uint)
-0:70 'sizeQueryTemp' (temp 2-component vector of uint)
-0:70 Constant:
-0:70 0 (const int)
-0:70 move second child to first child (temp uint)
-0:70 'ElementsU' (temp uint)
-0:70 direct index (temp uint)
-0:70 'sizeQueryTemp' (temp 2-component vector of uint)
-0:70 Constant:
-0:70 1 (const int)
+0:70 'sizeQueryTemp' (temp uint)
0:70 move second child to first child (temp uint)
0:70 'NumberOfLevelsU' (temp uint)
0:70 textureQueryLevels (temp uint)
-0:70 'g_tTex1df4a' (uniform texture1DArray)
+0:70 'g_tTex1di4' (uniform itexture1D)
0:73 Sequence
-0:73 move second child to first child (temp 2-component vector of uint)
-0:73 'sizeQueryTemp' (temp 2-component vector of uint)
-0:73 textureSize (temp 2-component vector of uint)
-0:73 'g_tTex1di4a' (uniform itexture1DArray)
+0:73 move second child to first child (temp uint)
+0:73 'sizeQueryTemp' (temp uint)
+0:73 textureSize (temp uint)
+0:73 'g_tTex1du4' (uniform utexture1D)
0:73 move second child to first child (temp uint)
0:73 'WidthU' (temp uint)
-0:73 direct index (temp uint)
-0:73 'sizeQueryTemp' (temp 2-component vector of uint)
-0:73 Constant:
-0:73 0 (const int)
-0:73 move second child to first child (temp uint)
-0:73 'ElementsU' (temp uint)
-0:73 direct index (temp uint)
-0:73 'sizeQueryTemp' (temp 2-component vector of uint)
-0:73 Constant:
-0:73 1 (const int)
+0:73 'sizeQueryTemp' (temp uint)
0:74 Sequence
-0:74 move second child to first child (temp 2-component vector of uint)
-0:74 'sizeQueryTemp' (temp 2-component vector of uint)
-0:74 textureSize (temp 2-component vector of uint)
-0:74 'g_tTex1di4a' (uniform itexture1DArray)
+0:74 move second child to first child (temp uint)
+0:74 'sizeQueryTemp' (temp uint)
+0:74 textureSize (temp uint)
+0:74 'g_tTex1du4' (uniform utexture1D)
0:74 Constant:
0:74 6 (const uint)
0:74 move second child to first child (temp uint)
0:74 'WidthU' (temp uint)
-0:74 direct index (temp uint)
-0:74 'sizeQueryTemp' (temp 2-component vector of uint)
-0:74 Constant:
-0:74 0 (const int)
-0:74 move second child to first child (temp uint)
-0:74 'ElementsU' (temp uint)
-0:74 direct index (temp uint)
-0:74 'sizeQueryTemp' (temp 2-component vector of uint)
-0:74 Constant:
-0:74 1 (const int)
+0:74 'sizeQueryTemp' (temp uint)
0:74 move second child to first child (temp uint)
0:74 'NumberOfLevelsU' (temp uint)
0:74 textureQueryLevels (temp uint)
-0:74 'g_tTex1di4a' (uniform itexture1DArray)
+0:74 'g_tTex1du4' (uniform utexture1D)
0:77 Sequence
0:77 move second child to first child (temp 2-component vector of uint)
0:77 'sizeQueryTemp' (temp 2-component vector of uint)
0:77 textureSize (temp 2-component vector of uint)
-0:77 'g_tTex1du4a' (uniform utexture1DArray)
+0:77 'g_tTex1df4a' (uniform texture1DArray)
0:77 move second child to first child (temp uint)
0:77 'WidthU' (temp uint)
0:77 direct index (temp uint)
@@ -172,7 +92,7 @@
0:78 move second child to first child (temp 2-component vector of uint)
0:78 'sizeQueryTemp' (temp 2-component vector of uint)
0:78 textureSize (temp 2-component vector of uint)
-0:78 'g_tTex1du4a' (uniform utexture1DArray)
+0:78 'g_tTex1df4a' (uniform texture1DArray)
0:78 Constant:
0:78 6 (const uint)
0:78 move second child to first child (temp uint)
@@ -190,12 +110,12 @@
0:78 move second child to first child (temp uint)
0:78 'NumberOfLevelsU' (temp uint)
0:78 textureQueryLevels (temp uint)
-0:78 'g_tTex1du4a' (uniform utexture1DArray)
+0:78 'g_tTex1df4a' (uniform texture1DArray)
0:81 Sequence
0:81 move second child to first child (temp 2-component vector of uint)
0:81 'sizeQueryTemp' (temp 2-component vector of uint)
0:81 textureSize (temp 2-component vector of uint)
-0:81 'g_tTex2df4' (uniform texture2D)
+0:81 'g_tTex1di4a' (uniform itexture1DArray)
0:81 move second child to first child (temp uint)
0:81 'WidthU' (temp uint)
0:81 direct index (temp uint)
@@ -203,7 +123,7 @@
0:81 Constant:
0:81 0 (const int)
0:81 move second child to first child (temp uint)
-0:81 'HeightU' (temp uint)
+0:81 'ElementsU' (temp uint)
0:81 direct index (temp uint)
0:81 'sizeQueryTemp' (temp 2-component vector of uint)
0:81 Constant:
@@ -212,7 +132,7 @@
0:82 move second child to first child (temp 2-component vector of uint)
0:82 'sizeQueryTemp' (temp 2-component vector of uint)
0:82 textureSize (temp 2-component vector of uint)
-0:82 'g_tTex2df4' (uniform texture2D)
+0:82 'g_tTex1di4a' (uniform itexture1DArray)
0:82 Constant:
0:82 6 (const uint)
0:82 move second child to first child (temp uint)
@@ -222,7 +142,7 @@
0:82 Constant:
0:82 0 (const int)
0:82 move second child to first child (temp uint)
-0:82 'HeightU' (temp uint)
+0:82 'ElementsU' (temp uint)
0:82 direct index (temp uint)
0:82 'sizeQueryTemp' (temp 2-component vector of uint)
0:82 Constant:
@@ -230,12 +150,12 @@
0:82 move second child to first child (temp uint)
0:82 'NumberOfLevelsU' (temp uint)
0:82 textureQueryLevels (temp uint)
-0:82 'g_tTex2df4' (uniform texture2D)
+0:82 'g_tTex1di4a' (uniform itexture1DArray)
0:85 Sequence
0:85 move second child to first child (temp 2-component vector of uint)
0:85 'sizeQueryTemp' (temp 2-component vector of uint)
0:85 textureSize (temp 2-component vector of uint)
-0:85 'g_tTex2di4' (uniform itexture2D)
+0:85 'g_tTex1du4a' (uniform utexture1DArray)
0:85 move second child to first child (temp uint)
0:85 'WidthU' (temp uint)
0:85 direct index (temp uint)
@@ -243,7 +163,7 @@
0:85 Constant:
0:85 0 (const int)
0:85 move second child to first child (temp uint)
-0:85 'HeightU' (temp uint)
+0:85 'ElementsU' (temp uint)
0:85 direct index (temp uint)
0:85 'sizeQueryTemp' (temp 2-component vector of uint)
0:85 Constant:
@@ -252,7 +172,7 @@
0:86 move second child to first child (temp 2-component vector of uint)
0:86 'sizeQueryTemp' (temp 2-component vector of uint)
0:86 textureSize (temp 2-component vector of uint)
-0:86 'g_tTex2di4' (uniform itexture2D)
+0:86 'g_tTex1du4a' (uniform utexture1DArray)
0:86 Constant:
0:86 6 (const uint)
0:86 move second child to first child (temp uint)
@@ -262,7 +182,7 @@
0:86 Constant:
0:86 0 (const int)
0:86 move second child to first child (temp uint)
-0:86 'HeightU' (temp uint)
+0:86 'ElementsU' (temp uint)
0:86 direct index (temp uint)
0:86 'sizeQueryTemp' (temp 2-component vector of uint)
0:86 Constant:
@@ -270,12 +190,12 @@
0:86 move second child to first child (temp uint)
0:86 'NumberOfLevelsU' (temp uint)
0:86 textureQueryLevels (temp uint)
-0:86 'g_tTex2di4' (uniform itexture2D)
+0:86 'g_tTex1du4a' (uniform utexture1DArray)
0:89 Sequence
0:89 move second child to first child (temp 2-component vector of uint)
0:89 'sizeQueryTemp' (temp 2-component vector of uint)
0:89 textureSize (temp 2-component vector of uint)
-0:89 'g_tTex2du4' (uniform utexture2D)
+0:89 'g_tTex2df4' (uniform texture2D)
0:89 move second child to first child (temp uint)
0:89 'WidthU' (temp uint)
0:89 direct index (temp uint)
@@ -292,7 +212,7 @@
0:90 move second child to first child (temp 2-component vector of uint)
0:90 'sizeQueryTemp' (temp 2-component vector of uint)
0:90 textureSize (temp 2-component vector of uint)
-0:90 'g_tTex2du4' (uniform utexture2D)
+0:90 'g_tTex2df4' (uniform texture2D)
0:90 Constant:
0:90 6 (const uint)
0:90 move second child to first child (temp uint)
@@ -310,116 +230,92 @@
0:90 move second child to first child (temp uint)
0:90 'NumberOfLevelsU' (temp uint)
0:90 textureQueryLevels (temp uint)
-0:90 'g_tTex2du4' (uniform utexture2D)
+0:90 'g_tTex2df4' (uniform texture2D)
0:93 Sequence
-0:93 move second child to first child (temp 3-component vector of uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
-0:93 textureSize (temp 3-component vector of uint)
-0:93 'g_tTex2df4a' (uniform texture2DArray)
+0:93 move second child to first child (temp 2-component vector of uint)
+0:93 'sizeQueryTemp' (temp 2-component vector of uint)
+0:93 textureSize (temp 2-component vector of uint)
+0:93 'g_tTex2di4' (uniform itexture2D)
0:93 move second child to first child (temp uint)
0:93 'WidthU' (temp uint)
0:93 direct index (temp uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
+0:93 'sizeQueryTemp' (temp 2-component vector of uint)
0:93 Constant:
0:93 0 (const int)
0:93 move second child to first child (temp uint)
0:93 'HeightU' (temp uint)
0:93 direct index (temp uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
+0:93 'sizeQueryTemp' (temp 2-component vector of uint)
0:93 Constant:
0:93 1 (const int)
-0:93 move second child to first child (temp uint)
-0:93 'ElementsU' (temp uint)
-0:93 direct index (temp uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
-0:93 Constant:
-0:93 2 (const int)
0:94 Sequence
-0:94 move second child to first child (temp 3-component vector of uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
-0:94 textureSize (temp 3-component vector of uint)
-0:94 'g_tTex2df4a' (uniform texture2DArray)
+0:94 move second child to first child (temp 2-component vector of uint)
+0:94 'sizeQueryTemp' (temp 2-component vector of uint)
+0:94 textureSize (temp 2-component vector of uint)
+0:94 'g_tTex2di4' (uniform itexture2D)
0:94 Constant:
0:94 6 (const uint)
0:94 move second child to first child (temp uint)
0:94 'WidthU' (temp uint)
0:94 direct index (temp uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
+0:94 'sizeQueryTemp' (temp 2-component vector of uint)
0:94 Constant:
0:94 0 (const int)
0:94 move second child to first child (temp uint)
0:94 'HeightU' (temp uint)
0:94 direct index (temp uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
+0:94 'sizeQueryTemp' (temp 2-component vector of uint)
0:94 Constant:
0:94 1 (const int)
0:94 move second child to first child (temp uint)
-0:94 'ElementsU' (temp uint)
-0:94 direct index (temp uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
-0:94 Constant:
-0:94 2 (const int)
-0:94 move second child to first child (temp uint)
0:94 'NumberOfLevelsU' (temp uint)
0:94 textureQueryLevels (temp uint)
-0:94 'g_tTex2df4a' (uniform texture2DArray)
+0:94 'g_tTex2di4' (uniform itexture2D)
0:97 Sequence
-0:97 move second child to first child (temp 3-component vector of uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
-0:97 textureSize (temp 3-component vector of uint)
-0:97 'g_tTex2di4a' (uniform itexture2DArray)
+0:97 move second child to first child (temp 2-component vector of uint)
+0:97 'sizeQueryTemp' (temp 2-component vector of uint)
+0:97 textureSize (temp 2-component vector of uint)
+0:97 'g_tTex2du4' (uniform utexture2D)
0:97 move second child to first child (temp uint)
0:97 'WidthU' (temp uint)
0:97 direct index (temp uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
+0:97 'sizeQueryTemp' (temp 2-component vector of uint)
0:97 Constant:
0:97 0 (const int)
0:97 move second child to first child (temp uint)
0:97 'HeightU' (temp uint)
0:97 direct index (temp uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
+0:97 'sizeQueryTemp' (temp 2-component vector of uint)
0:97 Constant:
0:97 1 (const int)
-0:97 move second child to first child (temp uint)
-0:97 'ElementsU' (temp uint)
-0:97 direct index (temp uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
-0:97 Constant:
-0:97 2 (const int)
0:98 Sequence
-0:98 move second child to first child (temp 3-component vector of uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
-0:98 textureSize (temp 3-component vector of uint)
-0:98 'g_tTex2di4a' (uniform itexture2DArray)
+0:98 move second child to first child (temp 2-component vector of uint)
+0:98 'sizeQueryTemp' (temp 2-component vector of uint)
+0:98 textureSize (temp 2-component vector of uint)
+0:98 'g_tTex2du4' (uniform utexture2D)
0:98 Constant:
0:98 6 (const uint)
0:98 move second child to first child (temp uint)
0:98 'WidthU' (temp uint)
0:98 direct index (temp uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
+0:98 'sizeQueryTemp' (temp 2-component vector of uint)
0:98 Constant:
0:98 0 (const int)
0:98 move second child to first child (temp uint)
0:98 'HeightU' (temp uint)
0:98 direct index (temp uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
+0:98 'sizeQueryTemp' (temp 2-component vector of uint)
0:98 Constant:
0:98 1 (const int)
0:98 move second child to first child (temp uint)
-0:98 'ElementsU' (temp uint)
-0:98 direct index (temp uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
-0:98 Constant:
-0:98 2 (const int)
-0:98 move second child to first child (temp uint)
0:98 'NumberOfLevelsU' (temp uint)
0:98 textureQueryLevels (temp uint)
-0:98 'g_tTex2di4a' (uniform itexture2DArray)
+0:98 'g_tTex2du4' (uniform utexture2D)
0:101 Sequence
0:101 move second child to first child (temp 3-component vector of uint)
0:101 'sizeQueryTemp' (temp 3-component vector of uint)
0:101 textureSize (temp 3-component vector of uint)
-0:101 'g_tTex2du4a' (uniform utexture2DArray)
+0:101 'g_tTex2df4a' (uniform texture2DArray)
0:101 move second child to first child (temp uint)
0:101 'WidthU' (temp uint)
0:101 direct index (temp uint)
@@ -442,7 +338,7 @@
0:102 move second child to first child (temp 3-component vector of uint)
0:102 'sizeQueryTemp' (temp 3-component vector of uint)
0:102 textureSize (temp 3-component vector of uint)
-0:102 'g_tTex2du4a' (uniform utexture2DArray)
+0:102 'g_tTex2df4a' (uniform texture2DArray)
0:102 Constant:
0:102 6 (const uint)
0:102 move second child to first child (temp uint)
@@ -466,12 +362,12 @@
0:102 move second child to first child (temp uint)
0:102 'NumberOfLevelsU' (temp uint)
0:102 textureQueryLevels (temp uint)
-0:102 'g_tTex2du4a' (uniform utexture2DArray)
+0:102 'g_tTex2df4a' (uniform texture2DArray)
0:105 Sequence
0:105 move second child to first child (temp 3-component vector of uint)
0:105 'sizeQueryTemp' (temp 3-component vector of uint)
0:105 textureSize (temp 3-component vector of uint)
-0:105 'g_tTex3df4' (uniform texture3D)
+0:105 'g_tTex2di4a' (uniform itexture2DArray)
0:105 move second child to first child (temp uint)
0:105 'WidthU' (temp uint)
0:105 direct index (temp uint)
@@ -485,7 +381,7 @@
0:105 Constant:
0:105 1 (const int)
0:105 move second child to first child (temp uint)
-0:105 'DepthU' (temp uint)
+0:105 'ElementsU' (temp uint)
0:105 direct index (temp uint)
0:105 'sizeQueryTemp' (temp 3-component vector of uint)
0:105 Constant:
@@ -494,7 +390,7 @@
0:106 move second child to first child (temp 3-component vector of uint)
0:106 'sizeQueryTemp' (temp 3-component vector of uint)
0:106 textureSize (temp 3-component vector of uint)
-0:106 'g_tTex3df4' (uniform texture3D)
+0:106 'g_tTex2di4a' (uniform itexture2DArray)
0:106 Constant:
0:106 6 (const uint)
0:106 move second child to first child (temp uint)
@@ -510,7 +406,7 @@
0:106 Constant:
0:106 1 (const int)
0:106 move second child to first child (temp uint)
-0:106 'DepthU' (temp uint)
+0:106 'ElementsU' (temp uint)
0:106 direct index (temp uint)
0:106 'sizeQueryTemp' (temp 3-component vector of uint)
0:106 Constant:
@@ -518,12 +414,12 @@
0:106 move second child to first child (temp uint)
0:106 'NumberOfLevelsU' (temp uint)
0:106 textureQueryLevels (temp uint)
-0:106 'g_tTex3df4' (uniform texture3D)
+0:106 'g_tTex2di4a' (uniform itexture2DArray)
0:109 Sequence
0:109 move second child to first child (temp 3-component vector of uint)
0:109 'sizeQueryTemp' (temp 3-component vector of uint)
0:109 textureSize (temp 3-component vector of uint)
-0:109 'g_tTex3di4' (uniform itexture3D)
+0:109 'g_tTex2du4a' (uniform utexture2DArray)
0:109 move second child to first child (temp uint)
0:109 'WidthU' (temp uint)
0:109 direct index (temp uint)
@@ -537,7 +433,7 @@
0:109 Constant:
0:109 1 (const int)
0:109 move second child to first child (temp uint)
-0:109 'DepthU' (temp uint)
+0:109 'ElementsU' (temp uint)
0:109 direct index (temp uint)
0:109 'sizeQueryTemp' (temp 3-component vector of uint)
0:109 Constant:
@@ -546,7 +442,7 @@
0:110 move second child to first child (temp 3-component vector of uint)
0:110 'sizeQueryTemp' (temp 3-component vector of uint)
0:110 textureSize (temp 3-component vector of uint)
-0:110 'g_tTex3di4' (uniform itexture3D)
+0:110 'g_tTex2du4a' (uniform utexture2DArray)
0:110 Constant:
0:110 6 (const uint)
0:110 move second child to first child (temp uint)
@@ -562,7 +458,7 @@
0:110 Constant:
0:110 1 (const int)
0:110 move second child to first child (temp uint)
-0:110 'DepthU' (temp uint)
+0:110 'ElementsU' (temp uint)
0:110 direct index (temp uint)
0:110 'sizeQueryTemp' (temp 3-component vector of uint)
0:110 Constant:
@@ -570,12 +466,12 @@
0:110 move second child to first child (temp uint)
0:110 'NumberOfLevelsU' (temp uint)
0:110 textureQueryLevels (temp uint)
-0:110 'g_tTex3di4' (uniform itexture3D)
+0:110 'g_tTex2du4a' (uniform utexture2DArray)
0:113 Sequence
0:113 move second child to first child (temp 3-component vector of uint)
0:113 'sizeQueryTemp' (temp 3-component vector of uint)
0:113 textureSize (temp 3-component vector of uint)
-0:113 'g_tTex3du4' (uniform utexture3D)
+0:113 'g_tTex3df4' (uniform texture3D)
0:113 move second child to first child (temp uint)
0:113 'WidthU' (temp uint)
0:113 direct index (temp uint)
@@ -598,7 +494,7 @@
0:114 move second child to first child (temp 3-component vector of uint)
0:114 'sizeQueryTemp' (temp 3-component vector of uint)
0:114 textureSize (temp 3-component vector of uint)
-0:114 'g_tTex3du4' (uniform utexture3D)
+0:114 'g_tTex3df4' (uniform texture3D)
0:114 Constant:
0:114 6 (const uint)
0:114 move second child to first child (temp uint)
@@ -622,92 +518,116 @@
0:114 move second child to first child (temp uint)
0:114 'NumberOfLevelsU' (temp uint)
0:114 textureQueryLevels (temp uint)
-0:114 'g_tTex3du4' (uniform utexture3D)
+0:114 'g_tTex3df4' (uniform texture3D)
0:117 Sequence
-0:117 move second child to first child (temp 2-component vector of uint)
-0:117 'sizeQueryTemp' (temp 2-component vector of uint)
-0:117 textureSize (temp 2-component vector of uint)
-0:117 'g_tTexcdf4' (uniform textureCube)
+0:117 move second child to first child (temp 3-component vector of uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
+0:117 textureSize (temp 3-component vector of uint)
+0:117 'g_tTex3di4' (uniform itexture3D)
0:117 move second child to first child (temp uint)
0:117 'WidthU' (temp uint)
0:117 direct index (temp uint)
-0:117 'sizeQueryTemp' (temp 2-component vector of uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
0:117 Constant:
0:117 0 (const int)
0:117 move second child to first child (temp uint)
0:117 'HeightU' (temp uint)
0:117 direct index (temp uint)
-0:117 'sizeQueryTemp' (temp 2-component vector of uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
0:117 Constant:
0:117 1 (const int)
+0:117 move second child to first child (temp uint)
+0:117 'DepthU' (temp uint)
+0:117 direct index (temp uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
+0:117 Constant:
+0:117 2 (const int)
0:118 Sequence
-0:118 move second child to first child (temp 2-component vector of uint)
-0:118 'sizeQueryTemp' (temp 2-component vector of uint)
-0:118 textureSize (temp 2-component vector of uint)
-0:118 'g_tTexcdf4' (uniform textureCube)
+0:118 move second child to first child (temp 3-component vector of uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
+0:118 textureSize (temp 3-component vector of uint)
+0:118 'g_tTex3di4' (uniform itexture3D)
0:118 Constant:
0:118 6 (const uint)
0:118 move second child to first child (temp uint)
0:118 'WidthU' (temp uint)
0:118 direct index (temp uint)
-0:118 'sizeQueryTemp' (temp 2-component vector of uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
0:118 Constant:
0:118 0 (const int)
0:118 move second child to first child (temp uint)
0:118 'HeightU' (temp uint)
0:118 direct index (temp uint)
-0:118 'sizeQueryTemp' (temp 2-component vector of uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
0:118 Constant:
0:118 1 (const int)
0:118 move second child to first child (temp uint)
+0:118 'DepthU' (temp uint)
+0:118 direct index (temp uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
+0:118 Constant:
+0:118 2 (const int)
+0:118 move second child to first child (temp uint)
0:118 'NumberOfLevelsU' (temp uint)
0:118 textureQueryLevels (temp uint)
-0:118 'g_tTexcdf4' (uniform textureCube)
+0:118 'g_tTex3di4' (uniform itexture3D)
0:121 Sequence
-0:121 move second child to first child (temp 2-component vector of uint)
-0:121 'sizeQueryTemp' (temp 2-component vector of uint)
-0:121 textureSize (temp 2-component vector of uint)
-0:121 'g_tTexcdi4' (uniform itextureCube)
+0:121 move second child to first child (temp 3-component vector of uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
+0:121 textureSize (temp 3-component vector of uint)
+0:121 'g_tTex3du4' (uniform utexture3D)
0:121 move second child to first child (temp uint)
0:121 'WidthU' (temp uint)
0:121 direct index (temp uint)
-0:121 'sizeQueryTemp' (temp 2-component vector of uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
0:121 Constant:
0:121 0 (const int)
0:121 move second child to first child (temp uint)
0:121 'HeightU' (temp uint)
0:121 direct index (temp uint)
-0:121 'sizeQueryTemp' (temp 2-component vector of uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
0:121 Constant:
0:121 1 (const int)
+0:121 move second child to first child (temp uint)
+0:121 'DepthU' (temp uint)
+0:121 direct index (temp uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
+0:121 Constant:
+0:121 2 (const int)
0:122 Sequence
-0:122 move second child to first child (temp 2-component vector of uint)
-0:122 'sizeQueryTemp' (temp 2-component vector of uint)
-0:122 textureSize (temp 2-component vector of uint)
-0:122 'g_tTexcdi4' (uniform itextureCube)
+0:122 move second child to first child (temp 3-component vector of uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
+0:122 textureSize (temp 3-component vector of uint)
+0:122 'g_tTex3du4' (uniform utexture3D)
0:122 Constant:
0:122 6 (const uint)
0:122 move second child to first child (temp uint)
0:122 'WidthU' (temp uint)
0:122 direct index (temp uint)
-0:122 'sizeQueryTemp' (temp 2-component vector of uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
0:122 Constant:
0:122 0 (const int)
0:122 move second child to first child (temp uint)
0:122 'HeightU' (temp uint)
0:122 direct index (temp uint)
-0:122 'sizeQueryTemp' (temp 2-component vector of uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
0:122 Constant:
0:122 1 (const int)
0:122 move second child to first child (temp uint)
+0:122 'DepthU' (temp uint)
+0:122 direct index (temp uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
+0:122 Constant:
+0:122 2 (const int)
+0:122 move second child to first child (temp uint)
0:122 'NumberOfLevelsU' (temp uint)
0:122 textureQueryLevels (temp uint)
-0:122 'g_tTexcdi4' (uniform itextureCube)
+0:122 'g_tTex3du4' (uniform utexture3D)
0:125 Sequence
0:125 move second child to first child (temp 2-component vector of uint)
0:125 'sizeQueryTemp' (temp 2-component vector of uint)
0:125 textureSize (temp 2-component vector of uint)
-0:125 'g_tTexcdu4' (uniform utextureCube)
+0:125 'g_tTexcdf4' (uniform textureCube)
0:125 move second child to first child (temp uint)
0:125 'WidthU' (temp uint)
0:125 direct index (temp uint)
@@ -724,7 +644,7 @@
0:126 move second child to first child (temp 2-component vector of uint)
0:126 'sizeQueryTemp' (temp 2-component vector of uint)
0:126 textureSize (temp 2-component vector of uint)
-0:126 'g_tTexcdu4' (uniform utextureCube)
+0:126 'g_tTexcdf4' (uniform textureCube)
0:126 Constant:
0:126 6 (const uint)
0:126 move second child to first child (temp uint)
@@ -742,116 +662,92 @@
0:126 move second child to first child (temp uint)
0:126 'NumberOfLevelsU' (temp uint)
0:126 textureQueryLevels (temp uint)
-0:126 'g_tTexcdu4' (uniform utextureCube)
+0:126 'g_tTexcdf4' (uniform textureCube)
0:129 Sequence
-0:129 move second child to first child (temp 3-component vector of uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
-0:129 textureSize (temp 3-component vector of uint)
-0:129 'g_tTexcdf4a' (uniform textureCubeArray)
+0:129 move second child to first child (temp 2-component vector of uint)
+0:129 'sizeQueryTemp' (temp 2-component vector of uint)
+0:129 textureSize (temp 2-component vector of uint)
+0:129 'g_tTexcdi4' (uniform itextureCube)
0:129 move second child to first child (temp uint)
0:129 'WidthU' (temp uint)
0:129 direct index (temp uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
+0:129 'sizeQueryTemp' (temp 2-component vector of uint)
0:129 Constant:
0:129 0 (const int)
0:129 move second child to first child (temp uint)
0:129 'HeightU' (temp uint)
0:129 direct index (temp uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
+0:129 'sizeQueryTemp' (temp 2-component vector of uint)
0:129 Constant:
0:129 1 (const int)
-0:129 move second child to first child (temp uint)
-0:129 'ElementsU' (temp uint)
-0:129 direct index (temp uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
-0:129 Constant:
-0:129 2 (const int)
0:130 Sequence
-0:130 move second child to first child (temp 3-component vector of uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
-0:130 textureSize (temp 3-component vector of uint)
-0:130 'g_tTexcdf4a' (uniform textureCubeArray)
+0:130 move second child to first child (temp 2-component vector of uint)
+0:130 'sizeQueryTemp' (temp 2-component vector of uint)
+0:130 textureSize (temp 2-component vector of uint)
+0:130 'g_tTexcdi4' (uniform itextureCube)
0:130 Constant:
0:130 6 (const uint)
0:130 move second child to first child (temp uint)
0:130 'WidthU' (temp uint)
0:130 direct index (temp uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
+0:130 'sizeQueryTemp' (temp 2-component vector of uint)
0:130 Constant:
0:130 0 (const int)
0:130 move second child to first child (temp uint)
0:130 'HeightU' (temp uint)
0:130 direct index (temp uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
+0:130 'sizeQueryTemp' (temp 2-component vector of uint)
0:130 Constant:
0:130 1 (const int)
0:130 move second child to first child (temp uint)
-0:130 'ElementsU' (temp uint)
-0:130 direct index (temp uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
-0:130 Constant:
-0:130 2 (const int)
-0:130 move second child to first child (temp uint)
0:130 'NumberOfLevelsU' (temp uint)
0:130 textureQueryLevels (temp uint)
-0:130 'g_tTexcdf4a' (uniform textureCubeArray)
+0:130 'g_tTexcdi4' (uniform itextureCube)
0:133 Sequence
-0:133 move second child to first child (temp 3-component vector of uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
-0:133 textureSize (temp 3-component vector of uint)
-0:133 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:133 move second child to first child (temp 2-component vector of uint)
+0:133 'sizeQueryTemp' (temp 2-component vector of uint)
+0:133 textureSize (temp 2-component vector of uint)
+0:133 'g_tTexcdu4' (uniform utextureCube)
0:133 move second child to first child (temp uint)
0:133 'WidthU' (temp uint)
0:133 direct index (temp uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
+0:133 'sizeQueryTemp' (temp 2-component vector of uint)
0:133 Constant:
0:133 0 (const int)
0:133 move second child to first child (temp uint)
0:133 'HeightU' (temp uint)
0:133 direct index (temp uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
+0:133 'sizeQueryTemp' (temp 2-component vector of uint)
0:133 Constant:
0:133 1 (const int)
-0:133 move second child to first child (temp uint)
-0:133 'ElementsU' (temp uint)
-0:133 direct index (temp uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
-0:133 Constant:
-0:133 2 (const int)
0:134 Sequence
-0:134 move second child to first child (temp 3-component vector of uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
-0:134 textureSize (temp 3-component vector of uint)
-0:134 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:134 move second child to first child (temp 2-component vector of uint)
+0:134 'sizeQueryTemp' (temp 2-component vector of uint)
+0:134 textureSize (temp 2-component vector of uint)
+0:134 'g_tTexcdu4' (uniform utextureCube)
0:134 Constant:
0:134 6 (const uint)
0:134 move second child to first child (temp uint)
0:134 'WidthU' (temp uint)
0:134 direct index (temp uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
+0:134 'sizeQueryTemp' (temp 2-component vector of uint)
0:134 Constant:
0:134 0 (const int)
0:134 move second child to first child (temp uint)
0:134 'HeightU' (temp uint)
0:134 direct index (temp uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
+0:134 'sizeQueryTemp' (temp 2-component vector of uint)
0:134 Constant:
0:134 1 (const int)
0:134 move second child to first child (temp uint)
-0:134 'ElementsU' (temp uint)
-0:134 direct index (temp uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
-0:134 Constant:
-0:134 2 (const int)
-0:134 move second child to first child (temp uint)
0:134 'NumberOfLevelsU' (temp uint)
0:134 textureQueryLevels (temp uint)
-0:134 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:134 'g_tTexcdu4' (uniform utextureCube)
0:137 Sequence
0:137 move second child to first child (temp 3-component vector of uint)
0:137 'sizeQueryTemp' (temp 3-component vector of uint)
0:137 textureSize (temp 3-component vector of uint)
-0:137 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:137 'g_tTexcdf4a' (uniform textureCubeArray)
0:137 move second child to first child (temp uint)
0:137 'WidthU' (temp uint)
0:137 direct index (temp uint)
@@ -874,7 +770,7 @@
0:138 move second child to first child (temp 3-component vector of uint)
0:138 'sizeQueryTemp' (temp 3-component vector of uint)
0:138 textureSize (temp 3-component vector of uint)
-0:138 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:138 'g_tTexcdf4a' (uniform textureCubeArray)
0:138 Constant:
0:138 6 (const uint)
0:138 move second child to first child (temp uint)
@@ -898,19 +794,277 @@
0:138 move second child to first child (temp uint)
0:138 'NumberOfLevelsU' (temp uint)
0:138 textureQueryLevels (temp uint)
-0:138 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:234 move second child to first child (temp float)
-0:234 Depth: direct index for structure (temp float FragDepth)
-0:234 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
-0:234 Constant:
-0:234 1 (const int)
-0:234 Constant:
-0:234 1.000000
-0:236 Branch: Return with expression
-0:236 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:138 'g_tTexcdf4a' (uniform textureCubeArray)
+0:141 Sequence
+0:141 move second child to first child (temp 3-component vector of uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 textureSize (temp 3-component vector of uint)
+0:141 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:141 move second child to first child (temp uint)
+0:141 'WidthU' (temp uint)
+0:141 direct index (temp uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 Constant:
+0:141 0 (const int)
+0:141 move second child to first child (temp uint)
+0:141 'HeightU' (temp uint)
+0:141 direct index (temp uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 Constant:
+0:141 1 (const int)
+0:141 move second child to first child (temp uint)
+0:141 'ElementsU' (temp uint)
+0:141 direct index (temp uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 Constant:
+0:141 2 (const int)
+0:142 Sequence
+0:142 move second child to first child (temp 3-component vector of uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 textureSize (temp 3-component vector of uint)
+0:142 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:142 Constant:
+0:142 6 (const uint)
+0:142 move second child to first child (temp uint)
+0:142 'WidthU' (temp uint)
+0:142 direct index (temp uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 Constant:
+0:142 0 (const int)
+0:142 move second child to first child (temp uint)
+0:142 'HeightU' (temp uint)
+0:142 direct index (temp uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 Constant:
+0:142 1 (const int)
+0:142 move second child to first child (temp uint)
+0:142 'ElementsU' (temp uint)
+0:142 direct index (temp uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 Constant:
+0:142 2 (const int)
+0:142 move second child to first child (temp uint)
+0:142 'NumberOfLevelsU' (temp uint)
+0:142 textureQueryLevels (temp uint)
+0:142 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:145 Sequence
+0:145 move second child to first child (temp 3-component vector of uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 textureSize (temp 3-component vector of uint)
+0:145 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:145 move second child to first child (temp uint)
+0:145 'WidthU' (temp uint)
+0:145 direct index (temp uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 Constant:
+0:145 0 (const int)
+0:145 move second child to first child (temp uint)
+0:145 'HeightU' (temp uint)
+0:145 direct index (temp uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 Constant:
+0:145 1 (const int)
+0:145 move second child to first child (temp uint)
+0:145 'ElementsU' (temp uint)
+0:145 direct index (temp uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 Constant:
+0:145 2 (const int)
+0:146 Sequence
+0:146 move second child to first child (temp 3-component vector of uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 textureSize (temp 3-component vector of uint)
+0:146 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:146 Constant:
+0:146 6 (const uint)
+0:146 move second child to first child (temp uint)
+0:146 'WidthU' (temp uint)
+0:146 direct index (temp uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 Constant:
+0:146 0 (const int)
+0:146 move second child to first child (temp uint)
+0:146 'HeightU' (temp uint)
+0:146 direct index (temp uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 Constant:
+0:146 1 (const int)
+0:146 move second child to first child (temp uint)
+0:146 'ElementsU' (temp uint)
+0:146 direct index (temp uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 Constant:
+0:146 2 (const int)
+0:146 move second child to first child (temp uint)
+0:146 'NumberOfLevelsU' (temp uint)
+0:146 textureQueryLevels (temp uint)
+0:146 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:149 Sequence
+0:149 move second child to first child (temp 2-component vector of uint)
+0:149 'sizeQueryTemp' (temp 2-component vector of uint)
+0:149 textureSize (temp 2-component vector of uint)
+0:149 'g_tTex2dmsf4' (uniform texture2DMS)
+0:149 move second child to first child (temp uint)
+0:149 'WidthU' (temp uint)
+0:149 direct index (temp uint)
+0:149 'sizeQueryTemp' (temp 2-component vector of uint)
+0:149 Constant:
+0:149 0 (const int)
+0:149 move second child to first child (temp uint)
+0:149 'HeightU' (temp uint)
+0:149 direct index (temp uint)
+0:149 'sizeQueryTemp' (temp 2-component vector of uint)
+0:149 Constant:
+0:149 1 (const int)
+0:149 move second child to first child (temp uint)
+0:149 'NumberOfSamplesU' (temp uint)
+0:149 imageQuerySamples (temp uint)
+0:149 'g_tTex2dmsf4' (uniform texture2DMS)
+0:152 Sequence
+0:152 move second child to first child (temp 2-component vector of uint)
+0:152 'sizeQueryTemp' (temp 2-component vector of uint)
+0:152 textureSize (temp 2-component vector of uint)
+0:152 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:152 move second child to first child (temp uint)
+0:152 'WidthU' (temp uint)
+0:152 direct index (temp uint)
+0:152 'sizeQueryTemp' (temp 2-component vector of uint)
+0:152 Constant:
+0:152 0 (const int)
+0:152 move second child to first child (temp uint)
+0:152 'HeightU' (temp uint)
+0:152 direct index (temp uint)
+0:152 'sizeQueryTemp' (temp 2-component vector of uint)
+0:152 Constant:
+0:152 1 (const int)
+0:152 move second child to first child (temp uint)
+0:152 'NumberOfSamplesU' (temp uint)
+0:152 imageQuerySamples (temp uint)
+0:152 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:155 Sequence
+0:155 move second child to first child (temp 2-component vector of uint)
+0:155 'sizeQueryTemp' (temp 2-component vector of uint)
+0:155 textureSize (temp 2-component vector of uint)
+0:155 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:155 move second child to first child (temp uint)
+0:155 'WidthU' (temp uint)
+0:155 direct index (temp uint)
+0:155 'sizeQueryTemp' (temp 2-component vector of uint)
+0:155 Constant:
+0:155 0 (const int)
+0:155 move second child to first child (temp uint)
+0:155 'HeightU' (temp uint)
+0:155 direct index (temp uint)
+0:155 'sizeQueryTemp' (temp 2-component vector of uint)
+0:155 Constant:
+0:155 1 (const int)
+0:155 move second child to first child (temp uint)
+0:155 'NumberOfSamplesU' (temp uint)
+0:155 imageQuerySamples (temp uint)
+0:155 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:158 Sequence
+0:158 move second child to first child (temp 3-component vector of uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 textureSize (temp 3-component vector of uint)
+0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:158 move second child to first child (temp uint)
+0:158 'WidthU' (temp uint)
+0:158 direct index (temp uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 Constant:
+0:158 0 (const int)
+0:158 move second child to first child (temp uint)
+0:158 'HeightU' (temp uint)
+0:158 direct index (temp uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 Constant:
+0:158 1 (const int)
+0:158 move second child to first child (temp uint)
+0:158 'ElementsU' (temp uint)
+0:158 direct index (temp uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 Constant:
+0:158 2 (const int)
+0:158 move second child to first child (temp uint)
+0:158 'NumberOfSamplesU' (temp uint)
+0:158 imageQuerySamples (temp uint)
+0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:161 Sequence
+0:161 move second child to first child (temp 3-component vector of uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 textureSize (temp 3-component vector of uint)
+0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:161 move second child to first child (temp uint)
+0:161 'WidthU' (temp uint)
+0:161 direct index (temp uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 Constant:
+0:161 0 (const int)
+0:161 move second child to first child (temp uint)
+0:161 'HeightU' (temp uint)
+0:161 direct index (temp uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 Constant:
+0:161 1 (const int)
+0:161 move second child to first child (temp uint)
+0:161 'ElementsU' (temp uint)
+0:161 direct index (temp uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 Constant:
+0:161 2 (const int)
+0:161 move second child to first child (temp uint)
+0:161 'NumberOfSamplesU' (temp uint)
+0:161 imageQuerySamples (temp uint)
+0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:164 Sequence
+0:164 move second child to first child (temp 3-component vector of uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 textureSize (temp 3-component vector of uint)
+0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:164 move second child to first child (temp uint)
+0:164 'WidthU' (temp uint)
+0:164 direct index (temp uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 Constant:
+0:164 0 (const int)
+0:164 move second child to first child (temp uint)
+0:164 'HeightU' (temp uint)
+0:164 direct index (temp uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 Constant:
+0:164 1 (const int)
+0:164 move second child to first child (temp uint)
+0:164 'ElementsU' (temp uint)
+0:164 direct index (temp uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 Constant:
+0:164 2 (const int)
+0:164 move second child to first child (temp uint)
+0:164 'NumberOfSamplesU' (temp uint)
+0:164 imageQuerySamples (temp uint)
+0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:276 move second child to first child (temp 4-component vector of float)
+0:276 Color: direct index for structure (temp 4-component vector of float)
+0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:276 Constant:
+0:276 0 (const int)
+0:276 Constant:
+0:276 1.000000
+0:276 1.000000
+0:276 1.000000
+0:276 1.000000
+0:277 move second child to first child (temp float)
+0:277 Depth: direct index for structure (temp float FragDepth)
+0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:277 Constant:
+0:277 1 (const int)
+0:277 Constant:
+0:277 1.000000
+0:279 Branch: Return with expression
+0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -931,6 +1085,12 @@
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'g_tTex2dmsf4' (uniform texture2DMS)
+0:? 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:? 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
Linked fragment stage:
@@ -939,58 +1099,14 @@
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
-0:238 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
-0:38 Function Parameters:
+0:281 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:46 Function Parameters:
0:? Sequence
-0:57 Sequence
-0:57 move second child to first child (temp uint)
-0:57 'sizeQueryTemp' (temp uint)
-0:57 textureSize (temp uint)
-0:57 'g_tTex1df4' (uniform texture1D)
-0:57 move second child to first child (temp uint)
-0:57 'WidthU' (temp uint)
-0:57 'sizeQueryTemp' (temp uint)
-0:58 Sequence
-0:58 move second child to first child (temp uint)
-0:58 'sizeQueryTemp' (temp uint)
-0:58 textureSize (temp uint)
-0:58 'g_tTex1df4' (uniform texture1D)
-0:58 Constant:
-0:58 6 (const uint)
-0:58 move second child to first child (temp uint)
-0:58 'WidthU' (temp uint)
-0:58 'sizeQueryTemp' (temp uint)
-0:58 move second child to first child (temp uint)
-0:58 'NumberOfLevelsU' (temp uint)
-0:58 textureQueryLevels (temp uint)
-0:58 'g_tTex1df4' (uniform texture1D)
-0:61 Sequence
-0:61 move second child to first child (temp uint)
-0:61 'sizeQueryTemp' (temp uint)
-0:61 textureSize (temp uint)
-0:61 'g_tTex1di4' (uniform itexture1D)
-0:61 move second child to first child (temp uint)
-0:61 'WidthU' (temp uint)
-0:61 'sizeQueryTemp' (temp uint)
-0:62 Sequence
-0:62 move second child to first child (temp uint)
-0:62 'sizeQueryTemp' (temp uint)
-0:62 textureSize (temp uint)
-0:62 'g_tTex1di4' (uniform itexture1D)
-0:62 Constant:
-0:62 6 (const uint)
-0:62 move second child to first child (temp uint)
-0:62 'WidthU' (temp uint)
-0:62 'sizeQueryTemp' (temp uint)
-0:62 move second child to first child (temp uint)
-0:62 'NumberOfLevelsU' (temp uint)
-0:62 textureQueryLevels (temp uint)
-0:62 'g_tTex1di4' (uniform itexture1D)
0:65 Sequence
0:65 move second child to first child (temp uint)
0:65 'sizeQueryTemp' (temp uint)
0:65 textureSize (temp uint)
-0:65 'g_tTex1du4' (uniform utexture1D)
+0:65 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:65 move second child to first child (temp uint)
0:65 'WidthU' (temp uint)
0:65 'sizeQueryTemp' (temp uint)
@@ -998,7 +1114,7 @@
0:66 move second child to first child (temp uint)
0:66 'sizeQueryTemp' (temp uint)
0:66 textureSize (temp uint)
-0:66 'g_tTex1du4' (uniform utexture1D)
+0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:66 Constant:
0:66 6 (const uint)
0:66 move second child to first child (temp uint)
@@ -1007,92 +1123,56 @@
0:66 move second child to first child (temp uint)
0:66 'NumberOfLevelsU' (temp uint)
0:66 textureQueryLevels (temp uint)
-0:66 'g_tTex1du4' (uniform utexture1D)
+0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:69 Sequence
-0:69 move second child to first child (temp 2-component vector of uint)
-0:69 'sizeQueryTemp' (temp 2-component vector of uint)
-0:69 textureSize (temp 2-component vector of uint)
-0:69 'g_tTex1df4a' (uniform texture1DArray)
+0:69 move second child to first child (temp uint)
+0:69 'sizeQueryTemp' (temp uint)
+0:69 textureSize (temp uint)
+0:69 'g_tTex1di4' (uniform itexture1D)
0:69 move second child to first child (temp uint)
0:69 'WidthU' (temp uint)
-0:69 direct index (temp uint)
-0:69 'sizeQueryTemp' (temp 2-component vector of uint)
-0:69 Constant:
-0:69 0 (const int)
-0:69 move second child to first child (temp uint)
-0:69 'ElementsU' (temp uint)
-0:69 direct index (temp uint)
-0:69 'sizeQueryTemp' (temp 2-component vector of uint)
-0:69 Constant:
-0:69 1 (const int)
+0:69 'sizeQueryTemp' (temp uint)
0:70 Sequence
-0:70 move second child to first child (temp 2-component vector of uint)
-0:70 'sizeQueryTemp' (temp 2-component vector of uint)
-0:70 textureSize (temp 2-component vector of uint)
-0:70 'g_tTex1df4a' (uniform texture1DArray)
+0:70 move second child to first child (temp uint)
+0:70 'sizeQueryTemp' (temp uint)
+0:70 textureSize (temp uint)
+0:70 'g_tTex1di4' (uniform itexture1D)
0:70 Constant:
0:70 6 (const uint)
0:70 move second child to first child (temp uint)
0:70 'WidthU' (temp uint)
-0:70 direct index (temp uint)
-0:70 'sizeQueryTemp' (temp 2-component vector of uint)
-0:70 Constant:
-0:70 0 (const int)
-0:70 move second child to first child (temp uint)
-0:70 'ElementsU' (temp uint)
-0:70 direct index (temp uint)
-0:70 'sizeQueryTemp' (temp 2-component vector of uint)
-0:70 Constant:
-0:70 1 (const int)
+0:70 'sizeQueryTemp' (temp uint)
0:70 move second child to first child (temp uint)
0:70 'NumberOfLevelsU' (temp uint)
0:70 textureQueryLevels (temp uint)
-0:70 'g_tTex1df4a' (uniform texture1DArray)
+0:70 'g_tTex1di4' (uniform itexture1D)
0:73 Sequence
-0:73 move second child to first child (temp 2-component vector of uint)
-0:73 'sizeQueryTemp' (temp 2-component vector of uint)
-0:73 textureSize (temp 2-component vector of uint)
-0:73 'g_tTex1di4a' (uniform itexture1DArray)
+0:73 move second child to first child (temp uint)
+0:73 'sizeQueryTemp' (temp uint)
+0:73 textureSize (temp uint)
+0:73 'g_tTex1du4' (uniform utexture1D)
0:73 move second child to first child (temp uint)
0:73 'WidthU' (temp uint)
-0:73 direct index (temp uint)
-0:73 'sizeQueryTemp' (temp 2-component vector of uint)
-0:73 Constant:
-0:73 0 (const int)
-0:73 move second child to first child (temp uint)
-0:73 'ElementsU' (temp uint)
-0:73 direct index (temp uint)
-0:73 'sizeQueryTemp' (temp 2-component vector of uint)
-0:73 Constant:
-0:73 1 (const int)
+0:73 'sizeQueryTemp' (temp uint)
0:74 Sequence
-0:74 move second child to first child (temp 2-component vector of uint)
-0:74 'sizeQueryTemp' (temp 2-component vector of uint)
-0:74 textureSize (temp 2-component vector of uint)
-0:74 'g_tTex1di4a' (uniform itexture1DArray)
+0:74 move second child to first child (temp uint)
+0:74 'sizeQueryTemp' (temp uint)
+0:74 textureSize (temp uint)
+0:74 'g_tTex1du4' (uniform utexture1D)
0:74 Constant:
0:74 6 (const uint)
0:74 move second child to first child (temp uint)
0:74 'WidthU' (temp uint)
-0:74 direct index (temp uint)
-0:74 'sizeQueryTemp' (temp 2-component vector of uint)
-0:74 Constant:
-0:74 0 (const int)
-0:74 move second child to first child (temp uint)
-0:74 'ElementsU' (temp uint)
-0:74 direct index (temp uint)
-0:74 'sizeQueryTemp' (temp 2-component vector of uint)
-0:74 Constant:
-0:74 1 (const int)
+0:74 'sizeQueryTemp' (temp uint)
0:74 move second child to first child (temp uint)
0:74 'NumberOfLevelsU' (temp uint)
0:74 textureQueryLevels (temp uint)
-0:74 'g_tTex1di4a' (uniform itexture1DArray)
+0:74 'g_tTex1du4' (uniform utexture1D)
0:77 Sequence
0:77 move second child to first child (temp 2-component vector of uint)
0:77 'sizeQueryTemp' (temp 2-component vector of uint)
0:77 textureSize (temp 2-component vector of uint)
-0:77 'g_tTex1du4a' (uniform utexture1DArray)
+0:77 'g_tTex1df4a' (uniform texture1DArray)
0:77 move second child to first child (temp uint)
0:77 'WidthU' (temp uint)
0:77 direct index (temp uint)
@@ -1109,7 +1189,7 @@
0:78 move second child to first child (temp 2-component vector of uint)
0:78 'sizeQueryTemp' (temp 2-component vector of uint)
0:78 textureSize (temp 2-component vector of uint)
-0:78 'g_tTex1du4a' (uniform utexture1DArray)
+0:78 'g_tTex1df4a' (uniform texture1DArray)
0:78 Constant:
0:78 6 (const uint)
0:78 move second child to first child (temp uint)
@@ -1127,12 +1207,12 @@
0:78 move second child to first child (temp uint)
0:78 'NumberOfLevelsU' (temp uint)
0:78 textureQueryLevels (temp uint)
-0:78 'g_tTex1du4a' (uniform utexture1DArray)
+0:78 'g_tTex1df4a' (uniform texture1DArray)
0:81 Sequence
0:81 move second child to first child (temp 2-component vector of uint)
0:81 'sizeQueryTemp' (temp 2-component vector of uint)
0:81 textureSize (temp 2-component vector of uint)
-0:81 'g_tTex2df4' (uniform texture2D)
+0:81 'g_tTex1di4a' (uniform itexture1DArray)
0:81 move second child to first child (temp uint)
0:81 'WidthU' (temp uint)
0:81 direct index (temp uint)
@@ -1140,7 +1220,7 @@
0:81 Constant:
0:81 0 (const int)
0:81 move second child to first child (temp uint)
-0:81 'HeightU' (temp uint)
+0:81 'ElementsU' (temp uint)
0:81 direct index (temp uint)
0:81 'sizeQueryTemp' (temp 2-component vector of uint)
0:81 Constant:
@@ -1149,7 +1229,7 @@
0:82 move second child to first child (temp 2-component vector of uint)
0:82 'sizeQueryTemp' (temp 2-component vector of uint)
0:82 textureSize (temp 2-component vector of uint)
-0:82 'g_tTex2df4' (uniform texture2D)
+0:82 'g_tTex1di4a' (uniform itexture1DArray)
0:82 Constant:
0:82 6 (const uint)
0:82 move second child to first child (temp uint)
@@ -1159,7 +1239,7 @@
0:82 Constant:
0:82 0 (const int)
0:82 move second child to first child (temp uint)
-0:82 'HeightU' (temp uint)
+0:82 'ElementsU' (temp uint)
0:82 direct index (temp uint)
0:82 'sizeQueryTemp' (temp 2-component vector of uint)
0:82 Constant:
@@ -1167,12 +1247,12 @@
0:82 move second child to first child (temp uint)
0:82 'NumberOfLevelsU' (temp uint)
0:82 textureQueryLevels (temp uint)
-0:82 'g_tTex2df4' (uniform texture2D)
+0:82 'g_tTex1di4a' (uniform itexture1DArray)
0:85 Sequence
0:85 move second child to first child (temp 2-component vector of uint)
0:85 'sizeQueryTemp' (temp 2-component vector of uint)
0:85 textureSize (temp 2-component vector of uint)
-0:85 'g_tTex2di4' (uniform itexture2D)
+0:85 'g_tTex1du4a' (uniform utexture1DArray)
0:85 move second child to first child (temp uint)
0:85 'WidthU' (temp uint)
0:85 direct index (temp uint)
@@ -1180,7 +1260,7 @@
0:85 Constant:
0:85 0 (const int)
0:85 move second child to first child (temp uint)
-0:85 'HeightU' (temp uint)
+0:85 'ElementsU' (temp uint)
0:85 direct index (temp uint)
0:85 'sizeQueryTemp' (temp 2-component vector of uint)
0:85 Constant:
@@ -1189,7 +1269,7 @@
0:86 move second child to first child (temp 2-component vector of uint)
0:86 'sizeQueryTemp' (temp 2-component vector of uint)
0:86 textureSize (temp 2-component vector of uint)
-0:86 'g_tTex2di4' (uniform itexture2D)
+0:86 'g_tTex1du4a' (uniform utexture1DArray)
0:86 Constant:
0:86 6 (const uint)
0:86 move second child to first child (temp uint)
@@ -1199,7 +1279,7 @@
0:86 Constant:
0:86 0 (const int)
0:86 move second child to first child (temp uint)
-0:86 'HeightU' (temp uint)
+0:86 'ElementsU' (temp uint)
0:86 direct index (temp uint)
0:86 'sizeQueryTemp' (temp 2-component vector of uint)
0:86 Constant:
@@ -1207,12 +1287,12 @@
0:86 move second child to first child (temp uint)
0:86 'NumberOfLevelsU' (temp uint)
0:86 textureQueryLevels (temp uint)
-0:86 'g_tTex2di4' (uniform itexture2D)
+0:86 'g_tTex1du4a' (uniform utexture1DArray)
0:89 Sequence
0:89 move second child to first child (temp 2-component vector of uint)
0:89 'sizeQueryTemp' (temp 2-component vector of uint)
0:89 textureSize (temp 2-component vector of uint)
-0:89 'g_tTex2du4' (uniform utexture2D)
+0:89 'g_tTex2df4' (uniform texture2D)
0:89 move second child to first child (temp uint)
0:89 'WidthU' (temp uint)
0:89 direct index (temp uint)
@@ -1229,7 +1309,7 @@
0:90 move second child to first child (temp 2-component vector of uint)
0:90 'sizeQueryTemp' (temp 2-component vector of uint)
0:90 textureSize (temp 2-component vector of uint)
-0:90 'g_tTex2du4' (uniform utexture2D)
+0:90 'g_tTex2df4' (uniform texture2D)
0:90 Constant:
0:90 6 (const uint)
0:90 move second child to first child (temp uint)
@@ -1247,116 +1327,92 @@
0:90 move second child to first child (temp uint)
0:90 'NumberOfLevelsU' (temp uint)
0:90 textureQueryLevels (temp uint)
-0:90 'g_tTex2du4' (uniform utexture2D)
+0:90 'g_tTex2df4' (uniform texture2D)
0:93 Sequence
-0:93 move second child to first child (temp 3-component vector of uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
-0:93 textureSize (temp 3-component vector of uint)
-0:93 'g_tTex2df4a' (uniform texture2DArray)
+0:93 move second child to first child (temp 2-component vector of uint)
+0:93 'sizeQueryTemp' (temp 2-component vector of uint)
+0:93 textureSize (temp 2-component vector of uint)
+0:93 'g_tTex2di4' (uniform itexture2D)
0:93 move second child to first child (temp uint)
0:93 'WidthU' (temp uint)
0:93 direct index (temp uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
+0:93 'sizeQueryTemp' (temp 2-component vector of uint)
0:93 Constant:
0:93 0 (const int)
0:93 move second child to first child (temp uint)
0:93 'HeightU' (temp uint)
0:93 direct index (temp uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
+0:93 'sizeQueryTemp' (temp 2-component vector of uint)
0:93 Constant:
0:93 1 (const int)
-0:93 move second child to first child (temp uint)
-0:93 'ElementsU' (temp uint)
-0:93 direct index (temp uint)
-0:93 'sizeQueryTemp' (temp 3-component vector of uint)
-0:93 Constant:
-0:93 2 (const int)
0:94 Sequence
-0:94 move second child to first child (temp 3-component vector of uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
-0:94 textureSize (temp 3-component vector of uint)
-0:94 'g_tTex2df4a' (uniform texture2DArray)
+0:94 move second child to first child (temp 2-component vector of uint)
+0:94 'sizeQueryTemp' (temp 2-component vector of uint)
+0:94 textureSize (temp 2-component vector of uint)
+0:94 'g_tTex2di4' (uniform itexture2D)
0:94 Constant:
0:94 6 (const uint)
0:94 move second child to first child (temp uint)
0:94 'WidthU' (temp uint)
0:94 direct index (temp uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
+0:94 'sizeQueryTemp' (temp 2-component vector of uint)
0:94 Constant:
0:94 0 (const int)
0:94 move second child to first child (temp uint)
0:94 'HeightU' (temp uint)
0:94 direct index (temp uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
+0:94 'sizeQueryTemp' (temp 2-component vector of uint)
0:94 Constant:
0:94 1 (const int)
0:94 move second child to first child (temp uint)
-0:94 'ElementsU' (temp uint)
-0:94 direct index (temp uint)
-0:94 'sizeQueryTemp' (temp 3-component vector of uint)
-0:94 Constant:
-0:94 2 (const int)
-0:94 move second child to first child (temp uint)
0:94 'NumberOfLevelsU' (temp uint)
0:94 textureQueryLevels (temp uint)
-0:94 'g_tTex2df4a' (uniform texture2DArray)
+0:94 'g_tTex2di4' (uniform itexture2D)
0:97 Sequence
-0:97 move second child to first child (temp 3-component vector of uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
-0:97 textureSize (temp 3-component vector of uint)
-0:97 'g_tTex2di4a' (uniform itexture2DArray)
+0:97 move second child to first child (temp 2-component vector of uint)
+0:97 'sizeQueryTemp' (temp 2-component vector of uint)
+0:97 textureSize (temp 2-component vector of uint)
+0:97 'g_tTex2du4' (uniform utexture2D)
0:97 move second child to first child (temp uint)
0:97 'WidthU' (temp uint)
0:97 direct index (temp uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
+0:97 'sizeQueryTemp' (temp 2-component vector of uint)
0:97 Constant:
0:97 0 (const int)
0:97 move second child to first child (temp uint)
0:97 'HeightU' (temp uint)
0:97 direct index (temp uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
+0:97 'sizeQueryTemp' (temp 2-component vector of uint)
0:97 Constant:
0:97 1 (const int)
-0:97 move second child to first child (temp uint)
-0:97 'ElementsU' (temp uint)
-0:97 direct index (temp uint)
-0:97 'sizeQueryTemp' (temp 3-component vector of uint)
-0:97 Constant:
-0:97 2 (const int)
0:98 Sequence
-0:98 move second child to first child (temp 3-component vector of uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
-0:98 textureSize (temp 3-component vector of uint)
-0:98 'g_tTex2di4a' (uniform itexture2DArray)
+0:98 move second child to first child (temp 2-component vector of uint)
+0:98 'sizeQueryTemp' (temp 2-component vector of uint)
+0:98 textureSize (temp 2-component vector of uint)
+0:98 'g_tTex2du4' (uniform utexture2D)
0:98 Constant:
0:98 6 (const uint)
0:98 move second child to first child (temp uint)
0:98 'WidthU' (temp uint)
0:98 direct index (temp uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
+0:98 'sizeQueryTemp' (temp 2-component vector of uint)
0:98 Constant:
0:98 0 (const int)
0:98 move second child to first child (temp uint)
0:98 'HeightU' (temp uint)
0:98 direct index (temp uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
+0:98 'sizeQueryTemp' (temp 2-component vector of uint)
0:98 Constant:
0:98 1 (const int)
0:98 move second child to first child (temp uint)
-0:98 'ElementsU' (temp uint)
-0:98 direct index (temp uint)
-0:98 'sizeQueryTemp' (temp 3-component vector of uint)
-0:98 Constant:
-0:98 2 (const int)
-0:98 move second child to first child (temp uint)
0:98 'NumberOfLevelsU' (temp uint)
0:98 textureQueryLevels (temp uint)
-0:98 'g_tTex2di4a' (uniform itexture2DArray)
+0:98 'g_tTex2du4' (uniform utexture2D)
0:101 Sequence
0:101 move second child to first child (temp 3-component vector of uint)
0:101 'sizeQueryTemp' (temp 3-component vector of uint)
0:101 textureSize (temp 3-component vector of uint)
-0:101 'g_tTex2du4a' (uniform utexture2DArray)
+0:101 'g_tTex2df4a' (uniform texture2DArray)
0:101 move second child to first child (temp uint)
0:101 'WidthU' (temp uint)
0:101 direct index (temp uint)
@@ -1379,7 +1435,7 @@
0:102 move second child to first child (temp 3-component vector of uint)
0:102 'sizeQueryTemp' (temp 3-component vector of uint)
0:102 textureSize (temp 3-component vector of uint)
-0:102 'g_tTex2du4a' (uniform utexture2DArray)
+0:102 'g_tTex2df4a' (uniform texture2DArray)
0:102 Constant:
0:102 6 (const uint)
0:102 move second child to first child (temp uint)
@@ -1403,12 +1459,12 @@
0:102 move second child to first child (temp uint)
0:102 'NumberOfLevelsU' (temp uint)
0:102 textureQueryLevels (temp uint)
-0:102 'g_tTex2du4a' (uniform utexture2DArray)
+0:102 'g_tTex2df4a' (uniform texture2DArray)
0:105 Sequence
0:105 move second child to first child (temp 3-component vector of uint)
0:105 'sizeQueryTemp' (temp 3-component vector of uint)
0:105 textureSize (temp 3-component vector of uint)
-0:105 'g_tTex3df4' (uniform texture3D)
+0:105 'g_tTex2di4a' (uniform itexture2DArray)
0:105 move second child to first child (temp uint)
0:105 'WidthU' (temp uint)
0:105 direct index (temp uint)
@@ -1422,7 +1478,7 @@
0:105 Constant:
0:105 1 (const int)
0:105 move second child to first child (temp uint)
-0:105 'DepthU' (temp uint)
+0:105 'ElementsU' (temp uint)
0:105 direct index (temp uint)
0:105 'sizeQueryTemp' (temp 3-component vector of uint)
0:105 Constant:
@@ -1431,7 +1487,7 @@
0:106 move second child to first child (temp 3-component vector of uint)
0:106 'sizeQueryTemp' (temp 3-component vector of uint)
0:106 textureSize (temp 3-component vector of uint)
-0:106 'g_tTex3df4' (uniform texture3D)
+0:106 'g_tTex2di4a' (uniform itexture2DArray)
0:106 Constant:
0:106 6 (const uint)
0:106 move second child to first child (temp uint)
@@ -1447,7 +1503,7 @@
0:106 Constant:
0:106 1 (const int)
0:106 move second child to first child (temp uint)
-0:106 'DepthU' (temp uint)
+0:106 'ElementsU' (temp uint)
0:106 direct index (temp uint)
0:106 'sizeQueryTemp' (temp 3-component vector of uint)
0:106 Constant:
@@ -1455,12 +1511,12 @@
0:106 move second child to first child (temp uint)
0:106 'NumberOfLevelsU' (temp uint)
0:106 textureQueryLevels (temp uint)
-0:106 'g_tTex3df4' (uniform texture3D)
+0:106 'g_tTex2di4a' (uniform itexture2DArray)
0:109 Sequence
0:109 move second child to first child (temp 3-component vector of uint)
0:109 'sizeQueryTemp' (temp 3-component vector of uint)
0:109 textureSize (temp 3-component vector of uint)
-0:109 'g_tTex3di4' (uniform itexture3D)
+0:109 'g_tTex2du4a' (uniform utexture2DArray)
0:109 move second child to first child (temp uint)
0:109 'WidthU' (temp uint)
0:109 direct index (temp uint)
@@ -1474,7 +1530,7 @@
0:109 Constant:
0:109 1 (const int)
0:109 move second child to first child (temp uint)
-0:109 'DepthU' (temp uint)
+0:109 'ElementsU' (temp uint)
0:109 direct index (temp uint)
0:109 'sizeQueryTemp' (temp 3-component vector of uint)
0:109 Constant:
@@ -1483,7 +1539,7 @@
0:110 move second child to first child (temp 3-component vector of uint)
0:110 'sizeQueryTemp' (temp 3-component vector of uint)
0:110 textureSize (temp 3-component vector of uint)
-0:110 'g_tTex3di4' (uniform itexture3D)
+0:110 'g_tTex2du4a' (uniform utexture2DArray)
0:110 Constant:
0:110 6 (const uint)
0:110 move second child to first child (temp uint)
@@ -1499,7 +1555,7 @@
0:110 Constant:
0:110 1 (const int)
0:110 move second child to first child (temp uint)
-0:110 'DepthU' (temp uint)
+0:110 'ElementsU' (temp uint)
0:110 direct index (temp uint)
0:110 'sizeQueryTemp' (temp 3-component vector of uint)
0:110 Constant:
@@ -1507,12 +1563,12 @@
0:110 move second child to first child (temp uint)
0:110 'NumberOfLevelsU' (temp uint)
0:110 textureQueryLevels (temp uint)
-0:110 'g_tTex3di4' (uniform itexture3D)
+0:110 'g_tTex2du4a' (uniform utexture2DArray)
0:113 Sequence
0:113 move second child to first child (temp 3-component vector of uint)
0:113 'sizeQueryTemp' (temp 3-component vector of uint)
0:113 textureSize (temp 3-component vector of uint)
-0:113 'g_tTex3du4' (uniform utexture3D)
+0:113 'g_tTex3df4' (uniform texture3D)
0:113 move second child to first child (temp uint)
0:113 'WidthU' (temp uint)
0:113 direct index (temp uint)
@@ -1535,7 +1591,7 @@
0:114 move second child to first child (temp 3-component vector of uint)
0:114 'sizeQueryTemp' (temp 3-component vector of uint)
0:114 textureSize (temp 3-component vector of uint)
-0:114 'g_tTex3du4' (uniform utexture3D)
+0:114 'g_tTex3df4' (uniform texture3D)
0:114 Constant:
0:114 6 (const uint)
0:114 move second child to first child (temp uint)
@@ -1559,92 +1615,116 @@
0:114 move second child to first child (temp uint)
0:114 'NumberOfLevelsU' (temp uint)
0:114 textureQueryLevels (temp uint)
-0:114 'g_tTex3du4' (uniform utexture3D)
+0:114 'g_tTex3df4' (uniform texture3D)
0:117 Sequence
-0:117 move second child to first child (temp 2-component vector of uint)
-0:117 'sizeQueryTemp' (temp 2-component vector of uint)
-0:117 textureSize (temp 2-component vector of uint)
-0:117 'g_tTexcdf4' (uniform textureCube)
+0:117 move second child to first child (temp 3-component vector of uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
+0:117 textureSize (temp 3-component vector of uint)
+0:117 'g_tTex3di4' (uniform itexture3D)
0:117 move second child to first child (temp uint)
0:117 'WidthU' (temp uint)
0:117 direct index (temp uint)
-0:117 'sizeQueryTemp' (temp 2-component vector of uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
0:117 Constant:
0:117 0 (const int)
0:117 move second child to first child (temp uint)
0:117 'HeightU' (temp uint)
0:117 direct index (temp uint)
-0:117 'sizeQueryTemp' (temp 2-component vector of uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
0:117 Constant:
0:117 1 (const int)
+0:117 move second child to first child (temp uint)
+0:117 'DepthU' (temp uint)
+0:117 direct index (temp uint)
+0:117 'sizeQueryTemp' (temp 3-component vector of uint)
+0:117 Constant:
+0:117 2 (const int)
0:118 Sequence
-0:118 move second child to first child (temp 2-component vector of uint)
-0:118 'sizeQueryTemp' (temp 2-component vector of uint)
-0:118 textureSize (temp 2-component vector of uint)
-0:118 'g_tTexcdf4' (uniform textureCube)
+0:118 move second child to first child (temp 3-component vector of uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
+0:118 textureSize (temp 3-component vector of uint)
+0:118 'g_tTex3di4' (uniform itexture3D)
0:118 Constant:
0:118 6 (const uint)
0:118 move second child to first child (temp uint)
0:118 'WidthU' (temp uint)
0:118 direct index (temp uint)
-0:118 'sizeQueryTemp' (temp 2-component vector of uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
0:118 Constant:
0:118 0 (const int)
0:118 move second child to first child (temp uint)
0:118 'HeightU' (temp uint)
0:118 direct index (temp uint)
-0:118 'sizeQueryTemp' (temp 2-component vector of uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
0:118 Constant:
0:118 1 (const int)
0:118 move second child to first child (temp uint)
+0:118 'DepthU' (temp uint)
+0:118 direct index (temp uint)
+0:118 'sizeQueryTemp' (temp 3-component vector of uint)
+0:118 Constant:
+0:118 2 (const int)
+0:118 move second child to first child (temp uint)
0:118 'NumberOfLevelsU' (temp uint)
0:118 textureQueryLevels (temp uint)
-0:118 'g_tTexcdf4' (uniform textureCube)
+0:118 'g_tTex3di4' (uniform itexture3D)
0:121 Sequence
-0:121 move second child to first child (temp 2-component vector of uint)
-0:121 'sizeQueryTemp' (temp 2-component vector of uint)
-0:121 textureSize (temp 2-component vector of uint)
-0:121 'g_tTexcdi4' (uniform itextureCube)
+0:121 move second child to first child (temp 3-component vector of uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
+0:121 textureSize (temp 3-component vector of uint)
+0:121 'g_tTex3du4' (uniform utexture3D)
0:121 move second child to first child (temp uint)
0:121 'WidthU' (temp uint)
0:121 direct index (temp uint)
-0:121 'sizeQueryTemp' (temp 2-component vector of uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
0:121 Constant:
0:121 0 (const int)
0:121 move second child to first child (temp uint)
0:121 'HeightU' (temp uint)
0:121 direct index (temp uint)
-0:121 'sizeQueryTemp' (temp 2-component vector of uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
0:121 Constant:
0:121 1 (const int)
+0:121 move second child to first child (temp uint)
+0:121 'DepthU' (temp uint)
+0:121 direct index (temp uint)
+0:121 'sizeQueryTemp' (temp 3-component vector of uint)
+0:121 Constant:
+0:121 2 (const int)
0:122 Sequence
-0:122 move second child to first child (temp 2-component vector of uint)
-0:122 'sizeQueryTemp' (temp 2-component vector of uint)
-0:122 textureSize (temp 2-component vector of uint)
-0:122 'g_tTexcdi4' (uniform itextureCube)
+0:122 move second child to first child (temp 3-component vector of uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
+0:122 textureSize (temp 3-component vector of uint)
+0:122 'g_tTex3du4' (uniform utexture3D)
0:122 Constant:
0:122 6 (const uint)
0:122 move second child to first child (temp uint)
0:122 'WidthU' (temp uint)
0:122 direct index (temp uint)
-0:122 'sizeQueryTemp' (temp 2-component vector of uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
0:122 Constant:
0:122 0 (const int)
0:122 move second child to first child (temp uint)
0:122 'HeightU' (temp uint)
0:122 direct index (temp uint)
-0:122 'sizeQueryTemp' (temp 2-component vector of uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
0:122 Constant:
0:122 1 (const int)
0:122 move second child to first child (temp uint)
+0:122 'DepthU' (temp uint)
+0:122 direct index (temp uint)
+0:122 'sizeQueryTemp' (temp 3-component vector of uint)
+0:122 Constant:
+0:122 2 (const int)
+0:122 move second child to first child (temp uint)
0:122 'NumberOfLevelsU' (temp uint)
0:122 textureQueryLevels (temp uint)
-0:122 'g_tTexcdi4' (uniform itextureCube)
+0:122 'g_tTex3du4' (uniform utexture3D)
0:125 Sequence
0:125 move second child to first child (temp 2-component vector of uint)
0:125 'sizeQueryTemp' (temp 2-component vector of uint)
0:125 textureSize (temp 2-component vector of uint)
-0:125 'g_tTexcdu4' (uniform utextureCube)
+0:125 'g_tTexcdf4' (uniform textureCube)
0:125 move second child to first child (temp uint)
0:125 'WidthU' (temp uint)
0:125 direct index (temp uint)
@@ -1661,7 +1741,7 @@
0:126 move second child to first child (temp 2-component vector of uint)
0:126 'sizeQueryTemp' (temp 2-component vector of uint)
0:126 textureSize (temp 2-component vector of uint)
-0:126 'g_tTexcdu4' (uniform utextureCube)
+0:126 'g_tTexcdf4' (uniform textureCube)
0:126 Constant:
0:126 6 (const uint)
0:126 move second child to first child (temp uint)
@@ -1679,116 +1759,92 @@
0:126 move second child to first child (temp uint)
0:126 'NumberOfLevelsU' (temp uint)
0:126 textureQueryLevels (temp uint)
-0:126 'g_tTexcdu4' (uniform utextureCube)
+0:126 'g_tTexcdf4' (uniform textureCube)
0:129 Sequence
-0:129 move second child to first child (temp 3-component vector of uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
-0:129 textureSize (temp 3-component vector of uint)
-0:129 'g_tTexcdf4a' (uniform textureCubeArray)
+0:129 move second child to first child (temp 2-component vector of uint)
+0:129 'sizeQueryTemp' (temp 2-component vector of uint)
+0:129 textureSize (temp 2-component vector of uint)
+0:129 'g_tTexcdi4' (uniform itextureCube)
0:129 move second child to first child (temp uint)
0:129 'WidthU' (temp uint)
0:129 direct index (temp uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
+0:129 'sizeQueryTemp' (temp 2-component vector of uint)
0:129 Constant:
0:129 0 (const int)
0:129 move second child to first child (temp uint)
0:129 'HeightU' (temp uint)
0:129 direct index (temp uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
+0:129 'sizeQueryTemp' (temp 2-component vector of uint)
0:129 Constant:
0:129 1 (const int)
-0:129 move second child to first child (temp uint)
-0:129 'ElementsU' (temp uint)
-0:129 direct index (temp uint)
-0:129 'sizeQueryTemp' (temp 3-component vector of uint)
-0:129 Constant:
-0:129 2 (const int)
0:130 Sequence
-0:130 move second child to first child (temp 3-component vector of uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
-0:130 textureSize (temp 3-component vector of uint)
-0:130 'g_tTexcdf4a' (uniform textureCubeArray)
+0:130 move second child to first child (temp 2-component vector of uint)
+0:130 'sizeQueryTemp' (temp 2-component vector of uint)
+0:130 textureSize (temp 2-component vector of uint)
+0:130 'g_tTexcdi4' (uniform itextureCube)
0:130 Constant:
0:130 6 (const uint)
0:130 move second child to first child (temp uint)
0:130 'WidthU' (temp uint)
0:130 direct index (temp uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
+0:130 'sizeQueryTemp' (temp 2-component vector of uint)
0:130 Constant:
0:130 0 (const int)
0:130 move second child to first child (temp uint)
0:130 'HeightU' (temp uint)
0:130 direct index (temp uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
+0:130 'sizeQueryTemp' (temp 2-component vector of uint)
0:130 Constant:
0:130 1 (const int)
0:130 move second child to first child (temp uint)
-0:130 'ElementsU' (temp uint)
-0:130 direct index (temp uint)
-0:130 'sizeQueryTemp' (temp 3-component vector of uint)
-0:130 Constant:
-0:130 2 (const int)
-0:130 move second child to first child (temp uint)
0:130 'NumberOfLevelsU' (temp uint)
0:130 textureQueryLevels (temp uint)
-0:130 'g_tTexcdf4a' (uniform textureCubeArray)
+0:130 'g_tTexcdi4' (uniform itextureCube)
0:133 Sequence
-0:133 move second child to first child (temp 3-component vector of uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
-0:133 textureSize (temp 3-component vector of uint)
-0:133 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:133 move second child to first child (temp 2-component vector of uint)
+0:133 'sizeQueryTemp' (temp 2-component vector of uint)
+0:133 textureSize (temp 2-component vector of uint)
+0:133 'g_tTexcdu4' (uniform utextureCube)
0:133 move second child to first child (temp uint)
0:133 'WidthU' (temp uint)
0:133 direct index (temp uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
+0:133 'sizeQueryTemp' (temp 2-component vector of uint)
0:133 Constant:
0:133 0 (const int)
0:133 move second child to first child (temp uint)
0:133 'HeightU' (temp uint)
0:133 direct index (temp uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
+0:133 'sizeQueryTemp' (temp 2-component vector of uint)
0:133 Constant:
0:133 1 (const int)
-0:133 move second child to first child (temp uint)
-0:133 'ElementsU' (temp uint)
-0:133 direct index (temp uint)
-0:133 'sizeQueryTemp' (temp 3-component vector of uint)
-0:133 Constant:
-0:133 2 (const int)
0:134 Sequence
-0:134 move second child to first child (temp 3-component vector of uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
-0:134 textureSize (temp 3-component vector of uint)
-0:134 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:134 move second child to first child (temp 2-component vector of uint)
+0:134 'sizeQueryTemp' (temp 2-component vector of uint)
+0:134 textureSize (temp 2-component vector of uint)
+0:134 'g_tTexcdu4' (uniform utextureCube)
0:134 Constant:
0:134 6 (const uint)
0:134 move second child to first child (temp uint)
0:134 'WidthU' (temp uint)
0:134 direct index (temp uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
+0:134 'sizeQueryTemp' (temp 2-component vector of uint)
0:134 Constant:
0:134 0 (const int)
0:134 move second child to first child (temp uint)
0:134 'HeightU' (temp uint)
0:134 direct index (temp uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
+0:134 'sizeQueryTemp' (temp 2-component vector of uint)
0:134 Constant:
0:134 1 (const int)
0:134 move second child to first child (temp uint)
-0:134 'ElementsU' (temp uint)
-0:134 direct index (temp uint)
-0:134 'sizeQueryTemp' (temp 3-component vector of uint)
-0:134 Constant:
-0:134 2 (const int)
-0:134 move second child to first child (temp uint)
0:134 'NumberOfLevelsU' (temp uint)
0:134 textureQueryLevels (temp uint)
-0:134 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:134 'g_tTexcdu4' (uniform utextureCube)
0:137 Sequence
0:137 move second child to first child (temp 3-component vector of uint)
0:137 'sizeQueryTemp' (temp 3-component vector of uint)
0:137 textureSize (temp 3-component vector of uint)
-0:137 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:137 'g_tTexcdf4a' (uniform textureCubeArray)
0:137 move second child to first child (temp uint)
0:137 'WidthU' (temp uint)
0:137 direct index (temp uint)
@@ -1811,7 +1867,7 @@
0:138 move second child to first child (temp 3-component vector of uint)
0:138 'sizeQueryTemp' (temp 3-component vector of uint)
0:138 textureSize (temp 3-component vector of uint)
-0:138 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:138 'g_tTexcdf4a' (uniform textureCubeArray)
0:138 Constant:
0:138 6 (const uint)
0:138 move second child to first child (temp uint)
@@ -1835,19 +1891,277 @@
0:138 move second child to first child (temp uint)
0:138 'NumberOfLevelsU' (temp uint)
0:138 textureQueryLevels (temp uint)
-0:138 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:234 move second child to first child (temp float)
-0:234 Depth: direct index for structure (temp float FragDepth)
-0:234 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
-0:234 Constant:
-0:234 1 (const int)
-0:234 Constant:
-0:234 1.000000
-0:236 Branch: Return with expression
-0:236 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:138 'g_tTexcdf4a' (uniform textureCubeArray)
+0:141 Sequence
+0:141 move second child to first child (temp 3-component vector of uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 textureSize (temp 3-component vector of uint)
+0:141 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:141 move second child to first child (temp uint)
+0:141 'WidthU' (temp uint)
+0:141 direct index (temp uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 Constant:
+0:141 0 (const int)
+0:141 move second child to first child (temp uint)
+0:141 'HeightU' (temp uint)
+0:141 direct index (temp uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 Constant:
+0:141 1 (const int)
+0:141 move second child to first child (temp uint)
+0:141 'ElementsU' (temp uint)
+0:141 direct index (temp uint)
+0:141 'sizeQueryTemp' (temp 3-component vector of uint)
+0:141 Constant:
+0:141 2 (const int)
+0:142 Sequence
+0:142 move second child to first child (temp 3-component vector of uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 textureSize (temp 3-component vector of uint)
+0:142 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:142 Constant:
+0:142 6 (const uint)
+0:142 move second child to first child (temp uint)
+0:142 'WidthU' (temp uint)
+0:142 direct index (temp uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 Constant:
+0:142 0 (const int)
+0:142 move second child to first child (temp uint)
+0:142 'HeightU' (temp uint)
+0:142 direct index (temp uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 Constant:
+0:142 1 (const int)
+0:142 move second child to first child (temp uint)
+0:142 'ElementsU' (temp uint)
+0:142 direct index (temp uint)
+0:142 'sizeQueryTemp' (temp 3-component vector of uint)
+0:142 Constant:
+0:142 2 (const int)
+0:142 move second child to first child (temp uint)
+0:142 'NumberOfLevelsU' (temp uint)
+0:142 textureQueryLevels (temp uint)
+0:142 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:145 Sequence
+0:145 move second child to first child (temp 3-component vector of uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 textureSize (temp 3-component vector of uint)
+0:145 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:145 move second child to first child (temp uint)
+0:145 'WidthU' (temp uint)
+0:145 direct index (temp uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 Constant:
+0:145 0 (const int)
+0:145 move second child to first child (temp uint)
+0:145 'HeightU' (temp uint)
+0:145 direct index (temp uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 Constant:
+0:145 1 (const int)
+0:145 move second child to first child (temp uint)
+0:145 'ElementsU' (temp uint)
+0:145 direct index (temp uint)
+0:145 'sizeQueryTemp' (temp 3-component vector of uint)
+0:145 Constant:
+0:145 2 (const int)
+0:146 Sequence
+0:146 move second child to first child (temp 3-component vector of uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 textureSize (temp 3-component vector of uint)
+0:146 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:146 Constant:
+0:146 6 (const uint)
+0:146 move second child to first child (temp uint)
+0:146 'WidthU' (temp uint)
+0:146 direct index (temp uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 Constant:
+0:146 0 (const int)
+0:146 move second child to first child (temp uint)
+0:146 'HeightU' (temp uint)
+0:146 direct index (temp uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 Constant:
+0:146 1 (const int)
+0:146 move second child to first child (temp uint)
+0:146 'ElementsU' (temp uint)
+0:146 direct index (temp uint)
+0:146 'sizeQueryTemp' (temp 3-component vector of uint)
+0:146 Constant:
+0:146 2 (const int)
+0:146 move second child to first child (temp uint)
+0:146 'NumberOfLevelsU' (temp uint)
+0:146 textureQueryLevels (temp uint)
+0:146 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:149 Sequence
+0:149 move second child to first child (temp 2-component vector of uint)
+0:149 'sizeQueryTemp' (temp 2-component vector of uint)
+0:149 textureSize (temp 2-component vector of uint)
+0:149 'g_tTex2dmsf4' (uniform texture2DMS)
+0:149 move second child to first child (temp uint)
+0:149 'WidthU' (temp uint)
+0:149 direct index (temp uint)
+0:149 'sizeQueryTemp' (temp 2-component vector of uint)
+0:149 Constant:
+0:149 0 (const int)
+0:149 move second child to first child (temp uint)
+0:149 'HeightU' (temp uint)
+0:149 direct index (temp uint)
+0:149 'sizeQueryTemp' (temp 2-component vector of uint)
+0:149 Constant:
+0:149 1 (const int)
+0:149 move second child to first child (temp uint)
+0:149 'NumberOfSamplesU' (temp uint)
+0:149 imageQuerySamples (temp uint)
+0:149 'g_tTex2dmsf4' (uniform texture2DMS)
+0:152 Sequence
+0:152 move second child to first child (temp 2-component vector of uint)
+0:152 'sizeQueryTemp' (temp 2-component vector of uint)
+0:152 textureSize (temp 2-component vector of uint)
+0:152 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:152 move second child to first child (temp uint)
+0:152 'WidthU' (temp uint)
+0:152 direct index (temp uint)
+0:152 'sizeQueryTemp' (temp 2-component vector of uint)
+0:152 Constant:
+0:152 0 (const int)
+0:152 move second child to first child (temp uint)
+0:152 'HeightU' (temp uint)
+0:152 direct index (temp uint)
+0:152 'sizeQueryTemp' (temp 2-component vector of uint)
+0:152 Constant:
+0:152 1 (const int)
+0:152 move second child to first child (temp uint)
+0:152 'NumberOfSamplesU' (temp uint)
+0:152 imageQuerySamples (temp uint)
+0:152 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:155 Sequence
+0:155 move second child to first child (temp 2-component vector of uint)
+0:155 'sizeQueryTemp' (temp 2-component vector of uint)
+0:155 textureSize (temp 2-component vector of uint)
+0:155 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:155 move second child to first child (temp uint)
+0:155 'WidthU' (temp uint)
+0:155 direct index (temp uint)
+0:155 'sizeQueryTemp' (temp 2-component vector of uint)
+0:155 Constant:
+0:155 0 (const int)
+0:155 move second child to first child (temp uint)
+0:155 'HeightU' (temp uint)
+0:155 direct index (temp uint)
+0:155 'sizeQueryTemp' (temp 2-component vector of uint)
+0:155 Constant:
+0:155 1 (const int)
+0:155 move second child to first child (temp uint)
+0:155 'NumberOfSamplesU' (temp uint)
+0:155 imageQuerySamples (temp uint)
+0:155 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:158 Sequence
+0:158 move second child to first child (temp 3-component vector of uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 textureSize (temp 3-component vector of uint)
+0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:158 move second child to first child (temp uint)
+0:158 'WidthU' (temp uint)
+0:158 direct index (temp uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 Constant:
+0:158 0 (const int)
+0:158 move second child to first child (temp uint)
+0:158 'HeightU' (temp uint)
+0:158 direct index (temp uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 Constant:
+0:158 1 (const int)
+0:158 move second child to first child (temp uint)
+0:158 'ElementsU' (temp uint)
+0:158 direct index (temp uint)
+0:158 'sizeQueryTemp' (temp 3-component vector of uint)
+0:158 Constant:
+0:158 2 (const int)
+0:158 move second child to first child (temp uint)
+0:158 'NumberOfSamplesU' (temp uint)
+0:158 imageQuerySamples (temp uint)
+0:158 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:161 Sequence
+0:161 move second child to first child (temp 3-component vector of uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 textureSize (temp 3-component vector of uint)
+0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:161 move second child to first child (temp uint)
+0:161 'WidthU' (temp uint)
+0:161 direct index (temp uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 Constant:
+0:161 0 (const int)
+0:161 move second child to first child (temp uint)
+0:161 'HeightU' (temp uint)
+0:161 direct index (temp uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 Constant:
+0:161 1 (const int)
+0:161 move second child to first child (temp uint)
+0:161 'ElementsU' (temp uint)
+0:161 direct index (temp uint)
+0:161 'sizeQueryTemp' (temp 3-component vector of uint)
+0:161 Constant:
+0:161 2 (const int)
+0:161 move second child to first child (temp uint)
+0:161 'NumberOfSamplesU' (temp uint)
+0:161 imageQuerySamples (temp uint)
+0:161 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:164 Sequence
+0:164 move second child to first child (temp 3-component vector of uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 textureSize (temp 3-component vector of uint)
+0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:164 move second child to first child (temp uint)
+0:164 'WidthU' (temp uint)
+0:164 direct index (temp uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 Constant:
+0:164 0 (const int)
+0:164 move second child to first child (temp uint)
+0:164 'HeightU' (temp uint)
+0:164 direct index (temp uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 Constant:
+0:164 1 (const int)
+0:164 move second child to first child (temp uint)
+0:164 'ElementsU' (temp uint)
+0:164 direct index (temp uint)
+0:164 'sizeQueryTemp' (temp 3-component vector of uint)
+0:164 Constant:
+0:164 2 (const int)
+0:164 move second child to first child (temp uint)
+0:164 'NumberOfSamplesU' (temp uint)
+0:164 imageQuerySamples (temp uint)
+0:164 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:276 move second child to first child (temp 4-component vector of float)
+0:276 Color: direct index for structure (temp 4-component vector of float)
+0:276 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:276 Constant:
+0:276 0 (const int)
+0:276 Constant:
+0:276 1.000000
+0:276 1.000000
+0:276 1.000000
+0:276 1.000000
+0:277 move second child to first child (temp float)
+0:277 Depth: direct index for structure (temp float FragDepth)
+0:277 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:277 Constant:
+0:277 1 (const int)
+0:277 Constant:
+0:277 1.000000
+0:279 Branch: Return with expression
+0:279 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -1868,14 +2182,21 @@
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'g_tTex2dmsf4' (uniform texture2DMS)
+0:? 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:? 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 455
+// Id's are bound by 538
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
+ Capability ImageMSArray
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
@@ -1951,12 +2272,26 @@
Name 419 "sizeQueryTemp"
Name 422 "g_tTexcdu4a"
Name 431 "sizeQueryTemp"
- Name 443 "PS_OUTPUT"
- MemberName 443(PS_OUTPUT) 0 "Color"
- MemberName 443(PS_OUTPUT) 1 "Depth"
- Name 445 "psout"
- Name 454 "g_sSamp"
+ Name 442 "sizeQueryTemp"
+ Name 445 "g_tTex2dmsf4"
+ Name 452 "NumberOfSamplesU"
+ Name 455 "sizeQueryTemp"
+ Name 458 "g_tTex2dmsi4"
+ Name 467 "sizeQueryTemp"
+ Name 470 "g_tTex2dmsu4"
+ Name 479 "sizeQueryTemp"
+ Name 482 "g_tTex2dmsf4a"
+ Name 493 "sizeQueryTemp"
+ Name 496 "g_tTex2dmsi4a"
+ Name 507 "sizeQueryTemp"
+ Name 510 "g_tTex2dmsu4a"
+ Name 522 "PS_OUTPUT"
+ MemberName 522(PS_OUTPUT) 0 "Color"
+ MemberName 522(PS_OUTPUT) 1 "Depth"
+ Name 524 "psout"
+ Name 537 "g_sSamp"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 29(g_tTex1di4) DescriptorSet 0
Decorate 42(g_tTex1du4) DescriptorSet 0
Decorate 57(g_tTex1df4a) DescriptorSet 0
@@ -1977,8 +2312,15 @@
Decorate 376(g_tTexcdf4a) DescriptorSet 0
Decorate 399(g_tTexcdi4a) DescriptorSet 0
Decorate 422(g_tTexcdu4a) DescriptorSet 0
- MemberDecorate 443(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 454(g_sSamp) DescriptorSet 0
+ Decorate 445(g_tTex2dmsf4) DescriptorSet 0
+ Decorate 458(g_tTex2dmsi4) DescriptorSet 0
+ Decorate 470(g_tTex2dmsu4) DescriptorSet 0
+ Decorate 482(g_tTex2dmsf4a) DescriptorSet 0
+ Decorate 496(g_tTex2dmsi4a) DescriptorSet 0
+ Decorate 510(g_tTex2dmsu4a) DescriptorSet 0
+ MemberDecorate 522(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 537(g_sSamp) DescriptorSet 0
+ Decorate 537(g_sSamp) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
@@ -2058,15 +2400,36 @@
420: TypeImage 6(int) Cube array sampled format:Unknown
421: TypePointer UniformConstant 420
422(g_tTexcdu4a): 421(ptr) Variable UniformConstant
- 442: TypeVector 9(float) 4
- 443(PS_OUTPUT): TypeStruct 442(fvec4) 9(float)
- 444: TypePointer Function 443(PS_OUTPUT)
- 446: 14(int) Constant 1
- 447: 9(float) Constant 1065353216
- 448: TypePointer Function 9(float)
- 452: TypeSampler
- 453: TypePointer UniformConstant 452
- 454(g_sSamp): 453(ptr) Variable UniformConstant
+ 443: TypeImage 9(float) 2D multi-sampled sampled format:Unknown
+ 444: TypePointer UniformConstant 443
+445(g_tTex2dmsf4): 444(ptr) Variable UniformConstant
+ 456: TypeImage 14(int) 2D multi-sampled sampled format:Unknown
+ 457: TypePointer UniformConstant 456
+458(g_tTex2dmsi4): 457(ptr) Variable UniformConstant
+ 468: TypeImage 6(int) 2D multi-sampled sampled format:Unknown
+ 469: TypePointer UniformConstant 468
+470(g_tTex2dmsu4): 469(ptr) Variable UniformConstant
+ 480: TypeImage 9(float) 2D array multi-sampled sampled format:Unknown
+ 481: TypePointer UniformConstant 480
+482(g_tTex2dmsf4a): 481(ptr) Variable UniformConstant
+ 494: TypeImage 14(int) 2D array multi-sampled sampled format:Unknown
+ 495: TypePointer UniformConstant 494
+496(g_tTex2dmsi4a): 495(ptr) Variable UniformConstant
+ 508: TypeImage 6(int) 2D array multi-sampled sampled format:Unknown
+ 509: TypePointer UniformConstant 508
+510(g_tTex2dmsu4a): 509(ptr) Variable UniformConstant
+ 521: TypeVector 9(float) 4
+ 522(PS_OUTPUT): TypeStruct 521(fvec4) 9(float)
+ 523: TypePointer Function 522(PS_OUTPUT)
+ 525: 14(int) Constant 0
+ 526: 9(float) Constant 1065353216
+ 527: 521(fvec4) ConstantComposite 526 526 526 526
+ 528: TypePointer Function 521(fvec4)
+ 530: 14(int) Constant 1
+ 531: TypePointer Function 9(float)
+ 535: TypeSampler
+ 536: TypePointer UniformConstant 535
+ 537(g_sSamp): 536(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(sizeQueryTemp): 7(ptr) Variable Function
@@ -2116,7 +2479,14 @@
408(sizeQueryTemp): 174(ptr) Variable Function
419(sizeQueryTemp): 174(ptr) Variable Function
431(sizeQueryTemp): 174(ptr) Variable Function
- 445(psout): 444(ptr) Variable Function
+442(sizeQueryTemp): 53(ptr) Variable Function
+452(NumberOfSamplesU): 7(ptr) Variable Function
+455(sizeQueryTemp): 53(ptr) Variable Function
+467(sizeQueryTemp): 53(ptr) Variable Function
+479(sizeQueryTemp): 174(ptr) Variable Function
+493(sizeQueryTemp): 174(ptr) Variable Function
+507(sizeQueryTemp): 174(ptr) Variable Function
+ 524(psout): 523(ptr) Variable Function
13: 10 Load 12(g_tTex1df4)
15: 14(int) ImageQuerySize 13
Store 8(sizeQueryTemp) 15
@@ -2588,8 +2958,91 @@
440: 420 Load 422(g_tTexcdu4a)
441: 14(int) ImageQueryLevels 440
Store 23(NumberOfLevelsU) 441
- 449: 448(ptr) AccessChain 445(psout) 446
- Store 449 447
- 450:443(PS_OUTPUT) Load 445(psout)
- ReturnValue 450
+ 446: 443 Load 445(g_tTex2dmsf4)
+ 447: 59(ivec2) ImageQuerySize 446
+ Store 442(sizeQueryTemp) 447
+ 448: 7(ptr) AccessChain 442(sizeQueryTemp) 61
+ 449: 6(int) Load 448
+ Store 16(WidthU) 449
+ 450: 7(ptr) AccessChain 442(sizeQueryTemp) 65
+ 451: 6(int) Load 450
+ Store 123(HeightU) 451
+ 453: 443 Load 445(g_tTex2dmsf4)
+ 454: 14(int) ImageQuerySamples 453
+ Store 452(NumberOfSamplesU) 454
+ 459: 456 Load 458(g_tTex2dmsi4)
+ 460: 59(ivec2) ImageQuerySize 459
+ Store 455(sizeQueryTemp) 460
+ 461: 7(ptr) AccessChain 455(sizeQueryTemp) 61
+ 462: 6(int) Load 461
+ Store 16(WidthU) 462
+ 463: 7(ptr) AccessChain 455(sizeQueryTemp) 65
+ 464: 6(int) Load 463
+ Store 123(HeightU) 464
+ 465: 456 Load 458(g_tTex2dmsi4)
+ 466: 14(int) ImageQuerySamples 465
+ Store 452(NumberOfSamplesU) 466
+ 471: 468 Load 470(g_tTex2dmsu4)
+ 472: 59(ivec2) ImageQuerySize 471
+ Store 467(sizeQueryTemp) 472
+ 473: 7(ptr) AccessChain 467(sizeQueryTemp) 61
+ 474: 6(int) Load 473
+ Store 16(WidthU) 474
+ 475: 7(ptr) AccessChain 467(sizeQueryTemp) 65
+ 476: 6(int) Load 475
+ Store 123(HeightU) 476
+ 477: 468 Load 470(g_tTex2dmsu4)
+ 478: 14(int) ImageQuerySamples 477
+ Store 452(NumberOfSamplesU) 478
+ 483: 480 Load 482(g_tTex2dmsf4a)
+ 484: 180(ivec3) ImageQuerySize 483
+ Store 479(sizeQueryTemp) 484
+ 485: 7(ptr) AccessChain 479(sizeQueryTemp) 61
+ 486: 6(int) Load 485
+ Store 16(WidthU) 486
+ 487: 7(ptr) AccessChain 479(sizeQueryTemp) 65
+ 488: 6(int) Load 487
+ Store 123(HeightU) 488
+ 489: 7(ptr) AccessChain 479(sizeQueryTemp) 186
+ 490: 6(int) Load 489
+ Store 64(ElementsU) 490
+ 491: 480 Load 482(g_tTex2dmsf4a)
+ 492: 14(int) ImageQuerySamples 491
+ Store 452(NumberOfSamplesU) 492
+ 497: 494 Load 496(g_tTex2dmsi4a)
+ 498: 180(ivec3) ImageQuerySize 497
+ Store 493(sizeQueryTemp) 498
+ 499: 7(ptr) AccessChain 493(sizeQueryTemp) 61
+ 500: 6(int) Load 499
+ Store 16(WidthU) 500
+ 501: 7(ptr) AccessChain 493(sizeQueryTemp) 65
+ 502: 6(int) Load 501
+ Store 123(HeightU) 502
+ 503: 7(ptr) AccessChain 493(sizeQueryTemp) 186
+ 504: 6(int) Load 503
+ Store 64(ElementsU) 504
+ 505: 494 Load 496(g_tTex2dmsi4a)
+ 506: 14(int) ImageQuerySamples 505
+ Store 452(NumberOfSamplesU) 506
+ 511: 508 Load 510(g_tTex2dmsu4a)
+ 512: 180(ivec3) ImageQuerySize 511
+ Store 507(sizeQueryTemp) 512
+ 513: 7(ptr) AccessChain 507(sizeQueryTemp) 61
+ 514: 6(int) Load 513
+ Store 16(WidthU) 514
+ 515: 7(ptr) AccessChain 507(sizeQueryTemp) 65
+ 516: 6(int) Load 515
+ Store 123(HeightU) 516
+ 517: 7(ptr) AccessChain 507(sizeQueryTemp) 186
+ 518: 6(int) Load 517
+ Store 64(ElementsU) 518
+ 519: 508 Load 510(g_tTex2dmsu4a)
+ 520: 14(int) ImageQuerySamples 519
+ Store 452(NumberOfSamplesU) 520
+ 529: 528(ptr) AccessChain 524(psout) 525
+ Store 529 527
+ 532: 531(ptr) AccessChain 524(psout) 530
+ Store 532 526
+ 533:522(PS_OUTPUT) Load 524(psout)
+ ReturnValue 533
FunctionEnd
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
index 27d4dbe..9170402 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
@@ -8,7 +8,7 @@
0:21 move second child to first child (temp uint)
0:21 'sizeQueryTemp' (temp uint)
0:21 textureSize (temp uint)
-0:21 'g_tTex1df4' (uniform texture1D)
+0:21 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:21 move second child to first child (temp uint)
0:21 'WidthU' (temp uint)
0:21 'sizeQueryTemp' (temp uint)
@@ -16,7 +16,7 @@
0:22 move second child to first child (temp uint)
0:22 'sizeQueryTemp' (temp uint)
0:22 textureSize (temp uint)
-0:22 'g_tTex1df4' (uniform texture1D)
+0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:22 Constant:
0:22 6 (const uint)
0:22 move second child to first child (temp uint)
@@ -25,7 +25,7 @@
0:22 move second child to first child (temp uint)
0:22 'NumberOfLevelsU' (temp uint)
0:22 textureQueryLevels (temp uint)
-0:22 'g_tTex1df4' (uniform texture1D)
+0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:24 move second child to first child (temp 4-component vector of float)
0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord)
0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
@@ -39,8 +39,8 @@
0:26 Branch: Return with expression
0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
Linked vertex stage:
@@ -55,7 +55,7 @@
0:21 move second child to first child (temp uint)
0:21 'sizeQueryTemp' (temp uint)
0:21 textureSize (temp uint)
-0:21 'g_tTex1df4' (uniform texture1D)
+0:21 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:21 move second child to first child (temp uint)
0:21 'WidthU' (temp uint)
0:21 'sizeQueryTemp' (temp uint)
@@ -63,7 +63,7 @@
0:22 move second child to first child (temp uint)
0:22 'sizeQueryTemp' (temp uint)
0:22 textureSize (temp uint)
-0:22 'g_tTex1df4' (uniform texture1D)
+0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:22 Constant:
0:22 6 (const uint)
0:22 move second child to first child (temp uint)
@@ -72,7 +72,7 @@
0:22 move second child to first child (temp uint)
0:22 'NumberOfLevelsU' (temp uint)
0:22 textureQueryLevels (temp uint)
-0:22 'g_tTex1df4' (uniform texture1D)
+0:22 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:24 move second child to first child (temp 4-component vector of float)
0:24 Pos: direct index for structure (temp 4-component vector of float FragCoord)
0:24 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
@@ -86,8 +86,8 @@
0:26 Branch: Return with expression
0:26 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
// Module Version 10000
// Generated by (magic number): 80001
@@ -111,8 +111,10 @@
Name 29 "vsout"
Name 39 "g_sSamp"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
MemberDecorate 27(VS_OUTPUT) 0 BuiltIn FragCoord
Decorate 39(g_sSamp) DescriptorSet 0
+ Decorate 39(g_sSamp) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
new file mode 100644
index 0000000..e2cf6fe
--- /dev/null
+++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -0,0 +1,103 @@
+hlsl.getsampleposition.dx10.frag
+ERROR: 0:16: '' : unimplemented: GetSamplePosition
+ERROR: 0:17: '' : unimplemented: GetSamplePosition
+ERROR: 2 compilation errors. No code generated.
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:13 Function Parameters:
+0:? Sequence
+0:16 Sequence
+0:16 move second child to first child (temp 2-component vector of float)
+0:16 'r00' (temp 2-component vector of float)
+0:16 ERROR: Bad aggregation op
+ (global 2-component vector of float)
+0:16 'g_tTex2dmsf4' (uniform texture2DMS)
+0:16 Constant:
+0:16 1 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp 2-component vector of float)
+0:17 'r01' (temp 2-component vector of float)
+0:17 ERROR: Bad aggregation op
+ (global 2-component vector of float)
+0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:17 Constant:
+0:17 2 (const int)
+0:19 move second child to first child (temp 4-component vector of float)
+0:19 Color: direct index for structure (temp 4-component vector of float)
+0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:19 Constant:
+0:19 0 (const int)
+0:19 Constant:
+0:19 1.000000
+0:19 1.000000
+0:19 1.000000
+0:19 1.000000
+0:20 move second child to first child (temp float)
+0:20 Depth: direct index for structure (temp float FragDepth)
+0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20 Constant:
+0:20 1 (const int)
+0:20 Constant:
+0:20 1.000000
+0:22 Branch: Return with expression
+0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex2dmsf4' (uniform texture2DMS)
+0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:13 Function Parameters:
+0:? Sequence
+0:16 Sequence
+0:16 move second child to first child (temp 2-component vector of float)
+0:16 'r00' (temp 2-component vector of float)
+0:16 ERROR: Bad aggregation op
+ (global 2-component vector of float)
+0:16 'g_tTex2dmsf4' (uniform texture2DMS)
+0:16 Constant:
+0:16 1 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp 2-component vector of float)
+0:17 'r01' (temp 2-component vector of float)
+0:17 ERROR: Bad aggregation op
+ (global 2-component vector of float)
+0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:17 Constant:
+0:17 2 (const int)
+0:19 move second child to first child (temp 4-component vector of float)
+0:19 Color: direct index for structure (temp 4-component vector of float)
+0:19 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:19 Constant:
+0:19 0 (const int)
+0:19 Constant:
+0:19 1.000000
+0:19 1.000000
+0:19 1.000000
+0:19 1.000000
+0:20 move second child to first child (temp float)
+0:20 Depth: direct index for structure (temp float FragDepth)
+0:20 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20 Constant:
+0:20 1 (const int)
+0:20 Constant:
+0:20 1.000000
+0:22 Branch: Return with expression
+0:22 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex2dmsf4' (uniform texture2DMS)
+0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out
index 1a4c802..bc7c21b 100755
--- a/Test/baseResults/hlsl.init.frag.out
+++ b/Test/baseResults/hlsl.init.frag.out
@@ -56,56 +56,78 @@
0:6 'c5' (global float)
0:6 Constant:
0:6 1.500000
-0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
-0:9 Function Parameters:
-0:9 'input' (in 4-component vector of float)
+0:9 Sequence
+0:9 move second child to first child (temp structure{temp int f})
+0:9 'single1' (global structure{temp int f})
+0:9 Constant:
+0:9 10 (const int)
+0:12 Sequence
+0:12 move second child to first child (temp structure{temp 2-component vector of uint v})
+0:12 'single2' (global structure{temp 2-component vector of uint v})
+0:12 Constant:
+0:12 1 (const uint)
+0:12 2 (const uint)
+0:15 Sequence
+0:15 move second child to first child (temp structure{temp structure{temp int f} s1})
+0:15 'single3' (global structure{temp structure{temp int f} s1})
+0:15 Constant:
+0:15 3 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp structure{temp structure{temp 2-component vector of uint v} s1})
+0:18 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
+0:18 Constant:
+0:18 4 (const uint)
+0:18 5 (const uint)
+0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:21 Function Parameters:
+0:21 'input' (in 4-component vector of float)
0:? Sequence
-0:10 Sequence
-0:10 move second child to first child (temp 4-component vector of float)
-0:10 'a2' (temp 4-component vector of float)
+0:22 Sequence
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 'a2' (temp 4-component vector of float)
0:? Constant:
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:? 0.500000
-0:20 Sequence
-0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 Constant:
-0:20 9 (const int)
-0:20 'a5' (global float)
-0:20 Construct structure (temp structure{temp float f, temp int i})
-0:20 Comma (temp float)
-0:20 'a3' (global float)
-0:20 'a4' (global float)
-0:20 Constant:
-0:20 12 (const int)
-0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 Sequence
+0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 Constant:
+0:32 9 (const int)
+0:32 'a5' (global float)
+0:32 Construct structure (temp structure{temp float f, temp int i})
+0:32 Comma (temp float)
+0:32 'a3' (global float)
+0:32 'a4' (global float)
+0:32 Constant:
+0:32 12 (const int)
+0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 Constant:
-0:20 9 (const int)
-0:20 'a5' (global float)
+0:32 Constant:
+0:32 9 (const int)
+0:32 'a5' (global float)
0:? Construct structure (temp structure{temp float f, temp int i})
-0:20 Comma (temp float)
-0:20 'a3' (global float)
-0:20 'a4' (global float)
-0:20 Constant:
-0:20 12 (const int)
-0:21 Sequence
-0:21 move second child to first child (temp float)
-0:21 'a8' (temp float)
-0:21 Comma (temp float)
-0:21 'a2' (temp 4-component vector of float)
-0:21 'b2' (global float)
-0:21 move second child to first child (temp float)
-0:21 'a9' (temp float)
-0:21 'a5' (global float)
-0:23 Branch: Return with expression
-0:23 component-wise multiply (temp 4-component vector of float)
-0:23 'input' (in 4-component vector of float)
-0:23 'a1' (global 4-component vector of float)
+0:32 Comma (temp float)
+0:32 'a3' (global float)
+0:32 'a4' (global float)
+0:32 Constant:
+0:32 12 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'a8' (temp float)
+0:33 Comma (temp float)
+0:33 'a2' (temp 4-component vector of float)
+0:33 'b2' (global float)
+0:33 move second child to first child (temp float)
+0:33 'a9' (temp float)
+0:33 'a5' (global float)
+0:35 Branch: Return with expression
+0:35 component-wise multiply (temp 4-component vector of float)
+0:35 'input' (in 4-component vector of float)
+0:35 'a1' (global 4-component vector of float)
0:? Linker Objects
0:? 'a1' (global 4-component vector of float)
0:? 'b1' (global 4-component vector of float)
@@ -121,6 +143,10 @@
0:? 'a5' (global float)
0:? 'b5' (global float)
0:? 'c5' (global float)
+0:? 'single1' (global structure{temp int f})
+0:? 'single2' (global structure{temp 2-component vector of uint v})
+0:? 'single3' (global structure{temp structure{temp int f} s1})
+0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
Linked fragment stage:
@@ -183,56 +209,78 @@
0:6 'c5' (global float)
0:6 Constant:
0:6 1.500000
-0:25 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
-0:9 Function Parameters:
-0:9 'input' (in 4-component vector of float)
+0:9 Sequence
+0:9 move second child to first child (temp structure{temp int f})
+0:9 'single1' (global structure{temp int f})
+0:9 Constant:
+0:9 10 (const int)
+0:12 Sequence
+0:12 move second child to first child (temp structure{temp 2-component vector of uint v})
+0:12 'single2' (global structure{temp 2-component vector of uint v})
+0:12 Constant:
+0:12 1 (const uint)
+0:12 2 (const uint)
+0:15 Sequence
+0:15 move second child to first child (temp structure{temp structure{temp int f} s1})
+0:15 'single3' (global structure{temp structure{temp int f} s1})
+0:15 Constant:
+0:15 3 (const int)
+0:18 Sequence
+0:18 move second child to first child (temp structure{temp structure{temp 2-component vector of uint v} s1})
+0:18 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
+0:18 Constant:
+0:18 4 (const uint)
+0:18 5 (const uint)
+0:37 Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
+0:21 Function Parameters:
+0:21 'input' (in 4-component vector of float)
0:? Sequence
-0:10 Sequence
-0:10 move second child to first child (temp 4-component vector of float)
-0:10 'a2' (temp 4-component vector of float)
+0:22 Sequence
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 'a2' (temp 4-component vector of float)
0:? Constant:
0:? 0.200000
0:? 0.300000
0:? 0.400000
0:? 0.500000
-0:20 Sequence
-0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 Constant:
-0:20 9 (const int)
-0:20 'a5' (global float)
-0:20 Construct structure (temp structure{temp float f, temp int i})
-0:20 Comma (temp float)
-0:20 'a3' (global float)
-0:20 'a4' (global float)
-0:20 Constant:
-0:20 12 (const int)
-0:20 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 Sequence
+0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 's2i' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 Constant:
+0:32 9 (const int)
+0:32 'a5' (global float)
+0:32 Construct structure (temp structure{temp float f, temp int i})
+0:32 Comma (temp float)
+0:32 'a3' (global float)
+0:32 'a4' (global float)
+0:32 Constant:
+0:32 12 (const int)
+0:32 move second child to first child (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
+0:32 's2' (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
0:? Construct structure (temp structure{temp int j, temp float g, temp structure{temp float f, temp int i} s1})
-0:20 Constant:
-0:20 9 (const int)
-0:20 'a5' (global float)
+0:32 Constant:
+0:32 9 (const int)
+0:32 'a5' (global float)
0:? Construct structure (temp structure{temp float f, temp int i})
-0:20 Comma (temp float)
-0:20 'a3' (global float)
-0:20 'a4' (global float)
-0:20 Constant:
-0:20 12 (const int)
-0:21 Sequence
-0:21 move second child to first child (temp float)
-0:21 'a8' (temp float)
-0:21 Comma (temp float)
-0:21 'a2' (temp 4-component vector of float)
-0:21 'b2' (global float)
-0:21 move second child to first child (temp float)
-0:21 'a9' (temp float)
-0:21 'a5' (global float)
-0:23 Branch: Return with expression
-0:23 component-wise multiply (temp 4-component vector of float)
-0:23 'input' (in 4-component vector of float)
-0:23 'a1' (global 4-component vector of float)
+0:32 Comma (temp float)
+0:32 'a3' (global float)
+0:32 'a4' (global float)
+0:32 Constant:
+0:32 12 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp float)
+0:33 'a8' (temp float)
+0:33 Comma (temp float)
+0:33 'a2' (temp 4-component vector of float)
+0:33 'b2' (global float)
+0:33 move second child to first child (temp float)
+0:33 'a9' (temp float)
+0:33 'a5' (global float)
+0:35 Branch: Return with expression
+0:35 component-wise multiply (temp 4-component vector of float)
+0:35 'input' (in 4-component vector of float)
+0:35 'a1' (global 4-component vector of float)
0:? Linker Objects
0:? 'a1' (global 4-component vector of float)
0:? 'b1' (global 4-component vector of float)
@@ -248,15 +296,19 @@
0:? 'a5' (global float)
0:? 'b5' (global float)
0:? 'c5' (global float)
+0:? 'single1' (global structure{temp int f})
+0:? 'single2' (global structure{temp 2-component vector of uint v})
+0:? 'single3' (global structure{temp structure{temp int f} s1})
+0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1})
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 67
+// Id's are bound by 95
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "ShaderFunction" 60
+ EntryPoint Fragment 4 "ShaderFunction" 88
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "ShaderFunction"
@@ -269,24 +321,36 @@
Name 27 "b4"
Name 29 "a5"
Name 30 "c5"
- Name 33 "a2"
- Name 36 "S1"
- MemberName 36(S1) 0 "f"
- MemberName 36(S1) 1 "i"
- Name 37 "S2"
- MemberName 37(S2) 0 "j"
- MemberName 37(S2) 1 "g"
- MemberName 37(S2) 2 "s1"
- Name 39 "s2i"
- Name 42 "a3"
- Name 43 "a4"
- Name 48 "s2"
- Name 54 "a8"
- Name 55 "b2"
- Name 57 "a9"
- Name 60 "input"
- Name 65 "c4"
- Name 66 "b5"
+ Name 33 "Single1"
+ MemberName 33(Single1) 0 "f"
+ Name 35 "single1"
+ Name 40 "Single2"
+ MemberName 40(Single2) 0 "v"
+ Name 42 "single2"
+ Name 47 "Single3"
+ MemberName 47(Single3) 0 "s1"
+ Name 49 "single3"
+ Name 53 "Single4"
+ MemberName 53(Single4) 0 "s1"
+ Name 55 "single4"
+ Name 62 "a2"
+ Name 64 "S1"
+ MemberName 64(S1) 0 "f"
+ MemberName 64(S1) 1 "i"
+ Name 65 "S2"
+ MemberName 65(S2) 0 "j"
+ MemberName 65(S2) 1 "g"
+ MemberName 65(S2) 2 "s1"
+ Name 67 "s2i"
+ Name 70 "a3"
+ Name 71 "a4"
+ Name 76 "s2"
+ Name 82 "a8"
+ Name 83 "b2"
+ Name 85 "a9"
+ Name 88 "input"
+ Name 93 "c4"
+ Name 94 "b5"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -315,29 +379,57 @@
29(a5): 22(ptr) Variable Private
30(c5): 22(ptr) Variable Private
31: 6(float) Constant 1069547520
- 32: TypePointer Function 7(fvec4)
- 34: 7(fvec4) ConstantComposite 24 26 28 11
- 35: TypeInt 32 1
- 36(S1): TypeStruct 6(float) 35(int)
- 37(S2): TypeStruct 35(int) 6(float) 36(S1)
- 38: TypePointer Function 37(S2)
- 40: 35(int) Constant 9
- 42(a3): 22(ptr) Variable Private
- 43(a4): 22(ptr) Variable Private
- 45: 35(int) Constant 12
- 53: TypePointer Function 6(float)
- 55(b2): 22(ptr) Variable Private
- 59: TypePointer Input 7(fvec4)
- 60(input): 59(ptr) Variable Input
- 65(c4): 22(ptr) Variable Private
- 66(b5): 22(ptr) Variable Private
+ 32: TypeInt 32 1
+ 33(Single1): TypeStruct 32(int)
+ 34: TypePointer Private 33(Single1)
+ 35(single1): 34(ptr) Variable Private
+ 36: 32(int) Constant 10
+ 37: 33(Single1) ConstantComposite 36
+ 38: TypeInt 32 0
+ 39: TypeVector 38(int) 2
+ 40(Single2): TypeStruct 39(ivec2)
+ 41: TypePointer Private 40(Single2)
+ 42(single2): 41(ptr) Variable Private
+ 43: 38(int) Constant 1
+ 44: 38(int) Constant 2
+ 45: 39(ivec2) ConstantComposite 43 44
+ 46: 40(Single2) ConstantComposite 45
+ 47(Single3): TypeStruct 33(Single1)
+ 48: TypePointer Private 47(Single3)
+ 49(single3): 48(ptr) Variable Private
+ 50: 32(int) Constant 3
+ 51: 33(Single1) ConstantComposite 50
+ 52: 47(Single3) ConstantComposite 51
+ 53(Single4): TypeStruct 40(Single2)
+ 54: TypePointer Private 53(Single4)
+ 55(single4): 54(ptr) Variable Private
+ 56: 38(int) Constant 4
+ 57: 38(int) Constant 5
+ 58: 39(ivec2) ConstantComposite 56 57
+ 59: 40(Single2) ConstantComposite 58
+ 60: 53(Single4) ConstantComposite 59
+ 61: TypePointer Function 7(fvec4)
+ 63: 7(fvec4) ConstantComposite 24 26 28 11
+ 64(S1): TypeStruct 6(float) 32(int)
+ 65(S2): TypeStruct 32(int) 6(float) 64(S1)
+ 66: TypePointer Function 65(S2)
+ 68: 32(int) Constant 9
+ 70(a3): 22(ptr) Variable Private
+ 71(a4): 22(ptr) Variable Private
+ 73: 32(int) Constant 12
+ 81: TypePointer Function 6(float)
+ 83(b2): 22(ptr) Variable Private
+ 87: TypePointer Input 7(fvec4)
+ 88(input): 87(ptr) Variable Input
+ 93(c4): 22(ptr) Variable Private
+ 94(b5): 22(ptr) Variable Private
4(ShaderFunction): 2 Function None 3
5: Label
- 33(a2): 32(ptr) Variable Function
- 39(s2i): 38(ptr) Variable Function
- 48(s2): 38(ptr) Variable Function
- 54(a8): 53(ptr) Variable Function
- 57(a9): 53(ptr) Variable Function
+ 62(a2): 61(ptr) Variable Function
+ 67(s2i): 66(ptr) Variable Function
+ 76(s2): 66(ptr) Variable Function
+ 82(a8): 81(ptr) Variable Function
+ 85(a9): 81(ptr) Variable Function
Store 9(a1) 13
Store 14(b1) 19
Store 20(a1i) 13
@@ -347,23 +439,27 @@
Store 27(b4) 28
Store 29(a5) 11
Store 30(c5) 31
- Store 33(a2) 34
- 41: 6(float) Load 29(a5)
- 44: 6(float) Load 43(a4)
- 46: 36(S1) CompositeConstruct 44 45
- 47: 37(S2) CompositeConstruct 40 41 46
- Store 39(s2i) 47
- 49: 6(float) Load 29(a5)
- 50: 6(float) Load 43(a4)
- 51: 36(S1) CompositeConstruct 50 45
- 52: 37(S2) CompositeConstruct 40 49 51
- Store 48(s2) 52
- 56: 6(float) Load 55(b2)
- Store 54(a8) 56
- 58: 6(float) Load 29(a5)
- Store 57(a9) 58
- 61: 7(fvec4) Load 60(input)
- 62: 7(fvec4) Load 9(a1)
- 63: 7(fvec4) FMul 61 62
- ReturnValue 63
+ Store 35(single1) 37
+ Store 42(single2) 46
+ Store 49(single3) 52
+ Store 55(single4) 60
+ Store 62(a2) 63
+ 69: 6(float) Load 29(a5)
+ 72: 6(float) Load 71(a4)
+ 74: 64(S1) CompositeConstruct 72 73
+ 75: 65(S2) CompositeConstruct 68 69 74
+ Store 67(s2i) 75
+ 77: 6(float) Load 29(a5)
+ 78: 6(float) Load 71(a4)
+ 79: 64(S1) CompositeConstruct 78 73
+ 80: 65(S2) CompositeConstruct 68 77 79
+ Store 76(s2) 80
+ 84: 6(float) Load 83(b2)
+ Store 82(a8) 84
+ 86: 6(float) Load 29(a5)
+ Store 85(a9) 86
+ 89: 7(fvec4) Load 88(input)
+ 90: 7(fvec4) Load 9(a1)
+ 91: 7(fvec4) FMul 89 90
+ ReturnValue 91
FunctionEnd
diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out
new file mode 100644
index 0000000..439fd37
--- /dev/null
+++ b/Test/baseResults/hlsl.init2.frag.out
@@ -0,0 +1,176 @@
+hlsl.init2.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:23 Function Definition: Test1( (global void)
+0:3 Function Parameters:
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp structure{temp 2-component vector of float a})
+0:5 'test1' (temp structure{temp 2-component vector of float a})
+0:5 Constant:
+0:5 1.000000
+0:5 2.000000
+0:9 Sequence
+0:9 move second child to first child (temp structure{temp 2-component vector of float a})
+0:9 'test2' (temp structure{temp 2-component vector of float a})
+0:9 Constant:
+0:9 3.000000
+0:9 4.000000
+0:17 Sequence
+0:17 move second child to first child (temp float)
+0:17 'test4' (temp float)
+0:17 Constant:
+0:17 7.000000
+0:20 Sequence
+0:20 move second child to first child (temp structure{temp float a, temp float b, temp float c})
+0:20 'test5' (temp structure{temp float a, temp float b, temp float c})
+0:20 Constant:
+0:20 8.000000
+0:20 9.000000
+0:20 10.000000
+0:33 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:26 Function Parameters:
+0:? Sequence
+0:27 Function Call: Test1( (global void)
+0:30 move second child to first child (temp 4-component vector of float)
+0:30 color: direct index for structure (temp 4-component vector of float)
+0:30 'ps_output' (temp structure{temp 4-component vector of float color})
+0:30 Constant:
+0:30 0 (const int)
+0:30 Constant:
+0:30 1.000000
+0:30 1.000000
+0:30 1.000000
+0:30 1.000000
+0:31 Branch: Return with expression
+0:31 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:23 Function Definition: Test1( (global void)
+0:3 Function Parameters:
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp structure{temp 2-component vector of float a})
+0:5 'test1' (temp structure{temp 2-component vector of float a})
+0:5 Constant:
+0:5 1.000000
+0:5 2.000000
+0:9 Sequence
+0:9 move second child to first child (temp structure{temp 2-component vector of float a})
+0:9 'test2' (temp structure{temp 2-component vector of float a})
+0:9 Constant:
+0:9 3.000000
+0:9 4.000000
+0:17 Sequence
+0:17 move second child to first child (temp float)
+0:17 'test4' (temp float)
+0:17 Constant:
+0:17 7.000000
+0:20 Sequence
+0:20 move second child to first child (temp structure{temp float a, temp float b, temp float c})
+0:20 'test5' (temp structure{temp float a, temp float b, temp float c})
+0:20 Constant:
+0:20 8.000000
+0:20 9.000000
+0:20 10.000000
+0:33 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:26 Function Parameters:
+0:? Sequence
+0:27 Function Call: Test1( (global void)
+0:30 move second child to first child (temp 4-component vector of float)
+0:30 color: direct index for structure (temp 4-component vector of float)
+0:30 'ps_output' (temp structure{temp 4-component vector of float color})
+0:30 Constant:
+0:30 0 (const int)
+0:30 Constant:
+0:30 1.000000
+0:30 1.000000
+0:30 1.000000
+0:30 1.000000
+0:31 Branch: Return with expression
+0:31 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 44
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 6 "Test1("
+ Name 10 "mystruct"
+ MemberName 10(mystruct) 0 "a"
+ Name 12 "test1"
+ Name 17 "test2"
+ Name 23 "test4"
+ Name 25 "mystruct2"
+ MemberName 25(mystruct2) 0 "a"
+ MemberName 25(mystruct2) 1 "b"
+ MemberName 25(mystruct2) 2 "c"
+ Name 27 "test5"
+ Name 34 "PS_OUTPUT"
+ MemberName 34(PS_OUTPUT) 0 "color"
+ Name 36 "ps_output"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 8: TypeFloat 32
+ 9: TypeVector 8(float) 2
+ 10(mystruct): TypeStruct 9(fvec2)
+ 11: TypePointer Function 10(mystruct)
+ 13: 8(float) Constant 1065353216
+ 14: 8(float) Constant 1073741824
+ 15: 9(fvec2) ConstantComposite 13 14
+ 16:10(mystruct) ConstantComposite 15
+ 18: 8(float) Constant 1077936128
+ 19: 8(float) Constant 1082130432
+ 20: 9(fvec2) ConstantComposite 18 19
+ 21:10(mystruct) ConstantComposite 20
+ 22: TypePointer Function 8(float)
+ 24: 8(float) Constant 1088421888
+ 25(mystruct2): TypeStruct 8(float) 8(float) 8(float)
+ 26: TypePointer Function 25(mystruct2)
+ 28: 8(float) Constant 1090519040
+ 29: 8(float) Constant 1091567616
+ 30: 8(float) Constant 1092616192
+ 31:25(mystruct2) ConstantComposite 28 29 30
+ 33: TypeVector 8(float) 4
+ 34(PS_OUTPUT): TypeStruct 33(fvec4)
+ 35: TypePointer Function 34(PS_OUTPUT)
+ 37: TypeInt 32 1
+ 38: 37(int) Constant 0
+ 39: 33(fvec4) ConstantComposite 13 13 13 13
+ 40: TypePointer Function 33(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 36(ps_output): 35(ptr) Variable Function
+ 32: 2 FunctionCall 6(Test1()
+ 41: 40(ptr) AccessChain 36(ps_output) 38
+ Store 41 39
+ 42:34(PS_OUTPUT) Load 36(ps_output)
+ ReturnValue 42
+ FunctionEnd
+ 6(Test1(): 2 Function None 3
+ 7: Label
+ 12(test1): 11(ptr) Variable Function
+ 17(test2): 11(ptr) Variable Function
+ 23(test4): 22(ptr) Variable Function
+ 27(test5): 26(ptr) Variable Function
+ Store 12(test1) 16
+ Store 17(test2) 21
+ Store 23(test4) 24
+ Store 27(test5) 31
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index f6c4147..f4e2434 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -733,7 +733,7 @@
0:? Constant:
0:? 1.000000
0:? 2.000000
-0:258 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:259 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
0:178 Function Parameters:
0:178 'inF0' (in 3-component vector of float)
0:178 'inF1' (in 3-component vector of float)
@@ -970,1162 +970,1170 @@
0:225 'inF1' (in 3-component vector of float)
0:225 'inF2' (in 3-component vector of float)
0:226 Sequence
-0:226 move second child to first child (temp float)
-0:226 'r043' (temp float)
-0:226 length (global float)
+0:226 move second child to first child (temp 3-component vector of float)
+0:226 'r039b' (temp 3-component vector of float)
+0:226 mix (global 3-component vector of float)
0:226 'inF0' (in 3-component vector of float)
+0:226 'inF1' (in 3-component vector of float)
+0:226 Constant:
+0:226 0.300000
0:227 Sequence
-0:227 move second child to first child (temp 3-component vector of float)
-0:227 'r044' (temp 3-component vector of float)
-0:227 log (global 3-component vector of float)
+0:227 move second child to first child (temp float)
+0:227 'r043' (temp float)
+0:227 length (global float)
0:227 'inF0' (in 3-component vector of float)
0:228 Sequence
0:228 move second child to first child (temp 3-component vector of float)
-0:228 'r045' (temp 3-component vector of float)
-0:228 vector-scale (temp 3-component vector of float)
-0:228 log2 (temp 3-component vector of float)
-0:228 'inF0' (in 3-component vector of float)
-0:228 Constant:
-0:228 0.301030
+0:228 'r044' (temp 3-component vector of float)
+0:228 log (global 3-component vector of float)
+0:228 'inF0' (in 3-component vector of float)
0:229 Sequence
0:229 move second child to first child (temp 3-component vector of float)
-0:229 'r046' (temp 3-component vector of float)
-0:229 log2 (global 3-component vector of float)
-0:229 'inF0' (in 3-component vector of float)
+0:229 'r045' (temp 3-component vector of float)
+0:229 vector-scale (temp 3-component vector of float)
+0:229 log2 (temp 3-component vector of float)
+0:229 'inF0' (in 3-component vector of float)
+0:229 Constant:
+0:229 0.301030
0:230 Sequence
0:230 move second child to first child (temp 3-component vector of float)
-0:230 'r047' (temp 3-component vector of float)
-0:230 max (global 3-component vector of float)
+0:230 'r046' (temp 3-component vector of float)
+0:230 log2 (global 3-component vector of float)
0:230 'inF0' (in 3-component vector of float)
-0:230 'inF1' (in 3-component vector of float)
0:231 Sequence
0:231 move second child to first child (temp 3-component vector of float)
-0:231 'r048' (temp 3-component vector of float)
-0:231 min (global 3-component vector of float)
+0:231 'r047' (temp 3-component vector of float)
+0:231 max (global 3-component vector of float)
0:231 'inF0' (in 3-component vector of float)
0:231 'inF1' (in 3-component vector of float)
0:232 Sequence
0:232 move second child to first child (temp 3-component vector of float)
-0:232 'r049' (temp 3-component vector of float)
-0:232 normalize (global 3-component vector of float)
+0:232 'r048' (temp 3-component vector of float)
+0:232 min (global 3-component vector of float)
0:232 'inF0' (in 3-component vector of float)
+0:232 'inF1' (in 3-component vector of float)
0:233 Sequence
0:233 move second child to first child (temp 3-component vector of float)
-0:233 'r050' (temp 3-component vector of float)
-0:233 pow (global 3-component vector of float)
+0:233 'r049' (temp 3-component vector of float)
+0:233 normalize (global 3-component vector of float)
0:233 'inF0' (in 3-component vector of float)
-0:233 'inF1' (in 3-component vector of float)
0:234 Sequence
0:234 move second child to first child (temp 3-component vector of float)
-0:234 'r051' (temp 3-component vector of float)
-0:234 radians (global 3-component vector of float)
+0:234 'r050' (temp 3-component vector of float)
+0:234 pow (global 3-component vector of float)
0:234 'inF0' (in 3-component vector of float)
+0:234 'inF1' (in 3-component vector of float)
0:235 Sequence
0:235 move second child to first child (temp 3-component vector of float)
-0:235 'r052' (temp 3-component vector of float)
-0:235 divide (temp 3-component vector of float)
-0:235 Constant:
-0:235 1.000000
+0:235 'r051' (temp 3-component vector of float)
+0:235 radians (global 3-component vector of float)
0:235 'inF0' (in 3-component vector of float)
0:236 Sequence
0:236 move second child to first child (temp 3-component vector of float)
-0:236 'r053' (temp 3-component vector of float)
-0:236 reflect (global 3-component vector of float)
+0:236 'r052' (temp 3-component vector of float)
+0:236 divide (temp 3-component vector of float)
+0:236 Constant:
+0:236 1.000000
0:236 'inF0' (in 3-component vector of float)
-0:236 'inF1' (in 3-component vector of float)
0:237 Sequence
0:237 move second child to first child (temp 3-component vector of float)
-0:237 'r054' (temp 3-component vector of float)
-0:237 refract (global 3-component vector of float)
+0:237 'r053' (temp 3-component vector of float)
+0:237 reflect (global 3-component vector of float)
0:237 'inF0' (in 3-component vector of float)
0:237 'inF1' (in 3-component vector of float)
-0:237 Constant:
-0:237 2.000000
0:238 Sequence
-0:238 move second child to first child (temp 3-component vector of uint)
-0:238 'r055' (temp 3-component vector of uint)
+0:238 move second child to first child (temp 3-component vector of float)
+0:238 'r054' (temp 3-component vector of float)
+0:238 refract (global 3-component vector of float)
+0:238 'inF0' (in 3-component vector of float)
+0:238 'inF1' (in 3-component vector of float)
+0:238 Constant:
+0:238 2.000000
+0:239 Sequence
+0:239 move second child to first child (temp 3-component vector of uint)
+0:239 'r055' (temp 3-component vector of uint)
0:? bitFieldReverse (global 3-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
-0:239 Sequence
-0:239 move second child to first child (temp 3-component vector of float)
-0:239 'r056' (temp 3-component vector of float)
-0:239 roundEven (global 3-component vector of float)
-0:239 'inF0' (in 3-component vector of float)
0:240 Sequence
0:240 move second child to first child (temp 3-component vector of float)
-0:240 'r057' (temp 3-component vector of float)
-0:240 inverse sqrt (global 3-component vector of float)
+0:240 'r056' (temp 3-component vector of float)
+0:240 roundEven (global 3-component vector of float)
0:240 'inF0' (in 3-component vector of float)
0:241 Sequence
0:241 move second child to first child (temp 3-component vector of float)
-0:241 'r058' (temp 3-component vector of float)
-0:241 clamp (temp 3-component vector of float)
+0:241 'r057' (temp 3-component vector of float)
+0:241 inverse sqrt (global 3-component vector of float)
0:241 'inF0' (in 3-component vector of float)
-0:241 Constant:
-0:241 0.000000
-0:241 Constant:
-0:241 1.000000
0:242 Sequence
0:242 move second child to first child (temp 3-component vector of float)
-0:242 'r059' (temp 3-component vector of float)
-0:242 Sign (global 3-component vector of float)
+0:242 'r058' (temp 3-component vector of float)
+0:242 clamp (temp 3-component vector of float)
0:242 'inF0' (in 3-component vector of float)
+0:242 Constant:
+0:242 0.000000
+0:242 Constant:
+0:242 1.000000
0:243 Sequence
0:243 move second child to first child (temp 3-component vector of float)
-0:243 'r060' (temp 3-component vector of float)
-0:243 sine (global 3-component vector of float)
+0:243 'r059' (temp 3-component vector of float)
+0:243 Sign (global 3-component vector of float)
0:243 'inF0' (in 3-component vector of float)
0:244 Sequence
0:244 move second child to first child (temp 3-component vector of float)
-0:244 'inF1' (in 3-component vector of float)
-0:244 sine (temp 3-component vector of float)
-0:244 'inF0' (in 3-component vector of float)
-0:244 move second child to first child (temp 3-component vector of float)
-0:244 'inF2' (in 3-component vector of float)
-0:244 cosine (temp 3-component vector of float)
+0:244 'r060' (temp 3-component vector of float)
+0:244 sine (global 3-component vector of float)
0:244 'inF0' (in 3-component vector of float)
0:245 Sequence
0:245 move second child to first child (temp 3-component vector of float)
-0:245 'r061' (temp 3-component vector of float)
-0:245 hyp. sine (global 3-component vector of float)
+0:245 'inF1' (in 3-component vector of float)
+0:245 sine (temp 3-component vector of float)
+0:245 'inF0' (in 3-component vector of float)
+0:245 move second child to first child (temp 3-component vector of float)
+0:245 'inF2' (in 3-component vector of float)
+0:245 cosine (temp 3-component vector of float)
0:245 'inF0' (in 3-component vector of float)
0:246 Sequence
0:246 move second child to first child (temp 3-component vector of float)
-0:246 'r062' (temp 3-component vector of float)
-0:246 smoothstep (global 3-component vector of float)
+0:246 'r061' (temp 3-component vector of float)
+0:246 hyp. sine (global 3-component vector of float)
0:246 'inF0' (in 3-component vector of float)
-0:246 'inF1' (in 3-component vector of float)
-0:246 'inF2' (in 3-component vector of float)
0:247 Sequence
0:247 move second child to first child (temp 3-component vector of float)
-0:247 'r063' (temp 3-component vector of float)
-0:247 sqrt (global 3-component vector of float)
+0:247 'r062' (temp 3-component vector of float)
+0:247 smoothstep (global 3-component vector of float)
0:247 'inF0' (in 3-component vector of float)
+0:247 'inF1' (in 3-component vector of float)
+0:247 'inF2' (in 3-component vector of float)
0:248 Sequence
0:248 move second child to first child (temp 3-component vector of float)
-0:248 'r064' (temp 3-component vector of float)
-0:248 step (global 3-component vector of float)
+0:248 'r063' (temp 3-component vector of float)
+0:248 sqrt (global 3-component vector of float)
0:248 'inF0' (in 3-component vector of float)
-0:248 'inF1' (in 3-component vector of float)
0:249 Sequence
0:249 move second child to first child (temp 3-component vector of float)
-0:249 'r065' (temp 3-component vector of float)
-0:249 tangent (global 3-component vector of float)
+0:249 'r064' (temp 3-component vector of float)
+0:249 step (global 3-component vector of float)
0:249 'inF0' (in 3-component vector of float)
+0:249 'inF1' (in 3-component vector of float)
0:250 Sequence
0:250 move second child to first child (temp 3-component vector of float)
-0:250 'r066' (temp 3-component vector of float)
-0:250 hyp. tangent (global 3-component vector of float)
+0:250 'r065' (temp 3-component vector of float)
+0:250 tangent (global 3-component vector of float)
0:250 'inF0' (in 3-component vector of float)
-0:252 Sequence
-0:252 move second child to first child (temp 3-component vector of float)
-0:252 'r067' (temp 3-component vector of float)
-0:252 trunc (global 3-component vector of float)
-0:252 'inF0' (in 3-component vector of float)
-0:255 Branch: Return with expression
+0:251 Sequence
+0:251 move second child to first child (temp 3-component vector of float)
+0:251 'r066' (temp 3-component vector of float)
+0:251 hyp. tangent (global 3-component vector of float)
+0:251 'inF0' (in 3-component vector of float)
+0:253 Sequence
+0:253 move second child to first child (temp 3-component vector of float)
+0:253 'r067' (temp 3-component vector of float)
+0:253 trunc (global 3-component vector of float)
+0:253 'inF0' (in 3-component vector of float)
+0:256 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
-0:399 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
-0:259 Function Parameters:
-0:259 'inF0' (in 4-component vector of float)
-0:259 'inF1' (in 4-component vector of float)
-0:259 'inF2' (in 4-component vector of float)
-0:259 'inU0' (in 4-component vector of uint)
-0:259 'inU1' (in 4-component vector of uint)
+0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:260 Function Parameters:
+0:260 'inF0' (in 4-component vector of float)
+0:260 'inF1' (in 4-component vector of float)
+0:260 'inF2' (in 4-component vector of float)
+0:260 'inU0' (in 4-component vector of uint)
+0:260 'inU1' (in 4-component vector of uint)
0:? Sequence
-0:262 Sequence
-0:262 move second child to first child (temp bool)
-0:262 'r000' (temp bool)
-0:262 all (global bool)
-0:262 'inF0' (in 4-component vector of float)
0:263 Sequence
-0:263 move second child to first child (temp 4-component vector of float)
-0:263 'r001' (temp 4-component vector of float)
-0:263 Absolute value (global 4-component vector of float)
+0:263 move second child to first child (temp bool)
+0:263 'r000' (temp bool)
+0:263 all (global bool)
0:263 'inF0' (in 4-component vector of float)
0:264 Sequence
0:264 move second child to first child (temp 4-component vector of float)
-0:264 'r002' (temp 4-component vector of float)
-0:264 arc cosine (global 4-component vector of float)
+0:264 'r001' (temp 4-component vector of float)
+0:264 Absolute value (global 4-component vector of float)
0:264 'inF0' (in 4-component vector of float)
0:265 Sequence
-0:265 move second child to first child (temp bool)
-0:265 'r003' (temp bool)
-0:265 any (global bool)
+0:265 move second child to first child (temp 4-component vector of float)
+0:265 'r002' (temp 4-component vector of float)
+0:265 arc cosine (global 4-component vector of float)
0:265 'inF0' (in 4-component vector of float)
0:266 Sequence
-0:266 move second child to first child (temp 4-component vector of float)
-0:266 'r004' (temp 4-component vector of float)
-0:266 arc sine (global 4-component vector of float)
+0:266 move second child to first child (temp bool)
+0:266 'r003' (temp bool)
+0:266 any (global bool)
0:266 'inF0' (in 4-component vector of float)
0:267 Sequence
-0:267 move second child to first child (temp 4-component vector of int)
-0:267 'r005' (temp 4-component vector of int)
-0:267 floatBitsToInt (global 4-component vector of int)
+0:267 move second child to first child (temp 4-component vector of float)
+0:267 'r004' (temp 4-component vector of float)
+0:267 arc sine (global 4-component vector of float)
0:267 'inF0' (in 4-component vector of float)
0:268 Sequence
-0:268 move second child to first child (temp 4-component vector of uint)
-0:268 'r006' (temp 4-component vector of uint)
-0:268 floatBitsToUint (global 4-component vector of uint)
+0:268 move second child to first child (temp 4-component vector of int)
+0:268 'r005' (temp 4-component vector of int)
+0:268 floatBitsToInt (global 4-component vector of int)
0:268 'inF0' (in 4-component vector of float)
0:269 Sequence
-0:269 move second child to first child (temp 4-component vector of float)
-0:269 'r007' (temp 4-component vector of float)
-0:269 intBitsToFloat (global 4-component vector of float)
-0:269 'inU0' (in 4-component vector of uint)
-0:271 Sequence
-0:271 move second child to first child (temp 4-component vector of float)
-0:271 'r009' (temp 4-component vector of float)
-0:271 arc tangent (global 4-component vector of float)
-0:271 'inF0' (in 4-component vector of float)
+0:269 move second child to first child (temp 4-component vector of uint)
+0:269 'r006' (temp 4-component vector of uint)
+0:269 floatBitsToUint (global 4-component vector of uint)
+0:269 'inF0' (in 4-component vector of float)
+0:270 Sequence
+0:270 move second child to first child (temp 4-component vector of float)
+0:270 'r007' (temp 4-component vector of float)
+0:270 intBitsToFloat (global 4-component vector of float)
+0:270 'inU0' (in 4-component vector of uint)
0:272 Sequence
0:272 move second child to first child (temp 4-component vector of float)
-0:272 'r010' (temp 4-component vector of float)
+0:272 'r009' (temp 4-component vector of float)
0:272 arc tangent (global 4-component vector of float)
0:272 'inF0' (in 4-component vector of float)
-0:272 'inF1' (in 4-component vector of float)
0:273 Sequence
0:273 move second child to first child (temp 4-component vector of float)
-0:273 'r011' (temp 4-component vector of float)
-0:273 Ceiling (global 4-component vector of float)
+0:273 'r010' (temp 4-component vector of float)
+0:273 arc tangent (global 4-component vector of float)
0:273 'inF0' (in 4-component vector of float)
+0:273 'inF1' (in 4-component vector of float)
0:274 Sequence
0:274 move second child to first child (temp 4-component vector of float)
-0:274 'r012' (temp 4-component vector of float)
-0:274 clamp (global 4-component vector of float)
+0:274 'r011' (temp 4-component vector of float)
+0:274 Ceiling (global 4-component vector of float)
0:274 'inF0' (in 4-component vector of float)
-0:274 'inF1' (in 4-component vector of float)
-0:274 'inF2' (in 4-component vector of float)
-0:275 Test condition and select (temp void)
-0:275 Condition
-0:275 any (temp bool)
-0:275 Compare Less Than (temp 4-component vector of bool)
+0:275 Sequence
+0:275 move second child to first child (temp 4-component vector of float)
+0:275 'r012' (temp 4-component vector of float)
+0:275 clamp (global 4-component vector of float)
0:275 'inF0' (in 4-component vector of float)
-0:275 Constant:
-0:275 0.000000
-0:275 0.000000
-0:275 0.000000
-0:275 0.000000
-0:275 true case
-0:275 Branch: Kill
-0:276 Sequence
-0:276 move second child to first child (temp 4-component vector of float)
-0:276 'r013' (temp 4-component vector of float)
-0:276 cosine (global 4-component vector of float)
+0:275 'inF1' (in 4-component vector of float)
+0:275 'inF2' (in 4-component vector of float)
+0:276 Test condition and select (temp void)
+0:276 Condition
+0:276 any (temp bool)
+0:276 Compare Less Than (temp 4-component vector of bool)
0:276 'inF0' (in 4-component vector of float)
+0:276 Constant:
+0:276 0.000000
+0:276 0.000000
+0:276 0.000000
+0:276 0.000000
+0:276 true case
+0:276 Branch: Kill
0:277 Sequence
0:277 move second child to first child (temp 4-component vector of float)
-0:277 'r014' (temp 4-component vector of float)
-0:277 hyp. cosine (global 4-component vector of float)
+0:277 'r013' (temp 4-component vector of float)
+0:277 cosine (global 4-component vector of float)
0:277 'inF0' (in 4-component vector of float)
0:278 Sequence
-0:278 move second child to first child (temp 4-component vector of uint)
-0:278 'r015' (temp 4-component vector of uint)
+0:278 move second child to first child (temp 4-component vector of float)
+0:278 'r014' (temp 4-component vector of float)
+0:278 hyp. cosine (global 4-component vector of float)
+0:278 'inF0' (in 4-component vector of float)
+0:279 Sequence
+0:279 move second child to first child (temp 4-component vector of uint)
+0:279 'r015' (temp 4-component vector of uint)
0:? bitCount (global 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:? 5 (const uint)
0:? 2 (const uint)
-0:279 Sequence
-0:279 move second child to first child (temp 4-component vector of float)
-0:279 'r016' (temp 4-component vector of float)
-0:279 dPdx (global 4-component vector of float)
-0:279 'inF0' (in 4-component vector of float)
0:280 Sequence
0:280 move second child to first child (temp 4-component vector of float)
-0:280 'r017' (temp 4-component vector of float)
-0:280 dPdxCoarse (global 4-component vector of float)
+0:280 'r016' (temp 4-component vector of float)
+0:280 dPdx (global 4-component vector of float)
0:280 'inF0' (in 4-component vector of float)
0:281 Sequence
0:281 move second child to first child (temp 4-component vector of float)
-0:281 'r018' (temp 4-component vector of float)
-0:281 dPdxFine (global 4-component vector of float)
+0:281 'r017' (temp 4-component vector of float)
+0:281 dPdxCoarse (global 4-component vector of float)
0:281 'inF0' (in 4-component vector of float)
0:282 Sequence
0:282 move second child to first child (temp 4-component vector of float)
-0:282 'r019' (temp 4-component vector of float)
-0:282 dPdy (global 4-component vector of float)
+0:282 'r018' (temp 4-component vector of float)
+0:282 dPdxFine (global 4-component vector of float)
0:282 'inF0' (in 4-component vector of float)
0:283 Sequence
0:283 move second child to first child (temp 4-component vector of float)
-0:283 'r020' (temp 4-component vector of float)
-0:283 dPdyCoarse (global 4-component vector of float)
+0:283 'r019' (temp 4-component vector of float)
+0:283 dPdy (global 4-component vector of float)
0:283 'inF0' (in 4-component vector of float)
0:284 Sequence
0:284 move second child to first child (temp 4-component vector of float)
-0:284 'r021' (temp 4-component vector of float)
-0:284 dPdyFine (global 4-component vector of float)
+0:284 'r020' (temp 4-component vector of float)
+0:284 dPdyCoarse (global 4-component vector of float)
0:284 'inF0' (in 4-component vector of float)
0:285 Sequence
0:285 move second child to first child (temp 4-component vector of float)
-0:285 'r022' (temp 4-component vector of float)
-0:285 degrees (global 4-component vector of float)
+0:285 'r021' (temp 4-component vector of float)
+0:285 dPdyFine (global 4-component vector of float)
0:285 'inF0' (in 4-component vector of float)
0:286 Sequence
-0:286 move second child to first child (temp float)
-0:286 'r023' (temp float)
-0:286 distance (global float)
+0:286 move second child to first child (temp 4-component vector of float)
+0:286 'r022' (temp 4-component vector of float)
+0:286 degrees (global 4-component vector of float)
0:286 'inF0' (in 4-component vector of float)
-0:286 'inF1' (in 4-component vector of float)
0:287 Sequence
0:287 move second child to first child (temp float)
-0:287 'r024' (temp float)
-0:287 dot-product (global float)
+0:287 'r023' (temp float)
+0:287 distance (global float)
0:287 'inF0' (in 4-component vector of float)
0:287 'inF1' (in 4-component vector of float)
0:288 Sequence
-0:288 move second child to first child (temp 4-component vector of float)
-0:288 'r025' (temp 4-component vector of float)
-0:288 Construct vec4 (temp 4-component vector of float)
-0:288 Constant:
-0:288 1.000000
-0:288 component-wise multiply (temp float)
-0:288 direct index (temp float)
-0:288 'inF0' (in 4-component vector of float)
-0:288 Constant:
-0:288 1 (const int)
-0:288 direct index (temp float)
-0:288 'inF1' (in 4-component vector of float)
-0:288 Constant:
-0:288 1 (const int)
-0:288 direct index (temp float)
-0:288 'inF0' (in 4-component vector of float)
-0:288 Constant:
-0:288 2 (const int)
-0:288 direct index (temp float)
-0:288 'inF1' (in 4-component vector of float)
-0:288 Constant:
-0:288 3 (const int)
-0:292 Sequence
-0:292 move second child to first child (temp 4-component vector of float)
-0:292 'r029' (temp 4-component vector of float)
-0:292 exp (global 4-component vector of float)
-0:292 'inF0' (in 4-component vector of float)
+0:288 move second child to first child (temp float)
+0:288 'r024' (temp float)
+0:288 dot-product (global float)
+0:288 'inF0' (in 4-component vector of float)
+0:288 'inF1' (in 4-component vector of float)
+0:289 Sequence
+0:289 move second child to first child (temp 4-component vector of float)
+0:289 'r025' (temp 4-component vector of float)
+0:289 Construct vec4 (temp 4-component vector of float)
+0:289 Constant:
+0:289 1.000000
+0:289 component-wise multiply (temp float)
+0:289 direct index (temp float)
+0:289 'inF0' (in 4-component vector of float)
+0:289 Constant:
+0:289 1 (const int)
+0:289 direct index (temp float)
+0:289 'inF1' (in 4-component vector of float)
+0:289 Constant:
+0:289 1 (const int)
+0:289 direct index (temp float)
+0:289 'inF0' (in 4-component vector of float)
+0:289 Constant:
+0:289 2 (const int)
+0:289 direct index (temp float)
+0:289 'inF1' (in 4-component vector of float)
+0:289 Constant:
+0:289 3 (const int)
0:293 Sequence
0:293 move second child to first child (temp 4-component vector of float)
-0:293 'r030' (temp 4-component vector of float)
-0:293 exp2 (global 4-component vector of float)
+0:293 'r029' (temp 4-component vector of float)
+0:293 exp (global 4-component vector of float)
0:293 'inF0' (in 4-component vector of float)
0:294 Sequence
0:294 move second child to first child (temp 4-component vector of float)
-0:294 'r031' (temp 4-component vector of float)
-0:294 face-forward (global 4-component vector of float)
+0:294 'r030' (temp 4-component vector of float)
+0:294 exp2 (global 4-component vector of float)
0:294 'inF0' (in 4-component vector of float)
-0:294 'inF1' (in 4-component vector of float)
-0:294 'inF2' (in 4-component vector of float)
0:295 Sequence
-0:295 move second child to first child (temp 4-component vector of uint)
-0:295 'r032' (temp 4-component vector of uint)
+0:295 move second child to first child (temp 4-component vector of float)
+0:295 'r031' (temp 4-component vector of float)
+0:295 face-forward (global 4-component vector of float)
+0:295 'inF0' (in 4-component vector of float)
+0:295 'inF1' (in 4-component vector of float)
+0:295 'inF2' (in 4-component vector of float)
+0:296 Sequence
+0:296 move second child to first child (temp 4-component vector of uint)
+0:296 'r032' (temp 4-component vector of uint)
0:? findMSB (global 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:? 9 (const uint)
0:? 10 (const uint)
-0:296 Sequence
-0:296 move second child to first child (temp 4-component vector of uint)
-0:296 'r033' (temp 4-component vector of uint)
+0:297 Sequence
+0:297 move second child to first child (temp 4-component vector of uint)
+0:297 'r033' (temp 4-component vector of uint)
0:? findLSB (global 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:? 9 (const uint)
0:? 10 (const uint)
-0:297 Sequence
-0:297 move second child to first child (temp 4-component vector of float)
-0:297 'r034' (temp 4-component vector of float)
-0:297 Floor (global 4-component vector of float)
-0:297 'inF0' (in 4-component vector of float)
-0:299 Sequence
-0:299 move second child to first child (temp 4-component vector of float)
-0:299 'r036' (temp 4-component vector of float)
-0:299 mod (global 4-component vector of float)
-0:299 'inF0' (in 4-component vector of float)
-0:299 'inF1' (in 4-component vector of float)
+0:298 Sequence
+0:298 move second child to first child (temp 4-component vector of float)
+0:298 'r034' (temp 4-component vector of float)
+0:298 Floor (global 4-component vector of float)
+0:298 'inF0' (in 4-component vector of float)
0:300 Sequence
0:300 move second child to first child (temp 4-component vector of float)
-0:300 'r037' (temp 4-component vector of float)
-0:300 Fraction (global 4-component vector of float)
+0:300 'r036' (temp 4-component vector of float)
+0:300 mod (global 4-component vector of float)
0:300 'inF0' (in 4-component vector of float)
+0:300 'inF1' (in 4-component vector of float)
0:301 Sequence
0:301 move second child to first child (temp 4-component vector of float)
-0:301 'r038' (temp 4-component vector of float)
-0:301 frexp (global 4-component vector of float)
+0:301 'r037' (temp 4-component vector of float)
+0:301 Fraction (global 4-component vector of float)
0:301 'inF0' (in 4-component vector of float)
-0:301 'inF1' (in 4-component vector of float)
0:302 Sequence
0:302 move second child to first child (temp 4-component vector of float)
-0:302 'r039' (temp 4-component vector of float)
-0:302 fwidth (global 4-component vector of float)
+0:302 'r038' (temp 4-component vector of float)
+0:302 frexp (global 4-component vector of float)
0:302 'inF0' (in 4-component vector of float)
+0:302 'inF1' (in 4-component vector of float)
0:303 Sequence
-0:303 move second child to first child (temp 4-component vector of bool)
-0:303 'r040' (temp 4-component vector of bool)
-0:303 isinf (global 4-component vector of bool)
+0:303 move second child to first child (temp 4-component vector of float)
+0:303 'r039' (temp 4-component vector of float)
+0:303 fwidth (global 4-component vector of float)
0:303 'inF0' (in 4-component vector of float)
0:304 Sequence
0:304 move second child to first child (temp 4-component vector of bool)
-0:304 'r041' (temp 4-component vector of bool)
-0:304 isnan (global 4-component vector of bool)
+0:304 'r040' (temp 4-component vector of bool)
+0:304 isinf (global 4-component vector of bool)
0:304 'inF0' (in 4-component vector of float)
0:305 Sequence
-0:305 move second child to first child (temp 4-component vector of float)
-0:305 'r042' (temp 4-component vector of float)
-0:305 ldexp (global 4-component vector of float)
+0:305 move second child to first child (temp 4-component vector of bool)
+0:305 'r041' (temp 4-component vector of bool)
+0:305 isnan (global 4-component vector of bool)
0:305 'inF0' (in 4-component vector of float)
-0:305 'inF1' (in 4-component vector of float)
0:306 Sequence
0:306 move second child to first child (temp 4-component vector of float)
-0:306 'r039a' (temp 4-component vector of float)
-0:306 mix (global 4-component vector of float)
+0:306 'r042' (temp 4-component vector of float)
+0:306 ldexp (global 4-component vector of float)
0:306 'inF0' (in 4-component vector of float)
0:306 'inF1' (in 4-component vector of float)
-0:306 'inF2' (in 4-component vector of float)
0:307 Sequence
-0:307 move second child to first child (temp float)
-0:307 'r043' (temp float)
-0:307 length (global float)
+0:307 move second child to first child (temp 4-component vector of float)
+0:307 'r039a' (temp 4-component vector of float)
+0:307 mix (global 4-component vector of float)
0:307 'inF0' (in 4-component vector of float)
+0:307 'inF1' (in 4-component vector of float)
+0:307 'inF2' (in 4-component vector of float)
0:308 Sequence
-0:308 move second child to first child (temp 4-component vector of float)
-0:308 'r044' (temp 4-component vector of float)
-0:308 log (global 4-component vector of float)
+0:308 move second child to first child (temp float)
+0:308 'r043' (temp float)
+0:308 length (global float)
0:308 'inF0' (in 4-component vector of float)
0:309 Sequence
0:309 move second child to first child (temp 4-component vector of float)
-0:309 'r045' (temp 4-component vector of float)
-0:309 vector-scale (temp 4-component vector of float)
-0:309 log2 (temp 4-component vector of float)
-0:309 'inF0' (in 4-component vector of float)
-0:309 Constant:
-0:309 0.301030
+0:309 'r044' (temp 4-component vector of float)
+0:309 log (global 4-component vector of float)
+0:309 'inF0' (in 4-component vector of float)
0:310 Sequence
0:310 move second child to first child (temp 4-component vector of float)
-0:310 'r046' (temp 4-component vector of float)
-0:310 log2 (global 4-component vector of float)
-0:310 'inF0' (in 4-component vector of float)
+0:310 'r045' (temp 4-component vector of float)
+0:310 vector-scale (temp 4-component vector of float)
+0:310 log2 (temp 4-component vector of float)
+0:310 'inF0' (in 4-component vector of float)
+0:310 Constant:
+0:310 0.301030
0:311 Sequence
0:311 move second child to first child (temp 4-component vector of float)
-0:311 'r047' (temp 4-component vector of float)
-0:311 max (global 4-component vector of float)
+0:311 'r046' (temp 4-component vector of float)
+0:311 log2 (global 4-component vector of float)
0:311 'inF0' (in 4-component vector of float)
-0:311 'inF1' (in 4-component vector of float)
0:312 Sequence
0:312 move second child to first child (temp 4-component vector of float)
-0:312 'r048' (temp 4-component vector of float)
-0:312 min (global 4-component vector of float)
+0:312 'r047' (temp 4-component vector of float)
+0:312 max (global 4-component vector of float)
0:312 'inF0' (in 4-component vector of float)
0:312 'inF1' (in 4-component vector of float)
0:313 Sequence
0:313 move second child to first child (temp 4-component vector of float)
-0:313 'r049' (temp 4-component vector of float)
-0:313 normalize (global 4-component vector of float)
+0:313 'r048' (temp 4-component vector of float)
+0:313 min (global 4-component vector of float)
0:313 'inF0' (in 4-component vector of float)
+0:313 'inF1' (in 4-component vector of float)
0:314 Sequence
0:314 move second child to first child (temp 4-component vector of float)
-0:314 'r050' (temp 4-component vector of float)
-0:314 pow (global 4-component vector of float)
+0:314 'r049' (temp 4-component vector of float)
+0:314 normalize (global 4-component vector of float)
0:314 'inF0' (in 4-component vector of float)
-0:314 'inF1' (in 4-component vector of float)
0:315 Sequence
0:315 move second child to first child (temp 4-component vector of float)
-0:315 'r051' (temp 4-component vector of float)
-0:315 radians (global 4-component vector of float)
+0:315 'r050' (temp 4-component vector of float)
+0:315 pow (global 4-component vector of float)
0:315 'inF0' (in 4-component vector of float)
+0:315 'inF1' (in 4-component vector of float)
0:316 Sequence
0:316 move second child to first child (temp 4-component vector of float)
-0:316 'r052' (temp 4-component vector of float)
-0:316 divide (temp 4-component vector of float)
-0:316 Constant:
-0:316 1.000000
+0:316 'r051' (temp 4-component vector of float)
+0:316 radians (global 4-component vector of float)
0:316 'inF0' (in 4-component vector of float)
0:317 Sequence
0:317 move second child to first child (temp 4-component vector of float)
-0:317 'r053' (temp 4-component vector of float)
-0:317 reflect (global 4-component vector of float)
+0:317 'r052' (temp 4-component vector of float)
+0:317 divide (temp 4-component vector of float)
+0:317 Constant:
+0:317 1.000000
0:317 'inF0' (in 4-component vector of float)
-0:317 'inF1' (in 4-component vector of float)
0:318 Sequence
0:318 move second child to first child (temp 4-component vector of float)
-0:318 'r054' (temp 4-component vector of float)
-0:318 refract (global 4-component vector of float)
+0:318 'r053' (temp 4-component vector of float)
+0:318 reflect (global 4-component vector of float)
0:318 'inF0' (in 4-component vector of float)
0:318 'inF1' (in 4-component vector of float)
-0:318 Constant:
-0:318 2.000000
0:319 Sequence
-0:319 move second child to first child (temp 4-component vector of uint)
-0:319 'r055' (temp 4-component vector of uint)
+0:319 move second child to first child (temp 4-component vector of float)
+0:319 'r054' (temp 4-component vector of float)
+0:319 refract (global 4-component vector of float)
+0:319 'inF0' (in 4-component vector of float)
+0:319 'inF1' (in 4-component vector of float)
+0:319 Constant:
+0:319 2.000000
+0:320 Sequence
+0:320 move second child to first child (temp 4-component vector of uint)
+0:320 'r055' (temp 4-component vector of uint)
0:? bitFieldReverse (global 4-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
0:? 4 (const uint)
-0:320 Sequence
-0:320 move second child to first child (temp 4-component vector of float)
-0:320 'r056' (temp 4-component vector of float)
-0:320 roundEven (global 4-component vector of float)
-0:320 'inF0' (in 4-component vector of float)
0:321 Sequence
0:321 move second child to first child (temp 4-component vector of float)
-0:321 'r057' (temp 4-component vector of float)
-0:321 inverse sqrt (global 4-component vector of float)
+0:321 'r056' (temp 4-component vector of float)
+0:321 roundEven (global 4-component vector of float)
0:321 'inF0' (in 4-component vector of float)
0:322 Sequence
0:322 move second child to first child (temp 4-component vector of float)
-0:322 'r058' (temp 4-component vector of float)
-0:322 clamp (temp 4-component vector of float)
+0:322 'r057' (temp 4-component vector of float)
+0:322 inverse sqrt (global 4-component vector of float)
0:322 'inF0' (in 4-component vector of float)
-0:322 Constant:
-0:322 0.000000
-0:322 Constant:
-0:322 1.000000
0:323 Sequence
0:323 move second child to first child (temp 4-component vector of float)
-0:323 'r059' (temp 4-component vector of float)
-0:323 Sign (global 4-component vector of float)
+0:323 'r058' (temp 4-component vector of float)
+0:323 clamp (temp 4-component vector of float)
0:323 'inF0' (in 4-component vector of float)
+0:323 Constant:
+0:323 0.000000
+0:323 Constant:
+0:323 1.000000
0:324 Sequence
0:324 move second child to first child (temp 4-component vector of float)
-0:324 'r060' (temp 4-component vector of float)
-0:324 sine (global 4-component vector of float)
+0:324 'r059' (temp 4-component vector of float)
+0:324 Sign (global 4-component vector of float)
0:324 'inF0' (in 4-component vector of float)
0:325 Sequence
0:325 move second child to first child (temp 4-component vector of float)
-0:325 'inF1' (in 4-component vector of float)
-0:325 sine (temp 4-component vector of float)
-0:325 'inF0' (in 4-component vector of float)
-0:325 move second child to first child (temp 4-component vector of float)
-0:325 'inF2' (in 4-component vector of float)
-0:325 cosine (temp 4-component vector of float)
+0:325 'r060' (temp 4-component vector of float)
+0:325 sine (global 4-component vector of float)
0:325 'inF0' (in 4-component vector of float)
0:326 Sequence
0:326 move second child to first child (temp 4-component vector of float)
-0:326 'r061' (temp 4-component vector of float)
-0:326 hyp. sine (global 4-component vector of float)
+0:326 'inF1' (in 4-component vector of float)
+0:326 sine (temp 4-component vector of float)
+0:326 'inF0' (in 4-component vector of float)
+0:326 move second child to first child (temp 4-component vector of float)
+0:326 'inF2' (in 4-component vector of float)
+0:326 cosine (temp 4-component vector of float)
0:326 'inF0' (in 4-component vector of float)
0:327 Sequence
0:327 move second child to first child (temp 4-component vector of float)
-0:327 'r062' (temp 4-component vector of float)
-0:327 smoothstep (global 4-component vector of float)
+0:327 'r061' (temp 4-component vector of float)
+0:327 hyp. sine (global 4-component vector of float)
0:327 'inF0' (in 4-component vector of float)
-0:327 'inF1' (in 4-component vector of float)
-0:327 'inF2' (in 4-component vector of float)
0:328 Sequence
0:328 move second child to first child (temp 4-component vector of float)
-0:328 'r063' (temp 4-component vector of float)
-0:328 sqrt (global 4-component vector of float)
+0:328 'r062' (temp 4-component vector of float)
+0:328 smoothstep (global 4-component vector of float)
0:328 'inF0' (in 4-component vector of float)
+0:328 'inF1' (in 4-component vector of float)
+0:328 'inF2' (in 4-component vector of float)
0:329 Sequence
0:329 move second child to first child (temp 4-component vector of float)
-0:329 'r064' (temp 4-component vector of float)
-0:329 step (global 4-component vector of float)
+0:329 'r063' (temp 4-component vector of float)
+0:329 sqrt (global 4-component vector of float)
0:329 'inF0' (in 4-component vector of float)
-0:329 'inF1' (in 4-component vector of float)
0:330 Sequence
0:330 move second child to first child (temp 4-component vector of float)
-0:330 'r065' (temp 4-component vector of float)
-0:330 tangent (global 4-component vector of float)
+0:330 'r064' (temp 4-component vector of float)
+0:330 step (global 4-component vector of float)
0:330 'inF0' (in 4-component vector of float)
+0:330 'inF1' (in 4-component vector of float)
0:331 Sequence
0:331 move second child to first child (temp 4-component vector of float)
-0:331 'r066' (temp 4-component vector of float)
-0:331 hyp. tangent (global 4-component vector of float)
+0:331 'r065' (temp 4-component vector of float)
+0:331 tangent (global 4-component vector of float)
0:331 'inF0' (in 4-component vector of float)
-0:333 Sequence
-0:333 move second child to first child (temp 4-component vector of float)
-0:333 'r067' (temp 4-component vector of float)
-0:333 trunc (global 4-component vector of float)
-0:333 'inF0' (in 4-component vector of float)
-0:336 Branch: Return with expression
+0:332 Sequence
+0:332 move second child to first child (temp 4-component vector of float)
+0:332 'r066' (temp 4-component vector of float)
+0:332 hyp. tangent (global 4-component vector of float)
+0:332 'inF0' (in 4-component vector of float)
+0:334 Sequence
+0:334 move second child to first child (temp 4-component vector of float)
+0:334 'r067' (temp 4-component vector of float)
+0:334 trunc (global 4-component vector of float)
+0:334 'inF0' (in 4-component vector of float)
+0:337 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
-0:408 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
-0:400 Function Parameters:
-0:400 'inF0' (in 2X2 matrix of float)
-0:400 'inF1' (in 2X2 matrix of float)
-0:400 'inF2' (in 2X2 matrix of float)
+0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:401 Function Parameters:
+0:401 'inF0' (in 2X2 matrix of float)
+0:401 'inF1' (in 2X2 matrix of float)
+0:401 'inF2' (in 2X2 matrix of float)
0:? Sequence
-0:402 Sequence
-0:402 move second child to first child (temp bool)
-0:402 'r000' (temp bool)
-0:402 all (global bool)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r001' (temp 2X2 matrix of float)
-0:402 Absolute value (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 arc cosine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp bool)
-0:402 'r003' (temp bool)
-0:402 any (global bool)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r004' (temp 2X2 matrix of float)
-0:402 arc sine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r005' (temp 2X2 matrix of float)
-0:402 arc tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r006' (temp 2X2 matrix of float)
-0:402 arc tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r007' (temp 2X2 matrix of float)
-0:402 Ceiling (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Test condition and select (temp void)
-0:402 Condition
-0:402 any (temp bool)
-0:402 Compare Less Than (temp 2X2 matrix of bool)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Constant:
-0:402 0.000000
-0:402 0.000000
-0:402 0.000000
-0:402 0.000000
-0:402 true case
-0:402 Branch: Kill
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r008' (temp 2X2 matrix of float)
-0:402 clamp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r009' (temp 2X2 matrix of float)
-0:402 cosine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r010' (temp 2X2 matrix of float)
-0:402 hyp. cosine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r011' (temp 2X2 matrix of float)
-0:402 dPdx (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r012' (temp 2X2 matrix of float)
-0:402 dPdxCoarse (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r013' (temp 2X2 matrix of float)
-0:402 dPdxFine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r014' (temp 2X2 matrix of float)
-0:402 dPdy (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r015' (temp 2X2 matrix of float)
-0:402 dPdyCoarse (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r016' (temp 2X2 matrix of float)
-0:402 dPdyFine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r017' (temp 2X2 matrix of float)
-0:402 degrees (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp float)
-0:402 'r018' (temp float)
-0:402 determinant (global float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r019' (temp 2X2 matrix of float)
-0:402 exp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'R020' (temp 2X2 matrix of float)
-0:402 exp2 (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r021' (temp 2X2 matrix of float)
-0:402 Floor (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r022' (temp 2X2 matrix of float)
-0:402 mod (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r023' (temp 2X2 matrix of float)
-0:402 Fraction (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r024' (temp 2X2 matrix of float)
-0:402 frexp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r025' (temp 2X2 matrix of float)
-0:402 fwidth (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r026' (temp 2X2 matrix of float)
-0:402 ldexp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r026a' (temp 2X2 matrix of float)
-0:402 mix (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r027' (temp 2X2 matrix of float)
-0:402 log (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r028' (temp 2X2 matrix of float)
-0:402 matrix-scale (temp 2X2 matrix of float)
-0:402 log2 (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Constant:
-0:402 0.301030
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r029' (temp 2X2 matrix of float)
-0:402 log2 (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r030' (temp 2X2 matrix of float)
-0:402 max (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r031' (temp 2X2 matrix of float)
-0:402 min (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r032' (temp 2X2 matrix of float)
-0:402 pow (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r033' (temp 2X2 matrix of float)
-0:402 radians (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r034' (temp 2X2 matrix of float)
-0:402 roundEven (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r035' (temp 2X2 matrix of float)
-0:402 inverse sqrt (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r036' (temp 2X2 matrix of float)
-0:402 clamp (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Constant:
-0:402 0.000000
-0:402 Constant:
-0:402 1.000000
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r037' (temp 2X2 matrix of float)
-0:402 Sign (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r038' (temp 2X2 matrix of float)
-0:402 sine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 sine (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 cosine (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r039' (temp 2X2 matrix of float)
-0:402 hyp. sine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r049' (temp 2X2 matrix of float)
-0:402 smoothstep (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r041' (temp 2X2 matrix of float)
-0:402 sqrt (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r042' (temp 2X2 matrix of float)
-0:402 step (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r043' (temp 2X2 matrix of float)
-0:402 tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r044' (temp 2X2 matrix of float)
-0:402 hyp. tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 transpose (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r046' (temp 2X2 matrix of float)
-0:402 trunc (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:405 Branch: Return with expression
+0:403 Sequence
+0:403 move second child to first child (temp bool)
+0:403 'r000' (temp bool)
+0:403 all (global bool)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r001' (temp 2X2 matrix of float)
+0:403 Absolute value (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 arc cosine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp bool)
+0:403 'r003' (temp bool)
+0:403 any (global bool)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r004' (temp 2X2 matrix of float)
+0:403 arc sine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r005' (temp 2X2 matrix of float)
+0:403 arc tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r006' (temp 2X2 matrix of float)
+0:403 arc tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r007' (temp 2X2 matrix of float)
+0:403 Ceiling (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Test condition and select (temp void)
+0:403 Condition
+0:403 any (temp bool)
+0:403 Compare Less Than (temp 2X2 matrix of bool)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Constant:
+0:403 0.000000
+0:403 0.000000
+0:403 0.000000
+0:403 0.000000
+0:403 true case
+0:403 Branch: Kill
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r008' (temp 2X2 matrix of float)
+0:403 clamp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r009' (temp 2X2 matrix of float)
+0:403 cosine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r010' (temp 2X2 matrix of float)
+0:403 hyp. cosine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r011' (temp 2X2 matrix of float)
+0:403 dPdx (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r012' (temp 2X2 matrix of float)
+0:403 dPdxCoarse (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r013' (temp 2X2 matrix of float)
+0:403 dPdxFine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r014' (temp 2X2 matrix of float)
+0:403 dPdy (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r015' (temp 2X2 matrix of float)
+0:403 dPdyCoarse (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r016' (temp 2X2 matrix of float)
+0:403 dPdyFine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r017' (temp 2X2 matrix of float)
+0:403 degrees (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp float)
+0:403 'r018' (temp float)
+0:403 determinant (global float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r019' (temp 2X2 matrix of float)
+0:403 exp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'R020' (temp 2X2 matrix of float)
+0:403 exp2 (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r021' (temp 2X2 matrix of float)
+0:403 Floor (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r022' (temp 2X2 matrix of float)
+0:403 mod (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r023' (temp 2X2 matrix of float)
+0:403 Fraction (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r024' (temp 2X2 matrix of float)
+0:403 frexp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r025' (temp 2X2 matrix of float)
+0:403 fwidth (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r026' (temp 2X2 matrix of float)
+0:403 ldexp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r026a' (temp 2X2 matrix of float)
+0:403 mix (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r027' (temp 2X2 matrix of float)
+0:403 log (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r028' (temp 2X2 matrix of float)
+0:403 matrix-scale (temp 2X2 matrix of float)
+0:403 log2 (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Constant:
+0:403 0.301030
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r029' (temp 2X2 matrix of float)
+0:403 log2 (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r030' (temp 2X2 matrix of float)
+0:403 max (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r031' (temp 2X2 matrix of float)
+0:403 min (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r032' (temp 2X2 matrix of float)
+0:403 pow (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r033' (temp 2X2 matrix of float)
+0:403 radians (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r034' (temp 2X2 matrix of float)
+0:403 roundEven (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r035' (temp 2X2 matrix of float)
+0:403 inverse sqrt (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r036' (temp 2X2 matrix of float)
+0:403 clamp (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Constant:
+0:403 0.000000
+0:403 Constant:
+0:403 1.000000
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r037' (temp 2X2 matrix of float)
+0:403 Sign (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r038' (temp 2X2 matrix of float)
+0:403 sine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 sine (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 cosine (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r039' (temp 2X2 matrix of float)
+0:403 hyp. sine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r049' (temp 2X2 matrix of float)
+0:403 smoothstep (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r041' (temp 2X2 matrix of float)
+0:403 sqrt (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r042' (temp 2X2 matrix of float)
+0:403 step (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r043' (temp 2X2 matrix of float)
+0:403 tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r044' (temp 2X2 matrix of float)
+0:403 hyp. tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 transpose (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r046' (temp 2X2 matrix of float)
+0:403 trunc (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:406 Branch: Return with expression
0:? Constant:
0:? 2.000000
0:? 2.000000
0:? 2.000000
0:? 2.000000
-0:417 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
-0:409 Function Parameters:
-0:409 'inF0' (in 3X3 matrix of float)
-0:409 'inF1' (in 3X3 matrix of float)
-0:409 'inF2' (in 3X3 matrix of float)
+0:418 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:410 Function Parameters:
+0:410 'inF0' (in 3X3 matrix of float)
+0:410 'inF1' (in 3X3 matrix of float)
+0:410 'inF2' (in 3X3 matrix of float)
0:? Sequence
-0:411 Sequence
-0:411 move second child to first child (temp bool)
-0:411 'r000' (temp bool)
-0:411 all (global bool)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r001' (temp 3X3 matrix of float)
-0:411 Absolute value (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 arc cosine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp bool)
-0:411 'r003' (temp bool)
-0:411 any (global bool)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r004' (temp 3X3 matrix of float)
-0:411 arc sine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r005' (temp 3X3 matrix of float)
-0:411 arc tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r006' (temp 3X3 matrix of float)
-0:411 arc tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r007' (temp 3X3 matrix of float)
-0:411 Ceiling (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Test condition and select (temp void)
-0:411 Condition
-0:411 any (temp bool)
-0:411 Compare Less Than (temp 3X3 matrix of bool)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Constant:
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 true case
-0:411 Branch: Kill
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r008' (temp 3X3 matrix of float)
-0:411 clamp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r009' (temp 3X3 matrix of float)
-0:411 cosine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r010' (temp 3X3 matrix of float)
-0:411 hyp. cosine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r011' (temp 3X3 matrix of float)
-0:411 dPdx (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r012' (temp 3X3 matrix of float)
-0:411 dPdxCoarse (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r013' (temp 3X3 matrix of float)
-0:411 dPdxFine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r014' (temp 3X3 matrix of float)
-0:411 dPdy (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r015' (temp 3X3 matrix of float)
-0:411 dPdyCoarse (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r016' (temp 3X3 matrix of float)
-0:411 dPdyFine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r017' (temp 3X3 matrix of float)
-0:411 degrees (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp float)
-0:411 'r018' (temp float)
-0:411 determinant (global float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r019' (temp 3X3 matrix of float)
-0:411 exp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'R020' (temp 3X3 matrix of float)
-0:411 exp2 (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r021' (temp 3X3 matrix of float)
-0:411 Floor (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r022' (temp 3X3 matrix of float)
-0:411 mod (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r023' (temp 3X3 matrix of float)
-0:411 Fraction (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r024' (temp 3X3 matrix of float)
-0:411 frexp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r025' (temp 3X3 matrix of float)
-0:411 fwidth (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r026' (temp 3X3 matrix of float)
-0:411 ldexp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r026a' (temp 3X3 matrix of float)
-0:411 mix (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r027' (temp 3X3 matrix of float)
-0:411 log (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r028' (temp 3X3 matrix of float)
-0:411 matrix-scale (temp 3X3 matrix of float)
-0:411 log2 (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Constant:
-0:411 0.301030
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r029' (temp 3X3 matrix of float)
-0:411 log2 (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r030' (temp 3X3 matrix of float)
-0:411 max (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r031' (temp 3X3 matrix of float)
-0:411 min (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r032' (temp 3X3 matrix of float)
-0:411 pow (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r033' (temp 3X3 matrix of float)
-0:411 radians (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r034' (temp 3X3 matrix of float)
-0:411 roundEven (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r035' (temp 3X3 matrix of float)
-0:411 inverse sqrt (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r036' (temp 3X3 matrix of float)
-0:411 clamp (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Constant:
-0:411 0.000000
-0:411 Constant:
-0:411 1.000000
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r037' (temp 3X3 matrix of float)
-0:411 Sign (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r038' (temp 3X3 matrix of float)
-0:411 sine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 sine (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 cosine (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r039' (temp 3X3 matrix of float)
-0:411 hyp. sine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r049' (temp 3X3 matrix of float)
-0:411 smoothstep (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r041' (temp 3X3 matrix of float)
-0:411 sqrt (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r042' (temp 3X3 matrix of float)
-0:411 step (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r043' (temp 3X3 matrix of float)
-0:411 tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r044' (temp 3X3 matrix of float)
-0:411 hyp. tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 transpose (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r046' (temp 3X3 matrix of float)
-0:411 trunc (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:414 Branch: Return with expression
+0:412 Sequence
+0:412 move second child to first child (temp bool)
+0:412 'r000' (temp bool)
+0:412 all (global bool)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r001' (temp 3X3 matrix of float)
+0:412 Absolute value (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 arc cosine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp bool)
+0:412 'r003' (temp bool)
+0:412 any (global bool)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r004' (temp 3X3 matrix of float)
+0:412 arc sine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r005' (temp 3X3 matrix of float)
+0:412 arc tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r006' (temp 3X3 matrix of float)
+0:412 arc tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r007' (temp 3X3 matrix of float)
+0:412 Ceiling (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Test condition and select (temp void)
+0:412 Condition
+0:412 any (temp bool)
+0:412 Compare Less Than (temp 3X3 matrix of bool)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Constant:
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 true case
+0:412 Branch: Kill
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r008' (temp 3X3 matrix of float)
+0:412 clamp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r009' (temp 3X3 matrix of float)
+0:412 cosine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r010' (temp 3X3 matrix of float)
+0:412 hyp. cosine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r011' (temp 3X3 matrix of float)
+0:412 dPdx (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r012' (temp 3X3 matrix of float)
+0:412 dPdxCoarse (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r013' (temp 3X3 matrix of float)
+0:412 dPdxFine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r014' (temp 3X3 matrix of float)
+0:412 dPdy (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r015' (temp 3X3 matrix of float)
+0:412 dPdyCoarse (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r016' (temp 3X3 matrix of float)
+0:412 dPdyFine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r017' (temp 3X3 matrix of float)
+0:412 degrees (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp float)
+0:412 'r018' (temp float)
+0:412 determinant (global float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r019' (temp 3X3 matrix of float)
+0:412 exp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'R020' (temp 3X3 matrix of float)
+0:412 exp2 (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r021' (temp 3X3 matrix of float)
+0:412 Floor (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r022' (temp 3X3 matrix of float)
+0:412 mod (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r023' (temp 3X3 matrix of float)
+0:412 Fraction (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r024' (temp 3X3 matrix of float)
+0:412 frexp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r025' (temp 3X3 matrix of float)
+0:412 fwidth (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r026' (temp 3X3 matrix of float)
+0:412 ldexp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r026a' (temp 3X3 matrix of float)
+0:412 mix (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r027' (temp 3X3 matrix of float)
+0:412 log (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r028' (temp 3X3 matrix of float)
+0:412 matrix-scale (temp 3X3 matrix of float)
+0:412 log2 (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Constant:
+0:412 0.301030
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r029' (temp 3X3 matrix of float)
+0:412 log2 (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r030' (temp 3X3 matrix of float)
+0:412 max (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r031' (temp 3X3 matrix of float)
+0:412 min (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r032' (temp 3X3 matrix of float)
+0:412 pow (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r033' (temp 3X3 matrix of float)
+0:412 radians (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r034' (temp 3X3 matrix of float)
+0:412 roundEven (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r035' (temp 3X3 matrix of float)
+0:412 inverse sqrt (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r036' (temp 3X3 matrix of float)
+0:412 clamp (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Constant:
+0:412 0.000000
+0:412 Constant:
+0:412 1.000000
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r037' (temp 3X3 matrix of float)
+0:412 Sign (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r038' (temp 3X3 matrix of float)
+0:412 sine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 sine (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 cosine (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r039' (temp 3X3 matrix of float)
+0:412 hyp. sine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r049' (temp 3X3 matrix of float)
+0:412 smoothstep (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r041' (temp 3X3 matrix of float)
+0:412 sqrt (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r042' (temp 3X3 matrix of float)
+0:412 step (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r043' (temp 3X3 matrix of float)
+0:412 tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r044' (temp 3X3 matrix of float)
+0:412 hyp. tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 transpose (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r046' (temp 3X3 matrix of float)
+0:412 trunc (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:415 Branch: Return with expression
0:? Constant:
0:? 3.000000
0:? 3.000000
@@ -2136,301 +2144,301 @@
0:? 3.000000
0:? 3.000000
0:? 3.000000
-0:438 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
-0:418 Function Parameters:
-0:418 'inF0' (in 4X4 matrix of float)
-0:418 'inF1' (in 4X4 matrix of float)
-0:418 'inF2' (in 4X4 matrix of float)
+0:439 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:419 Function Parameters:
+0:419 'inF0' (in 4X4 matrix of float)
+0:419 'inF1' (in 4X4 matrix of float)
+0:419 'inF2' (in 4X4 matrix of float)
0:? Sequence
-0:420 Sequence
-0:420 move second child to first child (temp bool)
-0:420 'r000' (temp bool)
-0:420 all (global bool)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r001' (temp 4X4 matrix of float)
-0:420 Absolute value (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 arc cosine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp bool)
-0:420 'r003' (temp bool)
-0:420 any (global bool)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r004' (temp 4X4 matrix of float)
-0:420 arc sine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r005' (temp 4X4 matrix of float)
-0:420 arc tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r006' (temp 4X4 matrix of float)
-0:420 arc tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r007' (temp 4X4 matrix of float)
-0:420 Ceiling (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Test condition and select (temp void)
-0:420 Condition
-0:420 any (temp bool)
-0:420 Compare Less Than (temp 4X4 matrix of bool)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Constant:
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 true case
-0:420 Branch: Kill
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r008' (temp 4X4 matrix of float)
-0:420 clamp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r009' (temp 4X4 matrix of float)
-0:420 cosine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r010' (temp 4X4 matrix of float)
-0:420 hyp. cosine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r011' (temp 4X4 matrix of float)
-0:420 dPdx (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r012' (temp 4X4 matrix of float)
-0:420 dPdxCoarse (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r013' (temp 4X4 matrix of float)
-0:420 dPdxFine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r014' (temp 4X4 matrix of float)
-0:420 dPdy (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r015' (temp 4X4 matrix of float)
-0:420 dPdyCoarse (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r016' (temp 4X4 matrix of float)
-0:420 dPdyFine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r017' (temp 4X4 matrix of float)
-0:420 degrees (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp float)
-0:420 'r018' (temp float)
-0:420 determinant (global float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r019' (temp 4X4 matrix of float)
-0:420 exp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'R020' (temp 4X4 matrix of float)
-0:420 exp2 (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r021' (temp 4X4 matrix of float)
-0:420 Floor (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r022' (temp 4X4 matrix of float)
-0:420 mod (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r023' (temp 4X4 matrix of float)
-0:420 Fraction (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r024' (temp 4X4 matrix of float)
-0:420 frexp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r025' (temp 4X4 matrix of float)
-0:420 fwidth (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r026' (temp 4X4 matrix of float)
-0:420 ldexp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r026a' (temp 4X4 matrix of float)
-0:420 mix (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r027' (temp 4X4 matrix of float)
-0:420 log (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r028' (temp 4X4 matrix of float)
-0:420 matrix-scale (temp 4X4 matrix of float)
-0:420 log2 (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Constant:
-0:420 0.301030
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r029' (temp 4X4 matrix of float)
-0:420 log2 (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r030' (temp 4X4 matrix of float)
-0:420 max (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r031' (temp 4X4 matrix of float)
-0:420 min (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r032' (temp 4X4 matrix of float)
-0:420 pow (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r033' (temp 4X4 matrix of float)
-0:420 radians (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r034' (temp 4X4 matrix of float)
-0:420 roundEven (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r035' (temp 4X4 matrix of float)
-0:420 inverse sqrt (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r036' (temp 4X4 matrix of float)
-0:420 clamp (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Constant:
-0:420 0.000000
-0:420 Constant:
-0:420 1.000000
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r037' (temp 4X4 matrix of float)
-0:420 Sign (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r038' (temp 4X4 matrix of float)
-0:420 sine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 sine (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 cosine (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r039' (temp 4X4 matrix of float)
-0:420 hyp. sine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r049' (temp 4X4 matrix of float)
-0:420 smoothstep (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r041' (temp 4X4 matrix of float)
-0:420 sqrt (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r042' (temp 4X4 matrix of float)
-0:420 step (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r043' (temp 4X4 matrix of float)
-0:420 tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r044' (temp 4X4 matrix of float)
-0:420 hyp. tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 transpose (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r046' (temp 4X4 matrix of float)
-0:420 trunc (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:423 Branch: Return with expression
+0:421 Sequence
+0:421 move second child to first child (temp bool)
+0:421 'r000' (temp bool)
+0:421 all (global bool)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r001' (temp 4X4 matrix of float)
+0:421 Absolute value (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 arc cosine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp bool)
+0:421 'r003' (temp bool)
+0:421 any (global bool)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r004' (temp 4X4 matrix of float)
+0:421 arc sine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r005' (temp 4X4 matrix of float)
+0:421 arc tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r006' (temp 4X4 matrix of float)
+0:421 arc tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r007' (temp 4X4 matrix of float)
+0:421 Ceiling (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Test condition and select (temp void)
+0:421 Condition
+0:421 any (temp bool)
+0:421 Compare Less Than (temp 4X4 matrix of bool)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Constant:
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 true case
+0:421 Branch: Kill
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r008' (temp 4X4 matrix of float)
+0:421 clamp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r009' (temp 4X4 matrix of float)
+0:421 cosine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r010' (temp 4X4 matrix of float)
+0:421 hyp. cosine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r011' (temp 4X4 matrix of float)
+0:421 dPdx (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r012' (temp 4X4 matrix of float)
+0:421 dPdxCoarse (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r013' (temp 4X4 matrix of float)
+0:421 dPdxFine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r014' (temp 4X4 matrix of float)
+0:421 dPdy (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r015' (temp 4X4 matrix of float)
+0:421 dPdyCoarse (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r016' (temp 4X4 matrix of float)
+0:421 dPdyFine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r017' (temp 4X4 matrix of float)
+0:421 degrees (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp float)
+0:421 'r018' (temp float)
+0:421 determinant (global float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r019' (temp 4X4 matrix of float)
+0:421 exp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'R020' (temp 4X4 matrix of float)
+0:421 exp2 (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r021' (temp 4X4 matrix of float)
+0:421 Floor (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r022' (temp 4X4 matrix of float)
+0:421 mod (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r023' (temp 4X4 matrix of float)
+0:421 Fraction (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r024' (temp 4X4 matrix of float)
+0:421 frexp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r025' (temp 4X4 matrix of float)
+0:421 fwidth (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r026' (temp 4X4 matrix of float)
+0:421 ldexp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r026a' (temp 4X4 matrix of float)
+0:421 mix (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r027' (temp 4X4 matrix of float)
+0:421 log (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r028' (temp 4X4 matrix of float)
+0:421 matrix-scale (temp 4X4 matrix of float)
+0:421 log2 (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Constant:
+0:421 0.301030
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r029' (temp 4X4 matrix of float)
+0:421 log2 (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r030' (temp 4X4 matrix of float)
+0:421 max (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r031' (temp 4X4 matrix of float)
+0:421 min (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r032' (temp 4X4 matrix of float)
+0:421 pow (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r033' (temp 4X4 matrix of float)
+0:421 radians (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r034' (temp 4X4 matrix of float)
+0:421 roundEven (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r035' (temp 4X4 matrix of float)
+0:421 inverse sqrt (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r036' (temp 4X4 matrix of float)
+0:421 clamp (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Constant:
+0:421 0.000000
+0:421 Constant:
+0:421 1.000000
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r037' (temp 4X4 matrix of float)
+0:421 Sign (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r038' (temp 4X4 matrix of float)
+0:421 sine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 sine (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 cosine (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r039' (temp 4X4 matrix of float)
+0:421 hyp. sine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r049' (temp 4X4 matrix of float)
+0:421 smoothstep (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r041' (temp 4X4 matrix of float)
+0:421 sqrt (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r042' (temp 4X4 matrix of float)
+0:421 step (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r043' (temp 4X4 matrix of float)
+0:421 tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r044' (temp 4X4 matrix of float)
+0:421 hyp. tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 transpose (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r046' (temp 4X4 matrix of float)
+0:421 trunc (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:424 Branch: Return with expression
0:? Constant:
0:? 4.000000
0:? 4.000000
@@ -2448,309 +2456,309 @@
0:? 4.000000
0:? 4.000000
0:? 4.000000
-0:445 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
-0:441 Function Parameters:
-0:441 'inF0' (in float)
-0:441 'inF1' (in float)
-0:441 'inFV0' (in 2-component vector of float)
-0:441 'inFV1' (in 2-component vector of float)
-0:441 'inFM0' (in 2X2 matrix of float)
-0:441 'inFM1' (in 2X2 matrix of float)
+0:446 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
+0:442 Function Parameters:
+0:442 'inF0' (in float)
+0:442 'inF1' (in float)
+0:442 'inFV0' (in 2-component vector of float)
+0:442 'inFV1' (in 2-component vector of float)
+0:442 'inFM0' (in 2X2 matrix of float)
+0:442 'inFM1' (in 2X2 matrix of float)
0:? Sequence
-0:442 Sequence
-0:442 move second child to first child (temp float)
-0:442 'r0' (temp float)
-0:442 component-wise multiply (temp float)
-0:442 'inF0' (in float)
-0:442 'inF1' (in float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r1' (temp 2-component vector of float)
-0:442 vector-scale (temp 2-component vector of float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 'inF0' (in float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r2' (temp 2-component vector of float)
-0:442 vector-scale (temp 2-component vector of float)
-0:442 'inF0' (in float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 Sequence
-0:442 move second child to first child (temp float)
-0:442 'r3' (temp float)
-0:442 dot-product (global float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 'inFV1' (in 2-component vector of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r4' (temp 2-component vector of float)
-0:442 matrix-times-vector (temp 2-component vector of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r5' (temp 2-component vector of float)
-0:442 vector-times-matrix (temp 2-component vector of float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2X2 matrix of float)
-0:442 'r6' (temp 2X2 matrix of float)
-0:442 matrix-scale (temp 2X2 matrix of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 'inF0' (in float)
-0:442 Sequence
-0:442 move second child to first child (temp 2X2 matrix of float)
-0:442 'r7' (temp 2X2 matrix of float)
-0:442 matrix-scale (temp 2X2 matrix of float)
-0:442 'inF0' (in float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2X2 matrix of float)
-0:442 'r8' (temp 2X2 matrix of float)
-0:442 matrix-multiply (temp 2X2 matrix of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 'inFM1' (in 2X2 matrix of float)
-0:452 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
-0:448 Function Parameters:
-0:448 'inF0' (in float)
-0:448 'inF1' (in float)
-0:448 'inFV0' (in 3-component vector of float)
-0:448 'inFV1' (in 3-component vector of float)
-0:448 'inFM0' (in 3X3 matrix of float)
-0:448 'inFM1' (in 3X3 matrix of float)
+0:443 Sequence
+0:443 move second child to first child (temp float)
+0:443 'r0' (temp float)
+0:443 component-wise multiply (temp float)
+0:443 'inF0' (in float)
+0:443 'inF1' (in float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r1' (temp 2-component vector of float)
+0:443 vector-scale (temp 2-component vector of float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 'inF0' (in float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r2' (temp 2-component vector of float)
+0:443 vector-scale (temp 2-component vector of float)
+0:443 'inF0' (in float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 Sequence
+0:443 move second child to first child (temp float)
+0:443 'r3' (temp float)
+0:443 dot-product (global float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 'inFV1' (in 2-component vector of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r4' (temp 2-component vector of float)
+0:443 matrix-times-vector (temp 2-component vector of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r5' (temp 2-component vector of float)
+0:443 vector-times-matrix (temp 2-component vector of float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2X2 matrix of float)
+0:443 'r6' (temp 2X2 matrix of float)
+0:443 matrix-scale (temp 2X2 matrix of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 'inF0' (in float)
+0:443 Sequence
+0:443 move second child to first child (temp 2X2 matrix of float)
+0:443 'r7' (temp 2X2 matrix of float)
+0:443 matrix-scale (temp 2X2 matrix of float)
+0:443 'inF0' (in float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2X2 matrix of float)
+0:443 'r8' (temp 2X2 matrix of float)
+0:443 matrix-multiply (temp 2X2 matrix of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 'inFM1' (in 2X2 matrix of float)
+0:453 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
+0:449 Function Parameters:
+0:449 'inF0' (in float)
+0:449 'inF1' (in float)
+0:449 'inFV0' (in 3-component vector of float)
+0:449 'inFV1' (in 3-component vector of float)
+0:449 'inFM0' (in 3X3 matrix of float)
+0:449 'inFM1' (in 3X3 matrix of float)
0:? Sequence
-0:449 Sequence
-0:449 move second child to first child (temp float)
-0:449 'r0' (temp float)
-0:449 component-wise multiply (temp float)
-0:449 'inF0' (in float)
-0:449 'inF1' (in float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r1' (temp 3-component vector of float)
-0:449 vector-scale (temp 3-component vector of float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 'inF0' (in float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r2' (temp 3-component vector of float)
-0:449 vector-scale (temp 3-component vector of float)
-0:449 'inF0' (in float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 Sequence
-0:449 move second child to first child (temp float)
-0:449 'r3' (temp float)
-0:449 dot-product (global float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 'inFV1' (in 3-component vector of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r4' (temp 3-component vector of float)
-0:449 matrix-times-vector (temp 3-component vector of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r5' (temp 3-component vector of float)
-0:449 vector-times-matrix (temp 3-component vector of float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3X3 matrix of float)
-0:449 'r6' (temp 3X3 matrix of float)
-0:449 matrix-scale (temp 3X3 matrix of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 'inF0' (in float)
-0:449 Sequence
-0:449 move second child to first child (temp 3X3 matrix of float)
-0:449 'r7' (temp 3X3 matrix of float)
-0:449 matrix-scale (temp 3X3 matrix of float)
-0:449 'inF0' (in float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3X3 matrix of float)
-0:449 'r8' (temp 3X3 matrix of float)
-0:449 matrix-multiply (temp 3X3 matrix of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 'inFM1' (in 3X3 matrix of float)
-0:460 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
-0:455 Function Parameters:
-0:455 'inF0' (in float)
-0:455 'inF1' (in float)
-0:455 'inFV0' (in 4-component vector of float)
-0:455 'inFV1' (in 4-component vector of float)
-0:455 'inFM0' (in 4X4 matrix of float)
-0:455 'inFM1' (in 4X4 matrix of float)
+0:450 Sequence
+0:450 move second child to first child (temp float)
+0:450 'r0' (temp float)
+0:450 component-wise multiply (temp float)
+0:450 'inF0' (in float)
+0:450 'inF1' (in float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r1' (temp 3-component vector of float)
+0:450 vector-scale (temp 3-component vector of float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 'inF0' (in float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r2' (temp 3-component vector of float)
+0:450 vector-scale (temp 3-component vector of float)
+0:450 'inF0' (in float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 Sequence
+0:450 move second child to first child (temp float)
+0:450 'r3' (temp float)
+0:450 dot-product (global float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 'inFV1' (in 3-component vector of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r4' (temp 3-component vector of float)
+0:450 matrix-times-vector (temp 3-component vector of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r5' (temp 3-component vector of float)
+0:450 vector-times-matrix (temp 3-component vector of float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3X3 matrix of float)
+0:450 'r6' (temp 3X3 matrix of float)
+0:450 matrix-scale (temp 3X3 matrix of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 'inF0' (in float)
+0:450 Sequence
+0:450 move second child to first child (temp 3X3 matrix of float)
+0:450 'r7' (temp 3X3 matrix of float)
+0:450 matrix-scale (temp 3X3 matrix of float)
+0:450 'inF0' (in float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3X3 matrix of float)
+0:450 'r8' (temp 3X3 matrix of float)
+0:450 matrix-multiply (temp 3X3 matrix of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 'inFM1' (in 3X3 matrix of float)
+0:461 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
+0:456 Function Parameters:
+0:456 'inF0' (in float)
+0:456 'inF1' (in float)
+0:456 'inFV0' (in 4-component vector of float)
+0:456 'inFV1' (in 4-component vector of float)
+0:456 'inFM0' (in 4X4 matrix of float)
+0:456 'inFM1' (in 4X4 matrix of float)
0:? Sequence
-0:456 Sequence
-0:456 move second child to first child (temp float)
-0:456 'r0' (temp float)
-0:456 component-wise multiply (temp float)
-0:456 'inF0' (in float)
-0:456 'inF1' (in float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r1' (temp 4-component vector of float)
-0:456 vector-scale (temp 4-component vector of float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 'inF0' (in float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r2' (temp 4-component vector of float)
-0:456 vector-scale (temp 4-component vector of float)
-0:456 'inF0' (in float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 Sequence
-0:456 move second child to first child (temp float)
-0:456 'r3' (temp float)
-0:456 dot-product (global float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 'inFV1' (in 4-component vector of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r4' (temp 4-component vector of float)
-0:456 matrix-times-vector (temp 4-component vector of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r5' (temp 4-component vector of float)
-0:456 vector-times-matrix (temp 4-component vector of float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4X4 matrix of float)
-0:456 'r6' (temp 4X4 matrix of float)
-0:456 matrix-scale (temp 4X4 matrix of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 'inF0' (in float)
-0:456 Sequence
-0:456 move second child to first child (temp 4X4 matrix of float)
-0:456 'r7' (temp 4X4 matrix of float)
-0:456 matrix-scale (temp 4X4 matrix of float)
-0:456 'inF0' (in float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4X4 matrix of float)
-0:456 'r8' (temp 4X4 matrix of float)
-0:456 matrix-multiply (temp 4X4 matrix of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 'inFM1' (in 4X4 matrix of float)
-0:484 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
-0:465 Function Parameters:
-0:465 'inF0' (in float)
-0:465 'inF1' (in float)
-0:465 'inFV2' (in 2-component vector of float)
-0:465 'inFV3' (in 3-component vector of float)
-0:465 'inFM2x3' (in 3X2 matrix of float)
-0:465 'inFM3x2' (in 2X3 matrix of float)
-0:465 'inFM3x3' (in 3X3 matrix of float)
-0:465 'inFM3x4' (in 4X3 matrix of float)
-0:465 'inFM2x4' (in 4X2 matrix of float)
+0:457 Sequence
+0:457 move second child to first child (temp float)
+0:457 'r0' (temp float)
+0:457 component-wise multiply (temp float)
+0:457 'inF0' (in float)
+0:457 'inF1' (in float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r1' (temp 4-component vector of float)
+0:457 vector-scale (temp 4-component vector of float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 'inF0' (in float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r2' (temp 4-component vector of float)
+0:457 vector-scale (temp 4-component vector of float)
+0:457 'inF0' (in float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 Sequence
+0:457 move second child to first child (temp float)
+0:457 'r3' (temp float)
+0:457 dot-product (global float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 'inFV1' (in 4-component vector of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r4' (temp 4-component vector of float)
+0:457 matrix-times-vector (temp 4-component vector of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r5' (temp 4-component vector of float)
+0:457 vector-times-matrix (temp 4-component vector of float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4X4 matrix of float)
+0:457 'r6' (temp 4X4 matrix of float)
+0:457 matrix-scale (temp 4X4 matrix of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 'inF0' (in float)
+0:457 Sequence
+0:457 move second child to first child (temp 4X4 matrix of float)
+0:457 'r7' (temp 4X4 matrix of float)
+0:457 matrix-scale (temp 4X4 matrix of float)
+0:457 'inF0' (in float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4X4 matrix of float)
+0:457 'r8' (temp 4X4 matrix of float)
+0:457 matrix-multiply (temp 4X4 matrix of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 'inFM1' (in 4X4 matrix of float)
+0:485 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
+0:466 Function Parameters:
+0:466 'inF0' (in float)
+0:466 'inF1' (in float)
+0:466 'inFV2' (in 2-component vector of float)
+0:466 'inFV3' (in 3-component vector of float)
+0:466 'inFM2x3' (in 3X2 matrix of float)
+0:466 'inFM3x2' (in 2X3 matrix of float)
+0:466 'inFM3x3' (in 3X3 matrix of float)
+0:466 'inFM3x4' (in 4X3 matrix of float)
+0:466 'inFM2x4' (in 4X2 matrix of float)
0:? Sequence
-0:466 Sequence
-0:466 move second child to first child (temp float)
-0:466 'r00' (temp float)
-0:466 component-wise multiply (temp float)
-0:466 'inF0' (in float)
-0:466 'inF1' (in float)
0:467 Sequence
-0:467 move second child to first child (temp 2-component vector of float)
-0:467 'r01' (temp 2-component vector of float)
-0:467 vector-scale (temp 2-component vector of float)
-0:467 'inFV2' (in 2-component vector of float)
+0:467 move second child to first child (temp float)
+0:467 'r00' (temp float)
+0:467 component-wise multiply (temp float)
0:467 'inF0' (in float)
+0:467 'inF1' (in float)
0:468 Sequence
-0:468 move second child to first child (temp 3-component vector of float)
-0:468 'r02' (temp 3-component vector of float)
-0:468 vector-scale (temp 3-component vector of float)
-0:468 'inFV3' (in 3-component vector of float)
+0:468 move second child to first child (temp 2-component vector of float)
+0:468 'r01' (temp 2-component vector of float)
+0:468 vector-scale (temp 2-component vector of float)
+0:468 'inFV2' (in 2-component vector of float)
0:468 'inF0' (in float)
0:469 Sequence
-0:469 move second child to first child (temp 2-component vector of float)
-0:469 'r03' (temp 2-component vector of float)
-0:469 vector-scale (temp 2-component vector of float)
+0:469 move second child to first child (temp 3-component vector of float)
+0:469 'r02' (temp 3-component vector of float)
+0:469 vector-scale (temp 3-component vector of float)
+0:469 'inFV3' (in 3-component vector of float)
0:469 'inF0' (in float)
-0:469 'inFV2' (in 2-component vector of float)
0:470 Sequence
-0:470 move second child to first child (temp 3-component vector of float)
-0:470 'r04' (temp 3-component vector of float)
-0:470 vector-scale (temp 3-component vector of float)
+0:470 move second child to first child (temp 2-component vector of float)
+0:470 'r03' (temp 2-component vector of float)
+0:470 vector-scale (temp 2-component vector of float)
0:470 'inF0' (in float)
-0:470 'inFV3' (in 3-component vector of float)
+0:470 'inFV2' (in 2-component vector of float)
0:471 Sequence
-0:471 move second child to first child (temp float)
-0:471 'r05' (temp float)
-0:471 dot-product (global float)
-0:471 'inFV2' (in 2-component vector of float)
-0:471 'inFV2' (in 2-component vector of float)
+0:471 move second child to first child (temp 3-component vector of float)
+0:471 'r04' (temp 3-component vector of float)
+0:471 vector-scale (temp 3-component vector of float)
+0:471 'inF0' (in float)
+0:471 'inFV3' (in 3-component vector of float)
0:472 Sequence
0:472 move second child to first child (temp float)
-0:472 'r06' (temp float)
+0:472 'r05' (temp float)
0:472 dot-product (global float)
-0:472 'inFV3' (in 3-component vector of float)
-0:472 'inFV3' (in 3-component vector of float)
+0:472 'inFV2' (in 2-component vector of float)
+0:472 'inFV2' (in 2-component vector of float)
0:473 Sequence
-0:473 move second child to first child (temp 3-component vector of float)
-0:473 'r07' (temp 3-component vector of float)
-0:473 vector-times-matrix (temp 3-component vector of float)
-0:473 'inFV2' (in 2-component vector of float)
-0:473 'inFM2x3' (in 3X2 matrix of float)
+0:473 move second child to first child (temp float)
+0:473 'r06' (temp float)
+0:473 dot-product (global float)
+0:473 'inFV3' (in 3-component vector of float)
+0:473 'inFV3' (in 3-component vector of float)
0:474 Sequence
-0:474 move second child to first child (temp 2-component vector of float)
-0:474 'r08' (temp 2-component vector of float)
-0:474 vector-times-matrix (temp 2-component vector of float)
-0:474 'inFV3' (in 3-component vector of float)
-0:474 'inFM3x2' (in 2X3 matrix of float)
+0:474 move second child to first child (temp 3-component vector of float)
+0:474 'r07' (temp 3-component vector of float)
+0:474 vector-times-matrix (temp 3-component vector of float)
+0:474 'inFV2' (in 2-component vector of float)
+0:474 'inFM2x3' (in 3X2 matrix of float)
0:475 Sequence
0:475 move second child to first child (temp 2-component vector of float)
-0:475 'r09' (temp 2-component vector of float)
-0:475 matrix-times-vector (temp 2-component vector of float)
-0:475 'inFM2x3' (in 3X2 matrix of float)
+0:475 'r08' (temp 2-component vector of float)
+0:475 vector-times-matrix (temp 2-component vector of float)
0:475 'inFV3' (in 3-component vector of float)
+0:475 'inFM3x2' (in 2X3 matrix of float)
0:476 Sequence
-0:476 move second child to first child (temp 3-component vector of float)
-0:476 'r10' (temp 3-component vector of float)
-0:476 matrix-times-vector (temp 3-component vector of float)
-0:476 'inFM3x2' (in 2X3 matrix of float)
-0:476 'inFV2' (in 2-component vector of float)
+0:476 move second child to first child (temp 2-component vector of float)
+0:476 'r09' (temp 2-component vector of float)
+0:476 matrix-times-vector (temp 2-component vector of float)
+0:476 'inFM2x3' (in 3X2 matrix of float)
+0:476 'inFV3' (in 3-component vector of float)
0:477 Sequence
-0:477 move second child to first child (temp 3X2 matrix of float)
-0:477 'r11' (temp 3X2 matrix of float)
-0:477 matrix-scale (temp 3X2 matrix of float)
-0:477 'inFM2x3' (in 3X2 matrix of float)
-0:477 'inF0' (in float)
+0:477 move second child to first child (temp 3-component vector of float)
+0:477 'r10' (temp 3-component vector of float)
+0:477 matrix-times-vector (temp 3-component vector of float)
+0:477 'inFM3x2' (in 2X3 matrix of float)
+0:477 'inFV2' (in 2-component vector of float)
0:478 Sequence
-0:478 move second child to first child (temp 2X3 matrix of float)
-0:478 'r12' (temp 2X3 matrix of float)
-0:478 matrix-scale (temp 2X3 matrix of float)
-0:478 'inFM3x2' (in 2X3 matrix of float)
+0:478 move second child to first child (temp 3X2 matrix of float)
+0:478 'r11' (temp 3X2 matrix of float)
+0:478 matrix-scale (temp 3X2 matrix of float)
+0:478 'inFM2x3' (in 3X2 matrix of float)
0:478 'inF0' (in float)
0:479 Sequence
-0:479 move second child to first child (temp 2X2 matrix of float)
-0:479 'r13' (temp 2X2 matrix of float)
-0:479 matrix-multiply (temp 2X2 matrix of float)
-0:479 'inFM2x3' (in 3X2 matrix of float)
+0:479 move second child to first child (temp 2X3 matrix of float)
+0:479 'r12' (temp 2X3 matrix of float)
+0:479 matrix-scale (temp 2X3 matrix of float)
0:479 'inFM3x2' (in 2X3 matrix of float)
+0:479 'inF0' (in float)
0:480 Sequence
-0:480 move second child to first child (temp 3X2 matrix of float)
-0:480 'r14' (temp 3X2 matrix of float)
-0:480 matrix-multiply (temp 3X2 matrix of float)
+0:480 move second child to first child (temp 2X2 matrix of float)
+0:480 'r13' (temp 2X2 matrix of float)
+0:480 matrix-multiply (temp 2X2 matrix of float)
0:480 'inFM2x3' (in 3X2 matrix of float)
-0:480 'inFM3x3' (in 3X3 matrix of float)
+0:480 'inFM3x2' (in 2X3 matrix of float)
0:481 Sequence
-0:481 move second child to first child (temp 4X2 matrix of float)
-0:481 'r15' (temp 4X2 matrix of float)
-0:481 matrix-multiply (temp 4X2 matrix of float)
+0:481 move second child to first child (temp 3X2 matrix of float)
+0:481 'r14' (temp 3X2 matrix of float)
+0:481 matrix-multiply (temp 3X2 matrix of float)
0:481 'inFM2x3' (in 3X2 matrix of float)
-0:481 'inFM3x4' (in 4X3 matrix of float)
+0:481 'inFM3x3' (in 3X3 matrix of float)
0:482 Sequence
-0:482 move second child to first child (temp 4X3 matrix of float)
-0:482 'r16' (temp 4X3 matrix of float)
-0:482 matrix-multiply (temp 4X3 matrix of float)
-0:482 'inFM3x2' (in 2X3 matrix of float)
-0:482 'inFM2x4' (in 4X2 matrix of float)
+0:482 move second child to first child (temp 4X2 matrix of float)
+0:482 'r15' (temp 4X2 matrix of float)
+0:482 matrix-multiply (temp 4X2 matrix of float)
+0:482 'inFM2x3' (in 3X2 matrix of float)
+0:482 'inFM3x4' (in 4X3 matrix of float)
+0:483 Sequence
+0:483 move second child to first child (temp 4X3 matrix of float)
+0:483 'r16' (temp 4X3 matrix of float)
+0:483 matrix-multiply (temp 4X3 matrix of float)
+0:483 'inFM3x2' (in 2X3 matrix of float)
+0:483 'inFM2x4' (in 4X2 matrix of float)
0:? Linker Objects
0:? 'gs_ua' (global uint)
0:? 'gs_ub' (global uint)
@@ -3503,7 +3511,7 @@
0:? Constant:
0:? 1.000000
0:? 2.000000
-0:258 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
+0:259 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
0:178 Function Parameters:
0:178 'inF0' (in 3-component vector of float)
0:178 'inF1' (in 3-component vector of float)
@@ -3740,1162 +3748,1170 @@
0:225 'inF1' (in 3-component vector of float)
0:225 'inF2' (in 3-component vector of float)
0:226 Sequence
-0:226 move second child to first child (temp float)
-0:226 'r043' (temp float)
-0:226 length (global float)
+0:226 move second child to first child (temp 3-component vector of float)
+0:226 'r039b' (temp 3-component vector of float)
+0:226 mix (global 3-component vector of float)
0:226 'inF0' (in 3-component vector of float)
+0:226 'inF1' (in 3-component vector of float)
+0:226 Constant:
+0:226 0.300000
0:227 Sequence
-0:227 move second child to first child (temp 3-component vector of float)
-0:227 'r044' (temp 3-component vector of float)
-0:227 log (global 3-component vector of float)
+0:227 move second child to first child (temp float)
+0:227 'r043' (temp float)
+0:227 length (global float)
0:227 'inF0' (in 3-component vector of float)
0:228 Sequence
0:228 move second child to first child (temp 3-component vector of float)
-0:228 'r045' (temp 3-component vector of float)
-0:228 vector-scale (temp 3-component vector of float)
-0:228 log2 (temp 3-component vector of float)
-0:228 'inF0' (in 3-component vector of float)
-0:228 Constant:
-0:228 0.301030
+0:228 'r044' (temp 3-component vector of float)
+0:228 log (global 3-component vector of float)
+0:228 'inF0' (in 3-component vector of float)
0:229 Sequence
0:229 move second child to first child (temp 3-component vector of float)
-0:229 'r046' (temp 3-component vector of float)
-0:229 log2 (global 3-component vector of float)
-0:229 'inF0' (in 3-component vector of float)
+0:229 'r045' (temp 3-component vector of float)
+0:229 vector-scale (temp 3-component vector of float)
+0:229 log2 (temp 3-component vector of float)
+0:229 'inF0' (in 3-component vector of float)
+0:229 Constant:
+0:229 0.301030
0:230 Sequence
0:230 move second child to first child (temp 3-component vector of float)
-0:230 'r047' (temp 3-component vector of float)
-0:230 max (global 3-component vector of float)
+0:230 'r046' (temp 3-component vector of float)
+0:230 log2 (global 3-component vector of float)
0:230 'inF0' (in 3-component vector of float)
-0:230 'inF1' (in 3-component vector of float)
0:231 Sequence
0:231 move second child to first child (temp 3-component vector of float)
-0:231 'r048' (temp 3-component vector of float)
-0:231 min (global 3-component vector of float)
+0:231 'r047' (temp 3-component vector of float)
+0:231 max (global 3-component vector of float)
0:231 'inF0' (in 3-component vector of float)
0:231 'inF1' (in 3-component vector of float)
0:232 Sequence
0:232 move second child to first child (temp 3-component vector of float)
-0:232 'r049' (temp 3-component vector of float)
-0:232 normalize (global 3-component vector of float)
+0:232 'r048' (temp 3-component vector of float)
+0:232 min (global 3-component vector of float)
0:232 'inF0' (in 3-component vector of float)
+0:232 'inF1' (in 3-component vector of float)
0:233 Sequence
0:233 move second child to first child (temp 3-component vector of float)
-0:233 'r050' (temp 3-component vector of float)
-0:233 pow (global 3-component vector of float)
+0:233 'r049' (temp 3-component vector of float)
+0:233 normalize (global 3-component vector of float)
0:233 'inF0' (in 3-component vector of float)
-0:233 'inF1' (in 3-component vector of float)
0:234 Sequence
0:234 move second child to first child (temp 3-component vector of float)
-0:234 'r051' (temp 3-component vector of float)
-0:234 radians (global 3-component vector of float)
+0:234 'r050' (temp 3-component vector of float)
+0:234 pow (global 3-component vector of float)
0:234 'inF0' (in 3-component vector of float)
+0:234 'inF1' (in 3-component vector of float)
0:235 Sequence
0:235 move second child to first child (temp 3-component vector of float)
-0:235 'r052' (temp 3-component vector of float)
-0:235 divide (temp 3-component vector of float)
-0:235 Constant:
-0:235 1.000000
+0:235 'r051' (temp 3-component vector of float)
+0:235 radians (global 3-component vector of float)
0:235 'inF0' (in 3-component vector of float)
0:236 Sequence
0:236 move second child to first child (temp 3-component vector of float)
-0:236 'r053' (temp 3-component vector of float)
-0:236 reflect (global 3-component vector of float)
+0:236 'r052' (temp 3-component vector of float)
+0:236 divide (temp 3-component vector of float)
+0:236 Constant:
+0:236 1.000000
0:236 'inF0' (in 3-component vector of float)
-0:236 'inF1' (in 3-component vector of float)
0:237 Sequence
0:237 move second child to first child (temp 3-component vector of float)
-0:237 'r054' (temp 3-component vector of float)
-0:237 refract (global 3-component vector of float)
+0:237 'r053' (temp 3-component vector of float)
+0:237 reflect (global 3-component vector of float)
0:237 'inF0' (in 3-component vector of float)
0:237 'inF1' (in 3-component vector of float)
-0:237 Constant:
-0:237 2.000000
0:238 Sequence
-0:238 move second child to first child (temp 3-component vector of uint)
-0:238 'r055' (temp 3-component vector of uint)
+0:238 move second child to first child (temp 3-component vector of float)
+0:238 'r054' (temp 3-component vector of float)
+0:238 refract (global 3-component vector of float)
+0:238 'inF0' (in 3-component vector of float)
+0:238 'inF1' (in 3-component vector of float)
+0:238 Constant:
+0:238 2.000000
+0:239 Sequence
+0:239 move second child to first child (temp 3-component vector of uint)
+0:239 'r055' (temp 3-component vector of uint)
0:? bitFieldReverse (global 3-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
-0:239 Sequence
-0:239 move second child to first child (temp 3-component vector of float)
-0:239 'r056' (temp 3-component vector of float)
-0:239 roundEven (global 3-component vector of float)
-0:239 'inF0' (in 3-component vector of float)
0:240 Sequence
0:240 move second child to first child (temp 3-component vector of float)
-0:240 'r057' (temp 3-component vector of float)
-0:240 inverse sqrt (global 3-component vector of float)
+0:240 'r056' (temp 3-component vector of float)
+0:240 roundEven (global 3-component vector of float)
0:240 'inF0' (in 3-component vector of float)
0:241 Sequence
0:241 move second child to first child (temp 3-component vector of float)
-0:241 'r058' (temp 3-component vector of float)
-0:241 clamp (temp 3-component vector of float)
+0:241 'r057' (temp 3-component vector of float)
+0:241 inverse sqrt (global 3-component vector of float)
0:241 'inF0' (in 3-component vector of float)
-0:241 Constant:
-0:241 0.000000
-0:241 Constant:
-0:241 1.000000
0:242 Sequence
0:242 move second child to first child (temp 3-component vector of float)
-0:242 'r059' (temp 3-component vector of float)
-0:242 Sign (global 3-component vector of float)
+0:242 'r058' (temp 3-component vector of float)
+0:242 clamp (temp 3-component vector of float)
0:242 'inF0' (in 3-component vector of float)
+0:242 Constant:
+0:242 0.000000
+0:242 Constant:
+0:242 1.000000
0:243 Sequence
0:243 move second child to first child (temp 3-component vector of float)
-0:243 'r060' (temp 3-component vector of float)
-0:243 sine (global 3-component vector of float)
+0:243 'r059' (temp 3-component vector of float)
+0:243 Sign (global 3-component vector of float)
0:243 'inF0' (in 3-component vector of float)
0:244 Sequence
0:244 move second child to first child (temp 3-component vector of float)
-0:244 'inF1' (in 3-component vector of float)
-0:244 sine (temp 3-component vector of float)
-0:244 'inF0' (in 3-component vector of float)
-0:244 move second child to first child (temp 3-component vector of float)
-0:244 'inF2' (in 3-component vector of float)
-0:244 cosine (temp 3-component vector of float)
+0:244 'r060' (temp 3-component vector of float)
+0:244 sine (global 3-component vector of float)
0:244 'inF0' (in 3-component vector of float)
0:245 Sequence
0:245 move second child to first child (temp 3-component vector of float)
-0:245 'r061' (temp 3-component vector of float)
-0:245 hyp. sine (global 3-component vector of float)
+0:245 'inF1' (in 3-component vector of float)
+0:245 sine (temp 3-component vector of float)
+0:245 'inF0' (in 3-component vector of float)
+0:245 move second child to first child (temp 3-component vector of float)
+0:245 'inF2' (in 3-component vector of float)
+0:245 cosine (temp 3-component vector of float)
0:245 'inF0' (in 3-component vector of float)
0:246 Sequence
0:246 move second child to first child (temp 3-component vector of float)
-0:246 'r062' (temp 3-component vector of float)
-0:246 smoothstep (global 3-component vector of float)
+0:246 'r061' (temp 3-component vector of float)
+0:246 hyp. sine (global 3-component vector of float)
0:246 'inF0' (in 3-component vector of float)
-0:246 'inF1' (in 3-component vector of float)
-0:246 'inF2' (in 3-component vector of float)
0:247 Sequence
0:247 move second child to first child (temp 3-component vector of float)
-0:247 'r063' (temp 3-component vector of float)
-0:247 sqrt (global 3-component vector of float)
+0:247 'r062' (temp 3-component vector of float)
+0:247 smoothstep (global 3-component vector of float)
0:247 'inF0' (in 3-component vector of float)
+0:247 'inF1' (in 3-component vector of float)
+0:247 'inF2' (in 3-component vector of float)
0:248 Sequence
0:248 move second child to first child (temp 3-component vector of float)
-0:248 'r064' (temp 3-component vector of float)
-0:248 step (global 3-component vector of float)
+0:248 'r063' (temp 3-component vector of float)
+0:248 sqrt (global 3-component vector of float)
0:248 'inF0' (in 3-component vector of float)
-0:248 'inF1' (in 3-component vector of float)
0:249 Sequence
0:249 move second child to first child (temp 3-component vector of float)
-0:249 'r065' (temp 3-component vector of float)
-0:249 tangent (global 3-component vector of float)
+0:249 'r064' (temp 3-component vector of float)
+0:249 step (global 3-component vector of float)
0:249 'inF0' (in 3-component vector of float)
+0:249 'inF1' (in 3-component vector of float)
0:250 Sequence
0:250 move second child to first child (temp 3-component vector of float)
-0:250 'r066' (temp 3-component vector of float)
-0:250 hyp. tangent (global 3-component vector of float)
+0:250 'r065' (temp 3-component vector of float)
+0:250 tangent (global 3-component vector of float)
0:250 'inF0' (in 3-component vector of float)
-0:252 Sequence
-0:252 move second child to first child (temp 3-component vector of float)
-0:252 'r067' (temp 3-component vector of float)
-0:252 trunc (global 3-component vector of float)
-0:252 'inF0' (in 3-component vector of float)
-0:255 Branch: Return with expression
+0:251 Sequence
+0:251 move second child to first child (temp 3-component vector of float)
+0:251 'r066' (temp 3-component vector of float)
+0:251 hyp. tangent (global 3-component vector of float)
+0:251 'inF0' (in 3-component vector of float)
+0:253 Sequence
+0:253 move second child to first child (temp 3-component vector of float)
+0:253 'r067' (temp 3-component vector of float)
+0:253 trunc (global 3-component vector of float)
+0:253 'inF0' (in 3-component vector of float)
+0:256 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
-0:399 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
-0:259 Function Parameters:
-0:259 'inF0' (in 4-component vector of float)
-0:259 'inF1' (in 4-component vector of float)
-0:259 'inF2' (in 4-component vector of float)
-0:259 'inU0' (in 4-component vector of uint)
-0:259 'inU1' (in 4-component vector of uint)
+0:400 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
+0:260 Function Parameters:
+0:260 'inF0' (in 4-component vector of float)
+0:260 'inF1' (in 4-component vector of float)
+0:260 'inF2' (in 4-component vector of float)
+0:260 'inU0' (in 4-component vector of uint)
+0:260 'inU1' (in 4-component vector of uint)
0:? Sequence
-0:262 Sequence
-0:262 move second child to first child (temp bool)
-0:262 'r000' (temp bool)
-0:262 all (global bool)
-0:262 'inF0' (in 4-component vector of float)
0:263 Sequence
-0:263 move second child to first child (temp 4-component vector of float)
-0:263 'r001' (temp 4-component vector of float)
-0:263 Absolute value (global 4-component vector of float)
+0:263 move second child to first child (temp bool)
+0:263 'r000' (temp bool)
+0:263 all (global bool)
0:263 'inF0' (in 4-component vector of float)
0:264 Sequence
0:264 move second child to first child (temp 4-component vector of float)
-0:264 'r002' (temp 4-component vector of float)
-0:264 arc cosine (global 4-component vector of float)
+0:264 'r001' (temp 4-component vector of float)
+0:264 Absolute value (global 4-component vector of float)
0:264 'inF0' (in 4-component vector of float)
0:265 Sequence
-0:265 move second child to first child (temp bool)
-0:265 'r003' (temp bool)
-0:265 any (global bool)
+0:265 move second child to first child (temp 4-component vector of float)
+0:265 'r002' (temp 4-component vector of float)
+0:265 arc cosine (global 4-component vector of float)
0:265 'inF0' (in 4-component vector of float)
0:266 Sequence
-0:266 move second child to first child (temp 4-component vector of float)
-0:266 'r004' (temp 4-component vector of float)
-0:266 arc sine (global 4-component vector of float)
+0:266 move second child to first child (temp bool)
+0:266 'r003' (temp bool)
+0:266 any (global bool)
0:266 'inF0' (in 4-component vector of float)
0:267 Sequence
-0:267 move second child to first child (temp 4-component vector of int)
-0:267 'r005' (temp 4-component vector of int)
-0:267 floatBitsToInt (global 4-component vector of int)
+0:267 move second child to first child (temp 4-component vector of float)
+0:267 'r004' (temp 4-component vector of float)
+0:267 arc sine (global 4-component vector of float)
0:267 'inF0' (in 4-component vector of float)
0:268 Sequence
-0:268 move second child to first child (temp 4-component vector of uint)
-0:268 'r006' (temp 4-component vector of uint)
-0:268 floatBitsToUint (global 4-component vector of uint)
+0:268 move second child to first child (temp 4-component vector of int)
+0:268 'r005' (temp 4-component vector of int)
+0:268 floatBitsToInt (global 4-component vector of int)
0:268 'inF0' (in 4-component vector of float)
0:269 Sequence
-0:269 move second child to first child (temp 4-component vector of float)
-0:269 'r007' (temp 4-component vector of float)
-0:269 intBitsToFloat (global 4-component vector of float)
-0:269 'inU0' (in 4-component vector of uint)
-0:271 Sequence
-0:271 move second child to first child (temp 4-component vector of float)
-0:271 'r009' (temp 4-component vector of float)
-0:271 arc tangent (global 4-component vector of float)
-0:271 'inF0' (in 4-component vector of float)
+0:269 move second child to first child (temp 4-component vector of uint)
+0:269 'r006' (temp 4-component vector of uint)
+0:269 floatBitsToUint (global 4-component vector of uint)
+0:269 'inF0' (in 4-component vector of float)
+0:270 Sequence
+0:270 move second child to first child (temp 4-component vector of float)
+0:270 'r007' (temp 4-component vector of float)
+0:270 intBitsToFloat (global 4-component vector of float)
+0:270 'inU0' (in 4-component vector of uint)
0:272 Sequence
0:272 move second child to first child (temp 4-component vector of float)
-0:272 'r010' (temp 4-component vector of float)
+0:272 'r009' (temp 4-component vector of float)
0:272 arc tangent (global 4-component vector of float)
0:272 'inF0' (in 4-component vector of float)
-0:272 'inF1' (in 4-component vector of float)
0:273 Sequence
0:273 move second child to first child (temp 4-component vector of float)
-0:273 'r011' (temp 4-component vector of float)
-0:273 Ceiling (global 4-component vector of float)
+0:273 'r010' (temp 4-component vector of float)
+0:273 arc tangent (global 4-component vector of float)
0:273 'inF0' (in 4-component vector of float)
+0:273 'inF1' (in 4-component vector of float)
0:274 Sequence
0:274 move second child to first child (temp 4-component vector of float)
-0:274 'r012' (temp 4-component vector of float)
-0:274 clamp (global 4-component vector of float)
+0:274 'r011' (temp 4-component vector of float)
+0:274 Ceiling (global 4-component vector of float)
0:274 'inF0' (in 4-component vector of float)
-0:274 'inF1' (in 4-component vector of float)
-0:274 'inF2' (in 4-component vector of float)
-0:275 Test condition and select (temp void)
-0:275 Condition
-0:275 any (temp bool)
-0:275 Compare Less Than (temp 4-component vector of bool)
+0:275 Sequence
+0:275 move second child to first child (temp 4-component vector of float)
+0:275 'r012' (temp 4-component vector of float)
+0:275 clamp (global 4-component vector of float)
0:275 'inF0' (in 4-component vector of float)
-0:275 Constant:
-0:275 0.000000
-0:275 0.000000
-0:275 0.000000
-0:275 0.000000
-0:275 true case
-0:275 Branch: Kill
-0:276 Sequence
-0:276 move second child to first child (temp 4-component vector of float)
-0:276 'r013' (temp 4-component vector of float)
-0:276 cosine (global 4-component vector of float)
+0:275 'inF1' (in 4-component vector of float)
+0:275 'inF2' (in 4-component vector of float)
+0:276 Test condition and select (temp void)
+0:276 Condition
+0:276 any (temp bool)
+0:276 Compare Less Than (temp 4-component vector of bool)
0:276 'inF0' (in 4-component vector of float)
+0:276 Constant:
+0:276 0.000000
+0:276 0.000000
+0:276 0.000000
+0:276 0.000000
+0:276 true case
+0:276 Branch: Kill
0:277 Sequence
0:277 move second child to first child (temp 4-component vector of float)
-0:277 'r014' (temp 4-component vector of float)
-0:277 hyp. cosine (global 4-component vector of float)
+0:277 'r013' (temp 4-component vector of float)
+0:277 cosine (global 4-component vector of float)
0:277 'inF0' (in 4-component vector of float)
0:278 Sequence
-0:278 move second child to first child (temp 4-component vector of uint)
-0:278 'r015' (temp 4-component vector of uint)
+0:278 move second child to first child (temp 4-component vector of float)
+0:278 'r014' (temp 4-component vector of float)
+0:278 hyp. cosine (global 4-component vector of float)
+0:278 'inF0' (in 4-component vector of float)
+0:279 Sequence
+0:279 move second child to first child (temp 4-component vector of uint)
+0:279 'r015' (temp 4-component vector of uint)
0:? bitCount (global 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:? 5 (const uint)
0:? 2 (const uint)
-0:279 Sequence
-0:279 move second child to first child (temp 4-component vector of float)
-0:279 'r016' (temp 4-component vector of float)
-0:279 dPdx (global 4-component vector of float)
-0:279 'inF0' (in 4-component vector of float)
0:280 Sequence
0:280 move second child to first child (temp 4-component vector of float)
-0:280 'r017' (temp 4-component vector of float)
-0:280 dPdxCoarse (global 4-component vector of float)
+0:280 'r016' (temp 4-component vector of float)
+0:280 dPdx (global 4-component vector of float)
0:280 'inF0' (in 4-component vector of float)
0:281 Sequence
0:281 move second child to first child (temp 4-component vector of float)
-0:281 'r018' (temp 4-component vector of float)
-0:281 dPdxFine (global 4-component vector of float)
+0:281 'r017' (temp 4-component vector of float)
+0:281 dPdxCoarse (global 4-component vector of float)
0:281 'inF0' (in 4-component vector of float)
0:282 Sequence
0:282 move second child to first child (temp 4-component vector of float)
-0:282 'r019' (temp 4-component vector of float)
-0:282 dPdy (global 4-component vector of float)
+0:282 'r018' (temp 4-component vector of float)
+0:282 dPdxFine (global 4-component vector of float)
0:282 'inF0' (in 4-component vector of float)
0:283 Sequence
0:283 move second child to first child (temp 4-component vector of float)
-0:283 'r020' (temp 4-component vector of float)
-0:283 dPdyCoarse (global 4-component vector of float)
+0:283 'r019' (temp 4-component vector of float)
+0:283 dPdy (global 4-component vector of float)
0:283 'inF0' (in 4-component vector of float)
0:284 Sequence
0:284 move second child to first child (temp 4-component vector of float)
-0:284 'r021' (temp 4-component vector of float)
-0:284 dPdyFine (global 4-component vector of float)
+0:284 'r020' (temp 4-component vector of float)
+0:284 dPdyCoarse (global 4-component vector of float)
0:284 'inF0' (in 4-component vector of float)
0:285 Sequence
0:285 move second child to first child (temp 4-component vector of float)
-0:285 'r022' (temp 4-component vector of float)
-0:285 degrees (global 4-component vector of float)
+0:285 'r021' (temp 4-component vector of float)
+0:285 dPdyFine (global 4-component vector of float)
0:285 'inF0' (in 4-component vector of float)
0:286 Sequence
-0:286 move second child to first child (temp float)
-0:286 'r023' (temp float)
-0:286 distance (global float)
+0:286 move second child to first child (temp 4-component vector of float)
+0:286 'r022' (temp 4-component vector of float)
+0:286 degrees (global 4-component vector of float)
0:286 'inF0' (in 4-component vector of float)
-0:286 'inF1' (in 4-component vector of float)
0:287 Sequence
0:287 move second child to first child (temp float)
-0:287 'r024' (temp float)
-0:287 dot-product (global float)
+0:287 'r023' (temp float)
+0:287 distance (global float)
0:287 'inF0' (in 4-component vector of float)
0:287 'inF1' (in 4-component vector of float)
0:288 Sequence
-0:288 move second child to first child (temp 4-component vector of float)
-0:288 'r025' (temp 4-component vector of float)
-0:288 Construct vec4 (temp 4-component vector of float)
-0:288 Constant:
-0:288 1.000000
-0:288 component-wise multiply (temp float)
-0:288 direct index (temp float)
-0:288 'inF0' (in 4-component vector of float)
-0:288 Constant:
-0:288 1 (const int)
-0:288 direct index (temp float)
-0:288 'inF1' (in 4-component vector of float)
-0:288 Constant:
-0:288 1 (const int)
-0:288 direct index (temp float)
-0:288 'inF0' (in 4-component vector of float)
-0:288 Constant:
-0:288 2 (const int)
-0:288 direct index (temp float)
-0:288 'inF1' (in 4-component vector of float)
-0:288 Constant:
-0:288 3 (const int)
-0:292 Sequence
-0:292 move second child to first child (temp 4-component vector of float)
-0:292 'r029' (temp 4-component vector of float)
-0:292 exp (global 4-component vector of float)
-0:292 'inF0' (in 4-component vector of float)
+0:288 move second child to first child (temp float)
+0:288 'r024' (temp float)
+0:288 dot-product (global float)
+0:288 'inF0' (in 4-component vector of float)
+0:288 'inF1' (in 4-component vector of float)
+0:289 Sequence
+0:289 move second child to first child (temp 4-component vector of float)
+0:289 'r025' (temp 4-component vector of float)
+0:289 Construct vec4 (temp 4-component vector of float)
+0:289 Constant:
+0:289 1.000000
+0:289 component-wise multiply (temp float)
+0:289 direct index (temp float)
+0:289 'inF0' (in 4-component vector of float)
+0:289 Constant:
+0:289 1 (const int)
+0:289 direct index (temp float)
+0:289 'inF1' (in 4-component vector of float)
+0:289 Constant:
+0:289 1 (const int)
+0:289 direct index (temp float)
+0:289 'inF0' (in 4-component vector of float)
+0:289 Constant:
+0:289 2 (const int)
+0:289 direct index (temp float)
+0:289 'inF1' (in 4-component vector of float)
+0:289 Constant:
+0:289 3 (const int)
0:293 Sequence
0:293 move second child to first child (temp 4-component vector of float)
-0:293 'r030' (temp 4-component vector of float)
-0:293 exp2 (global 4-component vector of float)
+0:293 'r029' (temp 4-component vector of float)
+0:293 exp (global 4-component vector of float)
0:293 'inF0' (in 4-component vector of float)
0:294 Sequence
0:294 move second child to first child (temp 4-component vector of float)
-0:294 'r031' (temp 4-component vector of float)
-0:294 face-forward (global 4-component vector of float)
+0:294 'r030' (temp 4-component vector of float)
+0:294 exp2 (global 4-component vector of float)
0:294 'inF0' (in 4-component vector of float)
-0:294 'inF1' (in 4-component vector of float)
-0:294 'inF2' (in 4-component vector of float)
0:295 Sequence
-0:295 move second child to first child (temp 4-component vector of uint)
-0:295 'r032' (temp 4-component vector of uint)
+0:295 move second child to first child (temp 4-component vector of float)
+0:295 'r031' (temp 4-component vector of float)
+0:295 face-forward (global 4-component vector of float)
+0:295 'inF0' (in 4-component vector of float)
+0:295 'inF1' (in 4-component vector of float)
+0:295 'inF2' (in 4-component vector of float)
+0:296 Sequence
+0:296 move second child to first child (temp 4-component vector of uint)
+0:296 'r032' (temp 4-component vector of uint)
0:? findMSB (global 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:? 9 (const uint)
0:? 10 (const uint)
-0:296 Sequence
-0:296 move second child to first child (temp 4-component vector of uint)
-0:296 'r033' (temp 4-component vector of uint)
+0:297 Sequence
+0:297 move second child to first child (temp 4-component vector of uint)
+0:297 'r033' (temp 4-component vector of uint)
0:? findLSB (global 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:? 9 (const uint)
0:? 10 (const uint)
-0:297 Sequence
-0:297 move second child to first child (temp 4-component vector of float)
-0:297 'r034' (temp 4-component vector of float)
-0:297 Floor (global 4-component vector of float)
-0:297 'inF0' (in 4-component vector of float)
-0:299 Sequence
-0:299 move second child to first child (temp 4-component vector of float)
-0:299 'r036' (temp 4-component vector of float)
-0:299 mod (global 4-component vector of float)
-0:299 'inF0' (in 4-component vector of float)
-0:299 'inF1' (in 4-component vector of float)
+0:298 Sequence
+0:298 move second child to first child (temp 4-component vector of float)
+0:298 'r034' (temp 4-component vector of float)
+0:298 Floor (global 4-component vector of float)
+0:298 'inF0' (in 4-component vector of float)
0:300 Sequence
0:300 move second child to first child (temp 4-component vector of float)
-0:300 'r037' (temp 4-component vector of float)
-0:300 Fraction (global 4-component vector of float)
+0:300 'r036' (temp 4-component vector of float)
+0:300 mod (global 4-component vector of float)
0:300 'inF0' (in 4-component vector of float)
+0:300 'inF1' (in 4-component vector of float)
0:301 Sequence
0:301 move second child to first child (temp 4-component vector of float)
-0:301 'r038' (temp 4-component vector of float)
-0:301 frexp (global 4-component vector of float)
+0:301 'r037' (temp 4-component vector of float)
+0:301 Fraction (global 4-component vector of float)
0:301 'inF0' (in 4-component vector of float)
-0:301 'inF1' (in 4-component vector of float)
0:302 Sequence
0:302 move second child to first child (temp 4-component vector of float)
-0:302 'r039' (temp 4-component vector of float)
-0:302 fwidth (global 4-component vector of float)
+0:302 'r038' (temp 4-component vector of float)
+0:302 frexp (global 4-component vector of float)
0:302 'inF0' (in 4-component vector of float)
+0:302 'inF1' (in 4-component vector of float)
0:303 Sequence
-0:303 move second child to first child (temp 4-component vector of bool)
-0:303 'r040' (temp 4-component vector of bool)
-0:303 isinf (global 4-component vector of bool)
+0:303 move second child to first child (temp 4-component vector of float)
+0:303 'r039' (temp 4-component vector of float)
+0:303 fwidth (global 4-component vector of float)
0:303 'inF0' (in 4-component vector of float)
0:304 Sequence
0:304 move second child to first child (temp 4-component vector of bool)
-0:304 'r041' (temp 4-component vector of bool)
-0:304 isnan (global 4-component vector of bool)
+0:304 'r040' (temp 4-component vector of bool)
+0:304 isinf (global 4-component vector of bool)
0:304 'inF0' (in 4-component vector of float)
0:305 Sequence
-0:305 move second child to first child (temp 4-component vector of float)
-0:305 'r042' (temp 4-component vector of float)
-0:305 ldexp (global 4-component vector of float)
+0:305 move second child to first child (temp 4-component vector of bool)
+0:305 'r041' (temp 4-component vector of bool)
+0:305 isnan (global 4-component vector of bool)
0:305 'inF0' (in 4-component vector of float)
-0:305 'inF1' (in 4-component vector of float)
0:306 Sequence
0:306 move second child to first child (temp 4-component vector of float)
-0:306 'r039a' (temp 4-component vector of float)
-0:306 mix (global 4-component vector of float)
+0:306 'r042' (temp 4-component vector of float)
+0:306 ldexp (global 4-component vector of float)
0:306 'inF0' (in 4-component vector of float)
0:306 'inF1' (in 4-component vector of float)
-0:306 'inF2' (in 4-component vector of float)
0:307 Sequence
-0:307 move second child to first child (temp float)
-0:307 'r043' (temp float)
-0:307 length (global float)
+0:307 move second child to first child (temp 4-component vector of float)
+0:307 'r039a' (temp 4-component vector of float)
+0:307 mix (global 4-component vector of float)
0:307 'inF0' (in 4-component vector of float)
+0:307 'inF1' (in 4-component vector of float)
+0:307 'inF2' (in 4-component vector of float)
0:308 Sequence
-0:308 move second child to first child (temp 4-component vector of float)
-0:308 'r044' (temp 4-component vector of float)
-0:308 log (global 4-component vector of float)
+0:308 move second child to first child (temp float)
+0:308 'r043' (temp float)
+0:308 length (global float)
0:308 'inF0' (in 4-component vector of float)
0:309 Sequence
0:309 move second child to first child (temp 4-component vector of float)
-0:309 'r045' (temp 4-component vector of float)
-0:309 vector-scale (temp 4-component vector of float)
-0:309 log2 (temp 4-component vector of float)
-0:309 'inF0' (in 4-component vector of float)
-0:309 Constant:
-0:309 0.301030
+0:309 'r044' (temp 4-component vector of float)
+0:309 log (global 4-component vector of float)
+0:309 'inF0' (in 4-component vector of float)
0:310 Sequence
0:310 move second child to first child (temp 4-component vector of float)
-0:310 'r046' (temp 4-component vector of float)
-0:310 log2 (global 4-component vector of float)
-0:310 'inF0' (in 4-component vector of float)
+0:310 'r045' (temp 4-component vector of float)
+0:310 vector-scale (temp 4-component vector of float)
+0:310 log2 (temp 4-component vector of float)
+0:310 'inF0' (in 4-component vector of float)
+0:310 Constant:
+0:310 0.301030
0:311 Sequence
0:311 move second child to first child (temp 4-component vector of float)
-0:311 'r047' (temp 4-component vector of float)
-0:311 max (global 4-component vector of float)
+0:311 'r046' (temp 4-component vector of float)
+0:311 log2 (global 4-component vector of float)
0:311 'inF0' (in 4-component vector of float)
-0:311 'inF1' (in 4-component vector of float)
0:312 Sequence
0:312 move second child to first child (temp 4-component vector of float)
-0:312 'r048' (temp 4-component vector of float)
-0:312 min (global 4-component vector of float)
+0:312 'r047' (temp 4-component vector of float)
+0:312 max (global 4-component vector of float)
0:312 'inF0' (in 4-component vector of float)
0:312 'inF1' (in 4-component vector of float)
0:313 Sequence
0:313 move second child to first child (temp 4-component vector of float)
-0:313 'r049' (temp 4-component vector of float)
-0:313 normalize (global 4-component vector of float)
+0:313 'r048' (temp 4-component vector of float)
+0:313 min (global 4-component vector of float)
0:313 'inF0' (in 4-component vector of float)
+0:313 'inF1' (in 4-component vector of float)
0:314 Sequence
0:314 move second child to first child (temp 4-component vector of float)
-0:314 'r050' (temp 4-component vector of float)
-0:314 pow (global 4-component vector of float)
+0:314 'r049' (temp 4-component vector of float)
+0:314 normalize (global 4-component vector of float)
0:314 'inF0' (in 4-component vector of float)
-0:314 'inF1' (in 4-component vector of float)
0:315 Sequence
0:315 move second child to first child (temp 4-component vector of float)
-0:315 'r051' (temp 4-component vector of float)
-0:315 radians (global 4-component vector of float)
+0:315 'r050' (temp 4-component vector of float)
+0:315 pow (global 4-component vector of float)
0:315 'inF0' (in 4-component vector of float)
+0:315 'inF1' (in 4-component vector of float)
0:316 Sequence
0:316 move second child to first child (temp 4-component vector of float)
-0:316 'r052' (temp 4-component vector of float)
-0:316 divide (temp 4-component vector of float)
-0:316 Constant:
-0:316 1.000000
+0:316 'r051' (temp 4-component vector of float)
+0:316 radians (global 4-component vector of float)
0:316 'inF0' (in 4-component vector of float)
0:317 Sequence
0:317 move second child to first child (temp 4-component vector of float)
-0:317 'r053' (temp 4-component vector of float)
-0:317 reflect (global 4-component vector of float)
+0:317 'r052' (temp 4-component vector of float)
+0:317 divide (temp 4-component vector of float)
+0:317 Constant:
+0:317 1.000000
0:317 'inF0' (in 4-component vector of float)
-0:317 'inF1' (in 4-component vector of float)
0:318 Sequence
0:318 move second child to first child (temp 4-component vector of float)
-0:318 'r054' (temp 4-component vector of float)
-0:318 refract (global 4-component vector of float)
+0:318 'r053' (temp 4-component vector of float)
+0:318 reflect (global 4-component vector of float)
0:318 'inF0' (in 4-component vector of float)
0:318 'inF1' (in 4-component vector of float)
-0:318 Constant:
-0:318 2.000000
0:319 Sequence
-0:319 move second child to first child (temp 4-component vector of uint)
-0:319 'r055' (temp 4-component vector of uint)
+0:319 move second child to first child (temp 4-component vector of float)
+0:319 'r054' (temp 4-component vector of float)
+0:319 refract (global 4-component vector of float)
+0:319 'inF0' (in 4-component vector of float)
+0:319 'inF1' (in 4-component vector of float)
+0:319 Constant:
+0:319 2.000000
+0:320 Sequence
+0:320 move second child to first child (temp 4-component vector of uint)
+0:320 'r055' (temp 4-component vector of uint)
0:? bitFieldReverse (global 4-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
0:? 4 (const uint)
-0:320 Sequence
-0:320 move second child to first child (temp 4-component vector of float)
-0:320 'r056' (temp 4-component vector of float)
-0:320 roundEven (global 4-component vector of float)
-0:320 'inF0' (in 4-component vector of float)
0:321 Sequence
0:321 move second child to first child (temp 4-component vector of float)
-0:321 'r057' (temp 4-component vector of float)
-0:321 inverse sqrt (global 4-component vector of float)
+0:321 'r056' (temp 4-component vector of float)
+0:321 roundEven (global 4-component vector of float)
0:321 'inF0' (in 4-component vector of float)
0:322 Sequence
0:322 move second child to first child (temp 4-component vector of float)
-0:322 'r058' (temp 4-component vector of float)
-0:322 clamp (temp 4-component vector of float)
+0:322 'r057' (temp 4-component vector of float)
+0:322 inverse sqrt (global 4-component vector of float)
0:322 'inF0' (in 4-component vector of float)
-0:322 Constant:
-0:322 0.000000
-0:322 Constant:
-0:322 1.000000
0:323 Sequence
0:323 move second child to first child (temp 4-component vector of float)
-0:323 'r059' (temp 4-component vector of float)
-0:323 Sign (global 4-component vector of float)
+0:323 'r058' (temp 4-component vector of float)
+0:323 clamp (temp 4-component vector of float)
0:323 'inF0' (in 4-component vector of float)
+0:323 Constant:
+0:323 0.000000
+0:323 Constant:
+0:323 1.000000
0:324 Sequence
0:324 move second child to first child (temp 4-component vector of float)
-0:324 'r060' (temp 4-component vector of float)
-0:324 sine (global 4-component vector of float)
+0:324 'r059' (temp 4-component vector of float)
+0:324 Sign (global 4-component vector of float)
0:324 'inF0' (in 4-component vector of float)
0:325 Sequence
0:325 move second child to first child (temp 4-component vector of float)
-0:325 'inF1' (in 4-component vector of float)
-0:325 sine (temp 4-component vector of float)
-0:325 'inF0' (in 4-component vector of float)
-0:325 move second child to first child (temp 4-component vector of float)
-0:325 'inF2' (in 4-component vector of float)
-0:325 cosine (temp 4-component vector of float)
+0:325 'r060' (temp 4-component vector of float)
+0:325 sine (global 4-component vector of float)
0:325 'inF0' (in 4-component vector of float)
0:326 Sequence
0:326 move second child to first child (temp 4-component vector of float)
-0:326 'r061' (temp 4-component vector of float)
-0:326 hyp. sine (global 4-component vector of float)
+0:326 'inF1' (in 4-component vector of float)
+0:326 sine (temp 4-component vector of float)
+0:326 'inF0' (in 4-component vector of float)
+0:326 move second child to first child (temp 4-component vector of float)
+0:326 'inF2' (in 4-component vector of float)
+0:326 cosine (temp 4-component vector of float)
0:326 'inF0' (in 4-component vector of float)
0:327 Sequence
0:327 move second child to first child (temp 4-component vector of float)
-0:327 'r062' (temp 4-component vector of float)
-0:327 smoothstep (global 4-component vector of float)
+0:327 'r061' (temp 4-component vector of float)
+0:327 hyp. sine (global 4-component vector of float)
0:327 'inF0' (in 4-component vector of float)
-0:327 'inF1' (in 4-component vector of float)
-0:327 'inF2' (in 4-component vector of float)
0:328 Sequence
0:328 move second child to first child (temp 4-component vector of float)
-0:328 'r063' (temp 4-component vector of float)
-0:328 sqrt (global 4-component vector of float)
+0:328 'r062' (temp 4-component vector of float)
+0:328 smoothstep (global 4-component vector of float)
0:328 'inF0' (in 4-component vector of float)
+0:328 'inF1' (in 4-component vector of float)
+0:328 'inF2' (in 4-component vector of float)
0:329 Sequence
0:329 move second child to first child (temp 4-component vector of float)
-0:329 'r064' (temp 4-component vector of float)
-0:329 step (global 4-component vector of float)
+0:329 'r063' (temp 4-component vector of float)
+0:329 sqrt (global 4-component vector of float)
0:329 'inF0' (in 4-component vector of float)
-0:329 'inF1' (in 4-component vector of float)
0:330 Sequence
0:330 move second child to first child (temp 4-component vector of float)
-0:330 'r065' (temp 4-component vector of float)
-0:330 tangent (global 4-component vector of float)
+0:330 'r064' (temp 4-component vector of float)
+0:330 step (global 4-component vector of float)
0:330 'inF0' (in 4-component vector of float)
+0:330 'inF1' (in 4-component vector of float)
0:331 Sequence
0:331 move second child to first child (temp 4-component vector of float)
-0:331 'r066' (temp 4-component vector of float)
-0:331 hyp. tangent (global 4-component vector of float)
+0:331 'r065' (temp 4-component vector of float)
+0:331 tangent (global 4-component vector of float)
0:331 'inF0' (in 4-component vector of float)
-0:333 Sequence
-0:333 move second child to first child (temp 4-component vector of float)
-0:333 'r067' (temp 4-component vector of float)
-0:333 trunc (global 4-component vector of float)
-0:333 'inF0' (in 4-component vector of float)
-0:336 Branch: Return with expression
+0:332 Sequence
+0:332 move second child to first child (temp 4-component vector of float)
+0:332 'r066' (temp 4-component vector of float)
+0:332 hyp. tangent (global 4-component vector of float)
+0:332 'inF0' (in 4-component vector of float)
+0:334 Sequence
+0:334 move second child to first child (temp 4-component vector of float)
+0:334 'r067' (temp 4-component vector of float)
+0:334 trunc (global 4-component vector of float)
+0:334 'inF0' (in 4-component vector of float)
+0:337 Branch: Return with expression
0:? Constant:
0:? 1.000000
0:? 2.000000
0:? 3.000000
0:? 4.000000
-0:408 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
-0:400 Function Parameters:
-0:400 'inF0' (in 2X2 matrix of float)
-0:400 'inF1' (in 2X2 matrix of float)
-0:400 'inF2' (in 2X2 matrix of float)
+0:409 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
+0:401 Function Parameters:
+0:401 'inF0' (in 2X2 matrix of float)
+0:401 'inF1' (in 2X2 matrix of float)
+0:401 'inF2' (in 2X2 matrix of float)
0:? Sequence
-0:402 Sequence
-0:402 move second child to first child (temp bool)
-0:402 'r000' (temp bool)
-0:402 all (global bool)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r001' (temp 2X2 matrix of float)
-0:402 Absolute value (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 arc cosine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp bool)
-0:402 'r003' (temp bool)
-0:402 any (global bool)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r004' (temp 2X2 matrix of float)
-0:402 arc sine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r005' (temp 2X2 matrix of float)
-0:402 arc tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r006' (temp 2X2 matrix of float)
-0:402 arc tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r007' (temp 2X2 matrix of float)
-0:402 Ceiling (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Test condition and select (temp void)
-0:402 Condition
-0:402 any (temp bool)
-0:402 Compare Less Than (temp 2X2 matrix of bool)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Constant:
-0:402 0.000000
-0:402 0.000000
-0:402 0.000000
-0:402 0.000000
-0:402 true case
-0:402 Branch: Kill
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r008' (temp 2X2 matrix of float)
-0:402 clamp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r009' (temp 2X2 matrix of float)
-0:402 cosine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r010' (temp 2X2 matrix of float)
-0:402 hyp. cosine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r011' (temp 2X2 matrix of float)
-0:402 dPdx (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r012' (temp 2X2 matrix of float)
-0:402 dPdxCoarse (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r013' (temp 2X2 matrix of float)
-0:402 dPdxFine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r014' (temp 2X2 matrix of float)
-0:402 dPdy (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r015' (temp 2X2 matrix of float)
-0:402 dPdyCoarse (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r016' (temp 2X2 matrix of float)
-0:402 dPdyFine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r017' (temp 2X2 matrix of float)
-0:402 degrees (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp float)
-0:402 'r018' (temp float)
-0:402 determinant (global float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r019' (temp 2X2 matrix of float)
-0:402 exp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'R020' (temp 2X2 matrix of float)
-0:402 exp2 (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r021' (temp 2X2 matrix of float)
-0:402 Floor (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r022' (temp 2X2 matrix of float)
-0:402 mod (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r023' (temp 2X2 matrix of float)
-0:402 Fraction (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r024' (temp 2X2 matrix of float)
-0:402 frexp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r025' (temp 2X2 matrix of float)
-0:402 fwidth (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r026' (temp 2X2 matrix of float)
-0:402 ldexp (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r026a' (temp 2X2 matrix of float)
-0:402 mix (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r027' (temp 2X2 matrix of float)
-0:402 log (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r028' (temp 2X2 matrix of float)
-0:402 matrix-scale (temp 2X2 matrix of float)
-0:402 log2 (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Constant:
-0:402 0.301030
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r029' (temp 2X2 matrix of float)
-0:402 log2 (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r030' (temp 2X2 matrix of float)
-0:402 max (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r031' (temp 2X2 matrix of float)
-0:402 min (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r032' (temp 2X2 matrix of float)
-0:402 pow (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r033' (temp 2X2 matrix of float)
-0:402 radians (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r034' (temp 2X2 matrix of float)
-0:402 roundEven (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r035' (temp 2X2 matrix of float)
-0:402 inverse sqrt (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r036' (temp 2X2 matrix of float)
-0:402 clamp (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Constant:
-0:402 0.000000
-0:402 Constant:
-0:402 1.000000
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r037' (temp 2X2 matrix of float)
-0:402 Sign (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r038' (temp 2X2 matrix of float)
-0:402 sine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 sine (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 cosine (temp 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r039' (temp 2X2 matrix of float)
-0:402 hyp. sine (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r049' (temp 2X2 matrix of float)
-0:402 smoothstep (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 'inF2' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r041' (temp 2X2 matrix of float)
-0:402 sqrt (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r042' (temp 2X2 matrix of float)
-0:402 step (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 'inF1' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r043' (temp 2X2 matrix of float)
-0:402 tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r044' (temp 2X2 matrix of float)
-0:402 hyp. tangent (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 transpose (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:402 Sequence
-0:402 move second child to first child (temp 2X2 matrix of float)
-0:402 'r046' (temp 2X2 matrix of float)
-0:402 trunc (global 2X2 matrix of float)
-0:402 'inF0' (in 2X2 matrix of float)
-0:405 Branch: Return with expression
+0:403 Sequence
+0:403 move second child to first child (temp bool)
+0:403 'r000' (temp bool)
+0:403 all (global bool)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r001' (temp 2X2 matrix of float)
+0:403 Absolute value (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 arc cosine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp bool)
+0:403 'r003' (temp bool)
+0:403 any (global bool)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r004' (temp 2X2 matrix of float)
+0:403 arc sine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r005' (temp 2X2 matrix of float)
+0:403 arc tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r006' (temp 2X2 matrix of float)
+0:403 arc tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r007' (temp 2X2 matrix of float)
+0:403 Ceiling (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Test condition and select (temp void)
+0:403 Condition
+0:403 any (temp bool)
+0:403 Compare Less Than (temp 2X2 matrix of bool)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Constant:
+0:403 0.000000
+0:403 0.000000
+0:403 0.000000
+0:403 0.000000
+0:403 true case
+0:403 Branch: Kill
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r008' (temp 2X2 matrix of float)
+0:403 clamp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r009' (temp 2X2 matrix of float)
+0:403 cosine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r010' (temp 2X2 matrix of float)
+0:403 hyp. cosine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r011' (temp 2X2 matrix of float)
+0:403 dPdx (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r012' (temp 2X2 matrix of float)
+0:403 dPdxCoarse (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r013' (temp 2X2 matrix of float)
+0:403 dPdxFine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r014' (temp 2X2 matrix of float)
+0:403 dPdy (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r015' (temp 2X2 matrix of float)
+0:403 dPdyCoarse (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r016' (temp 2X2 matrix of float)
+0:403 dPdyFine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r017' (temp 2X2 matrix of float)
+0:403 degrees (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp float)
+0:403 'r018' (temp float)
+0:403 determinant (global float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r019' (temp 2X2 matrix of float)
+0:403 exp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'R020' (temp 2X2 matrix of float)
+0:403 exp2 (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r021' (temp 2X2 matrix of float)
+0:403 Floor (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r022' (temp 2X2 matrix of float)
+0:403 mod (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r023' (temp 2X2 matrix of float)
+0:403 Fraction (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r024' (temp 2X2 matrix of float)
+0:403 frexp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r025' (temp 2X2 matrix of float)
+0:403 fwidth (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r026' (temp 2X2 matrix of float)
+0:403 ldexp (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r026a' (temp 2X2 matrix of float)
+0:403 mix (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r027' (temp 2X2 matrix of float)
+0:403 log (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r028' (temp 2X2 matrix of float)
+0:403 matrix-scale (temp 2X2 matrix of float)
+0:403 log2 (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Constant:
+0:403 0.301030
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r029' (temp 2X2 matrix of float)
+0:403 log2 (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r030' (temp 2X2 matrix of float)
+0:403 max (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r031' (temp 2X2 matrix of float)
+0:403 min (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r032' (temp 2X2 matrix of float)
+0:403 pow (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r033' (temp 2X2 matrix of float)
+0:403 radians (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r034' (temp 2X2 matrix of float)
+0:403 roundEven (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r035' (temp 2X2 matrix of float)
+0:403 inverse sqrt (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r036' (temp 2X2 matrix of float)
+0:403 clamp (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Constant:
+0:403 0.000000
+0:403 Constant:
+0:403 1.000000
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r037' (temp 2X2 matrix of float)
+0:403 Sign (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r038' (temp 2X2 matrix of float)
+0:403 sine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 sine (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 cosine (temp 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r039' (temp 2X2 matrix of float)
+0:403 hyp. sine (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r049' (temp 2X2 matrix of float)
+0:403 smoothstep (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 'inF2' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r041' (temp 2X2 matrix of float)
+0:403 sqrt (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r042' (temp 2X2 matrix of float)
+0:403 step (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 'inF1' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r043' (temp 2X2 matrix of float)
+0:403 tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r044' (temp 2X2 matrix of float)
+0:403 hyp. tangent (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 transpose (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:403 Sequence
+0:403 move second child to first child (temp 2X2 matrix of float)
+0:403 'r046' (temp 2X2 matrix of float)
+0:403 trunc (global 2X2 matrix of float)
+0:403 'inF0' (in 2X2 matrix of float)
+0:406 Branch: Return with expression
0:? Constant:
0:? 2.000000
0:? 2.000000
0:? 2.000000
0:? 2.000000
-0:417 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
-0:409 Function Parameters:
-0:409 'inF0' (in 3X3 matrix of float)
-0:409 'inF1' (in 3X3 matrix of float)
-0:409 'inF2' (in 3X3 matrix of float)
+0:418 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
+0:410 Function Parameters:
+0:410 'inF0' (in 3X3 matrix of float)
+0:410 'inF1' (in 3X3 matrix of float)
+0:410 'inF2' (in 3X3 matrix of float)
0:? Sequence
-0:411 Sequence
-0:411 move second child to first child (temp bool)
-0:411 'r000' (temp bool)
-0:411 all (global bool)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r001' (temp 3X3 matrix of float)
-0:411 Absolute value (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 arc cosine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp bool)
-0:411 'r003' (temp bool)
-0:411 any (global bool)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r004' (temp 3X3 matrix of float)
-0:411 arc sine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r005' (temp 3X3 matrix of float)
-0:411 arc tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r006' (temp 3X3 matrix of float)
-0:411 arc tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r007' (temp 3X3 matrix of float)
-0:411 Ceiling (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Test condition and select (temp void)
-0:411 Condition
-0:411 any (temp bool)
-0:411 Compare Less Than (temp 3X3 matrix of bool)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Constant:
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 0.000000
-0:411 true case
-0:411 Branch: Kill
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r008' (temp 3X3 matrix of float)
-0:411 clamp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r009' (temp 3X3 matrix of float)
-0:411 cosine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r010' (temp 3X3 matrix of float)
-0:411 hyp. cosine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r011' (temp 3X3 matrix of float)
-0:411 dPdx (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r012' (temp 3X3 matrix of float)
-0:411 dPdxCoarse (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r013' (temp 3X3 matrix of float)
-0:411 dPdxFine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r014' (temp 3X3 matrix of float)
-0:411 dPdy (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r015' (temp 3X3 matrix of float)
-0:411 dPdyCoarse (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r016' (temp 3X3 matrix of float)
-0:411 dPdyFine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r017' (temp 3X3 matrix of float)
-0:411 degrees (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp float)
-0:411 'r018' (temp float)
-0:411 determinant (global float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r019' (temp 3X3 matrix of float)
-0:411 exp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'R020' (temp 3X3 matrix of float)
-0:411 exp2 (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r021' (temp 3X3 matrix of float)
-0:411 Floor (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r022' (temp 3X3 matrix of float)
-0:411 mod (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r023' (temp 3X3 matrix of float)
-0:411 Fraction (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r024' (temp 3X3 matrix of float)
-0:411 frexp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r025' (temp 3X3 matrix of float)
-0:411 fwidth (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r026' (temp 3X3 matrix of float)
-0:411 ldexp (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r026a' (temp 3X3 matrix of float)
-0:411 mix (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r027' (temp 3X3 matrix of float)
-0:411 log (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r028' (temp 3X3 matrix of float)
-0:411 matrix-scale (temp 3X3 matrix of float)
-0:411 log2 (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Constant:
-0:411 0.301030
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r029' (temp 3X3 matrix of float)
-0:411 log2 (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r030' (temp 3X3 matrix of float)
-0:411 max (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r031' (temp 3X3 matrix of float)
-0:411 min (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r032' (temp 3X3 matrix of float)
-0:411 pow (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r033' (temp 3X3 matrix of float)
-0:411 radians (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r034' (temp 3X3 matrix of float)
-0:411 roundEven (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r035' (temp 3X3 matrix of float)
-0:411 inverse sqrt (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r036' (temp 3X3 matrix of float)
-0:411 clamp (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Constant:
-0:411 0.000000
-0:411 Constant:
-0:411 1.000000
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r037' (temp 3X3 matrix of float)
-0:411 Sign (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r038' (temp 3X3 matrix of float)
-0:411 sine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 sine (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 cosine (temp 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r039' (temp 3X3 matrix of float)
-0:411 hyp. sine (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r049' (temp 3X3 matrix of float)
-0:411 smoothstep (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 'inF2' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r041' (temp 3X3 matrix of float)
-0:411 sqrt (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r042' (temp 3X3 matrix of float)
-0:411 step (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 'inF1' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r043' (temp 3X3 matrix of float)
-0:411 tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r044' (temp 3X3 matrix of float)
-0:411 hyp. tangent (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 transpose (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:411 Sequence
-0:411 move second child to first child (temp 3X3 matrix of float)
-0:411 'r046' (temp 3X3 matrix of float)
-0:411 trunc (global 3X3 matrix of float)
-0:411 'inF0' (in 3X3 matrix of float)
-0:414 Branch: Return with expression
+0:412 Sequence
+0:412 move second child to first child (temp bool)
+0:412 'r000' (temp bool)
+0:412 all (global bool)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r001' (temp 3X3 matrix of float)
+0:412 Absolute value (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 arc cosine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp bool)
+0:412 'r003' (temp bool)
+0:412 any (global bool)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r004' (temp 3X3 matrix of float)
+0:412 arc sine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r005' (temp 3X3 matrix of float)
+0:412 arc tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r006' (temp 3X3 matrix of float)
+0:412 arc tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r007' (temp 3X3 matrix of float)
+0:412 Ceiling (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Test condition and select (temp void)
+0:412 Condition
+0:412 any (temp bool)
+0:412 Compare Less Than (temp 3X3 matrix of bool)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Constant:
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 0.000000
+0:412 true case
+0:412 Branch: Kill
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r008' (temp 3X3 matrix of float)
+0:412 clamp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r009' (temp 3X3 matrix of float)
+0:412 cosine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r010' (temp 3X3 matrix of float)
+0:412 hyp. cosine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r011' (temp 3X3 matrix of float)
+0:412 dPdx (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r012' (temp 3X3 matrix of float)
+0:412 dPdxCoarse (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r013' (temp 3X3 matrix of float)
+0:412 dPdxFine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r014' (temp 3X3 matrix of float)
+0:412 dPdy (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r015' (temp 3X3 matrix of float)
+0:412 dPdyCoarse (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r016' (temp 3X3 matrix of float)
+0:412 dPdyFine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r017' (temp 3X3 matrix of float)
+0:412 degrees (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp float)
+0:412 'r018' (temp float)
+0:412 determinant (global float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r019' (temp 3X3 matrix of float)
+0:412 exp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'R020' (temp 3X3 matrix of float)
+0:412 exp2 (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r021' (temp 3X3 matrix of float)
+0:412 Floor (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r022' (temp 3X3 matrix of float)
+0:412 mod (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r023' (temp 3X3 matrix of float)
+0:412 Fraction (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r024' (temp 3X3 matrix of float)
+0:412 frexp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r025' (temp 3X3 matrix of float)
+0:412 fwidth (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r026' (temp 3X3 matrix of float)
+0:412 ldexp (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r026a' (temp 3X3 matrix of float)
+0:412 mix (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r027' (temp 3X3 matrix of float)
+0:412 log (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r028' (temp 3X3 matrix of float)
+0:412 matrix-scale (temp 3X3 matrix of float)
+0:412 log2 (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Constant:
+0:412 0.301030
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r029' (temp 3X3 matrix of float)
+0:412 log2 (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r030' (temp 3X3 matrix of float)
+0:412 max (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r031' (temp 3X3 matrix of float)
+0:412 min (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r032' (temp 3X3 matrix of float)
+0:412 pow (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r033' (temp 3X3 matrix of float)
+0:412 radians (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r034' (temp 3X3 matrix of float)
+0:412 roundEven (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r035' (temp 3X3 matrix of float)
+0:412 inverse sqrt (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r036' (temp 3X3 matrix of float)
+0:412 clamp (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Constant:
+0:412 0.000000
+0:412 Constant:
+0:412 1.000000
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r037' (temp 3X3 matrix of float)
+0:412 Sign (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r038' (temp 3X3 matrix of float)
+0:412 sine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 sine (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 cosine (temp 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r039' (temp 3X3 matrix of float)
+0:412 hyp. sine (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r049' (temp 3X3 matrix of float)
+0:412 smoothstep (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 'inF2' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r041' (temp 3X3 matrix of float)
+0:412 sqrt (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r042' (temp 3X3 matrix of float)
+0:412 step (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 'inF1' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r043' (temp 3X3 matrix of float)
+0:412 tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r044' (temp 3X3 matrix of float)
+0:412 hyp. tangent (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 transpose (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:412 Sequence
+0:412 move second child to first child (temp 3X3 matrix of float)
+0:412 'r046' (temp 3X3 matrix of float)
+0:412 trunc (global 3X3 matrix of float)
+0:412 'inF0' (in 3X3 matrix of float)
+0:415 Branch: Return with expression
0:? Constant:
0:? 3.000000
0:? 3.000000
@@ -4906,301 +4922,301 @@
0:? 3.000000
0:? 3.000000
0:? 3.000000
-0:438 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
-0:418 Function Parameters:
-0:418 'inF0' (in 4X4 matrix of float)
-0:418 'inF1' (in 4X4 matrix of float)
-0:418 'inF2' (in 4X4 matrix of float)
+0:439 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
+0:419 Function Parameters:
+0:419 'inF0' (in 4X4 matrix of float)
+0:419 'inF1' (in 4X4 matrix of float)
+0:419 'inF2' (in 4X4 matrix of float)
0:? Sequence
-0:420 Sequence
-0:420 move second child to first child (temp bool)
-0:420 'r000' (temp bool)
-0:420 all (global bool)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r001' (temp 4X4 matrix of float)
-0:420 Absolute value (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 arc cosine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp bool)
-0:420 'r003' (temp bool)
-0:420 any (global bool)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r004' (temp 4X4 matrix of float)
-0:420 arc sine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r005' (temp 4X4 matrix of float)
-0:420 arc tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r006' (temp 4X4 matrix of float)
-0:420 arc tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r007' (temp 4X4 matrix of float)
-0:420 Ceiling (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Test condition and select (temp void)
-0:420 Condition
-0:420 any (temp bool)
-0:420 Compare Less Than (temp 4X4 matrix of bool)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Constant:
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 0.000000
-0:420 true case
-0:420 Branch: Kill
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r008' (temp 4X4 matrix of float)
-0:420 clamp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r009' (temp 4X4 matrix of float)
-0:420 cosine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r010' (temp 4X4 matrix of float)
-0:420 hyp. cosine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r011' (temp 4X4 matrix of float)
-0:420 dPdx (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r012' (temp 4X4 matrix of float)
-0:420 dPdxCoarse (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r013' (temp 4X4 matrix of float)
-0:420 dPdxFine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r014' (temp 4X4 matrix of float)
-0:420 dPdy (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r015' (temp 4X4 matrix of float)
-0:420 dPdyCoarse (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r016' (temp 4X4 matrix of float)
-0:420 dPdyFine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r017' (temp 4X4 matrix of float)
-0:420 degrees (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp float)
-0:420 'r018' (temp float)
-0:420 determinant (global float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r019' (temp 4X4 matrix of float)
-0:420 exp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'R020' (temp 4X4 matrix of float)
-0:420 exp2 (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r021' (temp 4X4 matrix of float)
-0:420 Floor (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r022' (temp 4X4 matrix of float)
-0:420 mod (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r023' (temp 4X4 matrix of float)
-0:420 Fraction (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r024' (temp 4X4 matrix of float)
-0:420 frexp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r025' (temp 4X4 matrix of float)
-0:420 fwidth (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r026' (temp 4X4 matrix of float)
-0:420 ldexp (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r026a' (temp 4X4 matrix of float)
-0:420 mix (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r027' (temp 4X4 matrix of float)
-0:420 log (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r028' (temp 4X4 matrix of float)
-0:420 matrix-scale (temp 4X4 matrix of float)
-0:420 log2 (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Constant:
-0:420 0.301030
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r029' (temp 4X4 matrix of float)
-0:420 log2 (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r030' (temp 4X4 matrix of float)
-0:420 max (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r031' (temp 4X4 matrix of float)
-0:420 min (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r032' (temp 4X4 matrix of float)
-0:420 pow (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r033' (temp 4X4 matrix of float)
-0:420 radians (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r034' (temp 4X4 matrix of float)
-0:420 roundEven (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r035' (temp 4X4 matrix of float)
-0:420 inverse sqrt (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r036' (temp 4X4 matrix of float)
-0:420 clamp (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Constant:
-0:420 0.000000
-0:420 Constant:
-0:420 1.000000
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r037' (temp 4X4 matrix of float)
-0:420 Sign (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r038' (temp 4X4 matrix of float)
-0:420 sine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 sine (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 cosine (temp 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r039' (temp 4X4 matrix of float)
-0:420 hyp. sine (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r049' (temp 4X4 matrix of float)
-0:420 smoothstep (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 'inF2' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r041' (temp 4X4 matrix of float)
-0:420 sqrt (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r042' (temp 4X4 matrix of float)
-0:420 step (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 'inF1' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r043' (temp 4X4 matrix of float)
-0:420 tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r044' (temp 4X4 matrix of float)
-0:420 hyp. tangent (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 transpose (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:420 Sequence
-0:420 move second child to first child (temp 4X4 matrix of float)
-0:420 'r046' (temp 4X4 matrix of float)
-0:420 trunc (global 4X4 matrix of float)
-0:420 'inF0' (in 4X4 matrix of float)
-0:423 Branch: Return with expression
+0:421 Sequence
+0:421 move second child to first child (temp bool)
+0:421 'r000' (temp bool)
+0:421 all (global bool)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r001' (temp 4X4 matrix of float)
+0:421 Absolute value (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 arc cosine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp bool)
+0:421 'r003' (temp bool)
+0:421 any (global bool)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r004' (temp 4X4 matrix of float)
+0:421 arc sine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r005' (temp 4X4 matrix of float)
+0:421 arc tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r006' (temp 4X4 matrix of float)
+0:421 arc tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r007' (temp 4X4 matrix of float)
+0:421 Ceiling (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Test condition and select (temp void)
+0:421 Condition
+0:421 any (temp bool)
+0:421 Compare Less Than (temp 4X4 matrix of bool)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Constant:
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 0.000000
+0:421 true case
+0:421 Branch: Kill
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r008' (temp 4X4 matrix of float)
+0:421 clamp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r009' (temp 4X4 matrix of float)
+0:421 cosine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r010' (temp 4X4 matrix of float)
+0:421 hyp. cosine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r011' (temp 4X4 matrix of float)
+0:421 dPdx (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r012' (temp 4X4 matrix of float)
+0:421 dPdxCoarse (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r013' (temp 4X4 matrix of float)
+0:421 dPdxFine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r014' (temp 4X4 matrix of float)
+0:421 dPdy (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r015' (temp 4X4 matrix of float)
+0:421 dPdyCoarse (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r016' (temp 4X4 matrix of float)
+0:421 dPdyFine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r017' (temp 4X4 matrix of float)
+0:421 degrees (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp float)
+0:421 'r018' (temp float)
+0:421 determinant (global float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r019' (temp 4X4 matrix of float)
+0:421 exp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'R020' (temp 4X4 matrix of float)
+0:421 exp2 (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r021' (temp 4X4 matrix of float)
+0:421 Floor (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r022' (temp 4X4 matrix of float)
+0:421 mod (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r023' (temp 4X4 matrix of float)
+0:421 Fraction (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r024' (temp 4X4 matrix of float)
+0:421 frexp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r025' (temp 4X4 matrix of float)
+0:421 fwidth (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r026' (temp 4X4 matrix of float)
+0:421 ldexp (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r026a' (temp 4X4 matrix of float)
+0:421 mix (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r027' (temp 4X4 matrix of float)
+0:421 log (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r028' (temp 4X4 matrix of float)
+0:421 matrix-scale (temp 4X4 matrix of float)
+0:421 log2 (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Constant:
+0:421 0.301030
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r029' (temp 4X4 matrix of float)
+0:421 log2 (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r030' (temp 4X4 matrix of float)
+0:421 max (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r031' (temp 4X4 matrix of float)
+0:421 min (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r032' (temp 4X4 matrix of float)
+0:421 pow (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r033' (temp 4X4 matrix of float)
+0:421 radians (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r034' (temp 4X4 matrix of float)
+0:421 roundEven (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r035' (temp 4X4 matrix of float)
+0:421 inverse sqrt (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r036' (temp 4X4 matrix of float)
+0:421 clamp (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Constant:
+0:421 0.000000
+0:421 Constant:
+0:421 1.000000
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r037' (temp 4X4 matrix of float)
+0:421 Sign (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r038' (temp 4X4 matrix of float)
+0:421 sine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 sine (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 cosine (temp 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r039' (temp 4X4 matrix of float)
+0:421 hyp. sine (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r049' (temp 4X4 matrix of float)
+0:421 smoothstep (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 'inF2' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r041' (temp 4X4 matrix of float)
+0:421 sqrt (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r042' (temp 4X4 matrix of float)
+0:421 step (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 'inF1' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r043' (temp 4X4 matrix of float)
+0:421 tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r044' (temp 4X4 matrix of float)
+0:421 hyp. tangent (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 transpose (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:421 Sequence
+0:421 move second child to first child (temp 4X4 matrix of float)
+0:421 'r046' (temp 4X4 matrix of float)
+0:421 trunc (global 4X4 matrix of float)
+0:421 'inF0' (in 4X4 matrix of float)
+0:424 Branch: Return with expression
0:? Constant:
0:? 4.000000
0:? 4.000000
@@ -5218,309 +5234,309 @@
0:? 4.000000
0:? 4.000000
0:? 4.000000
-0:445 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
-0:441 Function Parameters:
-0:441 'inF0' (in float)
-0:441 'inF1' (in float)
-0:441 'inFV0' (in 2-component vector of float)
-0:441 'inFV1' (in 2-component vector of float)
-0:441 'inFM0' (in 2X2 matrix of float)
-0:441 'inFM1' (in 2X2 matrix of float)
+0:446 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
+0:442 Function Parameters:
+0:442 'inF0' (in float)
+0:442 'inF1' (in float)
+0:442 'inFV0' (in 2-component vector of float)
+0:442 'inFV1' (in 2-component vector of float)
+0:442 'inFM0' (in 2X2 matrix of float)
+0:442 'inFM1' (in 2X2 matrix of float)
0:? Sequence
-0:442 Sequence
-0:442 move second child to first child (temp float)
-0:442 'r0' (temp float)
-0:442 component-wise multiply (temp float)
-0:442 'inF0' (in float)
-0:442 'inF1' (in float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r1' (temp 2-component vector of float)
-0:442 vector-scale (temp 2-component vector of float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 'inF0' (in float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r2' (temp 2-component vector of float)
-0:442 vector-scale (temp 2-component vector of float)
-0:442 'inF0' (in float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 Sequence
-0:442 move second child to first child (temp float)
-0:442 'r3' (temp float)
-0:442 dot-product (global float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 'inFV1' (in 2-component vector of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r4' (temp 2-component vector of float)
-0:442 matrix-times-vector (temp 2-component vector of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2-component vector of float)
-0:442 'r5' (temp 2-component vector of float)
-0:442 vector-times-matrix (temp 2-component vector of float)
-0:442 'inFV0' (in 2-component vector of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2X2 matrix of float)
-0:442 'r6' (temp 2X2 matrix of float)
-0:442 matrix-scale (temp 2X2 matrix of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 'inF0' (in float)
-0:442 Sequence
-0:442 move second child to first child (temp 2X2 matrix of float)
-0:442 'r7' (temp 2X2 matrix of float)
-0:442 matrix-scale (temp 2X2 matrix of float)
-0:442 'inF0' (in float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 Sequence
-0:442 move second child to first child (temp 2X2 matrix of float)
-0:442 'r8' (temp 2X2 matrix of float)
-0:442 matrix-multiply (temp 2X2 matrix of float)
-0:442 'inFM0' (in 2X2 matrix of float)
-0:442 'inFM1' (in 2X2 matrix of float)
-0:452 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
-0:448 Function Parameters:
-0:448 'inF0' (in float)
-0:448 'inF1' (in float)
-0:448 'inFV0' (in 3-component vector of float)
-0:448 'inFV1' (in 3-component vector of float)
-0:448 'inFM0' (in 3X3 matrix of float)
-0:448 'inFM1' (in 3X3 matrix of float)
+0:443 Sequence
+0:443 move second child to first child (temp float)
+0:443 'r0' (temp float)
+0:443 component-wise multiply (temp float)
+0:443 'inF0' (in float)
+0:443 'inF1' (in float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r1' (temp 2-component vector of float)
+0:443 vector-scale (temp 2-component vector of float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 'inF0' (in float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r2' (temp 2-component vector of float)
+0:443 vector-scale (temp 2-component vector of float)
+0:443 'inF0' (in float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 Sequence
+0:443 move second child to first child (temp float)
+0:443 'r3' (temp float)
+0:443 dot-product (global float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 'inFV1' (in 2-component vector of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r4' (temp 2-component vector of float)
+0:443 matrix-times-vector (temp 2-component vector of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2-component vector of float)
+0:443 'r5' (temp 2-component vector of float)
+0:443 vector-times-matrix (temp 2-component vector of float)
+0:443 'inFV0' (in 2-component vector of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2X2 matrix of float)
+0:443 'r6' (temp 2X2 matrix of float)
+0:443 matrix-scale (temp 2X2 matrix of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 'inF0' (in float)
+0:443 Sequence
+0:443 move second child to first child (temp 2X2 matrix of float)
+0:443 'r7' (temp 2X2 matrix of float)
+0:443 matrix-scale (temp 2X2 matrix of float)
+0:443 'inF0' (in float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 Sequence
+0:443 move second child to first child (temp 2X2 matrix of float)
+0:443 'r8' (temp 2X2 matrix of float)
+0:443 matrix-multiply (temp 2X2 matrix of float)
+0:443 'inFM0' (in 2X2 matrix of float)
+0:443 'inFM1' (in 2X2 matrix of float)
+0:453 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
+0:449 Function Parameters:
+0:449 'inF0' (in float)
+0:449 'inF1' (in float)
+0:449 'inFV0' (in 3-component vector of float)
+0:449 'inFV1' (in 3-component vector of float)
+0:449 'inFM0' (in 3X3 matrix of float)
+0:449 'inFM1' (in 3X3 matrix of float)
0:? Sequence
-0:449 Sequence
-0:449 move second child to first child (temp float)
-0:449 'r0' (temp float)
-0:449 component-wise multiply (temp float)
-0:449 'inF0' (in float)
-0:449 'inF1' (in float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r1' (temp 3-component vector of float)
-0:449 vector-scale (temp 3-component vector of float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 'inF0' (in float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r2' (temp 3-component vector of float)
-0:449 vector-scale (temp 3-component vector of float)
-0:449 'inF0' (in float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 Sequence
-0:449 move second child to first child (temp float)
-0:449 'r3' (temp float)
-0:449 dot-product (global float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 'inFV1' (in 3-component vector of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r4' (temp 3-component vector of float)
-0:449 matrix-times-vector (temp 3-component vector of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3-component vector of float)
-0:449 'r5' (temp 3-component vector of float)
-0:449 vector-times-matrix (temp 3-component vector of float)
-0:449 'inFV0' (in 3-component vector of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3X3 matrix of float)
-0:449 'r6' (temp 3X3 matrix of float)
-0:449 matrix-scale (temp 3X3 matrix of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 'inF0' (in float)
-0:449 Sequence
-0:449 move second child to first child (temp 3X3 matrix of float)
-0:449 'r7' (temp 3X3 matrix of float)
-0:449 matrix-scale (temp 3X3 matrix of float)
-0:449 'inF0' (in float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 Sequence
-0:449 move second child to first child (temp 3X3 matrix of float)
-0:449 'r8' (temp 3X3 matrix of float)
-0:449 matrix-multiply (temp 3X3 matrix of float)
-0:449 'inFM0' (in 3X3 matrix of float)
-0:449 'inFM1' (in 3X3 matrix of float)
-0:460 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
-0:455 Function Parameters:
-0:455 'inF0' (in float)
-0:455 'inF1' (in float)
-0:455 'inFV0' (in 4-component vector of float)
-0:455 'inFV1' (in 4-component vector of float)
-0:455 'inFM0' (in 4X4 matrix of float)
-0:455 'inFM1' (in 4X4 matrix of float)
+0:450 Sequence
+0:450 move second child to first child (temp float)
+0:450 'r0' (temp float)
+0:450 component-wise multiply (temp float)
+0:450 'inF0' (in float)
+0:450 'inF1' (in float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r1' (temp 3-component vector of float)
+0:450 vector-scale (temp 3-component vector of float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 'inF0' (in float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r2' (temp 3-component vector of float)
+0:450 vector-scale (temp 3-component vector of float)
+0:450 'inF0' (in float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 Sequence
+0:450 move second child to first child (temp float)
+0:450 'r3' (temp float)
+0:450 dot-product (global float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 'inFV1' (in 3-component vector of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r4' (temp 3-component vector of float)
+0:450 matrix-times-vector (temp 3-component vector of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3-component vector of float)
+0:450 'r5' (temp 3-component vector of float)
+0:450 vector-times-matrix (temp 3-component vector of float)
+0:450 'inFV0' (in 3-component vector of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3X3 matrix of float)
+0:450 'r6' (temp 3X3 matrix of float)
+0:450 matrix-scale (temp 3X3 matrix of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 'inF0' (in float)
+0:450 Sequence
+0:450 move second child to first child (temp 3X3 matrix of float)
+0:450 'r7' (temp 3X3 matrix of float)
+0:450 matrix-scale (temp 3X3 matrix of float)
+0:450 'inF0' (in float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 Sequence
+0:450 move second child to first child (temp 3X3 matrix of float)
+0:450 'r8' (temp 3X3 matrix of float)
+0:450 matrix-multiply (temp 3X3 matrix of float)
+0:450 'inFM0' (in 3X3 matrix of float)
+0:450 'inFM1' (in 3X3 matrix of float)
+0:461 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
+0:456 Function Parameters:
+0:456 'inF0' (in float)
+0:456 'inF1' (in float)
+0:456 'inFV0' (in 4-component vector of float)
+0:456 'inFV1' (in 4-component vector of float)
+0:456 'inFM0' (in 4X4 matrix of float)
+0:456 'inFM1' (in 4X4 matrix of float)
0:? Sequence
-0:456 Sequence
-0:456 move second child to first child (temp float)
-0:456 'r0' (temp float)
-0:456 component-wise multiply (temp float)
-0:456 'inF0' (in float)
-0:456 'inF1' (in float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r1' (temp 4-component vector of float)
-0:456 vector-scale (temp 4-component vector of float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 'inF0' (in float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r2' (temp 4-component vector of float)
-0:456 vector-scale (temp 4-component vector of float)
-0:456 'inF0' (in float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 Sequence
-0:456 move second child to first child (temp float)
-0:456 'r3' (temp float)
-0:456 dot-product (global float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 'inFV1' (in 4-component vector of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r4' (temp 4-component vector of float)
-0:456 matrix-times-vector (temp 4-component vector of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4-component vector of float)
-0:456 'r5' (temp 4-component vector of float)
-0:456 vector-times-matrix (temp 4-component vector of float)
-0:456 'inFV0' (in 4-component vector of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4X4 matrix of float)
-0:456 'r6' (temp 4X4 matrix of float)
-0:456 matrix-scale (temp 4X4 matrix of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 'inF0' (in float)
-0:456 Sequence
-0:456 move second child to first child (temp 4X4 matrix of float)
-0:456 'r7' (temp 4X4 matrix of float)
-0:456 matrix-scale (temp 4X4 matrix of float)
-0:456 'inF0' (in float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 Sequence
-0:456 move second child to first child (temp 4X4 matrix of float)
-0:456 'r8' (temp 4X4 matrix of float)
-0:456 matrix-multiply (temp 4X4 matrix of float)
-0:456 'inFM0' (in 4X4 matrix of float)
-0:456 'inFM1' (in 4X4 matrix of float)
-0:484 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
-0:465 Function Parameters:
-0:465 'inF0' (in float)
-0:465 'inF1' (in float)
-0:465 'inFV2' (in 2-component vector of float)
-0:465 'inFV3' (in 3-component vector of float)
-0:465 'inFM2x3' (in 3X2 matrix of float)
-0:465 'inFM3x2' (in 2X3 matrix of float)
-0:465 'inFM3x3' (in 3X3 matrix of float)
-0:465 'inFM3x4' (in 4X3 matrix of float)
-0:465 'inFM2x4' (in 4X2 matrix of float)
+0:457 Sequence
+0:457 move second child to first child (temp float)
+0:457 'r0' (temp float)
+0:457 component-wise multiply (temp float)
+0:457 'inF0' (in float)
+0:457 'inF1' (in float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r1' (temp 4-component vector of float)
+0:457 vector-scale (temp 4-component vector of float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 'inF0' (in float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r2' (temp 4-component vector of float)
+0:457 vector-scale (temp 4-component vector of float)
+0:457 'inF0' (in float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 Sequence
+0:457 move second child to first child (temp float)
+0:457 'r3' (temp float)
+0:457 dot-product (global float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 'inFV1' (in 4-component vector of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r4' (temp 4-component vector of float)
+0:457 matrix-times-vector (temp 4-component vector of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4-component vector of float)
+0:457 'r5' (temp 4-component vector of float)
+0:457 vector-times-matrix (temp 4-component vector of float)
+0:457 'inFV0' (in 4-component vector of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4X4 matrix of float)
+0:457 'r6' (temp 4X4 matrix of float)
+0:457 matrix-scale (temp 4X4 matrix of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 'inF0' (in float)
+0:457 Sequence
+0:457 move second child to first child (temp 4X4 matrix of float)
+0:457 'r7' (temp 4X4 matrix of float)
+0:457 matrix-scale (temp 4X4 matrix of float)
+0:457 'inF0' (in float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 Sequence
+0:457 move second child to first child (temp 4X4 matrix of float)
+0:457 'r8' (temp 4X4 matrix of float)
+0:457 matrix-multiply (temp 4X4 matrix of float)
+0:457 'inFM0' (in 4X4 matrix of float)
+0:457 'inFM1' (in 4X4 matrix of float)
+0:485 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
+0:466 Function Parameters:
+0:466 'inF0' (in float)
+0:466 'inF1' (in float)
+0:466 'inFV2' (in 2-component vector of float)
+0:466 'inFV3' (in 3-component vector of float)
+0:466 'inFM2x3' (in 3X2 matrix of float)
+0:466 'inFM3x2' (in 2X3 matrix of float)
+0:466 'inFM3x3' (in 3X3 matrix of float)
+0:466 'inFM3x4' (in 4X3 matrix of float)
+0:466 'inFM2x4' (in 4X2 matrix of float)
0:? Sequence
-0:466 Sequence
-0:466 move second child to first child (temp float)
-0:466 'r00' (temp float)
-0:466 component-wise multiply (temp float)
-0:466 'inF0' (in float)
-0:466 'inF1' (in float)
0:467 Sequence
-0:467 move second child to first child (temp 2-component vector of float)
-0:467 'r01' (temp 2-component vector of float)
-0:467 vector-scale (temp 2-component vector of float)
-0:467 'inFV2' (in 2-component vector of float)
+0:467 move second child to first child (temp float)
+0:467 'r00' (temp float)
+0:467 component-wise multiply (temp float)
0:467 'inF0' (in float)
+0:467 'inF1' (in float)
0:468 Sequence
-0:468 move second child to first child (temp 3-component vector of float)
-0:468 'r02' (temp 3-component vector of float)
-0:468 vector-scale (temp 3-component vector of float)
-0:468 'inFV3' (in 3-component vector of float)
+0:468 move second child to first child (temp 2-component vector of float)
+0:468 'r01' (temp 2-component vector of float)
+0:468 vector-scale (temp 2-component vector of float)
+0:468 'inFV2' (in 2-component vector of float)
0:468 'inF0' (in float)
0:469 Sequence
-0:469 move second child to first child (temp 2-component vector of float)
-0:469 'r03' (temp 2-component vector of float)
-0:469 vector-scale (temp 2-component vector of float)
+0:469 move second child to first child (temp 3-component vector of float)
+0:469 'r02' (temp 3-component vector of float)
+0:469 vector-scale (temp 3-component vector of float)
+0:469 'inFV3' (in 3-component vector of float)
0:469 'inF0' (in float)
-0:469 'inFV2' (in 2-component vector of float)
0:470 Sequence
-0:470 move second child to first child (temp 3-component vector of float)
-0:470 'r04' (temp 3-component vector of float)
-0:470 vector-scale (temp 3-component vector of float)
+0:470 move second child to first child (temp 2-component vector of float)
+0:470 'r03' (temp 2-component vector of float)
+0:470 vector-scale (temp 2-component vector of float)
0:470 'inF0' (in float)
-0:470 'inFV3' (in 3-component vector of float)
+0:470 'inFV2' (in 2-component vector of float)
0:471 Sequence
-0:471 move second child to first child (temp float)
-0:471 'r05' (temp float)
-0:471 dot-product (global float)
-0:471 'inFV2' (in 2-component vector of float)
-0:471 'inFV2' (in 2-component vector of float)
+0:471 move second child to first child (temp 3-component vector of float)
+0:471 'r04' (temp 3-component vector of float)
+0:471 vector-scale (temp 3-component vector of float)
+0:471 'inF0' (in float)
+0:471 'inFV3' (in 3-component vector of float)
0:472 Sequence
0:472 move second child to first child (temp float)
-0:472 'r06' (temp float)
+0:472 'r05' (temp float)
0:472 dot-product (global float)
-0:472 'inFV3' (in 3-component vector of float)
-0:472 'inFV3' (in 3-component vector of float)
+0:472 'inFV2' (in 2-component vector of float)
+0:472 'inFV2' (in 2-component vector of float)
0:473 Sequence
-0:473 move second child to first child (temp 3-component vector of float)
-0:473 'r07' (temp 3-component vector of float)
-0:473 vector-times-matrix (temp 3-component vector of float)
-0:473 'inFV2' (in 2-component vector of float)
-0:473 'inFM2x3' (in 3X2 matrix of float)
+0:473 move second child to first child (temp float)
+0:473 'r06' (temp float)
+0:473 dot-product (global float)
+0:473 'inFV3' (in 3-component vector of float)
+0:473 'inFV3' (in 3-component vector of float)
0:474 Sequence
-0:474 move second child to first child (temp 2-component vector of float)
-0:474 'r08' (temp 2-component vector of float)
-0:474 vector-times-matrix (temp 2-component vector of float)
-0:474 'inFV3' (in 3-component vector of float)
-0:474 'inFM3x2' (in 2X3 matrix of float)
+0:474 move second child to first child (temp 3-component vector of float)
+0:474 'r07' (temp 3-component vector of float)
+0:474 vector-times-matrix (temp 3-component vector of float)
+0:474 'inFV2' (in 2-component vector of float)
+0:474 'inFM2x3' (in 3X2 matrix of float)
0:475 Sequence
0:475 move second child to first child (temp 2-component vector of float)
-0:475 'r09' (temp 2-component vector of float)
-0:475 matrix-times-vector (temp 2-component vector of float)
-0:475 'inFM2x3' (in 3X2 matrix of float)
+0:475 'r08' (temp 2-component vector of float)
+0:475 vector-times-matrix (temp 2-component vector of float)
0:475 'inFV3' (in 3-component vector of float)
+0:475 'inFM3x2' (in 2X3 matrix of float)
0:476 Sequence
-0:476 move second child to first child (temp 3-component vector of float)
-0:476 'r10' (temp 3-component vector of float)
-0:476 matrix-times-vector (temp 3-component vector of float)
-0:476 'inFM3x2' (in 2X3 matrix of float)
-0:476 'inFV2' (in 2-component vector of float)
+0:476 move second child to first child (temp 2-component vector of float)
+0:476 'r09' (temp 2-component vector of float)
+0:476 matrix-times-vector (temp 2-component vector of float)
+0:476 'inFM2x3' (in 3X2 matrix of float)
+0:476 'inFV3' (in 3-component vector of float)
0:477 Sequence
-0:477 move second child to first child (temp 3X2 matrix of float)
-0:477 'r11' (temp 3X2 matrix of float)
-0:477 matrix-scale (temp 3X2 matrix of float)
-0:477 'inFM2x3' (in 3X2 matrix of float)
-0:477 'inF0' (in float)
+0:477 move second child to first child (temp 3-component vector of float)
+0:477 'r10' (temp 3-component vector of float)
+0:477 matrix-times-vector (temp 3-component vector of float)
+0:477 'inFM3x2' (in 2X3 matrix of float)
+0:477 'inFV2' (in 2-component vector of float)
0:478 Sequence
-0:478 move second child to first child (temp 2X3 matrix of float)
-0:478 'r12' (temp 2X3 matrix of float)
-0:478 matrix-scale (temp 2X3 matrix of float)
-0:478 'inFM3x2' (in 2X3 matrix of float)
+0:478 move second child to first child (temp 3X2 matrix of float)
+0:478 'r11' (temp 3X2 matrix of float)
+0:478 matrix-scale (temp 3X2 matrix of float)
+0:478 'inFM2x3' (in 3X2 matrix of float)
0:478 'inF0' (in float)
0:479 Sequence
-0:479 move second child to first child (temp 2X2 matrix of float)
-0:479 'r13' (temp 2X2 matrix of float)
-0:479 matrix-multiply (temp 2X2 matrix of float)
-0:479 'inFM2x3' (in 3X2 matrix of float)
+0:479 move second child to first child (temp 2X3 matrix of float)
+0:479 'r12' (temp 2X3 matrix of float)
+0:479 matrix-scale (temp 2X3 matrix of float)
0:479 'inFM3x2' (in 2X3 matrix of float)
+0:479 'inF0' (in float)
0:480 Sequence
-0:480 move second child to first child (temp 3X2 matrix of float)
-0:480 'r14' (temp 3X2 matrix of float)
-0:480 matrix-multiply (temp 3X2 matrix of float)
+0:480 move second child to first child (temp 2X2 matrix of float)
+0:480 'r13' (temp 2X2 matrix of float)
+0:480 matrix-multiply (temp 2X2 matrix of float)
0:480 'inFM2x3' (in 3X2 matrix of float)
-0:480 'inFM3x3' (in 3X3 matrix of float)
+0:480 'inFM3x2' (in 2X3 matrix of float)
0:481 Sequence
-0:481 move second child to first child (temp 4X2 matrix of float)
-0:481 'r15' (temp 4X2 matrix of float)
-0:481 matrix-multiply (temp 4X2 matrix of float)
+0:481 move second child to first child (temp 3X2 matrix of float)
+0:481 'r14' (temp 3X2 matrix of float)
+0:481 matrix-multiply (temp 3X2 matrix of float)
0:481 'inFM2x3' (in 3X2 matrix of float)
-0:481 'inFM3x4' (in 4X3 matrix of float)
+0:481 'inFM3x3' (in 3X3 matrix of float)
0:482 Sequence
-0:482 move second child to first child (temp 4X3 matrix of float)
-0:482 'r16' (temp 4X3 matrix of float)
-0:482 matrix-multiply (temp 4X3 matrix of float)
-0:482 'inFM3x2' (in 2X3 matrix of float)
-0:482 'inFM2x4' (in 4X2 matrix of float)
+0:482 move second child to first child (temp 4X2 matrix of float)
+0:482 'r15' (temp 4X2 matrix of float)
+0:482 matrix-multiply (temp 4X2 matrix of float)
+0:482 'inFM2x3' (in 3X2 matrix of float)
+0:482 'inFM3x4' (in 4X3 matrix of float)
+0:483 Sequence
+0:483 move second child to first child (temp 4X3 matrix of float)
+0:483 'r16' (temp 4X3 matrix of float)
+0:483 matrix-multiply (temp 4X3 matrix of float)
+0:483 'inFM3x2' (in 2X3 matrix of float)
+0:483 'inFM2x4' (in 4X2 matrix of float)
0:? Linker Objects
0:? 'gs_ua' (global uint)
0:? 'gs_ub' (global uint)
@@ -5537,13 +5553,13 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 1806
+// Id's are bound by 1812
Capability Shader
Capability DerivativeControl
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 804 831 839 848
+ EntryPoint Fragment 4 "PixelShaderFunction" 810 837 845 854
ExecutionMode 4 OriginUpperLeft
Source HLSL 450
Name 4 "PixelShaderFunction"
@@ -5773,297 +5789,298 @@
Name 695 "r041"
Name 698 "r042"
Name 702 "r039a"
- Name 707 "r043"
- Name 710 "r044"
- Name 713 "r045"
- Name 717 "r046"
- Name 720 "r047"
- Name 724 "r048"
- Name 728 "r049"
- Name 731 "r050"
- Name 735 "r051"
- Name 738 "r052"
- Name 742 "r053"
- Name 746 "r054"
- Name 750 "r055"
- Name 753 "r056"
- Name 756 "r057"
- Name 759 "r058"
- Name 764 "r059"
- Name 767 "r060"
- Name 774 "r061"
- Name 777 "r062"
- Name 782 "r063"
- Name 785 "r064"
- Name 789 "r065"
- Name 792 "r066"
- Name 795 "r067"
- Name 802 "r000"
- Name 804 "inF0"
- Name 807 "r001"
- Name 810 "r002"
- Name 813 "r003"
- Name 816 "r004"
- Name 821 "r005"
- Name 826 "r006"
- Name 829 "r007"
- Name 831 "inU0"
- Name 834 "r009"
- Name 837 "r010"
- Name 839 "inF1"
- Name 842 "r011"
- Name 845 "r012"
- Name 848 "inF2"
- Name 859 "r013"
- Name 862 "r014"
- Name 865 "r015"
- Name 868 "r016"
- Name 871 "r017"
- Name 874 "r018"
- Name 877 "r019"
- Name 880 "r020"
- Name 883 "r021"
- Name 886 "r022"
- Name 889 "r023"
- Name 893 "r024"
- Name 897 "r025"
- Name 909 "r029"
- Name 912 "r030"
- Name 915 "r031"
- Name 920 "r032"
- Name 925 "r033"
- Name 927 "r034"
- Name 930 "r036"
- Name 934 "r037"
- Name 937 "r038"
- Name 939 "ResType"
- Name 943 "r039"
- Name 947 "r040"
- Name 950 "r041"
- Name 953 "r042"
- Name 957 "r039a"
- Name 962 "r043"
- Name 965 "r044"
- Name 968 "r045"
- Name 972 "r046"
- Name 975 "r047"
- Name 979 "r048"
- Name 983 "r049"
- Name 986 "r050"
- Name 990 "r051"
- Name 993 "r052"
- Name 997 "r053"
- Name 1001 "r054"
- Name 1005 "r055"
- Name 1008 "r056"
- Name 1011 "r057"
- Name 1014 "r058"
- Name 1019 "r059"
- Name 1022 "r060"
- Name 1029 "r061"
- Name 1032 "r062"
- Name 1037 "r063"
- Name 1040 "r064"
- Name 1044 "r065"
- Name 1047 "r066"
- Name 1050 "r067"
- Name 1056 "r000"
- Name 1059 "r001"
- Name 1064 "r003"
- Name 1067 "r004"
- Name 1070 "r005"
- Name 1073 "r006"
- Name 1077 "r007"
- Name 1088 "r008"
- Name 1093 "r009"
- Name 1096 "r010"
- Name 1099 "r011"
- Name 1102 "r012"
- Name 1105 "r013"
- Name 1108 "r014"
- Name 1111 "r015"
- Name 1114 "r016"
- Name 1117 "r017"
- Name 1120 "r018"
- Name 1123 "r019"
- Name 1126 "R020"
- Name 1129 "r021"
- Name 1132 "r022"
- Name 1142 "r023"
- Name 1145 "r024"
- Name 1147 "ResType"
- Name 1151 "r025"
- Name 1154 "r026"
- Name 1158 "r026a"
- Name 1163 "r027"
- Name 1166 "r028"
- Name 1170 "r029"
- Name 1173 "r030"
- Name 1177 "r031"
- Name 1181 "r032"
- Name 1185 "r033"
- Name 1188 "r034"
- Name 1191 "r035"
- Name 1194 "r036"
- Name 1199 "r037"
- Name 1202 "r038"
- Name 1209 "r039"
- Name 1212 "r049"
- Name 1217 "r041"
- Name 1220 "r042"
- Name 1224 "r043"
- Name 1227 "r044"
- Name 1232 "r046"
- Name 1239 "r000"
- Name 1242 "r001"
- Name 1247 "r003"
- Name 1250 "r004"
- Name 1253 "r005"
- Name 1256 "r006"
- Name 1260 "r007"
- Name 1271 "r008"
- Name 1276 "r009"
- Name 1279 "r010"
- Name 1282 "r011"
- Name 1285 "r012"
- Name 1288 "r013"
- Name 1291 "r014"
- Name 1294 "r015"
- Name 1297 "r016"
- Name 1300 "r017"
- Name 1303 "r018"
- Name 1306 "r019"
- Name 1309 "R020"
- Name 1312 "r021"
- Name 1315 "r022"
- Name 1328 "r023"
- Name 1331 "r024"
- Name 1333 "ResType"
- Name 1337 "r025"
- Name 1340 "r026"
- Name 1344 "r026a"
- Name 1349 "r027"
- Name 1352 "r028"
- Name 1356 "r029"
- Name 1359 "r030"
- Name 1363 "r031"
- Name 1367 "r032"
- Name 1371 "r033"
- Name 1374 "r034"
- Name 1377 "r035"
- Name 1380 "r036"
- Name 1385 "r037"
- Name 1388 "r038"
- Name 1395 "r039"
- Name 1398 "r049"
- Name 1403 "r041"
- Name 1406 "r042"
- Name 1410 "r043"
- Name 1413 "r044"
- Name 1418 "r046"
- Name 1425 "r000"
- Name 1428 "r001"
- Name 1433 "r003"
- Name 1436 "r004"
- Name 1439 "r005"
- Name 1442 "r006"
- Name 1446 "r007"
- Name 1457 "r008"
- Name 1462 "r009"
- Name 1465 "r010"
- Name 1468 "r011"
- Name 1471 "r012"
- Name 1474 "r013"
- Name 1477 "r014"
- Name 1480 "r015"
- Name 1483 "r016"
- Name 1486 "r017"
- Name 1489 "r018"
- Name 1492 "r019"
- Name 1495 "R020"
- Name 1498 "r021"
- Name 1501 "r022"
- Name 1517 "r023"
- Name 1520 "r024"
- Name 1522 "ResType"
- Name 1526 "r025"
- Name 1529 "r026"
- Name 1533 "r026a"
- Name 1538 "r027"
- Name 1541 "r028"
- Name 1545 "r029"
- Name 1548 "r030"
- Name 1552 "r031"
- Name 1556 "r032"
- Name 1560 "r033"
- Name 1563 "r034"
- Name 1566 "r035"
- Name 1569 "r036"
- Name 1574 "r037"
- Name 1577 "r038"
- Name 1584 "r039"
- Name 1587 "r049"
- Name 1592 "r041"
- Name 1595 "r042"
- Name 1599 "r043"
- Name 1602 "r044"
- Name 1607 "r046"
- Name 1614 "r0"
- Name 1618 "r1"
- Name 1622 "r2"
- Name 1626 "r3"
- Name 1630 "r4"
- Name 1634 "r5"
- Name 1638 "r6"
- Name 1642 "r7"
- Name 1646 "r8"
- Name 1650 "r0"
- Name 1654 "r1"
- Name 1658 "r2"
- Name 1662 "r3"
- Name 1666 "r4"
- Name 1670 "r5"
- Name 1674 "r6"
- Name 1678 "r7"
- Name 1682 "r8"
- Name 1686 "r0"
- Name 1690 "r1"
- Name 1694 "r2"
- Name 1698 "r3"
- Name 1702 "r4"
- Name 1706 "r5"
- Name 1710 "r6"
- Name 1714 "r7"
- Name 1718 "r8"
- Name 1722 "r00"
- Name 1726 "r01"
- Name 1730 "r02"
- Name 1734 "r03"
- Name 1738 "r04"
- Name 1742 "r05"
- Name 1746 "r06"
- Name 1750 "r07"
- Name 1754 "r08"
- Name 1758 "r09"
- Name 1762 "r10"
- Name 1766 "r11"
- Name 1770 "r12"
- Name 1774 "r13"
- Name 1778 "r14"
- Name 1782 "r15"
- Name 1786 "r16"
- Name 1791 "gs_ua"
- Name 1792 "gs_ub"
- Name 1793 "gs_uc"
- Name 1795 "gs_ua2"
- Name 1796 "gs_ub2"
- Name 1797 "gs_uc2"
- Name 1799 "gs_ua3"
- Name 1800 "gs_ub3"
- Name 1801 "gs_uc3"
- Name 1803 "gs_ua4"
- Name 1804 "gs_ub4"
- Name 1805 "gs_uc4"
+ Name 707 "r039b"
+ Name 713 "r043"
+ Name 716 "r044"
+ Name 719 "r045"
+ Name 723 "r046"
+ Name 726 "r047"
+ Name 730 "r048"
+ Name 734 "r049"
+ Name 737 "r050"
+ Name 741 "r051"
+ Name 744 "r052"
+ Name 748 "r053"
+ Name 752 "r054"
+ Name 756 "r055"
+ Name 759 "r056"
+ Name 762 "r057"
+ Name 765 "r058"
+ Name 770 "r059"
+ Name 773 "r060"
+ Name 780 "r061"
+ Name 783 "r062"
+ Name 788 "r063"
+ Name 791 "r064"
+ Name 795 "r065"
+ Name 798 "r066"
+ Name 801 "r067"
+ Name 808 "r000"
+ Name 810 "inF0"
+ Name 813 "r001"
+ Name 816 "r002"
+ Name 819 "r003"
+ Name 822 "r004"
+ Name 827 "r005"
+ Name 832 "r006"
+ Name 835 "r007"
+ Name 837 "inU0"
+ Name 840 "r009"
+ Name 843 "r010"
+ Name 845 "inF1"
+ Name 848 "r011"
+ Name 851 "r012"
+ Name 854 "inF2"
+ Name 865 "r013"
+ Name 868 "r014"
+ Name 871 "r015"
+ Name 874 "r016"
+ Name 877 "r017"
+ Name 880 "r018"
+ Name 883 "r019"
+ Name 886 "r020"
+ Name 889 "r021"
+ Name 892 "r022"
+ Name 895 "r023"
+ Name 899 "r024"
+ Name 903 "r025"
+ Name 915 "r029"
+ Name 918 "r030"
+ Name 921 "r031"
+ Name 926 "r032"
+ Name 931 "r033"
+ Name 933 "r034"
+ Name 936 "r036"
+ Name 940 "r037"
+ Name 943 "r038"
+ Name 945 "ResType"
+ Name 949 "r039"
+ Name 953 "r040"
+ Name 956 "r041"
+ Name 959 "r042"
+ Name 963 "r039a"
+ Name 968 "r043"
+ Name 971 "r044"
+ Name 974 "r045"
+ Name 978 "r046"
+ Name 981 "r047"
+ Name 985 "r048"
+ Name 989 "r049"
+ Name 992 "r050"
+ Name 996 "r051"
+ Name 999 "r052"
+ Name 1003 "r053"
+ Name 1007 "r054"
+ Name 1011 "r055"
+ Name 1014 "r056"
+ Name 1017 "r057"
+ Name 1020 "r058"
+ Name 1025 "r059"
+ Name 1028 "r060"
+ Name 1035 "r061"
+ Name 1038 "r062"
+ Name 1043 "r063"
+ Name 1046 "r064"
+ Name 1050 "r065"
+ Name 1053 "r066"
+ Name 1056 "r067"
+ Name 1062 "r000"
+ Name 1065 "r001"
+ Name 1070 "r003"
+ Name 1073 "r004"
+ Name 1076 "r005"
+ Name 1079 "r006"
+ Name 1083 "r007"
+ Name 1094 "r008"
+ Name 1099 "r009"
+ Name 1102 "r010"
+ Name 1105 "r011"
+ Name 1108 "r012"
+ Name 1111 "r013"
+ Name 1114 "r014"
+ Name 1117 "r015"
+ Name 1120 "r016"
+ Name 1123 "r017"
+ Name 1126 "r018"
+ Name 1129 "r019"
+ Name 1132 "R020"
+ Name 1135 "r021"
+ Name 1138 "r022"
+ Name 1148 "r023"
+ Name 1151 "r024"
+ Name 1153 "ResType"
+ Name 1157 "r025"
+ Name 1160 "r026"
+ Name 1164 "r026a"
+ Name 1169 "r027"
+ Name 1172 "r028"
+ Name 1176 "r029"
+ Name 1179 "r030"
+ Name 1183 "r031"
+ Name 1187 "r032"
+ Name 1191 "r033"
+ Name 1194 "r034"
+ Name 1197 "r035"
+ Name 1200 "r036"
+ Name 1205 "r037"
+ Name 1208 "r038"
+ Name 1215 "r039"
+ Name 1218 "r049"
+ Name 1223 "r041"
+ Name 1226 "r042"
+ Name 1230 "r043"
+ Name 1233 "r044"
+ Name 1238 "r046"
+ Name 1245 "r000"
+ Name 1248 "r001"
+ Name 1253 "r003"
+ Name 1256 "r004"
+ Name 1259 "r005"
+ Name 1262 "r006"
+ Name 1266 "r007"
+ Name 1277 "r008"
+ Name 1282 "r009"
+ Name 1285 "r010"
+ Name 1288 "r011"
+ Name 1291 "r012"
+ Name 1294 "r013"
+ Name 1297 "r014"
+ Name 1300 "r015"
+ Name 1303 "r016"
+ Name 1306 "r017"
+ Name 1309 "r018"
+ Name 1312 "r019"
+ Name 1315 "R020"
+ Name 1318 "r021"
+ Name 1321 "r022"
+ Name 1334 "r023"
+ Name 1337 "r024"
+ Name 1339 "ResType"
+ Name 1343 "r025"
+ Name 1346 "r026"
+ Name 1350 "r026a"
+ Name 1355 "r027"
+ Name 1358 "r028"
+ Name 1362 "r029"
+ Name 1365 "r030"
+ Name 1369 "r031"
+ Name 1373 "r032"
+ Name 1377 "r033"
+ Name 1380 "r034"
+ Name 1383 "r035"
+ Name 1386 "r036"
+ Name 1391 "r037"
+ Name 1394 "r038"
+ Name 1401 "r039"
+ Name 1404 "r049"
+ Name 1409 "r041"
+ Name 1412 "r042"
+ Name 1416 "r043"
+ Name 1419 "r044"
+ Name 1424 "r046"
+ Name 1431 "r000"
+ Name 1434 "r001"
+ Name 1439 "r003"
+ Name 1442 "r004"
+ Name 1445 "r005"
+ Name 1448 "r006"
+ Name 1452 "r007"
+ Name 1463 "r008"
+ Name 1468 "r009"
+ Name 1471 "r010"
+ Name 1474 "r011"
+ Name 1477 "r012"
+ Name 1480 "r013"
+ Name 1483 "r014"
+ Name 1486 "r015"
+ Name 1489 "r016"
+ Name 1492 "r017"
+ Name 1495 "r018"
+ Name 1498 "r019"
+ Name 1501 "R020"
+ Name 1504 "r021"
+ Name 1507 "r022"
+ Name 1523 "r023"
+ Name 1526 "r024"
+ Name 1528 "ResType"
+ Name 1532 "r025"
+ Name 1535 "r026"
+ Name 1539 "r026a"
+ Name 1544 "r027"
+ Name 1547 "r028"
+ Name 1551 "r029"
+ Name 1554 "r030"
+ Name 1558 "r031"
+ Name 1562 "r032"
+ Name 1566 "r033"
+ Name 1569 "r034"
+ Name 1572 "r035"
+ Name 1575 "r036"
+ Name 1580 "r037"
+ Name 1583 "r038"
+ Name 1590 "r039"
+ Name 1593 "r049"
+ Name 1598 "r041"
+ Name 1601 "r042"
+ Name 1605 "r043"
+ Name 1608 "r044"
+ Name 1613 "r046"
+ Name 1620 "r0"
+ Name 1624 "r1"
+ Name 1628 "r2"
+ Name 1632 "r3"
+ Name 1636 "r4"
+ Name 1640 "r5"
+ Name 1644 "r6"
+ Name 1648 "r7"
+ Name 1652 "r8"
+ Name 1656 "r0"
+ Name 1660 "r1"
+ Name 1664 "r2"
+ Name 1668 "r3"
+ Name 1672 "r4"
+ Name 1676 "r5"
+ Name 1680 "r6"
+ Name 1684 "r7"
+ Name 1688 "r8"
+ Name 1692 "r0"
+ Name 1696 "r1"
+ Name 1700 "r2"
+ Name 1704 "r3"
+ Name 1708 "r4"
+ Name 1712 "r5"
+ Name 1716 "r6"
+ Name 1720 "r7"
+ Name 1724 "r8"
+ Name 1728 "r00"
+ Name 1732 "r01"
+ Name 1736 "r02"
+ Name 1740 "r03"
+ Name 1744 "r04"
+ Name 1748 "r05"
+ Name 1752 "r06"
+ Name 1756 "r07"
+ Name 1760 "r08"
+ Name 1764 "r09"
+ Name 1768 "r10"
+ Name 1772 "r11"
+ Name 1776 "r12"
+ Name 1780 "r13"
+ Name 1784 "r14"
+ Name 1788 "r15"
+ Name 1792 "r16"
+ Name 1797 "gs_ua"
+ Name 1798 "gs_ub"
+ Name 1799 "gs_uc"
+ Name 1801 "gs_ua2"
+ Name 1802 "gs_ub2"
+ Name 1803 "gs_uc2"
+ Name 1805 "gs_ua3"
+ Name 1806 "gs_ub3"
+ Name 1807 "gs_uc3"
+ Name 1809 "gs_ua4"
+ Name 1810 "gs_ub4"
+ Name 1811 "gs_uc4"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -6140,365 +6157,366 @@
668: 38(ivec3) ConstantComposite 278 383 667
684(ResType): TypeStruct 36(fvec3) 578(ivec3)
691: TypePointer Function 606(bvec3)
- 751: 38(ivec3) ConstantComposite 512 278 383
- 798: 6(float) Constant 1077936128
- 799: 36(fvec3) ConstantComposite 274 509 798
- 803: TypePointer Input 64(fvec4)
- 804(inF0): 803(ptr) Variable Input
- 819: TypeVector 138(int) 4
- 820: TypePointer Function 819(ivec4)
- 824: TypeVector 8(int) 4
- 825: TypePointer Function 824(ivec4)
- 830: TypePointer Input 824(ivec4)
- 831(inU0): 830(ptr) Variable Input
- 839(inF1): 803(ptr) Variable Input
- 848(inF2): 803(ptr) Variable Input
- 852: 64(fvec4) ConstantComposite 165 165 165 165
- 853: TypeVector 121(bool) 4
- 866: 824(ivec4) ConstantComposite 177 383 619 278
- 898: TypePointer Input 6(float)
- 921: 8(int) Constant 9
- 922: 8(int) Constant 10
- 923: 824(ivec4) ConstantComposite 177 427 921 922
- 939(ResType): TypeStruct 64(fvec4) 819(ivec4)
- 946: TypePointer Function 853(bvec4)
- 1006: 824(ivec4) ConstantComposite 512 278 383 667
- 1053: 6(float) Constant 1082130432
- 1054: 64(fvec4) ConstantComposite 274 509 798 1053
- 1081: 48 ConstantComposite 369 369
- 1082: TypeMatrix 370(bvec2) 2
- 1147(ResType): TypeStruct 48 342(ivec2)
- 1235: 24(fvec2) ConstantComposite 509 509
- 1236: 48 ConstantComposite 1235 1235
- 1264: 56 ConstantComposite 605 605 605
- 1265: TypeMatrix 606(bvec3) 3
- 1333(ResType): TypeStruct 56 578(ivec3)
- 1421: 36(fvec3) ConstantComposite 798 798 798
- 1422: 56 ConstantComposite 1421 1421 1421
- 1450: 65 ConstantComposite 852 852 852 852
- 1451: TypeMatrix 853(bvec4) 4
- 1522(ResType): TypeStruct 65 819(ivec4)
- 1610: 64(fvec4) ConstantComposite 1053 1053 1053 1053
- 1611: 65 ConstantComposite 1610 1610 1610 1610
- 1790: TypePointer Private 8(int)
- 1791(gs_ua): 1790(ptr) Variable Private
- 1792(gs_ub): 1790(ptr) Variable Private
- 1793(gs_uc): 1790(ptr) Variable Private
- 1794: TypePointer Private 26(ivec2)
- 1795(gs_ua2): 1794(ptr) Variable Private
- 1796(gs_ub2): 1794(ptr) Variable Private
- 1797(gs_uc2): 1794(ptr) Variable Private
- 1798: TypePointer Private 38(ivec3)
- 1799(gs_ua3): 1798(ptr) Variable Private
- 1800(gs_ub3): 1798(ptr) Variable Private
- 1801(gs_uc3): 1798(ptr) Variable Private
- 1802: TypePointer Private 824(ivec4)
- 1803(gs_ua4): 1802(ptr) Variable Private
- 1804(gs_ub4): 1802(ptr) Variable Private
- 1805(gs_uc4): 1802(ptr) Variable Private
+ 710: 6(float) Constant 1050253722
+ 757: 38(ivec3) ConstantComposite 512 278 383
+ 804: 6(float) Constant 1077936128
+ 805: 36(fvec3) ConstantComposite 274 509 804
+ 809: TypePointer Input 64(fvec4)
+ 810(inF0): 809(ptr) Variable Input
+ 825: TypeVector 138(int) 4
+ 826: TypePointer Function 825(ivec4)
+ 830: TypeVector 8(int) 4
+ 831: TypePointer Function 830(ivec4)
+ 836: TypePointer Input 830(ivec4)
+ 837(inU0): 836(ptr) Variable Input
+ 845(inF1): 809(ptr) Variable Input
+ 854(inF2): 809(ptr) Variable Input
+ 858: 64(fvec4) ConstantComposite 165 165 165 165
+ 859: TypeVector 121(bool) 4
+ 872: 830(ivec4) ConstantComposite 177 383 619 278
+ 904: TypePointer Input 6(float)
+ 927: 8(int) Constant 9
+ 928: 8(int) Constant 10
+ 929: 830(ivec4) ConstantComposite 177 427 927 928
+ 945(ResType): TypeStruct 64(fvec4) 825(ivec4)
+ 952: TypePointer Function 859(bvec4)
+ 1012: 830(ivec4) ConstantComposite 512 278 383 667
+ 1059: 6(float) Constant 1082130432
+ 1060: 64(fvec4) ConstantComposite 274 509 804 1059
+ 1087: 48 ConstantComposite 369 369
+ 1088: TypeMatrix 370(bvec2) 2
+ 1153(ResType): TypeStruct 48 342(ivec2)
+ 1241: 24(fvec2) ConstantComposite 509 509
+ 1242: 48 ConstantComposite 1241 1241
+ 1270: 56 ConstantComposite 605 605 605
+ 1271: TypeMatrix 606(bvec3) 3
+ 1339(ResType): TypeStruct 56 578(ivec3)
+ 1427: 36(fvec3) ConstantComposite 804 804 804
+ 1428: 56 ConstantComposite 1427 1427 1427
+ 1456: 65 ConstantComposite 858 858 858 858
+ 1457: TypeMatrix 859(bvec4) 4
+ 1528(ResType): TypeStruct 65 825(ivec4)
+ 1616: 64(fvec4) ConstantComposite 1059 1059 1059 1059
+ 1617: 65 ConstantComposite 1616 1616 1616 1616
+ 1796: TypePointer Private 8(int)
+ 1797(gs_ua): 1796(ptr) Variable Private
+ 1798(gs_ub): 1796(ptr) Variable Private
+ 1799(gs_uc): 1796(ptr) Variable Private
+ 1800: TypePointer Private 26(ivec2)
+ 1801(gs_ua2): 1800(ptr) Variable Private
+ 1802(gs_ub2): 1800(ptr) Variable Private
+ 1803(gs_uc2): 1800(ptr) Variable Private
+ 1804: TypePointer Private 38(ivec3)
+ 1805(gs_ua3): 1804(ptr) Variable Private
+ 1806(gs_ub3): 1804(ptr) Variable Private
+ 1807(gs_uc3): 1804(ptr) Variable Private
+ 1808: TypePointer Private 830(ivec4)
+ 1809(gs_ua4): 1808(ptr) Variable Private
+ 1810(gs_ub4): 1808(ptr) Variable Private
+ 1811(gs_uc4): 1808(ptr) Variable Private
4(PixelShaderFunction): 2 Function None 3
5: Label
- 802(r000): 122(ptr) Variable Function
- 807(r001): 91(ptr) Variable Function
- 810(r002): 91(ptr) Variable Function
- 813(r003): 122(ptr) Variable Function
- 816(r004): 91(ptr) Variable Function
- 821(r005): 820(ptr) Variable Function
- 826(r006): 825(ptr) Variable Function
- 829(r007): 91(ptr) Variable Function
- 834(r009): 91(ptr) Variable Function
- 837(r010): 91(ptr) Variable Function
- 842(r011): 91(ptr) Variable Function
- 845(r012): 91(ptr) Variable Function
- 859(r013): 91(ptr) Variable Function
- 862(r014): 91(ptr) Variable Function
- 865(r015): 825(ptr) Variable Function
- 868(r016): 91(ptr) Variable Function
- 871(r017): 91(ptr) Variable Function
- 874(r018): 91(ptr) Variable Function
- 877(r019): 91(ptr) Variable Function
- 880(r020): 91(ptr) Variable Function
- 883(r021): 91(ptr) Variable Function
- 886(r022): 91(ptr) Variable Function
- 889(r023): 7(ptr) Variable Function
- 893(r024): 7(ptr) Variable Function
- 897(r025): 91(ptr) Variable Function
- 909(r029): 91(ptr) Variable Function
- 912(r030): 91(ptr) Variable Function
- 915(r031): 91(ptr) Variable Function
- 920(r032): 825(ptr) Variable Function
- 925(r033): 825(ptr) Variable Function
- 927(r034): 91(ptr) Variable Function
- 930(r036): 91(ptr) Variable Function
- 934(r037): 91(ptr) Variable Function
- 937(r038): 91(ptr) Variable Function
- 943(r039): 91(ptr) Variable Function
- 947(r040): 946(ptr) Variable Function
- 950(r041): 946(ptr) Variable Function
- 953(r042): 91(ptr) Variable Function
- 957(r039a): 91(ptr) Variable Function
- 962(r043): 7(ptr) Variable Function
- 965(r044): 91(ptr) Variable Function
- 968(r045): 91(ptr) Variable Function
- 972(r046): 91(ptr) Variable Function
- 975(r047): 91(ptr) Variable Function
- 979(r048): 91(ptr) Variable Function
- 983(r049): 91(ptr) Variable Function
- 986(r050): 91(ptr) Variable Function
- 990(r051): 91(ptr) Variable Function
- 993(r052): 91(ptr) Variable Function
- 997(r053): 91(ptr) Variable Function
- 1001(r054): 91(ptr) Variable Function
- 1005(r055): 825(ptr) Variable Function
- 1008(r056): 91(ptr) Variable Function
- 1011(r057): 91(ptr) Variable Function
- 1014(r058): 91(ptr) Variable Function
- 1019(r059): 91(ptr) Variable Function
- 1022(r060): 91(ptr) Variable Function
- 1029(r061): 91(ptr) Variable Function
- 1032(r062): 91(ptr) Variable Function
- 1037(r063): 91(ptr) Variable Function
- 1040(r064): 91(ptr) Variable Function
- 1044(r065): 91(ptr) Variable Function
- 1047(r066): 91(ptr) Variable Function
- 1050(r067): 91(ptr) Variable Function
- 805: 64(fvec4) Load 804(inF0)
- 806: 121(bool) All 805
- Store 802(r000) 806
- 808: 64(fvec4) Load 804(inF0)
- 809: 64(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 808
- Store 807(r001) 809
- 811: 64(fvec4) Load 804(inF0)
- 812: 64(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 811
- Store 810(r002) 812
- 814: 64(fvec4) Load 804(inF0)
- 815: 121(bool) Any 814
- Store 813(r003) 815
- 817: 64(fvec4) Load 804(inF0)
- 818: 64(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 817
- Store 816(r004) 818
- 822: 64(fvec4) Load 804(inF0)
- 823: 819(ivec4) Bitcast 822
- Store 821(r005) 823
- 827: 64(fvec4) Load 804(inF0)
- 828: 824(ivec4) Bitcast 827
- Store 826(r006) 828
- 832: 824(ivec4) Load 831(inU0)
- 833: 64(fvec4) Bitcast 832
- Store 829(r007) 833
- 835: 64(fvec4) Load 804(inF0)
- 836: 64(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 835
- Store 834(r009) 836
- 838: 64(fvec4) Load 804(inF0)
- 840: 64(fvec4) Load 839(inF1)
- 841: 64(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 838 840
- Store 837(r010) 841
- 843: 64(fvec4) Load 804(inF0)
- 844: 64(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 843
- Store 842(r011) 844
- 846: 64(fvec4) Load 804(inF0)
- 847: 64(fvec4) Load 839(inF1)
- 849: 64(fvec4) Load 848(inF2)
- 850: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 846 847 849
- Store 845(r012) 850
- 851: 64(fvec4) Load 804(inF0)
- 854: 853(bvec4) FOrdLessThan 851 852
- 855: 121(bool) Any 854
- SelectionMerge 857 None
- BranchConditional 855 856 857
- 856: Label
+ 808(r000): 122(ptr) Variable Function
+ 813(r001): 91(ptr) Variable Function
+ 816(r002): 91(ptr) Variable Function
+ 819(r003): 122(ptr) Variable Function
+ 822(r004): 91(ptr) Variable Function
+ 827(r005): 826(ptr) Variable Function
+ 832(r006): 831(ptr) Variable Function
+ 835(r007): 91(ptr) Variable Function
+ 840(r009): 91(ptr) Variable Function
+ 843(r010): 91(ptr) Variable Function
+ 848(r011): 91(ptr) Variable Function
+ 851(r012): 91(ptr) Variable Function
+ 865(r013): 91(ptr) Variable Function
+ 868(r014): 91(ptr) Variable Function
+ 871(r015): 831(ptr) Variable Function
+ 874(r016): 91(ptr) Variable Function
+ 877(r017): 91(ptr) Variable Function
+ 880(r018): 91(ptr) Variable Function
+ 883(r019): 91(ptr) Variable Function
+ 886(r020): 91(ptr) Variable Function
+ 889(r021): 91(ptr) Variable Function
+ 892(r022): 91(ptr) Variable Function
+ 895(r023): 7(ptr) Variable Function
+ 899(r024): 7(ptr) Variable Function
+ 903(r025): 91(ptr) Variable Function
+ 915(r029): 91(ptr) Variable Function
+ 918(r030): 91(ptr) Variable Function
+ 921(r031): 91(ptr) Variable Function
+ 926(r032): 831(ptr) Variable Function
+ 931(r033): 831(ptr) Variable Function
+ 933(r034): 91(ptr) Variable Function
+ 936(r036): 91(ptr) Variable Function
+ 940(r037): 91(ptr) Variable Function
+ 943(r038): 91(ptr) Variable Function
+ 949(r039): 91(ptr) Variable Function
+ 953(r040): 952(ptr) Variable Function
+ 956(r041): 952(ptr) Variable Function
+ 959(r042): 91(ptr) Variable Function
+ 963(r039a): 91(ptr) Variable Function
+ 968(r043): 7(ptr) Variable Function
+ 971(r044): 91(ptr) Variable Function
+ 974(r045): 91(ptr) Variable Function
+ 978(r046): 91(ptr) Variable Function
+ 981(r047): 91(ptr) Variable Function
+ 985(r048): 91(ptr) Variable Function
+ 989(r049): 91(ptr) Variable Function
+ 992(r050): 91(ptr) Variable Function
+ 996(r051): 91(ptr) Variable Function
+ 999(r052): 91(ptr) Variable Function
+ 1003(r053): 91(ptr) Variable Function
+ 1007(r054): 91(ptr) Variable Function
+ 1011(r055): 831(ptr) Variable Function
+ 1014(r056): 91(ptr) Variable Function
+ 1017(r057): 91(ptr) Variable Function
+ 1020(r058): 91(ptr) Variable Function
+ 1025(r059): 91(ptr) Variable Function
+ 1028(r060): 91(ptr) Variable Function
+ 1035(r061): 91(ptr) Variable Function
+ 1038(r062): 91(ptr) Variable Function
+ 1043(r063): 91(ptr) Variable Function
+ 1046(r064): 91(ptr) Variable Function
+ 1050(r065): 91(ptr) Variable Function
+ 1053(r066): 91(ptr) Variable Function
+ 1056(r067): 91(ptr) Variable Function
+ 811: 64(fvec4) Load 810(inF0)
+ 812: 121(bool) All 811
+ Store 808(r000) 812
+ 814: 64(fvec4) Load 810(inF0)
+ 815: 64(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 814
+ Store 813(r001) 815
+ 817: 64(fvec4) Load 810(inF0)
+ 818: 64(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 817
+ Store 816(r002) 818
+ 820: 64(fvec4) Load 810(inF0)
+ 821: 121(bool) Any 820
+ Store 819(r003) 821
+ 823: 64(fvec4) Load 810(inF0)
+ 824: 64(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 823
+ Store 822(r004) 824
+ 828: 64(fvec4) Load 810(inF0)
+ 829: 825(ivec4) Bitcast 828
+ Store 827(r005) 829
+ 833: 64(fvec4) Load 810(inF0)
+ 834: 830(ivec4) Bitcast 833
+ Store 832(r006) 834
+ 838: 830(ivec4) Load 837(inU0)
+ 839: 64(fvec4) Bitcast 838
+ Store 835(r007) 839
+ 841: 64(fvec4) Load 810(inF0)
+ 842: 64(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 841
+ Store 840(r009) 842
+ 844: 64(fvec4) Load 810(inF0)
+ 846: 64(fvec4) Load 845(inF1)
+ 847: 64(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 844 846
+ Store 843(r010) 847
+ 849: 64(fvec4) Load 810(inF0)
+ 850: 64(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 849
+ Store 848(r011) 850
+ 852: 64(fvec4) Load 810(inF0)
+ 853: 64(fvec4) Load 845(inF1)
+ 855: 64(fvec4) Load 854(inF2)
+ 856: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 852 853 855
+ Store 851(r012) 856
+ 857: 64(fvec4) Load 810(inF0)
+ 860: 859(bvec4) FOrdLessThan 857 858
+ 861: 121(bool) Any 860
+ SelectionMerge 863 None
+ BranchConditional 861 862 863
+ 862: Label
Kill
- 857: Label
- 860: 64(fvec4) Load 804(inF0)
- 861: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 860
- Store 859(r013) 861
- 863: 64(fvec4) Load 804(inF0)
- 864: 64(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 863
- Store 862(r014) 864
- 867: 824(ivec4) BitCount 866
- Store 865(r015) 867
- 869: 64(fvec4) Load 804(inF0)
- 870: 64(fvec4) DPdx 869
- Store 868(r016) 870
- 872: 64(fvec4) Load 804(inF0)
- 873: 64(fvec4) DPdxCoarse 872
- Store 871(r017) 873
- 875: 64(fvec4) Load 804(inF0)
- 876: 64(fvec4) DPdxFine 875
- Store 874(r018) 876
- 878: 64(fvec4) Load 804(inF0)
- 879: 64(fvec4) DPdy 878
- Store 877(r019) 879
- 881: 64(fvec4) Load 804(inF0)
- 882: 64(fvec4) DPdyCoarse 881
- Store 880(r020) 882
- 884: 64(fvec4) Load 804(inF0)
- 885: 64(fvec4) DPdyFine 884
- Store 883(r021) 885
- 887: 64(fvec4) Load 804(inF0)
- 888: 64(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 887
- Store 886(r022) 888
- 890: 64(fvec4) Load 804(inF0)
- 891: 64(fvec4) Load 839(inF1)
- 892: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 890 891
- Store 889(r023) 892
- 894: 64(fvec4) Load 804(inF0)
- 895: 64(fvec4) Load 839(inF1)
- 896: 6(float) Dot 894 895
- Store 893(r024) 896
- 899: 898(ptr) AccessChain 804(inF0) 512
- 900: 6(float) Load 899
- 901: 898(ptr) AccessChain 839(inF1) 512
- 902: 6(float) Load 901
- 903: 6(float) FMul 900 902
- 904: 898(ptr) AccessChain 804(inF0) 278
- 905: 6(float) Load 904
- 906: 898(ptr) AccessChain 839(inF1) 383
- 907: 6(float) Load 906
- 908: 64(fvec4) CompositeConstruct 274 903 905 907
- Store 897(r025) 908
- 910: 64(fvec4) Load 804(inF0)
- 911: 64(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 910
- Store 909(r029) 911
- 913: 64(fvec4) Load 804(inF0)
- 914: 64(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 913
- Store 912(r030) 914
- 916: 64(fvec4) Load 804(inF0)
- 917: 64(fvec4) Load 839(inF1)
- 918: 64(fvec4) Load 848(inF2)
- 919: 64(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 916 917 918
- Store 915(r031) 919
- 924: 824(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 923
- Store 920(r032) 924
- 926: 824(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 923
- Store 925(r033) 926
- 928: 64(fvec4) Load 804(inF0)
- 929: 64(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 928
- Store 927(r034) 929
- 931: 64(fvec4) Load 804(inF0)
- 932: 64(fvec4) Load 839(inF1)
- 933: 64(fvec4) FMod 931 932
- Store 930(r036) 933
- 935: 64(fvec4) Load 804(inF0)
- 936: 64(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 935
- Store 934(r037) 936
- 938: 64(fvec4) Load 804(inF0)
- 940:939(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 938
- 941: 819(ivec4) CompositeExtract 940 1
- Store 839(inF1) 941
- 942: 64(fvec4) CompositeExtract 940 0
- Store 937(r038) 942
- 944: 64(fvec4) Load 804(inF0)
- 945: 64(fvec4) Fwidth 944
- Store 943(r039) 945
- 948: 64(fvec4) Load 804(inF0)
- 949: 853(bvec4) IsInf 948
- Store 947(r040) 949
- 951: 64(fvec4) Load 804(inF0)
- 952: 853(bvec4) IsNan 951
- Store 950(r041) 952
- 954: 64(fvec4) Load 804(inF0)
- 955: 64(fvec4) Load 839(inF1)
- 956: 64(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 954 955
- Store 953(r042) 956
- 958: 64(fvec4) Load 804(inF0)
- 959: 64(fvec4) Load 839(inF1)
- 960: 64(fvec4) Load 848(inF2)
- 961: 64(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 958 959 960
- Store 957(r039a) 961
- 963: 64(fvec4) Load 804(inF0)
- 964: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 963
- Store 962(r043) 964
- 966: 64(fvec4) Load 804(inF0)
- 967: 64(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 966
- Store 965(r044) 967
- 969: 64(fvec4) Load 804(inF0)
- 970: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 969
- 971: 64(fvec4) VectorTimesScalar 970 253
- Store 968(r045) 971
- 973: 64(fvec4) Load 804(inF0)
- 974: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 973
- Store 972(r046) 974
- 976: 64(fvec4) Load 804(inF0)
- 977: 64(fvec4) Load 839(inF1)
- 978: 64(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 976 977
- Store 975(r047) 978
- 980: 64(fvec4) Load 804(inF0)
- 981: 64(fvec4) Load 839(inF1)
- 982: 64(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 980 981
- Store 979(r048) 982
- 984: 64(fvec4) Load 804(inF0)
- 985: 64(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 984
- Store 983(r049) 985
- 987: 64(fvec4) Load 804(inF0)
- 988: 64(fvec4) Load 839(inF1)
- 989: 64(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 987 988
- Store 986(r050) 989
- 991: 64(fvec4) Load 804(inF0)
- 992: 64(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 991
- Store 990(r051) 992
- 994: 64(fvec4) Load 804(inF0)
- 995: 64(fvec4) CompositeConstruct 274 274 274 274
- 996: 64(fvec4) FDiv 995 994
- Store 993(r052) 996
- 998: 64(fvec4) Load 804(inF0)
- 999: 64(fvec4) Load 839(inF1)
- 1000: 64(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 998 999
- Store 997(r053) 1000
- 1002: 64(fvec4) Load 804(inF0)
- 1003: 64(fvec4) Load 839(inF1)
- 1004: 64(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1002 1003 509
- Store 1001(r054) 1004
- 1007: 824(ivec4) BitReverse 1006
- Store 1005(r055) 1007
- 1009: 64(fvec4) Load 804(inF0)
- 1010: 64(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1009
- Store 1008(r056) 1010
- 1012: 64(fvec4) Load 804(inF0)
- 1013: 64(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1012
- Store 1011(r057) 1013
- 1015: 64(fvec4) Load 804(inF0)
- 1016: 64(fvec4) CompositeConstruct 165 165 165 165
- 1017: 64(fvec4) CompositeConstruct 274 274 274 274
- 1018: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1015 1016 1017
- Store 1014(r058) 1018
- 1020: 64(fvec4) Load 804(inF0)
- 1021: 64(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1020
- Store 1019(r059) 1021
- 1023: 64(fvec4) Load 804(inF0)
- 1024: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1023
- Store 1022(r060) 1024
- 1025: 64(fvec4) Load 804(inF0)
- 1026: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1025
- Store 839(inF1) 1026
- 1027: 64(fvec4) Load 804(inF0)
- 1028: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1027
- Store 848(inF2) 1028
- 1030: 64(fvec4) Load 804(inF0)
- 1031: 64(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1030
- Store 1029(r061) 1031
- 1033: 64(fvec4) Load 804(inF0)
- 1034: 64(fvec4) Load 839(inF1)
- 1035: 64(fvec4) Load 848(inF2)
- 1036: 64(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1033 1034 1035
- Store 1032(r062) 1036
- 1038: 64(fvec4) Load 804(inF0)
- 1039: 64(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1038
- Store 1037(r063) 1039
- 1041: 64(fvec4) Load 804(inF0)
- 1042: 64(fvec4) Load 839(inF1)
- 1043: 64(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1041 1042
- Store 1040(r064) 1043
- 1045: 64(fvec4) Load 804(inF0)
- 1046: 64(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1045
- Store 1044(r065) 1046
- 1048: 64(fvec4) Load 804(inF0)
- 1049: 64(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1048
- Store 1047(r066) 1049
- 1051: 64(fvec4) Load 804(inF0)
- 1052: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1051
- Store 1050(r067) 1052
- ReturnValue 1054
+ 863: Label
+ 866: 64(fvec4) Load 810(inF0)
+ 867: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 866
+ Store 865(r013) 867
+ 869: 64(fvec4) Load 810(inF0)
+ 870: 64(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 869
+ Store 868(r014) 870
+ 873: 830(ivec4) BitCount 872
+ Store 871(r015) 873
+ 875: 64(fvec4) Load 810(inF0)
+ 876: 64(fvec4) DPdx 875
+ Store 874(r016) 876
+ 878: 64(fvec4) Load 810(inF0)
+ 879: 64(fvec4) DPdxCoarse 878
+ Store 877(r017) 879
+ 881: 64(fvec4) Load 810(inF0)
+ 882: 64(fvec4) DPdxFine 881
+ Store 880(r018) 882
+ 884: 64(fvec4) Load 810(inF0)
+ 885: 64(fvec4) DPdy 884
+ Store 883(r019) 885
+ 887: 64(fvec4) Load 810(inF0)
+ 888: 64(fvec4) DPdyCoarse 887
+ Store 886(r020) 888
+ 890: 64(fvec4) Load 810(inF0)
+ 891: 64(fvec4) DPdyFine 890
+ Store 889(r021) 891
+ 893: 64(fvec4) Load 810(inF0)
+ 894: 64(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 893
+ Store 892(r022) 894
+ 896: 64(fvec4) Load 810(inF0)
+ 897: 64(fvec4) Load 845(inF1)
+ 898: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 896 897
+ Store 895(r023) 898
+ 900: 64(fvec4) Load 810(inF0)
+ 901: 64(fvec4) Load 845(inF1)
+ 902: 6(float) Dot 900 901
+ Store 899(r024) 902
+ 905: 904(ptr) AccessChain 810(inF0) 512
+ 906: 6(float) Load 905
+ 907: 904(ptr) AccessChain 845(inF1) 512
+ 908: 6(float) Load 907
+ 909: 6(float) FMul 906 908
+ 910: 904(ptr) AccessChain 810(inF0) 278
+ 911: 6(float) Load 910
+ 912: 904(ptr) AccessChain 845(inF1) 383
+ 913: 6(float) Load 912
+ 914: 64(fvec4) CompositeConstruct 274 909 911 913
+ Store 903(r025) 914
+ 916: 64(fvec4) Load 810(inF0)
+ 917: 64(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 916
+ Store 915(r029) 917
+ 919: 64(fvec4) Load 810(inF0)
+ 920: 64(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 919
+ Store 918(r030) 920
+ 922: 64(fvec4) Load 810(inF0)
+ 923: 64(fvec4) Load 845(inF1)
+ 924: 64(fvec4) Load 854(inF2)
+ 925: 64(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 922 923 924
+ Store 921(r031) 925
+ 930: 830(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 929
+ Store 926(r032) 930
+ 932: 830(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 929
+ Store 931(r033) 932
+ 934: 64(fvec4) Load 810(inF0)
+ 935: 64(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 934
+ Store 933(r034) 935
+ 937: 64(fvec4) Load 810(inF0)
+ 938: 64(fvec4) Load 845(inF1)
+ 939: 64(fvec4) FMod 937 938
+ Store 936(r036) 939
+ 941: 64(fvec4) Load 810(inF0)
+ 942: 64(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 941
+ Store 940(r037) 942
+ 944: 64(fvec4) Load 810(inF0)
+ 946:945(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 944
+ 947: 825(ivec4) CompositeExtract 946 1
+ Store 845(inF1) 947
+ 948: 64(fvec4) CompositeExtract 946 0
+ Store 943(r038) 948
+ 950: 64(fvec4) Load 810(inF0)
+ 951: 64(fvec4) Fwidth 950
+ Store 949(r039) 951
+ 954: 64(fvec4) Load 810(inF0)
+ 955: 859(bvec4) IsInf 954
+ Store 953(r040) 955
+ 957: 64(fvec4) Load 810(inF0)
+ 958: 859(bvec4) IsNan 957
+ Store 956(r041) 958
+ 960: 64(fvec4) Load 810(inF0)
+ 961: 64(fvec4) Load 845(inF1)
+ 962: 64(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 960 961
+ Store 959(r042) 962
+ 964: 64(fvec4) Load 810(inF0)
+ 965: 64(fvec4) Load 845(inF1)
+ 966: 64(fvec4) Load 854(inF2)
+ 967: 64(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 964 965 966
+ Store 963(r039a) 967
+ 969: 64(fvec4) Load 810(inF0)
+ 970: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 969
+ Store 968(r043) 970
+ 972: 64(fvec4) Load 810(inF0)
+ 973: 64(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 972
+ Store 971(r044) 973
+ 975: 64(fvec4) Load 810(inF0)
+ 976: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 975
+ 977: 64(fvec4) VectorTimesScalar 976 253
+ Store 974(r045) 977
+ 979: 64(fvec4) Load 810(inF0)
+ 980: 64(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979
+ Store 978(r046) 980
+ 982: 64(fvec4) Load 810(inF0)
+ 983: 64(fvec4) Load 845(inF1)
+ 984: 64(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 982 983
+ Store 981(r047) 984
+ 986: 64(fvec4) Load 810(inF0)
+ 987: 64(fvec4) Load 845(inF1)
+ 988: 64(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 986 987
+ Store 985(r048) 988
+ 990: 64(fvec4) Load 810(inF0)
+ 991: 64(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 990
+ Store 989(r049) 991
+ 993: 64(fvec4) Load 810(inF0)
+ 994: 64(fvec4) Load 845(inF1)
+ 995: 64(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 993 994
+ Store 992(r050) 995
+ 997: 64(fvec4) Load 810(inF0)
+ 998: 64(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 997
+ Store 996(r051) 998
+ 1000: 64(fvec4) Load 810(inF0)
+ 1001: 64(fvec4) CompositeConstruct 274 274 274 274
+ 1002: 64(fvec4) FDiv 1001 1000
+ Store 999(r052) 1002
+ 1004: 64(fvec4) Load 810(inF0)
+ 1005: 64(fvec4) Load 845(inF1)
+ 1006: 64(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1004 1005
+ Store 1003(r053) 1006
+ 1008: 64(fvec4) Load 810(inF0)
+ 1009: 64(fvec4) Load 845(inF1)
+ 1010: 64(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1008 1009 509
+ Store 1007(r054) 1010
+ 1013: 830(ivec4) BitReverse 1012
+ Store 1011(r055) 1013
+ 1015: 64(fvec4) Load 810(inF0)
+ 1016: 64(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1015
+ Store 1014(r056) 1016
+ 1018: 64(fvec4) Load 810(inF0)
+ 1019: 64(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1018
+ Store 1017(r057) 1019
+ 1021: 64(fvec4) Load 810(inF0)
+ 1022: 64(fvec4) CompositeConstruct 165 165 165 165
+ 1023: 64(fvec4) CompositeConstruct 274 274 274 274
+ 1024: 64(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1021 1022 1023
+ Store 1020(r058) 1024
+ 1026: 64(fvec4) Load 810(inF0)
+ 1027: 64(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1026
+ Store 1025(r059) 1027
+ 1029: 64(fvec4) Load 810(inF0)
+ 1030: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1029
+ Store 1028(r060) 1030
+ 1031: 64(fvec4) Load 810(inF0)
+ 1032: 64(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1031
+ Store 845(inF1) 1032
+ 1033: 64(fvec4) Load 810(inF0)
+ 1034: 64(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1033
+ Store 854(inF2) 1034
+ 1036: 64(fvec4) Load 810(inF0)
+ 1037: 64(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1036
+ Store 1035(r061) 1037
+ 1039: 64(fvec4) Load 810(inF0)
+ 1040: 64(fvec4) Load 845(inF1)
+ 1041: 64(fvec4) Load 854(inF2)
+ 1042: 64(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1039 1040 1041
+ Store 1038(r062) 1042
+ 1044: 64(fvec4) Load 810(inF0)
+ 1045: 64(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1044
+ Store 1043(r063) 1045
+ 1047: 64(fvec4) Load 810(inF0)
+ 1048: 64(fvec4) Load 845(inF1)
+ 1049: 64(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1047 1048
+ Store 1046(r064) 1049
+ 1051: 64(fvec4) Load 810(inF0)
+ 1052: 64(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1051
+ Store 1050(r065) 1052
+ 1054: 64(fvec4) Load 810(inF0)
+ 1055: 64(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1054
+ Store 1053(r066) 1055
+ 1057: 64(fvec4) Load 810(inF0)
+ 1058: 64(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1057
+ Store 1056(r067) 1058
+ ReturnValue 1060
FunctionEnd
16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10
11(inF0): 7(ptr) FunctionParameter
@@ -7111,31 +7129,32 @@
695(r041): 691(ptr) Variable Function
698(r042): 37(ptr) Variable Function
702(r039a): 37(ptr) Variable Function
- 707(r043): 7(ptr) Variable Function
- 710(r044): 37(ptr) Variable Function
- 713(r045): 37(ptr) Variable Function
- 717(r046): 37(ptr) Variable Function
- 720(r047): 37(ptr) Variable Function
- 724(r048): 37(ptr) Variable Function
- 728(r049): 37(ptr) Variable Function
- 731(r050): 37(ptr) Variable Function
- 735(r051): 37(ptr) Variable Function
- 738(r052): 37(ptr) Variable Function
- 742(r053): 37(ptr) Variable Function
- 746(r054): 37(ptr) Variable Function
- 750(r055): 39(ptr) Variable Function
- 753(r056): 37(ptr) Variable Function
- 756(r057): 37(ptr) Variable Function
- 759(r058): 37(ptr) Variable Function
- 764(r059): 37(ptr) Variable Function
- 767(r060): 37(ptr) Variable Function
- 774(r061): 37(ptr) Variable Function
- 777(r062): 37(ptr) Variable Function
- 782(r063): 37(ptr) Variable Function
- 785(r064): 37(ptr) Variable Function
- 789(r065): 37(ptr) Variable Function
- 792(r066): 37(ptr) Variable Function
- 795(r067): 37(ptr) Variable Function
+ 707(r039b): 37(ptr) Variable Function
+ 713(r043): 7(ptr) Variable Function
+ 716(r044): 37(ptr) Variable Function
+ 719(r045): 37(ptr) Variable Function
+ 723(r046): 37(ptr) Variable Function
+ 726(r047): 37(ptr) Variable Function
+ 730(r048): 37(ptr) Variable Function
+ 734(r049): 37(ptr) Variable Function
+ 737(r050): 37(ptr) Variable Function
+ 741(r051): 37(ptr) Variable Function
+ 744(r052): 37(ptr) Variable Function
+ 748(r053): 37(ptr) Variable Function
+ 752(r054): 37(ptr) Variable Function
+ 756(r055): 39(ptr) Variable Function
+ 759(r056): 37(ptr) Variable Function
+ 762(r057): 37(ptr) Variable Function
+ 765(r058): 37(ptr) Variable Function
+ 770(r059): 37(ptr) Variable Function
+ 773(r060): 37(ptr) Variable Function
+ 780(r061): 37(ptr) Variable Function
+ 783(r062): 37(ptr) Variable Function
+ 788(r063): 37(ptr) Variable Function
+ 791(r064): 37(ptr) Variable Function
+ 795(r065): 37(ptr) Variable Function
+ 798(r066): 37(ptr) Variable Function
+ 801(r067): 37(ptr) Variable Function
564: 36(fvec3) Load 41(inF0)
565: 121(bool) All 564
Store 563(r000) 565
@@ -7274,809 +7293,814 @@
706: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 703 704 705
Store 702(r039a) 706
708: 36(fvec3) Load 41(inF0)
- 709: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 708
- Store 707(r043) 709
- 711: 36(fvec3) Load 41(inF0)
- 712: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 711
- Store 710(r044) 712
+ 709: 36(fvec3) Load 42(inF1)
+ 711: 36(fvec3) CompositeConstruct 710 710 710
+ 712: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 708 709 711
+ Store 707(r039b) 712
714: 36(fvec3) Load 41(inF0)
- 715: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 714
- 716: 36(fvec3) VectorTimesScalar 715 253
- Store 713(r045) 716
- 718: 36(fvec3) Load 41(inF0)
- 719: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 718
- Store 717(r046) 719
- 721: 36(fvec3) Load 41(inF0)
- 722: 36(fvec3) Load 42(inF1)
- 723: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 721 722
- Store 720(r047) 723
- 725: 36(fvec3) Load 41(inF0)
- 726: 36(fvec3) Load 42(inF1)
- 727: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 725 726
- Store 724(r048) 727
- 729: 36(fvec3) Load 41(inF0)
- 730: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 729
- Store 728(r049) 730
- 732: 36(fvec3) Load 41(inF0)
- 733: 36(fvec3) Load 42(inF1)
- 734: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 732 733
- Store 731(r050) 734
- 736: 36(fvec3) Load 41(inF0)
- 737: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 736
- Store 735(r051) 737
- 739: 36(fvec3) Load 41(inF0)
- 740: 36(fvec3) CompositeConstruct 274 274 274
- 741: 36(fvec3) FDiv 740 739
- Store 738(r052) 741
- 743: 36(fvec3) Load 41(inF0)
- 744: 36(fvec3) Load 42(inF1)
- 745: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 743 744
- Store 742(r053) 745
- 747: 36(fvec3) Load 41(inF0)
- 748: 36(fvec3) Load 42(inF1)
- 749: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 747 748 509
- Store 746(r054) 749
- 752: 38(ivec3) BitReverse 751
- Store 750(r055) 752
- 754: 36(fvec3) Load 41(inF0)
- 755: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 754
- Store 753(r056) 755
- 757: 36(fvec3) Load 41(inF0)
- 758: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 757
- Store 756(r057) 758
+ 715: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 714
+ Store 713(r043) 715
+ 717: 36(fvec3) Load 41(inF0)
+ 718: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 717
+ Store 716(r044) 718
+ 720: 36(fvec3) Load 41(inF0)
+ 721: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 720
+ 722: 36(fvec3) VectorTimesScalar 721 253
+ Store 719(r045) 722
+ 724: 36(fvec3) Load 41(inF0)
+ 725: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 724
+ Store 723(r046) 725
+ 727: 36(fvec3) Load 41(inF0)
+ 728: 36(fvec3) Load 42(inF1)
+ 729: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 727 728
+ Store 726(r047) 729
+ 731: 36(fvec3) Load 41(inF0)
+ 732: 36(fvec3) Load 42(inF1)
+ 733: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 731 732
+ Store 730(r048) 733
+ 735: 36(fvec3) Load 41(inF0)
+ 736: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 735
+ Store 734(r049) 736
+ 738: 36(fvec3) Load 41(inF0)
+ 739: 36(fvec3) Load 42(inF1)
+ 740: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 738 739
+ Store 737(r050) 740
+ 742: 36(fvec3) Load 41(inF0)
+ 743: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 742
+ Store 741(r051) 743
+ 745: 36(fvec3) Load 41(inF0)
+ 746: 36(fvec3) CompositeConstruct 274 274 274
+ 747: 36(fvec3) FDiv 746 745
+ Store 744(r052) 747
+ 749: 36(fvec3) Load 41(inF0)
+ 750: 36(fvec3) Load 42(inF1)
+ 751: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 749 750
+ Store 748(r053) 751
+ 753: 36(fvec3) Load 41(inF0)
+ 754: 36(fvec3) Load 42(inF1)
+ 755: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 753 754 509
+ Store 752(r054) 755
+ 758: 38(ivec3) BitReverse 757
+ Store 756(r055) 758
760: 36(fvec3) Load 41(inF0)
- 761: 36(fvec3) CompositeConstruct 165 165 165
- 762: 36(fvec3) CompositeConstruct 274 274 274
- 763: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 760 761 762
- Store 759(r058) 763
- 765: 36(fvec3) Load 41(inF0)
- 766: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 765
- Store 764(r059) 766
- 768: 36(fvec3) Load 41(inF0)
- 769: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 768
- Store 767(r060) 769
- 770: 36(fvec3) Load 41(inF0)
- 771: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 770
- Store 42(inF1) 771
- 772: 36(fvec3) Load 41(inF0)
- 773: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 772
- Store 43(inF2) 773
- 775: 36(fvec3) Load 41(inF0)
- 776: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 775
- Store 774(r061) 776
+ 761: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 760
+ Store 759(r056) 761
+ 763: 36(fvec3) Load 41(inF0)
+ 764: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 763
+ Store 762(r057) 764
+ 766: 36(fvec3) Load 41(inF0)
+ 767: 36(fvec3) CompositeConstruct 165 165 165
+ 768: 36(fvec3) CompositeConstruct 274 274 274
+ 769: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 766 767 768
+ Store 765(r058) 769
+ 771: 36(fvec3) Load 41(inF0)
+ 772: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 771
+ Store 770(r059) 772
+ 774: 36(fvec3) Load 41(inF0)
+ 775: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 774
+ Store 773(r060) 775
+ 776: 36(fvec3) Load 41(inF0)
+ 777: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 776
+ Store 42(inF1) 777
778: 36(fvec3) Load 41(inF0)
- 779: 36(fvec3) Load 42(inF1)
- 780: 36(fvec3) Load 43(inF2)
- 781: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 778 779 780
- Store 777(r062) 781
- 783: 36(fvec3) Load 41(inF0)
- 784: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 783
- Store 782(r063) 784
- 786: 36(fvec3) Load 41(inF0)
- 787: 36(fvec3) Load 42(inF1)
- 788: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 786 787
- Store 785(r064) 788
- 790: 36(fvec3) Load 41(inF0)
- 791: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 790
- Store 789(r065) 791
- 793: 36(fvec3) Load 41(inF0)
- 794: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 793
- Store 792(r066) 794
+ 779: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 778
+ Store 43(inF2) 779
+ 781: 36(fvec3) Load 41(inF0)
+ 782: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 781
+ Store 780(r061) 782
+ 784: 36(fvec3) Load 41(inF0)
+ 785: 36(fvec3) Load 42(inF1)
+ 786: 36(fvec3) Load 43(inF2)
+ 787: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 784 785 786
+ Store 783(r062) 787
+ 789: 36(fvec3) Load 41(inF0)
+ 790: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 789
+ Store 788(r063) 790
+ 792: 36(fvec3) Load 41(inF0)
+ 793: 36(fvec3) Load 42(inF1)
+ 794: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 792 793
+ Store 791(r064) 794
796: 36(fvec3) Load 41(inF0)
- 797: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 796
- Store 795(r067) 797
- ReturnValue 799
+ 797: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 796
+ Store 795(r065) 797
+ 799: 36(fvec3) Load 41(inF0)
+ 800: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 799
+ Store 798(r066) 800
+ 802: 36(fvec3) Load 41(inF0)
+ 803: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 802
+ Store 801(r067) 803
+ ReturnValue 805
FunctionEnd
54(PixelShaderFunction2x2(mf22;mf22;mf22;): 48 Function None 50
51(inF0): 49(ptr) FunctionParameter
52(inF1): 49(ptr) FunctionParameter
53(inF2): 49(ptr) FunctionParameter
55: Label
- 1056(r000): 122(ptr) Variable Function
- 1059(r001): 49(ptr) Variable Function
- 1064(r003): 122(ptr) Variable Function
- 1067(r004): 49(ptr) Variable Function
- 1070(r005): 49(ptr) Variable Function
- 1073(r006): 49(ptr) Variable Function
- 1077(r007): 49(ptr) Variable Function
- 1088(r008): 49(ptr) Variable Function
- 1093(r009): 49(ptr) Variable Function
- 1096(r010): 49(ptr) Variable Function
- 1099(r011): 49(ptr) Variable Function
- 1102(r012): 49(ptr) Variable Function
- 1105(r013): 49(ptr) Variable Function
- 1108(r014): 49(ptr) Variable Function
- 1111(r015): 49(ptr) Variable Function
- 1114(r016): 49(ptr) Variable Function
- 1117(r017): 49(ptr) Variable Function
- 1120(r018): 7(ptr) Variable Function
- 1123(r019): 49(ptr) Variable Function
- 1126(R020): 49(ptr) Variable Function
- 1129(r021): 49(ptr) Variable Function
- 1132(r022): 49(ptr) Variable Function
- 1142(r023): 49(ptr) Variable Function
- 1145(r024): 49(ptr) Variable Function
- 1151(r025): 49(ptr) Variable Function
- 1154(r026): 49(ptr) Variable Function
- 1158(r026a): 49(ptr) Variable Function
- 1163(r027): 49(ptr) Variable Function
- 1166(r028): 49(ptr) Variable Function
- 1170(r029): 49(ptr) Variable Function
- 1173(r030): 49(ptr) Variable Function
- 1177(r031): 49(ptr) Variable Function
- 1181(r032): 49(ptr) Variable Function
- 1185(r033): 49(ptr) Variable Function
- 1188(r034): 49(ptr) Variable Function
- 1191(r035): 49(ptr) Variable Function
- 1194(r036): 49(ptr) Variable Function
- 1199(r037): 49(ptr) Variable Function
- 1202(r038): 49(ptr) Variable Function
- 1209(r039): 49(ptr) Variable Function
- 1212(r049): 49(ptr) Variable Function
- 1217(r041): 49(ptr) Variable Function
- 1220(r042): 49(ptr) Variable Function
- 1224(r043): 49(ptr) Variable Function
- 1227(r044): 49(ptr) Variable Function
- 1232(r046): 49(ptr) Variable Function
- 1057: 48 Load 51(inF0)
- 1058: 121(bool) All 1057
- Store 1056(r000) 1058
- 1060: 48 Load 51(inF0)
- 1061: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1060
- Store 1059(r001) 1061
- 1062: 48 Load 51(inF0)
- 1063: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1062
- 1065: 48 Load 51(inF0)
- 1066: 121(bool) Any 1065
- Store 1064(r003) 1066
+ 1062(r000): 122(ptr) Variable Function
+ 1065(r001): 49(ptr) Variable Function
+ 1070(r003): 122(ptr) Variable Function
+ 1073(r004): 49(ptr) Variable Function
+ 1076(r005): 49(ptr) Variable Function
+ 1079(r006): 49(ptr) Variable Function
+ 1083(r007): 49(ptr) Variable Function
+ 1094(r008): 49(ptr) Variable Function
+ 1099(r009): 49(ptr) Variable Function
+ 1102(r010): 49(ptr) Variable Function
+ 1105(r011): 49(ptr) Variable Function
+ 1108(r012): 49(ptr) Variable Function
+ 1111(r013): 49(ptr) Variable Function
+ 1114(r014): 49(ptr) Variable Function
+ 1117(r015): 49(ptr) Variable Function
+ 1120(r016): 49(ptr) Variable Function
+ 1123(r017): 49(ptr) Variable Function
+ 1126(r018): 7(ptr) Variable Function
+ 1129(r019): 49(ptr) Variable Function
+ 1132(R020): 49(ptr) Variable Function
+ 1135(r021): 49(ptr) Variable Function
+ 1138(r022): 49(ptr) Variable Function
+ 1148(r023): 49(ptr) Variable Function
+ 1151(r024): 49(ptr) Variable Function
+ 1157(r025): 49(ptr) Variable Function
+ 1160(r026): 49(ptr) Variable Function
+ 1164(r026a): 49(ptr) Variable Function
+ 1169(r027): 49(ptr) Variable Function
+ 1172(r028): 49(ptr) Variable Function
+ 1176(r029): 49(ptr) Variable Function
+ 1179(r030): 49(ptr) Variable Function
+ 1183(r031): 49(ptr) Variable Function
+ 1187(r032): 49(ptr) Variable Function
+ 1191(r033): 49(ptr) Variable Function
+ 1194(r034): 49(ptr) Variable Function
+ 1197(r035): 49(ptr) Variable Function
+ 1200(r036): 49(ptr) Variable Function
+ 1205(r037): 49(ptr) Variable Function
+ 1208(r038): 49(ptr) Variable Function
+ 1215(r039): 49(ptr) Variable Function
+ 1218(r049): 49(ptr) Variable Function
+ 1223(r041): 49(ptr) Variable Function
+ 1226(r042): 49(ptr) Variable Function
+ 1230(r043): 49(ptr) Variable Function
+ 1233(r044): 49(ptr) Variable Function
+ 1238(r046): 49(ptr) Variable Function
+ 1063: 48 Load 51(inF0)
+ 1064: 121(bool) All 1063
+ Store 1062(r000) 1064
+ 1066: 48 Load 51(inF0)
+ 1067: 48 ExtInst 1(GLSL.std.450) 4(FAbs) 1066
+ Store 1065(r001) 1067
1068: 48 Load 51(inF0)
- 1069: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1068
- Store 1067(r004) 1069
+ 1069: 48 ExtInst 1(GLSL.std.450) 17(Acos) 1068
1071: 48 Load 51(inF0)
- 1072: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1071
- Store 1070(r005) 1072
+ 1072: 121(bool) Any 1071
+ Store 1070(r003) 1072
1074: 48 Load 51(inF0)
- 1075: 48 Load 52(inF1)
- 1076: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1074 1075
- Store 1073(r006) 1076
- 1078: 48 Load 51(inF0)
- 1079: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1078
- Store 1077(r007) 1079
+ 1075: 48 ExtInst 1(GLSL.std.450) 16(Asin) 1074
+ Store 1073(r004) 1075
+ 1077: 48 Load 51(inF0)
+ 1078: 48 ExtInst 1(GLSL.std.450) 18(Atan) 1077
+ Store 1076(r005) 1078
1080: 48 Load 51(inF0)
- 1083: 1082 FOrdLessThan 1080 1081
- 1084: 121(bool) Any 1083
- SelectionMerge 1086 None
- BranchConditional 1084 1085 1086
- 1085: Label
+ 1081: 48 Load 52(inF1)
+ 1082: 48 ExtInst 1(GLSL.std.450) 25(Atan2) 1080 1081
+ Store 1079(r006) 1082
+ 1084: 48 Load 51(inF0)
+ 1085: 48 ExtInst 1(GLSL.std.450) 9(Ceil) 1084
+ Store 1083(r007) 1085
+ 1086: 48 Load 51(inF0)
+ 1089: 1088 FOrdLessThan 1086 1087
+ 1090: 121(bool) Any 1089
+ SelectionMerge 1092 None
+ BranchConditional 1090 1091 1092
+ 1091: Label
Kill
- 1086: Label
- 1089: 48 Load 51(inF0)
- 1090: 48 Load 52(inF1)
- 1091: 48 Load 53(inF2)
- 1092: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1089 1090 1091
- Store 1088(r008) 1092
- 1094: 48 Load 51(inF0)
- 1095: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1094
- Store 1093(r009) 1095
- 1097: 48 Load 51(inF0)
- 1098: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1097
- Store 1096(r010) 1098
+ 1092: Label
+ 1095: 48 Load 51(inF0)
+ 1096: 48 Load 52(inF1)
+ 1097: 48 Load 53(inF2)
+ 1098: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1095 1096 1097
+ Store 1094(r008) 1098
1100: 48 Load 51(inF0)
- 1101: 48 DPdx 1100
- Store 1099(r011) 1101
+ 1101: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1100
+ Store 1099(r009) 1101
1103: 48 Load 51(inF0)
- 1104: 48 DPdxCoarse 1103
- Store 1102(r012) 1104
+ 1104: 48 ExtInst 1(GLSL.std.450) 20(Cosh) 1103
+ Store 1102(r010) 1104
1106: 48 Load 51(inF0)
- 1107: 48 DPdxFine 1106
- Store 1105(r013) 1107
+ 1107: 48 DPdx 1106
+ Store 1105(r011) 1107
1109: 48 Load 51(inF0)
- 1110: 48 DPdy 1109
- Store 1108(r014) 1110
+ 1110: 48 DPdxCoarse 1109
+ Store 1108(r012) 1110
1112: 48 Load 51(inF0)
- 1113: 48 DPdyCoarse 1112
- Store 1111(r015) 1113
+ 1113: 48 DPdxFine 1112
+ Store 1111(r013) 1113
1115: 48 Load 51(inF0)
- 1116: 48 DPdyFine 1115
- Store 1114(r016) 1116
+ 1116: 48 DPdy 1115
+ Store 1114(r014) 1116
1118: 48 Load 51(inF0)
- 1119: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1118
- Store 1117(r017) 1119
+ 1119: 48 DPdyCoarse 1118
+ Store 1117(r015) 1119
1121: 48 Load 51(inF0)
- 1122: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1121
- Store 1120(r018) 1122
+ 1122: 48 DPdyFine 1121
+ Store 1120(r016) 1122
1124: 48 Load 51(inF0)
- 1125: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1124
- Store 1123(r019) 1125
+ 1125: 48 ExtInst 1(GLSL.std.450) 12(Degrees) 1124
+ Store 1123(r017) 1125
1127: 48 Load 51(inF0)
- 1128: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1127
- Store 1126(R020) 1128
+ 1128: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1127
+ Store 1126(r018) 1128
1130: 48 Load 51(inF0)
- 1131: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1130
- Store 1129(r021) 1131
+ 1131: 48 ExtInst 1(GLSL.std.450) 27(Exp) 1130
+ Store 1129(r019) 1131
1133: 48 Load 51(inF0)
- 1134: 48 Load 52(inF1)
- 1135: 24(fvec2) CompositeExtract 1133 0
- 1136: 24(fvec2) CompositeExtract 1134 0
- 1137: 24(fvec2) FMod 1135 1136
- 1138: 24(fvec2) CompositeExtract 1133 1
- 1139: 24(fvec2) CompositeExtract 1134 1
- 1140: 24(fvec2) FMod 1138 1139
- 1141: 48 CompositeConstruct 1137 1140
- Store 1132(r022) 1141
- 1143: 48 Load 51(inF0)
- 1144: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1143
- Store 1142(r023) 1144
- 1146: 48 Load 51(inF0)
- 1148:1147(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1146
- 1149: 342(ivec2) CompositeExtract 1148 1
- Store 52(inF1) 1149
- 1150: 48 CompositeExtract 1148 0
- Store 1145(r024) 1150
+ 1134: 48 ExtInst 1(GLSL.std.450) 29(Exp2) 1133
+ Store 1132(R020) 1134
+ 1136: 48 Load 51(inF0)
+ 1137: 48 ExtInst 1(GLSL.std.450) 8(Floor) 1136
+ Store 1135(r021) 1137
+ 1139: 48 Load 51(inF0)
+ 1140: 48 Load 52(inF1)
+ 1141: 24(fvec2) CompositeExtract 1139 0
+ 1142: 24(fvec2) CompositeExtract 1140 0
+ 1143: 24(fvec2) FMod 1141 1142
+ 1144: 24(fvec2) CompositeExtract 1139 1
+ 1145: 24(fvec2) CompositeExtract 1140 1
+ 1146: 24(fvec2) FMod 1144 1145
+ 1147: 48 CompositeConstruct 1143 1146
+ Store 1138(r022) 1147
+ 1149: 48 Load 51(inF0)
+ 1150: 48 ExtInst 1(GLSL.std.450) 10(Fract) 1149
+ Store 1148(r023) 1150
1152: 48 Load 51(inF0)
- 1153: 48 Fwidth 1152
- Store 1151(r025) 1153
- 1155: 48 Load 51(inF0)
- 1156: 48 Load 52(inF1)
- 1157: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1155 1156
- Store 1154(r026) 1157
- 1159: 48 Load 51(inF0)
- 1160: 48 Load 52(inF1)
- 1161: 48 Load 53(inF2)
- 1162: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1159 1160 1161
- Store 1158(r026a) 1162
- 1164: 48 Load 51(inF0)
- 1165: 48 ExtInst 1(GLSL.std.450) 28(Log) 1164
- Store 1163(r027) 1165
- 1167: 48 Load 51(inF0)
- 1168: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1167
- 1169: 48 MatrixTimesScalar 1168 253
- Store 1166(r028) 1169
- 1171: 48 Load 51(inF0)
- 1172: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1171
- Store 1170(r029) 1172
- 1174: 48 Load 51(inF0)
- 1175: 48 Load 52(inF1)
- 1176: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1174 1175
- Store 1173(r030) 1176
- 1178: 48 Load 51(inF0)
- 1179: 48 Load 52(inF1)
- 1180: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1178 1179
- Store 1177(r031) 1180
- 1182: 48 Load 51(inF0)
- 1183: 48 Load 52(inF1)
- 1184: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1182 1183
- Store 1181(r032) 1184
- 1186: 48 Load 51(inF0)
- 1187: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1186
- Store 1185(r033) 1187
- 1189: 48 Load 51(inF0)
- 1190: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1189
- Store 1188(r034) 1190
+ 1154:1153(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1152
+ 1155: 342(ivec2) CompositeExtract 1154 1
+ Store 52(inF1) 1155
+ 1156: 48 CompositeExtract 1154 0
+ Store 1151(r024) 1156
+ 1158: 48 Load 51(inF0)
+ 1159: 48 Fwidth 1158
+ Store 1157(r025) 1159
+ 1161: 48 Load 51(inF0)
+ 1162: 48 Load 52(inF1)
+ 1163: 48 ExtInst 1(GLSL.std.450) 53(Ldexp) 1161 1162
+ Store 1160(r026) 1163
+ 1165: 48 Load 51(inF0)
+ 1166: 48 Load 52(inF1)
+ 1167: 48 Load 53(inF2)
+ 1168: 48 ExtInst 1(GLSL.std.450) 46(FMix) 1165 1166 1167
+ Store 1164(r026a) 1168
+ 1170: 48 Load 51(inF0)
+ 1171: 48 ExtInst 1(GLSL.std.450) 28(Log) 1170
+ Store 1169(r027) 1171
+ 1173: 48 Load 51(inF0)
+ 1174: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1173
+ 1175: 48 MatrixTimesScalar 1174 253
+ Store 1172(r028) 1175
+ 1177: 48 Load 51(inF0)
+ 1178: 48 ExtInst 1(GLSL.std.450) 30(Log2) 1177
+ Store 1176(r029) 1178
+ 1180: 48 Load 51(inF0)
+ 1181: 48 Load 52(inF1)
+ 1182: 48 ExtInst 1(GLSL.std.450) 40(FMax) 1180 1181
+ Store 1179(r030) 1182
+ 1184: 48 Load 51(inF0)
+ 1185: 48 Load 52(inF1)
+ 1186: 48 ExtInst 1(GLSL.std.450) 37(FMin) 1184 1185
+ Store 1183(r031) 1186
+ 1188: 48 Load 51(inF0)
+ 1189: 48 Load 52(inF1)
+ 1190: 48 ExtInst 1(GLSL.std.450) 26(Pow) 1188 1189
+ Store 1187(r032) 1190
1192: 48 Load 51(inF0)
- 1193: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1192
- Store 1191(r035) 1193
+ 1193: 48 ExtInst 1(GLSL.std.450) 11(Radians) 1192
+ Store 1191(r033) 1193
1195: 48 Load 51(inF0)
- 1196: 24(fvec2) CompositeConstruct 165 165
- 1197: 24(fvec2) CompositeConstruct 274 274
- 1198: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1195 1196 1197
- Store 1194(r036) 1198
- 1200: 48 Load 51(inF0)
- 1201: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1200
- Store 1199(r037) 1201
- 1203: 48 Load 51(inF0)
- 1204: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1203
- Store 1202(r038) 1204
- 1205: 48 Load 51(inF0)
- 1206: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1205
- Store 52(inF1) 1206
- 1207: 48 Load 51(inF0)
- 1208: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1207
- Store 53(inF2) 1208
- 1210: 48 Load 51(inF0)
- 1211: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1210
- Store 1209(r039) 1211
+ 1196: 48 ExtInst 1(GLSL.std.450) 2(RoundEven) 1195
+ Store 1194(r034) 1196
+ 1198: 48 Load 51(inF0)
+ 1199: 48 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1198
+ Store 1197(r035) 1199
+ 1201: 48 Load 51(inF0)
+ 1202: 24(fvec2) CompositeConstruct 165 165
+ 1203: 24(fvec2) CompositeConstruct 274 274
+ 1204: 48 ExtInst 1(GLSL.std.450) 43(FClamp) 1201 1202 1203
+ Store 1200(r036) 1204
+ 1206: 48 Load 51(inF0)
+ 1207: 48 ExtInst 1(GLSL.std.450) 6(FSign) 1206
+ Store 1205(r037) 1207
+ 1209: 48 Load 51(inF0)
+ 1210: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1209
+ Store 1208(r038) 1210
+ 1211: 48 Load 51(inF0)
+ 1212: 48 ExtInst 1(GLSL.std.450) 13(Sin) 1211
+ Store 52(inF1) 1212
1213: 48 Load 51(inF0)
- 1214: 48 Load 52(inF1)
- 1215: 48 Load 53(inF2)
- 1216: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1213 1214 1215
- Store 1212(r049) 1216
- 1218: 48 Load 51(inF0)
- 1219: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1218
- Store 1217(r041) 1219
- 1221: 48 Load 51(inF0)
- 1222: 48 Load 52(inF1)
- 1223: 48 ExtInst 1(GLSL.std.450) 48(Step) 1221 1222
- Store 1220(r042) 1223
- 1225: 48 Load 51(inF0)
- 1226: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1225
- Store 1224(r043) 1226
- 1228: 48 Load 51(inF0)
- 1229: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1228
- Store 1227(r044) 1229
- 1230: 48 Load 51(inF0)
- 1231: 48 Transpose 1230
- 1233: 48 Load 51(inF0)
- 1234: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1233
- Store 1232(r046) 1234
- ReturnValue 1236
+ 1214: 48 ExtInst 1(GLSL.std.450) 14(Cos) 1213
+ Store 53(inF2) 1214
+ 1216: 48 Load 51(inF0)
+ 1217: 48 ExtInst 1(GLSL.std.450) 19(Sinh) 1216
+ Store 1215(r039) 1217
+ 1219: 48 Load 51(inF0)
+ 1220: 48 Load 52(inF1)
+ 1221: 48 Load 53(inF2)
+ 1222: 48 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1219 1220 1221
+ Store 1218(r049) 1222
+ 1224: 48 Load 51(inF0)
+ 1225: 48 ExtInst 1(GLSL.std.450) 31(Sqrt) 1224
+ Store 1223(r041) 1225
+ 1227: 48 Load 51(inF0)
+ 1228: 48 Load 52(inF1)
+ 1229: 48 ExtInst 1(GLSL.std.450) 48(Step) 1227 1228
+ Store 1226(r042) 1229
+ 1231: 48 Load 51(inF0)
+ 1232: 48 ExtInst 1(GLSL.std.450) 15(Tan) 1231
+ Store 1230(r043) 1232
+ 1234: 48 Load 51(inF0)
+ 1235: 48 ExtInst 1(GLSL.std.450) 21(Tanh) 1234
+ Store 1233(r044) 1235
+ 1236: 48 Load 51(inF0)
+ 1237: 48 Transpose 1236
+ 1239: 48 Load 51(inF0)
+ 1240: 48 ExtInst 1(GLSL.std.450) 3(Trunc) 1239
+ Store 1238(r046) 1240
+ ReturnValue 1242
FunctionEnd
62(PixelShaderFunction3x3(mf33;mf33;mf33;): 56 Function None 58
59(inF0): 57(ptr) FunctionParameter
60(inF1): 57(ptr) FunctionParameter
61(inF2): 57(ptr) FunctionParameter
63: Label
- 1239(r000): 122(ptr) Variable Function
- 1242(r001): 57(ptr) Variable Function
- 1247(r003): 122(ptr) Variable Function
- 1250(r004): 57(ptr) Variable Function
- 1253(r005): 57(ptr) Variable Function
- 1256(r006): 57(ptr) Variable Function
- 1260(r007): 57(ptr) Variable Function
- 1271(r008): 57(ptr) Variable Function
- 1276(r009): 57(ptr) Variable Function
- 1279(r010): 57(ptr) Variable Function
- 1282(r011): 57(ptr) Variable Function
- 1285(r012): 57(ptr) Variable Function
- 1288(r013): 57(ptr) Variable Function
- 1291(r014): 57(ptr) Variable Function
- 1294(r015): 57(ptr) Variable Function
- 1297(r016): 57(ptr) Variable Function
- 1300(r017): 57(ptr) Variable Function
- 1303(r018): 7(ptr) Variable Function
- 1306(r019): 57(ptr) Variable Function
- 1309(R020): 57(ptr) Variable Function
- 1312(r021): 57(ptr) Variable Function
- 1315(r022): 57(ptr) Variable Function
- 1328(r023): 57(ptr) Variable Function
- 1331(r024): 57(ptr) Variable Function
- 1337(r025): 57(ptr) Variable Function
- 1340(r026): 57(ptr) Variable Function
- 1344(r026a): 57(ptr) Variable Function
- 1349(r027): 57(ptr) Variable Function
- 1352(r028): 57(ptr) Variable Function
- 1356(r029): 57(ptr) Variable Function
- 1359(r030): 57(ptr) Variable Function
- 1363(r031): 57(ptr) Variable Function
- 1367(r032): 57(ptr) Variable Function
- 1371(r033): 57(ptr) Variable Function
- 1374(r034): 57(ptr) Variable Function
- 1377(r035): 57(ptr) Variable Function
- 1380(r036): 57(ptr) Variable Function
- 1385(r037): 57(ptr) Variable Function
- 1388(r038): 57(ptr) Variable Function
- 1395(r039): 57(ptr) Variable Function
- 1398(r049): 57(ptr) Variable Function
- 1403(r041): 57(ptr) Variable Function
- 1406(r042): 57(ptr) Variable Function
- 1410(r043): 57(ptr) Variable Function
- 1413(r044): 57(ptr) Variable Function
- 1418(r046): 57(ptr) Variable Function
- 1240: 56 Load 59(inF0)
- 1241: 121(bool) All 1240
- Store 1239(r000) 1241
- 1243: 56 Load 59(inF0)
- 1244: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1243
- Store 1242(r001) 1244
- 1245: 56 Load 59(inF0)
- 1246: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1245
- 1248: 56 Load 59(inF0)
- 1249: 121(bool) Any 1248
- Store 1247(r003) 1249
+ 1245(r000): 122(ptr) Variable Function
+ 1248(r001): 57(ptr) Variable Function
+ 1253(r003): 122(ptr) Variable Function
+ 1256(r004): 57(ptr) Variable Function
+ 1259(r005): 57(ptr) Variable Function
+ 1262(r006): 57(ptr) Variable Function
+ 1266(r007): 57(ptr) Variable Function
+ 1277(r008): 57(ptr) Variable Function
+ 1282(r009): 57(ptr) Variable Function
+ 1285(r010): 57(ptr) Variable Function
+ 1288(r011): 57(ptr) Variable Function
+ 1291(r012): 57(ptr) Variable Function
+ 1294(r013): 57(ptr) Variable Function
+ 1297(r014): 57(ptr) Variable Function
+ 1300(r015): 57(ptr) Variable Function
+ 1303(r016): 57(ptr) Variable Function
+ 1306(r017): 57(ptr) Variable Function
+ 1309(r018): 7(ptr) Variable Function
+ 1312(r019): 57(ptr) Variable Function
+ 1315(R020): 57(ptr) Variable Function
+ 1318(r021): 57(ptr) Variable Function
+ 1321(r022): 57(ptr) Variable Function
+ 1334(r023): 57(ptr) Variable Function
+ 1337(r024): 57(ptr) Variable Function
+ 1343(r025): 57(ptr) Variable Function
+ 1346(r026): 57(ptr) Variable Function
+ 1350(r026a): 57(ptr) Variable Function
+ 1355(r027): 57(ptr) Variable Function
+ 1358(r028): 57(ptr) Variable Function
+ 1362(r029): 57(ptr) Variable Function
+ 1365(r030): 57(ptr) Variable Function
+ 1369(r031): 57(ptr) Variable Function
+ 1373(r032): 57(ptr) Variable Function
+ 1377(r033): 57(ptr) Variable Function
+ 1380(r034): 57(ptr) Variable Function
+ 1383(r035): 57(ptr) Variable Function
+ 1386(r036): 57(ptr) Variable Function
+ 1391(r037): 57(ptr) Variable Function
+ 1394(r038): 57(ptr) Variable Function
+ 1401(r039): 57(ptr) Variable Function
+ 1404(r049): 57(ptr) Variable Function
+ 1409(r041): 57(ptr) Variable Function
+ 1412(r042): 57(ptr) Variable Function
+ 1416(r043): 57(ptr) Variable Function
+ 1419(r044): 57(ptr) Variable Function
+ 1424(r046): 57(ptr) Variable Function
+ 1246: 56 Load 59(inF0)
+ 1247: 121(bool) All 1246
+ Store 1245(r000) 1247
+ 1249: 56 Load 59(inF0)
+ 1250: 56 ExtInst 1(GLSL.std.450) 4(FAbs) 1249
+ Store 1248(r001) 1250
1251: 56 Load 59(inF0)
- 1252: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1251
- Store 1250(r004) 1252
+ 1252: 56 ExtInst 1(GLSL.std.450) 17(Acos) 1251
1254: 56 Load 59(inF0)
- 1255: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1254
- Store 1253(r005) 1255
+ 1255: 121(bool) Any 1254
+ Store 1253(r003) 1255
1257: 56 Load 59(inF0)
- 1258: 56 Load 60(inF1)
- 1259: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1257 1258
- Store 1256(r006) 1259
- 1261: 56 Load 59(inF0)
- 1262: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1261
- Store 1260(r007) 1262
+ 1258: 56 ExtInst 1(GLSL.std.450) 16(Asin) 1257
+ Store 1256(r004) 1258
+ 1260: 56 Load 59(inF0)
+ 1261: 56 ExtInst 1(GLSL.std.450) 18(Atan) 1260
+ Store 1259(r005) 1261
1263: 56 Load 59(inF0)
- 1266: 1265 FOrdLessThan 1263 1264
- 1267: 121(bool) Any 1266
- SelectionMerge 1269 None
- BranchConditional 1267 1268 1269
- 1268: Label
+ 1264: 56 Load 60(inF1)
+ 1265: 56 ExtInst 1(GLSL.std.450) 25(Atan2) 1263 1264
+ Store 1262(r006) 1265
+ 1267: 56 Load 59(inF0)
+ 1268: 56 ExtInst 1(GLSL.std.450) 9(Ceil) 1267
+ Store 1266(r007) 1268
+ 1269: 56 Load 59(inF0)
+ 1272: 1271 FOrdLessThan 1269 1270
+ 1273: 121(bool) Any 1272
+ SelectionMerge 1275 None
+ BranchConditional 1273 1274 1275
+ 1274: Label
Kill
- 1269: Label
- 1272: 56 Load 59(inF0)
- 1273: 56 Load 60(inF1)
- 1274: 56 Load 61(inF2)
- 1275: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1272 1273 1274
- Store 1271(r008) 1275
- 1277: 56 Load 59(inF0)
- 1278: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1277
- Store 1276(r009) 1278
- 1280: 56 Load 59(inF0)
- 1281: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1280
- Store 1279(r010) 1281
+ 1275: Label
+ 1278: 56 Load 59(inF0)
+ 1279: 56 Load 60(inF1)
+ 1280: 56 Load 61(inF2)
+ 1281: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1278 1279 1280
+ Store 1277(r008) 1281
1283: 56 Load 59(inF0)
- 1284: 56 DPdx 1283
- Store 1282(r011) 1284
+ 1284: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1283
+ Store 1282(r009) 1284
1286: 56 Load 59(inF0)
- 1287: 56 DPdxCoarse 1286
- Store 1285(r012) 1287
+ 1287: 56 ExtInst 1(GLSL.std.450) 20(Cosh) 1286
+ Store 1285(r010) 1287
1289: 56 Load 59(inF0)
- 1290: 56 DPdxFine 1289
- Store 1288(r013) 1290
+ 1290: 56 DPdx 1289
+ Store 1288(r011) 1290
1292: 56 Load 59(inF0)
- 1293: 56 DPdy 1292
- Store 1291(r014) 1293
+ 1293: 56 DPdxCoarse 1292
+ Store 1291(r012) 1293
1295: 56 Load 59(inF0)
- 1296: 56 DPdyCoarse 1295
- Store 1294(r015) 1296
+ 1296: 56 DPdxFine 1295
+ Store 1294(r013) 1296
1298: 56 Load 59(inF0)
- 1299: 56 DPdyFine 1298
- Store 1297(r016) 1299
+ 1299: 56 DPdy 1298
+ Store 1297(r014) 1299
1301: 56 Load 59(inF0)
- 1302: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1301
- Store 1300(r017) 1302
+ 1302: 56 DPdyCoarse 1301
+ Store 1300(r015) 1302
1304: 56 Load 59(inF0)
- 1305: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1304
- Store 1303(r018) 1305
+ 1305: 56 DPdyFine 1304
+ Store 1303(r016) 1305
1307: 56 Load 59(inF0)
- 1308: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1307
- Store 1306(r019) 1308
+ 1308: 56 ExtInst 1(GLSL.std.450) 12(Degrees) 1307
+ Store 1306(r017) 1308
1310: 56 Load 59(inF0)
- 1311: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1310
- Store 1309(R020) 1311
+ 1311: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1310
+ Store 1309(r018) 1311
1313: 56 Load 59(inF0)
- 1314: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1313
- Store 1312(r021) 1314
+ 1314: 56 ExtInst 1(GLSL.std.450) 27(Exp) 1313
+ Store 1312(r019) 1314
1316: 56 Load 59(inF0)
- 1317: 56 Load 60(inF1)
- 1318: 36(fvec3) CompositeExtract 1316 0
- 1319: 36(fvec3) CompositeExtract 1317 0
- 1320: 36(fvec3) FMod 1318 1319
- 1321: 36(fvec3) CompositeExtract 1316 1
- 1322: 36(fvec3) CompositeExtract 1317 1
- 1323: 36(fvec3) FMod 1321 1322
- 1324: 36(fvec3) CompositeExtract 1316 2
- 1325: 36(fvec3) CompositeExtract 1317 2
+ 1317: 56 ExtInst 1(GLSL.std.450) 29(Exp2) 1316
+ Store 1315(R020) 1317
+ 1319: 56 Load 59(inF0)
+ 1320: 56 ExtInst 1(GLSL.std.450) 8(Floor) 1319
+ Store 1318(r021) 1320
+ 1322: 56 Load 59(inF0)
+ 1323: 56 Load 60(inF1)
+ 1324: 36(fvec3) CompositeExtract 1322 0
+ 1325: 36(fvec3) CompositeExtract 1323 0
1326: 36(fvec3) FMod 1324 1325
- 1327: 56 CompositeConstruct 1320 1323 1326
- Store 1315(r022) 1327
- 1329: 56 Load 59(inF0)
- 1330: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1329
- Store 1328(r023) 1330
- 1332: 56 Load 59(inF0)
- 1334:1333(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1332
- 1335: 578(ivec3) CompositeExtract 1334 1
- Store 60(inF1) 1335
- 1336: 56 CompositeExtract 1334 0
- Store 1331(r024) 1336
+ 1327: 36(fvec3) CompositeExtract 1322 1
+ 1328: 36(fvec3) CompositeExtract 1323 1
+ 1329: 36(fvec3) FMod 1327 1328
+ 1330: 36(fvec3) CompositeExtract 1322 2
+ 1331: 36(fvec3) CompositeExtract 1323 2
+ 1332: 36(fvec3) FMod 1330 1331
+ 1333: 56 CompositeConstruct 1326 1329 1332
+ Store 1321(r022) 1333
+ 1335: 56 Load 59(inF0)
+ 1336: 56 ExtInst 1(GLSL.std.450) 10(Fract) 1335
+ Store 1334(r023) 1336
1338: 56 Load 59(inF0)
- 1339: 56 Fwidth 1338
- Store 1337(r025) 1339
- 1341: 56 Load 59(inF0)
- 1342: 56 Load 60(inF1)
- 1343: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1341 1342
- Store 1340(r026) 1343
- 1345: 56 Load 59(inF0)
- 1346: 56 Load 60(inF1)
- 1347: 56 Load 61(inF2)
- 1348: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1345 1346 1347
- Store 1344(r026a) 1348
- 1350: 56 Load 59(inF0)
- 1351: 56 ExtInst 1(GLSL.std.450) 28(Log) 1350
- Store 1349(r027) 1351
- 1353: 56 Load 59(inF0)
- 1354: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1353
- 1355: 56 MatrixTimesScalar 1354 253
- Store 1352(r028) 1355
- 1357: 56 Load 59(inF0)
- 1358: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1357
- Store 1356(r029) 1358
- 1360: 56 Load 59(inF0)
- 1361: 56 Load 60(inF1)
- 1362: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1360 1361
- Store 1359(r030) 1362
- 1364: 56 Load 59(inF0)
- 1365: 56 Load 60(inF1)
- 1366: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1364 1365
- Store 1363(r031) 1366
- 1368: 56 Load 59(inF0)
- 1369: 56 Load 60(inF1)
- 1370: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1368 1369
- Store 1367(r032) 1370
- 1372: 56 Load 59(inF0)
- 1373: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1372
- Store 1371(r033) 1373
- 1375: 56 Load 59(inF0)
- 1376: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1375
- Store 1374(r034) 1376
+ 1340:1339(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1338
+ 1341: 578(ivec3) CompositeExtract 1340 1
+ Store 60(inF1) 1341
+ 1342: 56 CompositeExtract 1340 0
+ Store 1337(r024) 1342
+ 1344: 56 Load 59(inF0)
+ 1345: 56 Fwidth 1344
+ Store 1343(r025) 1345
+ 1347: 56 Load 59(inF0)
+ 1348: 56 Load 60(inF1)
+ 1349: 56 ExtInst 1(GLSL.std.450) 53(Ldexp) 1347 1348
+ Store 1346(r026) 1349
+ 1351: 56 Load 59(inF0)
+ 1352: 56 Load 60(inF1)
+ 1353: 56 Load 61(inF2)
+ 1354: 56 ExtInst 1(GLSL.std.450) 46(FMix) 1351 1352 1353
+ Store 1350(r026a) 1354
+ 1356: 56 Load 59(inF0)
+ 1357: 56 ExtInst 1(GLSL.std.450) 28(Log) 1356
+ Store 1355(r027) 1357
+ 1359: 56 Load 59(inF0)
+ 1360: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1359
+ 1361: 56 MatrixTimesScalar 1360 253
+ Store 1358(r028) 1361
+ 1363: 56 Load 59(inF0)
+ 1364: 56 ExtInst 1(GLSL.std.450) 30(Log2) 1363
+ Store 1362(r029) 1364
+ 1366: 56 Load 59(inF0)
+ 1367: 56 Load 60(inF1)
+ 1368: 56 ExtInst 1(GLSL.std.450) 40(FMax) 1366 1367
+ Store 1365(r030) 1368
+ 1370: 56 Load 59(inF0)
+ 1371: 56 Load 60(inF1)
+ 1372: 56 ExtInst 1(GLSL.std.450) 37(FMin) 1370 1371
+ Store 1369(r031) 1372
+ 1374: 56 Load 59(inF0)
+ 1375: 56 Load 60(inF1)
+ 1376: 56 ExtInst 1(GLSL.std.450) 26(Pow) 1374 1375
+ Store 1373(r032) 1376
1378: 56 Load 59(inF0)
- 1379: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1378
- Store 1377(r035) 1379
+ 1379: 56 ExtInst 1(GLSL.std.450) 11(Radians) 1378
+ Store 1377(r033) 1379
1381: 56 Load 59(inF0)
- 1382: 36(fvec3) CompositeConstruct 165 165 165
- 1383: 36(fvec3) CompositeConstruct 274 274 274
- 1384: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1381 1382 1383
- Store 1380(r036) 1384
- 1386: 56 Load 59(inF0)
- 1387: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1386
- Store 1385(r037) 1387
- 1389: 56 Load 59(inF0)
- 1390: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1389
- Store 1388(r038) 1390
- 1391: 56 Load 59(inF0)
- 1392: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1391
- Store 60(inF1) 1392
- 1393: 56 Load 59(inF0)
- 1394: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1393
- Store 61(inF2) 1394
- 1396: 56 Load 59(inF0)
- 1397: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1396
- Store 1395(r039) 1397
+ 1382: 56 ExtInst 1(GLSL.std.450) 2(RoundEven) 1381
+ Store 1380(r034) 1382
+ 1384: 56 Load 59(inF0)
+ 1385: 56 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1384
+ Store 1383(r035) 1385
+ 1387: 56 Load 59(inF0)
+ 1388: 36(fvec3) CompositeConstruct 165 165 165
+ 1389: 36(fvec3) CompositeConstruct 274 274 274
+ 1390: 56 ExtInst 1(GLSL.std.450) 43(FClamp) 1387 1388 1389
+ Store 1386(r036) 1390
+ 1392: 56 Load 59(inF0)
+ 1393: 56 ExtInst 1(GLSL.std.450) 6(FSign) 1392
+ Store 1391(r037) 1393
+ 1395: 56 Load 59(inF0)
+ 1396: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1395
+ Store 1394(r038) 1396
+ 1397: 56 Load 59(inF0)
+ 1398: 56 ExtInst 1(GLSL.std.450) 13(Sin) 1397
+ Store 60(inF1) 1398
1399: 56 Load 59(inF0)
- 1400: 56 Load 60(inF1)
- 1401: 56 Load 61(inF2)
- 1402: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1399 1400 1401
- Store 1398(r049) 1402
- 1404: 56 Load 59(inF0)
- 1405: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1404
- Store 1403(r041) 1405
- 1407: 56 Load 59(inF0)
- 1408: 56 Load 60(inF1)
- 1409: 56 ExtInst 1(GLSL.std.450) 48(Step) 1407 1408
- Store 1406(r042) 1409
- 1411: 56 Load 59(inF0)
- 1412: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1411
- Store 1410(r043) 1412
- 1414: 56 Load 59(inF0)
- 1415: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1414
- Store 1413(r044) 1415
- 1416: 56 Load 59(inF0)
- 1417: 56 Transpose 1416
- 1419: 56 Load 59(inF0)
- 1420: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1419
- Store 1418(r046) 1420
- ReturnValue 1422
+ 1400: 56 ExtInst 1(GLSL.std.450) 14(Cos) 1399
+ Store 61(inF2) 1400
+ 1402: 56 Load 59(inF0)
+ 1403: 56 ExtInst 1(GLSL.std.450) 19(Sinh) 1402
+ Store 1401(r039) 1403
+ 1405: 56 Load 59(inF0)
+ 1406: 56 Load 60(inF1)
+ 1407: 56 Load 61(inF2)
+ 1408: 56 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1405 1406 1407
+ Store 1404(r049) 1408
+ 1410: 56 Load 59(inF0)
+ 1411: 56 ExtInst 1(GLSL.std.450) 31(Sqrt) 1410
+ Store 1409(r041) 1411
+ 1413: 56 Load 59(inF0)
+ 1414: 56 Load 60(inF1)
+ 1415: 56 ExtInst 1(GLSL.std.450) 48(Step) 1413 1414
+ Store 1412(r042) 1415
+ 1417: 56 Load 59(inF0)
+ 1418: 56 ExtInst 1(GLSL.std.450) 15(Tan) 1417
+ Store 1416(r043) 1418
+ 1420: 56 Load 59(inF0)
+ 1421: 56 ExtInst 1(GLSL.std.450) 21(Tanh) 1420
+ Store 1419(r044) 1421
+ 1422: 56 Load 59(inF0)
+ 1423: 56 Transpose 1422
+ 1425: 56 Load 59(inF0)
+ 1426: 56 ExtInst 1(GLSL.std.450) 3(Trunc) 1425
+ Store 1424(r046) 1426
+ ReturnValue 1428
FunctionEnd
71(PixelShaderFunction4x4(mf44;mf44;mf44;): 65 Function None 67
68(inF0): 66(ptr) FunctionParameter
69(inF1): 66(ptr) FunctionParameter
70(inF2): 66(ptr) FunctionParameter
72: Label
- 1425(r000): 122(ptr) Variable Function
- 1428(r001): 66(ptr) Variable Function
- 1433(r003): 122(ptr) Variable Function
- 1436(r004): 66(ptr) Variable Function
- 1439(r005): 66(ptr) Variable Function
- 1442(r006): 66(ptr) Variable Function
- 1446(r007): 66(ptr) Variable Function
- 1457(r008): 66(ptr) Variable Function
- 1462(r009): 66(ptr) Variable Function
- 1465(r010): 66(ptr) Variable Function
- 1468(r011): 66(ptr) Variable Function
- 1471(r012): 66(ptr) Variable Function
- 1474(r013): 66(ptr) Variable Function
- 1477(r014): 66(ptr) Variable Function
- 1480(r015): 66(ptr) Variable Function
- 1483(r016): 66(ptr) Variable Function
- 1486(r017): 66(ptr) Variable Function
- 1489(r018): 7(ptr) Variable Function
- 1492(r019): 66(ptr) Variable Function
- 1495(R020): 66(ptr) Variable Function
- 1498(r021): 66(ptr) Variable Function
- 1501(r022): 66(ptr) Variable Function
- 1517(r023): 66(ptr) Variable Function
- 1520(r024): 66(ptr) Variable Function
- 1526(r025): 66(ptr) Variable Function
- 1529(r026): 66(ptr) Variable Function
- 1533(r026a): 66(ptr) Variable Function
- 1538(r027): 66(ptr) Variable Function
- 1541(r028): 66(ptr) Variable Function
- 1545(r029): 66(ptr) Variable Function
- 1548(r030): 66(ptr) Variable Function
- 1552(r031): 66(ptr) Variable Function
- 1556(r032): 66(ptr) Variable Function
- 1560(r033): 66(ptr) Variable Function
- 1563(r034): 66(ptr) Variable Function
- 1566(r035): 66(ptr) Variable Function
- 1569(r036): 66(ptr) Variable Function
- 1574(r037): 66(ptr) Variable Function
- 1577(r038): 66(ptr) Variable Function
- 1584(r039): 66(ptr) Variable Function
- 1587(r049): 66(ptr) Variable Function
- 1592(r041): 66(ptr) Variable Function
- 1595(r042): 66(ptr) Variable Function
- 1599(r043): 66(ptr) Variable Function
- 1602(r044): 66(ptr) Variable Function
- 1607(r046): 66(ptr) Variable Function
- 1426: 65 Load 68(inF0)
- 1427: 121(bool) All 1426
- Store 1425(r000) 1427
- 1429: 65 Load 68(inF0)
- 1430: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1429
- Store 1428(r001) 1430
- 1431: 65 Load 68(inF0)
- 1432: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1431
- 1434: 65 Load 68(inF0)
- 1435: 121(bool) Any 1434
- Store 1433(r003) 1435
+ 1431(r000): 122(ptr) Variable Function
+ 1434(r001): 66(ptr) Variable Function
+ 1439(r003): 122(ptr) Variable Function
+ 1442(r004): 66(ptr) Variable Function
+ 1445(r005): 66(ptr) Variable Function
+ 1448(r006): 66(ptr) Variable Function
+ 1452(r007): 66(ptr) Variable Function
+ 1463(r008): 66(ptr) Variable Function
+ 1468(r009): 66(ptr) Variable Function
+ 1471(r010): 66(ptr) Variable Function
+ 1474(r011): 66(ptr) Variable Function
+ 1477(r012): 66(ptr) Variable Function
+ 1480(r013): 66(ptr) Variable Function
+ 1483(r014): 66(ptr) Variable Function
+ 1486(r015): 66(ptr) Variable Function
+ 1489(r016): 66(ptr) Variable Function
+ 1492(r017): 66(ptr) Variable Function
+ 1495(r018): 7(ptr) Variable Function
+ 1498(r019): 66(ptr) Variable Function
+ 1501(R020): 66(ptr) Variable Function
+ 1504(r021): 66(ptr) Variable Function
+ 1507(r022): 66(ptr) Variable Function
+ 1523(r023): 66(ptr) Variable Function
+ 1526(r024): 66(ptr) Variable Function
+ 1532(r025): 66(ptr) Variable Function
+ 1535(r026): 66(ptr) Variable Function
+ 1539(r026a): 66(ptr) Variable Function
+ 1544(r027): 66(ptr) Variable Function
+ 1547(r028): 66(ptr) Variable Function
+ 1551(r029): 66(ptr) Variable Function
+ 1554(r030): 66(ptr) Variable Function
+ 1558(r031): 66(ptr) Variable Function
+ 1562(r032): 66(ptr) Variable Function
+ 1566(r033): 66(ptr) Variable Function
+ 1569(r034): 66(ptr) Variable Function
+ 1572(r035): 66(ptr) Variable Function
+ 1575(r036): 66(ptr) Variable Function
+ 1580(r037): 66(ptr) Variable Function
+ 1583(r038): 66(ptr) Variable Function
+ 1590(r039): 66(ptr) Variable Function
+ 1593(r049): 66(ptr) Variable Function
+ 1598(r041): 66(ptr) Variable Function
+ 1601(r042): 66(ptr) Variable Function
+ 1605(r043): 66(ptr) Variable Function
+ 1608(r044): 66(ptr) Variable Function
+ 1613(r046): 66(ptr) Variable Function
+ 1432: 65 Load 68(inF0)
+ 1433: 121(bool) All 1432
+ Store 1431(r000) 1433
+ 1435: 65 Load 68(inF0)
+ 1436: 65 ExtInst 1(GLSL.std.450) 4(FAbs) 1435
+ Store 1434(r001) 1436
1437: 65 Load 68(inF0)
- 1438: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1437
- Store 1436(r004) 1438
+ 1438: 65 ExtInst 1(GLSL.std.450) 17(Acos) 1437
1440: 65 Load 68(inF0)
- 1441: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1440
- Store 1439(r005) 1441
+ 1441: 121(bool) Any 1440
+ Store 1439(r003) 1441
1443: 65 Load 68(inF0)
- 1444: 65 Load 69(inF1)
- 1445: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1443 1444
- Store 1442(r006) 1445
- 1447: 65 Load 68(inF0)
- 1448: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1447
- Store 1446(r007) 1448
+ 1444: 65 ExtInst 1(GLSL.std.450) 16(Asin) 1443
+ Store 1442(r004) 1444
+ 1446: 65 Load 68(inF0)
+ 1447: 65 ExtInst 1(GLSL.std.450) 18(Atan) 1446
+ Store 1445(r005) 1447
1449: 65 Load 68(inF0)
- 1452: 1451 FOrdLessThan 1449 1450
- 1453: 121(bool) Any 1452
- SelectionMerge 1455 None
- BranchConditional 1453 1454 1455
- 1454: Label
+ 1450: 65 Load 69(inF1)
+ 1451: 65 ExtInst 1(GLSL.std.450) 25(Atan2) 1449 1450
+ Store 1448(r006) 1451
+ 1453: 65 Load 68(inF0)
+ 1454: 65 ExtInst 1(GLSL.std.450) 9(Ceil) 1453
+ Store 1452(r007) 1454
+ 1455: 65 Load 68(inF0)
+ 1458: 1457 FOrdLessThan 1455 1456
+ 1459: 121(bool) Any 1458
+ SelectionMerge 1461 None
+ BranchConditional 1459 1460 1461
+ 1460: Label
Kill
- 1455: Label
- 1458: 65 Load 68(inF0)
- 1459: 65 Load 69(inF1)
- 1460: 65 Load 70(inF2)
- 1461: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1458 1459 1460
- Store 1457(r008) 1461
- 1463: 65 Load 68(inF0)
- 1464: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1463
- Store 1462(r009) 1464
- 1466: 65 Load 68(inF0)
- 1467: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1466
- Store 1465(r010) 1467
+ 1461: Label
+ 1464: 65 Load 68(inF0)
+ 1465: 65 Load 69(inF1)
+ 1466: 65 Load 70(inF2)
+ 1467: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1464 1465 1466
+ Store 1463(r008) 1467
1469: 65 Load 68(inF0)
- 1470: 65 DPdx 1469
- Store 1468(r011) 1470
+ 1470: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1469
+ Store 1468(r009) 1470
1472: 65 Load 68(inF0)
- 1473: 65 DPdxCoarse 1472
- Store 1471(r012) 1473
+ 1473: 65 ExtInst 1(GLSL.std.450) 20(Cosh) 1472
+ Store 1471(r010) 1473
1475: 65 Load 68(inF0)
- 1476: 65 DPdxFine 1475
- Store 1474(r013) 1476
+ 1476: 65 DPdx 1475
+ Store 1474(r011) 1476
1478: 65 Load 68(inF0)
- 1479: 65 DPdy 1478
- Store 1477(r014) 1479
+ 1479: 65 DPdxCoarse 1478
+ Store 1477(r012) 1479
1481: 65 Load 68(inF0)
- 1482: 65 DPdyCoarse 1481
- Store 1480(r015) 1482
+ 1482: 65 DPdxFine 1481
+ Store 1480(r013) 1482
1484: 65 Load 68(inF0)
- 1485: 65 DPdyFine 1484
- Store 1483(r016) 1485
+ 1485: 65 DPdy 1484
+ Store 1483(r014) 1485
1487: 65 Load 68(inF0)
- 1488: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1487
- Store 1486(r017) 1488
+ 1488: 65 DPdyCoarse 1487
+ Store 1486(r015) 1488
1490: 65 Load 68(inF0)
- 1491: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1490
- Store 1489(r018) 1491
+ 1491: 65 DPdyFine 1490
+ Store 1489(r016) 1491
1493: 65 Load 68(inF0)
- 1494: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1493
- Store 1492(r019) 1494
+ 1494: 65 ExtInst 1(GLSL.std.450) 12(Degrees) 1493
+ Store 1492(r017) 1494
1496: 65 Load 68(inF0)
- 1497: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1496
- Store 1495(R020) 1497
+ 1497: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1496
+ Store 1495(r018) 1497
1499: 65 Load 68(inF0)
- 1500: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1499
- Store 1498(r021) 1500
+ 1500: 65 ExtInst 1(GLSL.std.450) 27(Exp) 1499
+ Store 1498(r019) 1500
1502: 65 Load 68(inF0)
- 1503: 65 Load 69(inF1)
- 1504: 64(fvec4) CompositeExtract 1502 0
- 1505: 64(fvec4) CompositeExtract 1503 0
- 1506: 64(fvec4) FMod 1504 1505
- 1507: 64(fvec4) CompositeExtract 1502 1
- 1508: 64(fvec4) CompositeExtract 1503 1
- 1509: 64(fvec4) FMod 1507 1508
- 1510: 64(fvec4) CompositeExtract 1502 2
- 1511: 64(fvec4) CompositeExtract 1503 2
+ 1503: 65 ExtInst 1(GLSL.std.450) 29(Exp2) 1502
+ Store 1501(R020) 1503
+ 1505: 65 Load 68(inF0)
+ 1506: 65 ExtInst 1(GLSL.std.450) 8(Floor) 1505
+ Store 1504(r021) 1506
+ 1508: 65 Load 68(inF0)
+ 1509: 65 Load 69(inF1)
+ 1510: 64(fvec4) CompositeExtract 1508 0
+ 1511: 64(fvec4) CompositeExtract 1509 0
1512: 64(fvec4) FMod 1510 1511
- 1513: 64(fvec4) CompositeExtract 1502 3
- 1514: 64(fvec4) CompositeExtract 1503 3
+ 1513: 64(fvec4) CompositeExtract 1508 1
+ 1514: 64(fvec4) CompositeExtract 1509 1
1515: 64(fvec4) FMod 1513 1514
- 1516: 65 CompositeConstruct 1506 1509 1512 1515
- Store 1501(r022) 1516
- 1518: 65 Load 68(inF0)
- 1519: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1518
- Store 1517(r023) 1519
- 1521: 65 Load 68(inF0)
- 1523:1522(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1521
- 1524: 819(ivec4) CompositeExtract 1523 1
- Store 69(inF1) 1524
- 1525: 65 CompositeExtract 1523 0
- Store 1520(r024) 1525
+ 1516: 64(fvec4) CompositeExtract 1508 2
+ 1517: 64(fvec4) CompositeExtract 1509 2
+ 1518: 64(fvec4) FMod 1516 1517
+ 1519: 64(fvec4) CompositeExtract 1508 3
+ 1520: 64(fvec4) CompositeExtract 1509 3
+ 1521: 64(fvec4) FMod 1519 1520
+ 1522: 65 CompositeConstruct 1512 1515 1518 1521
+ Store 1507(r022) 1522
+ 1524: 65 Load 68(inF0)
+ 1525: 65 ExtInst 1(GLSL.std.450) 10(Fract) 1524
+ Store 1523(r023) 1525
1527: 65 Load 68(inF0)
- 1528: 65 Fwidth 1527
- Store 1526(r025) 1528
- 1530: 65 Load 68(inF0)
- 1531: 65 Load 69(inF1)
- 1532: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1530 1531
- Store 1529(r026) 1532
- 1534: 65 Load 68(inF0)
- 1535: 65 Load 69(inF1)
- 1536: 65 Load 70(inF2)
- 1537: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1534 1535 1536
- Store 1533(r026a) 1537
- 1539: 65 Load 68(inF0)
- 1540: 65 ExtInst 1(GLSL.std.450) 28(Log) 1539
- Store 1538(r027) 1540
- 1542: 65 Load 68(inF0)
- 1543: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1542
- 1544: 65 MatrixTimesScalar 1543 253
- Store 1541(r028) 1544
- 1546: 65 Load 68(inF0)
- 1547: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1546
- Store 1545(r029) 1547
- 1549: 65 Load 68(inF0)
- 1550: 65 Load 69(inF1)
- 1551: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1549 1550
- Store 1548(r030) 1551
- 1553: 65 Load 68(inF0)
- 1554: 65 Load 69(inF1)
- 1555: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1553 1554
- Store 1552(r031) 1555
- 1557: 65 Load 68(inF0)
- 1558: 65 Load 69(inF1)
- 1559: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1557 1558
- Store 1556(r032) 1559
- 1561: 65 Load 68(inF0)
- 1562: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1561
- Store 1560(r033) 1562
- 1564: 65 Load 68(inF0)
- 1565: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1564
- Store 1563(r034) 1565
+ 1529:1528(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1527
+ 1530: 825(ivec4) CompositeExtract 1529 1
+ Store 69(inF1) 1530
+ 1531: 65 CompositeExtract 1529 0
+ Store 1526(r024) 1531
+ 1533: 65 Load 68(inF0)
+ 1534: 65 Fwidth 1533
+ Store 1532(r025) 1534
+ 1536: 65 Load 68(inF0)
+ 1537: 65 Load 69(inF1)
+ 1538: 65 ExtInst 1(GLSL.std.450) 53(Ldexp) 1536 1537
+ Store 1535(r026) 1538
+ 1540: 65 Load 68(inF0)
+ 1541: 65 Load 69(inF1)
+ 1542: 65 Load 70(inF2)
+ 1543: 65 ExtInst 1(GLSL.std.450) 46(FMix) 1540 1541 1542
+ Store 1539(r026a) 1543
+ 1545: 65 Load 68(inF0)
+ 1546: 65 ExtInst 1(GLSL.std.450) 28(Log) 1545
+ Store 1544(r027) 1546
+ 1548: 65 Load 68(inF0)
+ 1549: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1548
+ 1550: 65 MatrixTimesScalar 1549 253
+ Store 1547(r028) 1550
+ 1552: 65 Load 68(inF0)
+ 1553: 65 ExtInst 1(GLSL.std.450) 30(Log2) 1552
+ Store 1551(r029) 1553
+ 1555: 65 Load 68(inF0)
+ 1556: 65 Load 69(inF1)
+ 1557: 65 ExtInst 1(GLSL.std.450) 40(FMax) 1555 1556
+ Store 1554(r030) 1557
+ 1559: 65 Load 68(inF0)
+ 1560: 65 Load 69(inF1)
+ 1561: 65 ExtInst 1(GLSL.std.450) 37(FMin) 1559 1560
+ Store 1558(r031) 1561
+ 1563: 65 Load 68(inF0)
+ 1564: 65 Load 69(inF1)
+ 1565: 65 ExtInst 1(GLSL.std.450) 26(Pow) 1563 1564
+ Store 1562(r032) 1565
1567: 65 Load 68(inF0)
- 1568: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1567
- Store 1566(r035) 1568
+ 1568: 65 ExtInst 1(GLSL.std.450) 11(Radians) 1567
+ Store 1566(r033) 1568
1570: 65 Load 68(inF0)
- 1571: 64(fvec4) CompositeConstruct 165 165 165 165
- 1572: 64(fvec4) CompositeConstruct 274 274 274 274
- 1573: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1570 1571 1572
- Store 1569(r036) 1573
- 1575: 65 Load 68(inF0)
- 1576: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1575
- Store 1574(r037) 1576
- 1578: 65 Load 68(inF0)
- 1579: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1578
- Store 1577(r038) 1579
- 1580: 65 Load 68(inF0)
- 1581: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1580
- Store 69(inF1) 1581
- 1582: 65 Load 68(inF0)
- 1583: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1582
- Store 70(inF2) 1583
- 1585: 65 Load 68(inF0)
- 1586: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1585
- Store 1584(r039) 1586
+ 1571: 65 ExtInst 1(GLSL.std.450) 2(RoundEven) 1570
+ Store 1569(r034) 1571
+ 1573: 65 Load 68(inF0)
+ 1574: 65 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1573
+ Store 1572(r035) 1574
+ 1576: 65 Load 68(inF0)
+ 1577: 64(fvec4) CompositeConstruct 165 165 165 165
+ 1578: 64(fvec4) CompositeConstruct 274 274 274 274
+ 1579: 65 ExtInst 1(GLSL.std.450) 43(FClamp) 1576 1577 1578
+ Store 1575(r036) 1579
+ 1581: 65 Load 68(inF0)
+ 1582: 65 ExtInst 1(GLSL.std.450) 6(FSign) 1581
+ Store 1580(r037) 1582
+ 1584: 65 Load 68(inF0)
+ 1585: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1584
+ Store 1583(r038) 1585
+ 1586: 65 Load 68(inF0)
+ 1587: 65 ExtInst 1(GLSL.std.450) 13(Sin) 1586
+ Store 69(inF1) 1587
1588: 65 Load 68(inF0)
- 1589: 65 Load 69(inF1)
- 1590: 65 Load 70(inF2)
- 1591: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1588 1589 1590
- Store 1587(r049) 1591
- 1593: 65 Load 68(inF0)
- 1594: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1593
- Store 1592(r041) 1594
- 1596: 65 Load 68(inF0)
- 1597: 65 Load 69(inF1)
- 1598: 65 ExtInst 1(GLSL.std.450) 48(Step) 1596 1597
- Store 1595(r042) 1598
- 1600: 65 Load 68(inF0)
- 1601: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1600
- Store 1599(r043) 1601
- 1603: 65 Load 68(inF0)
- 1604: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1603
- Store 1602(r044) 1604
- 1605: 65 Load 68(inF0)
- 1606: 65 Transpose 1605
- 1608: 65 Load 68(inF0)
- 1609: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1608
- Store 1607(r046) 1609
- ReturnValue 1611
+ 1589: 65 ExtInst 1(GLSL.std.450) 14(Cos) 1588
+ Store 70(inF2) 1589
+ 1591: 65 Load 68(inF0)
+ 1592: 65 ExtInst 1(GLSL.std.450) 19(Sinh) 1591
+ Store 1590(r039) 1592
+ 1594: 65 Load 68(inF0)
+ 1595: 65 Load 69(inF1)
+ 1596: 65 Load 70(inF2)
+ 1597: 65 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1594 1595 1596
+ Store 1593(r049) 1597
+ 1599: 65 Load 68(inF0)
+ 1600: 65 ExtInst 1(GLSL.std.450) 31(Sqrt) 1599
+ Store 1598(r041) 1600
+ 1602: 65 Load 68(inF0)
+ 1603: 65 Load 69(inF1)
+ 1604: 65 ExtInst 1(GLSL.std.450) 48(Step) 1602 1603
+ Store 1601(r042) 1604
+ 1606: 65 Load 68(inF0)
+ 1607: 65 ExtInst 1(GLSL.std.450) 15(Tan) 1606
+ Store 1605(r043) 1607
+ 1609: 65 Load 68(inF0)
+ 1610: 65 ExtInst 1(GLSL.std.450) 21(Tanh) 1609
+ Store 1608(r044) 1610
+ 1611: 65 Load 68(inF0)
+ 1612: 65 Transpose 1611
+ 1614: 65 Load 68(inF0)
+ 1615: 65 ExtInst 1(GLSL.std.450) 3(Trunc) 1614
+ Store 1613(r046) 1615
+ ReturnValue 1617
FunctionEnd
80(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 73
74(inF0): 7(ptr) FunctionParameter
@@ -8086,51 +8110,51 @@
78(inFM0): 49(ptr) FunctionParameter
79(inFM1): 49(ptr) FunctionParameter
81: Label
- 1614(r0): 7(ptr) Variable Function
- 1618(r1): 25(ptr) Variable Function
- 1622(r2): 25(ptr) Variable Function
- 1626(r3): 7(ptr) Variable Function
- 1630(r4): 25(ptr) Variable Function
- 1634(r5): 25(ptr) Variable Function
- 1638(r6): 49(ptr) Variable Function
- 1642(r7): 49(ptr) Variable Function
- 1646(r8): 49(ptr) Variable Function
- 1615: 6(float) Load 74(inF0)
- 1616: 6(float) Load 75(inF1)
- 1617: 6(float) FMul 1615 1616
- Store 1614(r0) 1617
- 1619: 24(fvec2) Load 76(inFV0)
- 1620: 6(float) Load 74(inF0)
- 1621: 24(fvec2) VectorTimesScalar 1619 1620
- Store 1618(r1) 1621
- 1623: 6(float) Load 74(inF0)
- 1624: 24(fvec2) Load 76(inFV0)
- 1625: 24(fvec2) VectorTimesScalar 1624 1623
- Store 1622(r2) 1625
- 1627: 24(fvec2) Load 76(inFV0)
- 1628: 24(fvec2) Load 77(inFV1)
- 1629: 6(float) Dot 1627 1628
- Store 1626(r3) 1629
- 1631: 48 Load 78(inFM0)
- 1632: 24(fvec2) Load 76(inFV0)
- 1633: 24(fvec2) MatrixTimesVector 1631 1632
- Store 1630(r4) 1633
- 1635: 24(fvec2) Load 76(inFV0)
- 1636: 48 Load 78(inFM0)
- 1637: 24(fvec2) VectorTimesMatrix 1635 1636
- Store 1634(r5) 1637
- 1639: 48 Load 78(inFM0)
- 1640: 6(float) Load 74(inF0)
- 1641: 48 MatrixTimesScalar 1639 1640
- Store 1638(r6) 1641
- 1643: 6(float) Load 74(inF0)
- 1644: 48 Load 78(inFM0)
- 1645: 48 MatrixTimesScalar 1644 1643
- Store 1642(r7) 1645
- 1647: 48 Load 78(inFM0)
- 1648: 48 Load 79(inFM1)
- 1649: 48 MatrixTimesMatrix 1647 1648
- Store 1646(r8) 1649
+ 1620(r0): 7(ptr) Variable Function
+ 1624(r1): 25(ptr) Variable Function
+ 1628(r2): 25(ptr) Variable Function
+ 1632(r3): 7(ptr) Variable Function
+ 1636(r4): 25(ptr) Variable Function
+ 1640(r5): 25(ptr) Variable Function
+ 1644(r6): 49(ptr) Variable Function
+ 1648(r7): 49(ptr) Variable Function
+ 1652(r8): 49(ptr) Variable Function
+ 1621: 6(float) Load 74(inF0)
+ 1622: 6(float) Load 75(inF1)
+ 1623: 6(float) FMul 1621 1622
+ Store 1620(r0) 1623
+ 1625: 24(fvec2) Load 76(inFV0)
+ 1626: 6(float) Load 74(inF0)
+ 1627: 24(fvec2) VectorTimesScalar 1625 1626
+ Store 1624(r1) 1627
+ 1629: 6(float) Load 74(inF0)
+ 1630: 24(fvec2) Load 76(inFV0)
+ 1631: 24(fvec2) VectorTimesScalar 1630 1629
+ Store 1628(r2) 1631
+ 1633: 24(fvec2) Load 76(inFV0)
+ 1634: 24(fvec2) Load 77(inFV1)
+ 1635: 6(float) Dot 1633 1634
+ Store 1632(r3) 1635
+ 1637: 48 Load 78(inFM0)
+ 1638: 24(fvec2) Load 76(inFV0)
+ 1639: 24(fvec2) MatrixTimesVector 1637 1638
+ Store 1636(r4) 1639
+ 1641: 24(fvec2) Load 76(inFV0)
+ 1642: 48 Load 78(inFM0)
+ 1643: 24(fvec2) VectorTimesMatrix 1641 1642
+ Store 1640(r5) 1643
+ 1645: 48 Load 78(inFM0)
+ 1646: 6(float) Load 74(inF0)
+ 1647: 48 MatrixTimesScalar 1645 1646
+ Store 1644(r6) 1647
+ 1649: 6(float) Load 74(inF0)
+ 1650: 48 Load 78(inFM0)
+ 1651: 48 MatrixTimesScalar 1650 1649
+ Store 1648(r7) 1651
+ 1653: 48 Load 78(inFM0)
+ 1654: 48 Load 79(inFM1)
+ 1655: 48 MatrixTimesMatrix 1653 1654
+ Store 1652(r8) 1655
Return
FunctionEnd
89(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 82
@@ -8141,51 +8165,51 @@
87(inFM0): 57(ptr) FunctionParameter
88(inFM1): 57(ptr) FunctionParameter
90: Label
- 1650(r0): 7(ptr) Variable Function
- 1654(r1): 37(ptr) Variable Function
- 1658(r2): 37(ptr) Variable Function
- 1662(r3): 7(ptr) Variable Function
- 1666(r4): 37(ptr) Variable Function
- 1670(r5): 37(ptr) Variable Function
- 1674(r6): 57(ptr) Variable Function
- 1678(r7): 57(ptr) Variable Function
- 1682(r8): 57(ptr) Variable Function
- 1651: 6(float) Load 83(inF0)
- 1652: 6(float) Load 84(inF1)
- 1653: 6(float) FMul 1651 1652
- Store 1650(r0) 1653
- 1655: 36(fvec3) Load 85(inFV0)
- 1656: 6(float) Load 83(inF0)
- 1657: 36(fvec3) VectorTimesScalar 1655 1656
- Store 1654(r1) 1657
- 1659: 6(float) Load 83(inF0)
- 1660: 36(fvec3) Load 85(inFV0)
- 1661: 36(fvec3) VectorTimesScalar 1660 1659
- Store 1658(r2) 1661
- 1663: 36(fvec3) Load 85(inFV0)
- 1664: 36(fvec3) Load 86(inFV1)
- 1665: 6(float) Dot 1663 1664
- Store 1662(r3) 1665
- 1667: 56 Load 87(inFM0)
- 1668: 36(fvec3) Load 85(inFV0)
- 1669: 36(fvec3) MatrixTimesVector 1667 1668
- Store 1666(r4) 1669
- 1671: 36(fvec3) Load 85(inFV0)
- 1672: 56 Load 87(inFM0)
- 1673: 36(fvec3) VectorTimesMatrix 1671 1672
- Store 1670(r5) 1673
- 1675: 56 Load 87(inFM0)
- 1676: 6(float) Load 83(inF0)
- 1677: 56 MatrixTimesScalar 1675 1676
- Store 1674(r6) 1677
- 1679: 6(float) Load 83(inF0)
- 1680: 56 Load 87(inFM0)
- 1681: 56 MatrixTimesScalar 1680 1679
- Store 1678(r7) 1681
- 1683: 56 Load 87(inFM0)
- 1684: 56 Load 88(inFM1)
- 1685: 56 MatrixTimesMatrix 1683 1684
- Store 1682(r8) 1685
+ 1656(r0): 7(ptr) Variable Function
+ 1660(r1): 37(ptr) Variable Function
+ 1664(r2): 37(ptr) Variable Function
+ 1668(r3): 7(ptr) Variable Function
+ 1672(r4): 37(ptr) Variable Function
+ 1676(r5): 37(ptr) Variable Function
+ 1680(r6): 57(ptr) Variable Function
+ 1684(r7): 57(ptr) Variable Function
+ 1688(r8): 57(ptr) Variable Function
+ 1657: 6(float) Load 83(inF0)
+ 1658: 6(float) Load 84(inF1)
+ 1659: 6(float) FMul 1657 1658
+ Store 1656(r0) 1659
+ 1661: 36(fvec3) Load 85(inFV0)
+ 1662: 6(float) Load 83(inF0)
+ 1663: 36(fvec3) VectorTimesScalar 1661 1662
+ Store 1660(r1) 1663
+ 1665: 6(float) Load 83(inF0)
+ 1666: 36(fvec3) Load 85(inFV0)
+ 1667: 36(fvec3) VectorTimesScalar 1666 1665
+ Store 1664(r2) 1667
+ 1669: 36(fvec3) Load 85(inFV0)
+ 1670: 36(fvec3) Load 86(inFV1)
+ 1671: 6(float) Dot 1669 1670
+ Store 1668(r3) 1671
+ 1673: 56 Load 87(inFM0)
+ 1674: 36(fvec3) Load 85(inFV0)
+ 1675: 36(fvec3) MatrixTimesVector 1673 1674
+ Store 1672(r4) 1675
+ 1677: 36(fvec3) Load 85(inFV0)
+ 1678: 56 Load 87(inFM0)
+ 1679: 36(fvec3) VectorTimesMatrix 1677 1678
+ Store 1676(r5) 1679
+ 1681: 56 Load 87(inFM0)
+ 1682: 6(float) Load 83(inF0)
+ 1683: 56 MatrixTimesScalar 1681 1682
+ Store 1680(r6) 1683
+ 1685: 6(float) Load 83(inF0)
+ 1686: 56 Load 87(inFM0)
+ 1687: 56 MatrixTimesScalar 1686 1685
+ Store 1684(r7) 1687
+ 1689: 56 Load 87(inFM0)
+ 1690: 56 Load 88(inFM1)
+ 1691: 56 MatrixTimesMatrix 1689 1690
+ Store 1688(r8) 1691
Return
FunctionEnd
99(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 92
@@ -8196,51 +8220,51 @@
97(inFM0): 66(ptr) FunctionParameter
98(inFM1): 66(ptr) FunctionParameter
100: Label
- 1686(r0): 7(ptr) Variable Function
- 1690(r1): 91(ptr) Variable Function
- 1694(r2): 91(ptr) Variable Function
- 1698(r3): 7(ptr) Variable Function
- 1702(r4): 91(ptr) Variable Function
- 1706(r5): 91(ptr) Variable Function
- 1710(r6): 66(ptr) Variable Function
- 1714(r7): 66(ptr) Variable Function
- 1718(r8): 66(ptr) Variable Function
- 1687: 6(float) Load 93(inF0)
- 1688: 6(float) Load 94(inF1)
- 1689: 6(float) FMul 1687 1688
- Store 1686(r0) 1689
- 1691: 64(fvec4) Load 95(inFV0)
- 1692: 6(float) Load 93(inF0)
- 1693: 64(fvec4) VectorTimesScalar 1691 1692
- Store 1690(r1) 1693
- 1695: 6(float) Load 93(inF0)
- 1696: 64(fvec4) Load 95(inFV0)
- 1697: 64(fvec4) VectorTimesScalar 1696 1695
- Store 1694(r2) 1697
- 1699: 64(fvec4) Load 95(inFV0)
- 1700: 64(fvec4) Load 96(inFV1)
- 1701: 6(float) Dot 1699 1700
- Store 1698(r3) 1701
- 1703: 65 Load 97(inFM0)
- 1704: 64(fvec4) Load 95(inFV0)
- 1705: 64(fvec4) MatrixTimesVector 1703 1704
- Store 1702(r4) 1705
- 1707: 64(fvec4) Load 95(inFV0)
- 1708: 65 Load 97(inFM0)
- 1709: 64(fvec4) VectorTimesMatrix 1707 1708
- Store 1706(r5) 1709
- 1711: 65 Load 97(inFM0)
- 1712: 6(float) Load 93(inF0)
- 1713: 65 MatrixTimesScalar 1711 1712
- Store 1710(r6) 1713
- 1715: 6(float) Load 93(inF0)
- 1716: 65 Load 97(inFM0)
- 1717: 65 MatrixTimesScalar 1716 1715
- Store 1714(r7) 1717
- 1719: 65 Load 97(inFM0)
- 1720: 65 Load 98(inFM1)
- 1721: 65 MatrixTimesMatrix 1719 1720
- Store 1718(r8) 1721
+ 1692(r0): 7(ptr) Variable Function
+ 1696(r1): 91(ptr) Variable Function
+ 1700(r2): 91(ptr) Variable Function
+ 1704(r3): 7(ptr) Variable Function
+ 1708(r4): 91(ptr) Variable Function
+ 1712(r5): 91(ptr) Variable Function
+ 1716(r6): 66(ptr) Variable Function
+ 1720(r7): 66(ptr) Variable Function
+ 1724(r8): 66(ptr) Variable Function
+ 1693: 6(float) Load 93(inF0)
+ 1694: 6(float) Load 94(inF1)
+ 1695: 6(float) FMul 1693 1694
+ Store 1692(r0) 1695
+ 1697: 64(fvec4) Load 95(inFV0)
+ 1698: 6(float) Load 93(inF0)
+ 1699: 64(fvec4) VectorTimesScalar 1697 1698
+ Store 1696(r1) 1699
+ 1701: 6(float) Load 93(inF0)
+ 1702: 64(fvec4) Load 95(inFV0)
+ 1703: 64(fvec4) VectorTimesScalar 1702 1701
+ Store 1700(r2) 1703
+ 1705: 64(fvec4) Load 95(inFV0)
+ 1706: 64(fvec4) Load 96(inFV1)
+ 1707: 6(float) Dot 1705 1706
+ Store 1704(r3) 1707
+ 1709: 65 Load 97(inFM0)
+ 1710: 64(fvec4) Load 95(inFV0)
+ 1711: 64(fvec4) MatrixTimesVector 1709 1710
+ Store 1708(r4) 1711
+ 1713: 64(fvec4) Load 95(inFV0)
+ 1714: 65 Load 97(inFM0)
+ 1715: 64(fvec4) VectorTimesMatrix 1713 1714
+ Store 1712(r5) 1715
+ 1717: 65 Load 97(inFM0)
+ 1718: 6(float) Load 93(inF0)
+ 1719: 65 MatrixTimesScalar 1717 1718
+ Store 1716(r6) 1719
+ 1721: 6(float) Load 93(inF0)
+ 1722: 65 Load 97(inFM0)
+ 1723: 65 MatrixTimesScalar 1722 1721
+ Store 1720(r7) 1723
+ 1725: 65 Load 97(inFM0)
+ 1726: 65 Load 98(inFM1)
+ 1727: 65 MatrixTimesMatrix 1725 1726
+ Store 1724(r8) 1727
Return
FunctionEnd
119(TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42;): 2 Function None 109
@@ -8254,90 +8278,90 @@
117(inFM3x4): 106(ptr) FunctionParameter
118(inFM2x4): 108(ptr) FunctionParameter
120: Label
- 1722(r00): 7(ptr) Variable Function
- 1726(r01): 25(ptr) Variable Function
- 1730(r02): 37(ptr) Variable Function
- 1734(r03): 25(ptr) Variable Function
- 1738(r04): 37(ptr) Variable Function
- 1742(r05): 7(ptr) Variable Function
- 1746(r06): 7(ptr) Variable Function
- 1750(r07): 37(ptr) Variable Function
- 1754(r08): 25(ptr) Variable Function
- 1758(r09): 25(ptr) Variable Function
- 1762(r10): 37(ptr) Variable Function
- 1766(r11): 102(ptr) Variable Function
- 1770(r12): 104(ptr) Variable Function
- 1774(r13): 49(ptr) Variable Function
- 1778(r14): 102(ptr) Variable Function
- 1782(r15): 108(ptr) Variable Function
- 1786(r16): 106(ptr) Variable Function
- 1723: 6(float) Load 110(inF0)
- 1724: 6(float) Load 111(inF1)
- 1725: 6(float) FMul 1723 1724
- Store 1722(r00) 1725
- 1727: 24(fvec2) Load 112(inFV2)
- 1728: 6(float) Load 110(inF0)
- 1729: 24(fvec2) VectorTimesScalar 1727 1728
- Store 1726(r01) 1729
- 1731: 36(fvec3) Load 113(inFV3)
- 1732: 6(float) Load 110(inF0)
- 1733: 36(fvec3) VectorTimesScalar 1731 1732
- Store 1730(r02) 1733
- 1735: 6(float) Load 110(inF0)
- 1736: 24(fvec2) Load 112(inFV2)
- 1737: 24(fvec2) VectorTimesScalar 1736 1735
- Store 1734(r03) 1737
- 1739: 6(float) Load 110(inF0)
- 1740: 36(fvec3) Load 113(inFV3)
- 1741: 36(fvec3) VectorTimesScalar 1740 1739
- Store 1738(r04) 1741
- 1743: 24(fvec2) Load 112(inFV2)
- 1744: 24(fvec2) Load 112(inFV2)
- 1745: 6(float) Dot 1743 1744
- Store 1742(r05) 1745
- 1747: 36(fvec3) Load 113(inFV3)
- 1748: 36(fvec3) Load 113(inFV3)
- 1749: 6(float) Dot 1747 1748
- Store 1746(r06) 1749
- 1751: 24(fvec2) Load 112(inFV2)
- 1752: 101 Load 114(inFM2x3)
- 1753: 36(fvec3) VectorTimesMatrix 1751 1752
- Store 1750(r07) 1753
- 1755: 36(fvec3) Load 113(inFV3)
- 1756: 103 Load 115(inFM3x2)
- 1757: 24(fvec2) VectorTimesMatrix 1755 1756
- Store 1754(r08) 1757
- 1759: 101 Load 114(inFM2x3)
- 1760: 36(fvec3) Load 113(inFV3)
- 1761: 24(fvec2) MatrixTimesVector 1759 1760
- Store 1758(r09) 1761
- 1763: 103 Load 115(inFM3x2)
- 1764: 24(fvec2) Load 112(inFV2)
- 1765: 36(fvec3) MatrixTimesVector 1763 1764
- Store 1762(r10) 1765
- 1767: 101 Load 114(inFM2x3)
- 1768: 6(float) Load 110(inF0)
- 1769: 101 MatrixTimesScalar 1767 1768
- Store 1766(r11) 1769
- 1771: 103 Load 115(inFM3x2)
- 1772: 6(float) Load 110(inF0)
- 1773: 103 MatrixTimesScalar 1771 1772
- Store 1770(r12) 1773
- 1775: 101 Load 114(inFM2x3)
- 1776: 103 Load 115(inFM3x2)
- 1777: 48 MatrixTimesMatrix 1775 1776
- Store 1774(r13) 1777
- 1779: 101 Load 114(inFM2x3)
- 1780: 56 Load 116(inFM3x3)
- 1781: 101 MatrixTimesMatrix 1779 1780
- Store 1778(r14) 1781
- 1783: 101 Load 114(inFM2x3)
- 1784: 105 Load 117(inFM3x4)
- 1785: 107 MatrixTimesMatrix 1783 1784
- Store 1782(r15) 1785
- 1787: 103 Load 115(inFM3x2)
- 1788: 107 Load 118(inFM2x4)
- 1789: 105 MatrixTimesMatrix 1787 1788
- Store 1786(r16) 1789
+ 1728(r00): 7(ptr) Variable Function
+ 1732(r01): 25(ptr) Variable Function
+ 1736(r02): 37(ptr) Variable Function
+ 1740(r03): 25(ptr) Variable Function
+ 1744(r04): 37(ptr) Variable Function
+ 1748(r05): 7(ptr) Variable Function
+ 1752(r06): 7(ptr) Variable Function
+ 1756(r07): 37(ptr) Variable Function
+ 1760(r08): 25(ptr) Variable Function
+ 1764(r09): 25(ptr) Variable Function
+ 1768(r10): 37(ptr) Variable Function
+ 1772(r11): 102(ptr) Variable Function
+ 1776(r12): 104(ptr) Variable Function
+ 1780(r13): 49(ptr) Variable Function
+ 1784(r14): 102(ptr) Variable Function
+ 1788(r15): 108(ptr) Variable Function
+ 1792(r16): 106(ptr) Variable Function
+ 1729: 6(float) Load 110(inF0)
+ 1730: 6(float) Load 111(inF1)
+ 1731: 6(float) FMul 1729 1730
+ Store 1728(r00) 1731
+ 1733: 24(fvec2) Load 112(inFV2)
+ 1734: 6(float) Load 110(inF0)
+ 1735: 24(fvec2) VectorTimesScalar 1733 1734
+ Store 1732(r01) 1735
+ 1737: 36(fvec3) Load 113(inFV3)
+ 1738: 6(float) Load 110(inF0)
+ 1739: 36(fvec3) VectorTimesScalar 1737 1738
+ Store 1736(r02) 1739
+ 1741: 6(float) Load 110(inF0)
+ 1742: 24(fvec2) Load 112(inFV2)
+ 1743: 24(fvec2) VectorTimesScalar 1742 1741
+ Store 1740(r03) 1743
+ 1745: 6(float) Load 110(inF0)
+ 1746: 36(fvec3) Load 113(inFV3)
+ 1747: 36(fvec3) VectorTimesScalar 1746 1745
+ Store 1744(r04) 1747
+ 1749: 24(fvec2) Load 112(inFV2)
+ 1750: 24(fvec2) Load 112(inFV2)
+ 1751: 6(float) Dot 1749 1750
+ Store 1748(r05) 1751
+ 1753: 36(fvec3) Load 113(inFV3)
+ 1754: 36(fvec3) Load 113(inFV3)
+ 1755: 6(float) Dot 1753 1754
+ Store 1752(r06) 1755
+ 1757: 24(fvec2) Load 112(inFV2)
+ 1758: 101 Load 114(inFM2x3)
+ 1759: 36(fvec3) VectorTimesMatrix 1757 1758
+ Store 1756(r07) 1759
+ 1761: 36(fvec3) Load 113(inFV3)
+ 1762: 103 Load 115(inFM3x2)
+ 1763: 24(fvec2) VectorTimesMatrix 1761 1762
+ Store 1760(r08) 1763
+ 1765: 101 Load 114(inFM2x3)
+ 1766: 36(fvec3) Load 113(inFV3)
+ 1767: 24(fvec2) MatrixTimesVector 1765 1766
+ Store 1764(r09) 1767
+ 1769: 103 Load 115(inFM3x2)
+ 1770: 24(fvec2) Load 112(inFV2)
+ 1771: 36(fvec3) MatrixTimesVector 1769 1770
+ Store 1768(r10) 1771
+ 1773: 101 Load 114(inFM2x3)
+ 1774: 6(float) Load 110(inF0)
+ 1775: 101 MatrixTimesScalar 1773 1774
+ Store 1772(r11) 1775
+ 1777: 103 Load 115(inFM3x2)
+ 1778: 6(float) Load 110(inF0)
+ 1779: 103 MatrixTimesScalar 1777 1778
+ Store 1776(r12) 1779
+ 1781: 101 Load 114(inFM2x3)
+ 1782: 103 Load 115(inFM3x2)
+ 1783: 48 MatrixTimesMatrix 1781 1782
+ Store 1780(r13) 1783
+ 1785: 101 Load 114(inFM2x3)
+ 1786: 56 Load 116(inFM3x3)
+ 1787: 101 MatrixTimesMatrix 1785 1786
+ Store 1784(r14) 1787
+ 1789: 101 Load 114(inFM2x3)
+ 1790: 105 Load 117(inFM3x4)
+ 1791: 107 MatrixTimesMatrix 1789 1790
+ Store 1788(r15) 1791
+ 1793: 103 Load 115(inFM3x2)
+ 1794: 107 Load 118(inFM2x4)
+ 1795: 105 MatrixTimesMatrix 1793 1794
+ Store 1792(r16) 1795
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
new file mode 100644
index 0000000..c9f4c91
--- /dev/null
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -0,0 +1,366 @@
+hlsl.load.2dms.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:32 textureFetch (global 4-component vector of float)
+0:32 'g_tTex2dmsf4' (uniform texture2DMS)
+0:32 'c2' (uniform 2-component vector of int)
+0:32 Constant:
+0:32 3 (const int)
+0:33 textureFetch (global 4-component vector of int)
+0:33 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:33 'c2' (uniform 2-component vector of int)
+0:33 Constant:
+0:33 3 (const int)
+0:34 textureFetch (global 4-component vector of uint)
+0:34 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:34 'c2' (uniform 2-component vector of int)
+0:34 Constant:
+0:34 3 (const int)
+0:37 textureFetchOffset (global 4-component vector of float)
+0:37 'g_tTex2dmsf4' (uniform texture2DMS)
+0:37 'c2' (uniform 2-component vector of int)
+0:37 Constant:
+0:37 3 (const int)
+0:37 'o2' (uniform 2-component vector of int)
+0:38 textureFetchOffset (global 4-component vector of int)
+0:38 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:38 'c2' (uniform 2-component vector of int)
+0:38 Constant:
+0:38 3 (const int)
+0:38 'o2' (uniform 2-component vector of int)
+0:39 textureFetchOffset (global 4-component vector of uint)
+0:39 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:39 'c2' (uniform 2-component vector of int)
+0:39 Constant:
+0:39 3 (const int)
+0:39 'o2' (uniform 2-component vector of int)
+0:42 textureFetch (global 4-component vector of float)
+0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:42 'c3' (uniform 3-component vector of int)
+0:42 Constant:
+0:42 3 (const int)
+0:43 textureFetch (global 4-component vector of int)
+0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:43 'c3' (uniform 3-component vector of int)
+0:43 Constant:
+0:43 3 (const int)
+0:44 textureFetch (global 4-component vector of uint)
+0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:44 'c3' (uniform 3-component vector of int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 textureFetchOffset (global 4-component vector of float)
+0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:47 'c3' (uniform 3-component vector of int)
+0:47 Constant:
+0:47 3 (const int)
+0:47 'o2' (uniform 2-component vector of int)
+0:48 textureFetchOffset (global 4-component vector of int)
+0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:48 'c3' (uniform 3-component vector of int)
+0:48 Constant:
+0:48 3 (const int)
+0:48 'o2' (uniform 2-component vector of int)
+0:49 textureFetchOffset (global 4-component vector of uint)
+0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:49 'c3' (uniform 3-component vector of int)
+0:49 Constant:
+0:49 3 (const int)
+0:49 'o2' (uniform 2-component vector of int)
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 Color: direct index for structure (temp 4-component vector of float)
+0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 1.000000
+0:51 1.000000
+0:51 1.000000
+0:51 1.000000
+0:52 move second child to first child (temp float)
+0:52 Depth: direct index for structure (temp float FragDepth)
+0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:52 Constant:
+0:52 1 (const int)
+0:52 Constant:
+0:52 1.000000
+0:54 Branch: Return with expression
+0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex2dmsf4' (uniform texture2DMS)
+0:? 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:? 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:57 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:32 textureFetch (global 4-component vector of float)
+0:32 'g_tTex2dmsf4' (uniform texture2DMS)
+0:32 'c2' (uniform 2-component vector of int)
+0:32 Constant:
+0:32 3 (const int)
+0:33 textureFetch (global 4-component vector of int)
+0:33 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:33 'c2' (uniform 2-component vector of int)
+0:33 Constant:
+0:33 3 (const int)
+0:34 textureFetch (global 4-component vector of uint)
+0:34 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:34 'c2' (uniform 2-component vector of int)
+0:34 Constant:
+0:34 3 (const int)
+0:37 textureFetchOffset (global 4-component vector of float)
+0:37 'g_tTex2dmsf4' (uniform texture2DMS)
+0:37 'c2' (uniform 2-component vector of int)
+0:37 Constant:
+0:37 3 (const int)
+0:37 'o2' (uniform 2-component vector of int)
+0:38 textureFetchOffset (global 4-component vector of int)
+0:38 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:38 'c2' (uniform 2-component vector of int)
+0:38 Constant:
+0:38 3 (const int)
+0:38 'o2' (uniform 2-component vector of int)
+0:39 textureFetchOffset (global 4-component vector of uint)
+0:39 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:39 'c2' (uniform 2-component vector of int)
+0:39 Constant:
+0:39 3 (const int)
+0:39 'o2' (uniform 2-component vector of int)
+0:42 textureFetch (global 4-component vector of float)
+0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:42 'c3' (uniform 3-component vector of int)
+0:42 Constant:
+0:42 3 (const int)
+0:43 textureFetch (global 4-component vector of int)
+0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:43 'c3' (uniform 3-component vector of int)
+0:43 Constant:
+0:43 3 (const int)
+0:44 textureFetch (global 4-component vector of uint)
+0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:44 'c3' (uniform 3-component vector of int)
+0:44 Constant:
+0:44 3 (const int)
+0:47 textureFetchOffset (global 4-component vector of float)
+0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:47 'c3' (uniform 3-component vector of int)
+0:47 Constant:
+0:47 3 (const int)
+0:47 'o2' (uniform 2-component vector of int)
+0:48 textureFetchOffset (global 4-component vector of int)
+0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:48 'c3' (uniform 3-component vector of int)
+0:48 Constant:
+0:48 3 (const int)
+0:48 'o2' (uniform 2-component vector of int)
+0:49 textureFetchOffset (global 4-component vector of uint)
+0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:49 'c3' (uniform 3-component vector of int)
+0:49 Constant:
+0:49 3 (const int)
+0:49 'o2' (uniform 2-component vector of int)
+0:51 move second child to first child (temp 4-component vector of float)
+0:51 Color: direct index for structure (temp 4-component vector of float)
+0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:51 Constant:
+0:51 0 (const int)
+0:51 Constant:
+0:51 1.000000
+0:51 1.000000
+0:51 1.000000
+0:51 1.000000
+0:52 move second child to first child (temp float)
+0:52 Depth: direct index for structure (temp float FragDepth)
+0:52 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:52 Constant:
+0:52 1 (const int)
+0:52 Constant:
+0:52 1.000000
+0:54 Branch: Return with expression
+0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex2dmsf4' (uniform texture2DMS)
+0:? 'g_tTex2dmsi4' (uniform itexture2DMS)
+0:? 'g_tTex2dmsu4' (uniform utexture2DMS)
+0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
+0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
+0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 103
+
+ Capability Shader
+ Capability ImageGatherExtended
+ Capability ImageMSArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "g_tTex2dmsf4"
+ Name 14 "c2"
+ Name 21 "g_tTex2dmsi4"
+ Name 29 "g_tTex2dmsu4"
+ Name 36 "o2"
+ Name 49 "g_tTex2dmsf4a"
+ Name 53 "c3"
+ Name 58 "g_tTex2dmsi4a"
+ Name 64 "g_tTex2dmsu4a"
+ Name 80 "PS_OUTPUT"
+ MemberName 80(PS_OUTPUT) 0 "Color"
+ MemberName 80(PS_OUTPUT) 1 "Depth"
+ Name 82 "psout"
+ Name 95 "g_sSamp"
+ Name 97 "c1"
+ Name 99 "c4"
+ Name 100 "o1"
+ Name 101 "o3"
+ Name 102 "o4"
+ Decorate 9(g_tTex2dmsf4) DescriptorSet 0
+ Decorate 21(g_tTex2dmsi4) DescriptorSet 0
+ Decorate 29(g_tTex2dmsu4) DescriptorSet 0
+ Decorate 49(g_tTex2dmsf4a) DescriptorSet 0
+ Decorate 58(g_tTex2dmsi4a) DescriptorSet 0
+ Decorate 64(g_tTex2dmsu4a) DescriptorSet 0
+ MemberDecorate 80(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 95(g_sSamp) DescriptorSet 0
+ Decorate 95(g_sSamp) Binding 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeImage 6(float) 2D multi-sampled sampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex2dmsf4): 8(ptr) Variable UniformConstant
+ 11: TypeInt 32 1
+ 12: TypeVector 11(int) 2
+ 13: TypePointer UniformConstant 12(ivec2)
+ 14(c2): 13(ptr) Variable UniformConstant
+ 16: 11(int) Constant 3
+ 17: TypeVector 6(float) 4
+ 19: TypeImage 11(int) 2D multi-sampled sampled format:Unknown
+ 20: TypePointer UniformConstant 19
+21(g_tTex2dmsi4): 20(ptr) Variable UniformConstant
+ 24: TypeVector 11(int) 4
+ 26: TypeInt 32 0
+ 27: TypeImage 26(int) 2D multi-sampled sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+29(g_tTex2dmsu4): 28(ptr) Variable UniformConstant
+ 32: TypeVector 26(int) 4
+ 36(o2): 13(ptr) Variable UniformConstant
+ 47: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown
+ 48: TypePointer UniformConstant 47
+49(g_tTex2dmsf4a): 48(ptr) Variable UniformConstant
+ 51: TypeVector 11(int) 3
+ 52: TypePointer UniformConstant 51(ivec3)
+ 53(c3): 52(ptr) Variable UniformConstant
+ 56: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown
+ 57: TypePointer UniformConstant 56
+58(g_tTex2dmsi4a): 57(ptr) Variable UniformConstant
+ 62: TypeImage 26(int) 2D array multi-sampled sampled format:Unknown
+ 63: TypePointer UniformConstant 62
+64(g_tTex2dmsu4a): 63(ptr) Variable UniformConstant
+ 80(PS_OUTPUT): TypeStruct 17(fvec4) 6(float)
+ 81: TypePointer Function 80(PS_OUTPUT)
+ 83: 11(int) Constant 0
+ 84: 6(float) Constant 1065353216
+ 85: 17(fvec4) ConstantComposite 84 84 84 84
+ 86: TypePointer Function 17(fvec4)
+ 88: 11(int) Constant 1
+ 89: TypePointer Function 6(float)
+ 93: TypeSampler
+ 94: TypePointer UniformConstant 93
+ 95(g_sSamp): 94(ptr) Variable UniformConstant
+ 96: TypePointer UniformConstant 11(int)
+ 97(c1): 96(ptr) Variable UniformConstant
+ 98: TypePointer UniformConstant 24(ivec4)
+ 99(c4): 98(ptr) Variable UniformConstant
+ 100(o1): 96(ptr) Variable UniformConstant
+ 101(o3): 52(ptr) Variable UniformConstant
+ 102(o4): 98(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 82(psout): 81(ptr) Variable Function
+ 10: 7 Load 9(g_tTex2dmsf4)
+ 15: 12(ivec2) Load 14(c2)
+ 18: 17(fvec4) ImageFetch 10 15 Sample 16
+ 22: 19 Load 21(g_tTex2dmsi4)
+ 23: 12(ivec2) Load 14(c2)
+ 25: 24(ivec4) ImageFetch 22 23 Sample 16
+ 30: 27 Load 29(g_tTex2dmsu4)
+ 31: 12(ivec2) Load 14(c2)
+ 33: 32(ivec4) ImageFetch 30 31 Sample 16
+ 34: 7 Load 9(g_tTex2dmsf4)
+ 35: 12(ivec2) Load 14(c2)
+ 37: 12(ivec2) Load 36(o2)
+ 38: 17(fvec4) ImageFetch 34 35 Offset Sample 37 16
+ 39: 19 Load 21(g_tTex2dmsi4)
+ 40: 12(ivec2) Load 14(c2)
+ 41: 12(ivec2) Load 36(o2)
+ 42: 24(ivec4) ImageFetch 39 40 Offset Sample 41 16
+ 43: 27 Load 29(g_tTex2dmsu4)
+ 44: 12(ivec2) Load 14(c2)
+ 45: 12(ivec2) Load 36(o2)
+ 46: 32(ivec4) ImageFetch 43 44 Offset Sample 45 16
+ 50: 47 Load 49(g_tTex2dmsf4a)
+ 54: 51(ivec3) Load 53(c3)
+ 55: 17(fvec4) ImageFetch 50 54 Sample 16
+ 59: 56 Load 58(g_tTex2dmsi4a)
+ 60: 51(ivec3) Load 53(c3)
+ 61: 24(ivec4) ImageFetch 59 60 Sample 16
+ 65: 62 Load 64(g_tTex2dmsu4a)
+ 66: 51(ivec3) Load 53(c3)
+ 67: 32(ivec4) ImageFetch 65 66 Sample 16
+ 68: 47 Load 49(g_tTex2dmsf4a)
+ 69: 51(ivec3) Load 53(c3)
+ 70: 12(ivec2) Load 36(o2)
+ 71: 17(fvec4) ImageFetch 68 69 Offset Sample 70 16
+ 72: 56 Load 58(g_tTex2dmsi4a)
+ 73: 51(ivec3) Load 53(c3)
+ 74: 12(ivec2) Load 36(o2)
+ 75: 24(ivec4) ImageFetch 72 73 Offset Sample 74 16
+ 76: 62 Load 64(g_tTex2dmsu4a)
+ 77: 51(ivec3) Load 53(c3)
+ 78: 12(ivec2) Load 36(o2)
+ 79: 32(ivec4) ImageFetch 76 77 Offset Sample 78 16
+ 87: 86(ptr) AccessChain 82(psout) 83
+ Store 87 85
+ 90: 89(ptr) AccessChain 82(psout) 88
+ Store 90 84
+ 91:80(PS_OUTPUT) Load 82(psout)
+ ReturnValue 91
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out
new file mode 100644
index 0000000..ea7e347
--- /dev/null
+++ b/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -0,0 +1,503 @@
+hlsl.load.array.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetch (global 4-component vector of float)
+0:52 'g_tTex1df4a' (uniform texture1DArray)
+0:52 vector swizzle (temp 2-component vector of int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 Constant:
+0:52 1 (const int)
+0:52 direct index (temp int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Constant:
+0:52 2 (const int)
+0:53 textureFetch (global 4-component vector of int)
+0:53 'g_tTex1di4a' (uniform itexture1DArray)
+0:53 vector swizzle (temp 2-component vector of int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 Constant:
+0:53 1 (const int)
+0:53 direct index (temp int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Constant:
+0:53 2 (const int)
+0:54 textureFetch (global 4-component vector of uint)
+0:54 'g_tTex1du4a' (uniform utexture1DArray)
+0:54 vector swizzle (temp 2-component vector of int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 Constant:
+0:54 1 (const int)
+0:54 direct index (temp int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Constant:
+0:54 2 (const int)
+0:57 textureFetch (global 4-component vector of float)
+0:57 'g_tTex2df4a' (uniform texture2DArray)
+0:57 vector swizzle (temp 3-component vector of int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 2 (const int)
+0:57 direct index (temp int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Constant:
+0:57 3 (const int)
+0:58 textureFetch (global 4-component vector of int)
+0:58 'g_tTex2di4a' (uniform itexture2DArray)
+0:58 vector swizzle (temp 3-component vector of int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 2 (const int)
+0:58 direct index (temp int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Constant:
+0:58 3 (const int)
+0:59 textureFetch (global 4-component vector of uint)
+0:59 'g_tTex2du4a' (uniform utexture2DArray)
+0:59 vector swizzle (temp 3-component vector of int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 Constant:
+0:59 2 (const int)
+0:59 direct index (temp int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Constant:
+0:59 3 (const int)
+0:67 move second child to first child (temp 4-component vector of float)
+0:67 Color: direct index for structure (temp 4-component vector of float)
+0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:67 Constant:
+0:67 0 (const int)
+0:67 Constant:
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:68 move second child to first child (temp float)
+0:68 Depth: direct index for structure (temp float FragDepth)
+0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:68 Constant:
+0:68 1 (const int)
+0:68 Constant:
+0:68 1.000000
+0:70 Branch: Return with expression
+0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:72 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetch (global 4-component vector of float)
+0:52 'g_tTex1df4a' (uniform texture1DArray)
+0:52 vector swizzle (temp 2-component vector of int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 Constant:
+0:52 1 (const int)
+0:52 direct index (temp int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Constant:
+0:52 2 (const int)
+0:53 textureFetch (global 4-component vector of int)
+0:53 'g_tTex1di4a' (uniform itexture1DArray)
+0:53 vector swizzle (temp 2-component vector of int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 Constant:
+0:53 1 (const int)
+0:53 direct index (temp int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Constant:
+0:53 2 (const int)
+0:54 textureFetch (global 4-component vector of uint)
+0:54 'g_tTex1du4a' (uniform utexture1DArray)
+0:54 vector swizzle (temp 2-component vector of int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 Constant:
+0:54 1 (const int)
+0:54 direct index (temp int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Constant:
+0:54 2 (const int)
+0:57 textureFetch (global 4-component vector of float)
+0:57 'g_tTex2df4a' (uniform texture2DArray)
+0:57 vector swizzle (temp 3-component vector of int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 2 (const int)
+0:57 direct index (temp int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Constant:
+0:57 3 (const int)
+0:58 textureFetch (global 4-component vector of int)
+0:58 'g_tTex2di4a' (uniform itexture2DArray)
+0:58 vector swizzle (temp 3-component vector of int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 2 (const int)
+0:58 direct index (temp int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Constant:
+0:58 3 (const int)
+0:59 textureFetch (global 4-component vector of uint)
+0:59 'g_tTex2du4a' (uniform utexture2DArray)
+0:59 vector swizzle (temp 3-component vector of int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 Constant:
+0:59 2 (const int)
+0:59 direct index (temp int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Constant:
+0:59 3 (const int)
+0:67 move second child to first child (temp 4-component vector of float)
+0:67 Color: direct index for structure (temp 4-component vector of float)
+0:67 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:67 Constant:
+0:67 0 (const int)
+0:67 Constant:
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:67 1.000000
+0:68 move second child to first child (temp float)
+0:68 Depth: direct index for structure (temp float FragDepth)
+0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:68 Constant:
+0:68 1 (const int)
+0:68 Constant:
+0:68 1.000000
+0:70 Branch: Return with expression
+0:70 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 143
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "g_tTex1df4a"
+ Name 14 "c3"
+ Name 27 "g_tTex1di4a"
+ Name 37 "g_tTex1du4a"
+ Name 47 "g_tTex2df4a"
+ Name 50 "c4"
+ Name 59 "g_tTex2di4a"
+ Name 68 "g_tTex2du4a"
+ Name 75 "PS_OUTPUT"
+ MemberName 75(PS_OUTPUT) 0 "Color"
+ MemberName 75(PS_OUTPUT) 1 "Depth"
+ Name 77 "psout"
+ Name 90 "g_sSamp"
+ Name 93 "g_tTex1df4"
+ Name 96 "g_tTex1di4"
+ Name 99 "g_tTex1du4"
+ Name 102 "g_tTex2df4"
+ Name 105 "g_tTex2di4"
+ Name 108 "g_tTex2du4"
+ Name 111 "g_tTex3df4"
+ Name 114 "g_tTex3di4"
+ Name 117 "g_tTex3du4"
+ Name 120 "g_tTexcdf4"
+ Name 123 "g_tTexcdi4"
+ Name 126 "g_tTexcdu4"
+ Name 129 "g_tTexcdf4a"
+ Name 132 "g_tTexcdi4a"
+ Name 135 "g_tTexcdu4a"
+ Name 136 "c1"
+ Name 138 "c2"
+ Name 139 "o1"
+ Name 140 "o2"
+ Name 141 "o3"
+ Name 142 "o4"
+ Decorate 9(g_tTex1df4a) DescriptorSet 0
+ Decorate 27(g_tTex1di4a) DescriptorSet 0
+ Decorate 37(g_tTex1du4a) DescriptorSet 0
+ Decorate 47(g_tTex2df4a) DescriptorSet 0
+ Decorate 59(g_tTex2di4a) DescriptorSet 0
+ Decorate 68(g_tTex2du4a) DescriptorSet 0
+ MemberDecorate 75(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 90(g_sSamp) DescriptorSet 0
+ Decorate 90(g_sSamp) Binding 0
+ Decorate 93(g_tTex1df4) DescriptorSet 0
+ Decorate 93(g_tTex1df4) Binding 0
+ Decorate 96(g_tTex1di4) DescriptorSet 0
+ Decorate 99(g_tTex1du4) DescriptorSet 0
+ Decorate 102(g_tTex2df4) DescriptorSet 0
+ Decorate 105(g_tTex2di4) DescriptorSet 0
+ Decorate 108(g_tTex2du4) DescriptorSet 0
+ Decorate 111(g_tTex3df4) DescriptorSet 0
+ Decorate 114(g_tTex3di4) DescriptorSet 0
+ Decorate 117(g_tTex3du4) DescriptorSet 0
+ Decorate 120(g_tTexcdf4) DescriptorSet 0
+ Decorate 123(g_tTexcdi4) DescriptorSet 0
+ Decorate 126(g_tTexcdu4) DescriptorSet 0
+ Decorate 129(g_tTexcdf4a) DescriptorSet 0
+ Decorate 132(g_tTexcdi4a) DescriptorSet 0
+ Decorate 135(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeImage 6(float) 1D array sampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex1df4a): 8(ptr) Variable UniformConstant
+ 11: TypeInt 32 1
+ 12: TypeVector 11(int) 3
+ 13: TypePointer UniformConstant 12(ivec3)
+ 14(c3): 13(ptr) Variable UniformConstant
+ 15: TypeVector 11(int) 2
+ 18: TypeInt 32 0
+ 19: 18(int) Constant 2
+ 20: TypePointer UniformConstant 11(int)
+ 23: TypeVector 6(float) 4
+ 25: TypeImage 11(int) 1D array sampled format:Unknown
+ 26: TypePointer UniformConstant 25
+ 27(g_tTex1di4a): 26(ptr) Variable UniformConstant
+ 33: TypeVector 11(int) 4
+ 35: TypeImage 18(int) 1D array sampled format:Unknown
+ 36: TypePointer UniformConstant 35
+ 37(g_tTex1du4a): 36(ptr) Variable UniformConstant
+ 43: TypeVector 18(int) 4
+ 45: TypeImage 6(float) 2D array sampled format:Unknown
+ 46: TypePointer UniformConstant 45
+ 47(g_tTex2df4a): 46(ptr) Variable UniformConstant
+ 49: TypePointer UniformConstant 33(ivec4)
+ 50(c4): 49(ptr) Variable UniformConstant
+ 53: 18(int) Constant 3
+ 57: TypeImage 11(int) 2D array sampled format:Unknown
+ 58: TypePointer UniformConstant 57
+ 59(g_tTex2di4a): 58(ptr) Variable UniformConstant
+ 66: TypeImage 18(int) 2D array sampled format:Unknown
+ 67: TypePointer UniformConstant 66
+ 68(g_tTex2du4a): 67(ptr) Variable UniformConstant
+ 75(PS_OUTPUT): TypeStruct 23(fvec4) 6(float)
+ 76: TypePointer Function 75(PS_OUTPUT)
+ 78: 11(int) Constant 0
+ 79: 6(float) Constant 1065353216
+ 80: 23(fvec4) ConstantComposite 79 79 79 79
+ 81: TypePointer Function 23(fvec4)
+ 83: 11(int) Constant 1
+ 84: TypePointer Function 6(float)
+ 88: TypeSampler
+ 89: TypePointer UniformConstant 88
+ 90(g_sSamp): 89(ptr) Variable UniformConstant
+ 91: TypeImage 6(float) 1D sampled format:Unknown
+ 92: TypePointer UniformConstant 91
+ 93(g_tTex1df4): 92(ptr) Variable UniformConstant
+ 94: TypeImage 11(int) 1D sampled format:Unknown
+ 95: TypePointer UniformConstant 94
+ 96(g_tTex1di4): 95(ptr) Variable UniformConstant
+ 97: TypeImage 18(int) 1D sampled format:Unknown
+ 98: TypePointer UniformConstant 97
+ 99(g_tTex1du4): 98(ptr) Variable UniformConstant
+ 100: TypeImage 6(float) 2D sampled format:Unknown
+ 101: TypePointer UniformConstant 100
+ 102(g_tTex2df4): 101(ptr) Variable UniformConstant
+ 103: TypeImage 11(int) 2D sampled format:Unknown
+ 104: TypePointer UniformConstant 103
+ 105(g_tTex2di4): 104(ptr) Variable UniformConstant
+ 106: TypeImage 18(int) 2D sampled format:Unknown
+ 107: TypePointer UniformConstant 106
+ 108(g_tTex2du4): 107(ptr) Variable UniformConstant
+ 109: TypeImage 6(float) 3D sampled format:Unknown
+ 110: TypePointer UniformConstant 109
+ 111(g_tTex3df4): 110(ptr) Variable UniformConstant
+ 112: TypeImage 11(int) 3D sampled format:Unknown
+ 113: TypePointer UniformConstant 112
+ 114(g_tTex3di4): 113(ptr) Variable UniformConstant
+ 115: TypeImage 18(int) 3D sampled format:Unknown
+ 116: TypePointer UniformConstant 115
+ 117(g_tTex3du4): 116(ptr) Variable UniformConstant
+ 118: TypeImage 6(float) Cube sampled format:Unknown
+ 119: TypePointer UniformConstant 118
+ 120(g_tTexcdf4): 119(ptr) Variable UniformConstant
+ 121: TypeImage 11(int) Cube sampled format:Unknown
+ 122: TypePointer UniformConstant 121
+ 123(g_tTexcdi4): 122(ptr) Variable UniformConstant
+ 124: TypeImage 18(int) Cube sampled format:Unknown
+ 125: TypePointer UniformConstant 124
+ 126(g_tTexcdu4): 125(ptr) Variable UniformConstant
+ 127: TypeImage 6(float) Cube array sampled format:Unknown
+ 128: TypePointer UniformConstant 127
+129(g_tTexcdf4a): 128(ptr) Variable UniformConstant
+ 130: TypeImage 11(int) Cube array sampled format:Unknown
+ 131: TypePointer UniformConstant 130
+132(g_tTexcdi4a): 131(ptr) Variable UniformConstant
+ 133: TypeImage 18(int) Cube array sampled format:Unknown
+ 134: TypePointer UniformConstant 133
+135(g_tTexcdu4a): 134(ptr) Variable UniformConstant
+ 136(c1): 20(ptr) Variable UniformConstant
+ 137: TypePointer UniformConstant 15(ivec2)
+ 138(c2): 137(ptr) Variable UniformConstant
+ 139(o1): 20(ptr) Variable UniformConstant
+ 140(o2): 137(ptr) Variable UniformConstant
+ 141(o3): 13(ptr) Variable UniformConstant
+ 142(o4): 49(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 77(psout): 76(ptr) Variable Function
+ 10: 7 Load 9(g_tTex1df4a)
+ 16: 12(ivec3) Load 14(c3)
+ 17: 15(ivec2) VectorShuffle 16 16 0 1
+ 21: 20(ptr) AccessChain 14(c3) 19
+ 22: 11(int) Load 21
+ 24: 23(fvec4) ImageFetch 10 17 Lod 22
+ 28: 25 Load 27(g_tTex1di4a)
+ 29: 12(ivec3) Load 14(c3)
+ 30: 15(ivec2) VectorShuffle 29 29 0 1
+ 31: 20(ptr) AccessChain 14(c3) 19
+ 32: 11(int) Load 31
+ 34: 33(ivec4) ImageFetch 28 30 Lod 32
+ 38: 35 Load 37(g_tTex1du4a)
+ 39: 12(ivec3) Load 14(c3)
+ 40: 15(ivec2) VectorShuffle 39 39 0 1
+ 41: 20(ptr) AccessChain 14(c3) 19
+ 42: 11(int) Load 41
+ 44: 43(ivec4) ImageFetch 38 40 Lod 42
+ 48: 45 Load 47(g_tTex2df4a)
+ 51: 33(ivec4) Load 50(c4)
+ 52: 12(ivec3) VectorShuffle 51 51 0 1 2
+ 54: 20(ptr) AccessChain 50(c4) 53
+ 55: 11(int) Load 54
+ 56: 23(fvec4) ImageFetch 48 52 Lod 55
+ 60: 57 Load 59(g_tTex2di4a)
+ 61: 33(ivec4) Load 50(c4)
+ 62: 12(ivec3) VectorShuffle 61 61 0 1 2
+ 63: 20(ptr) AccessChain 50(c4) 53
+ 64: 11(int) Load 63
+ 65: 33(ivec4) ImageFetch 60 62 Lod 64
+ 69: 66 Load 68(g_tTex2du4a)
+ 70: 33(ivec4) Load 50(c4)
+ 71: 12(ivec3) VectorShuffle 70 70 0 1 2
+ 72: 20(ptr) AccessChain 50(c4) 53
+ 73: 11(int) Load 72
+ 74: 43(ivec4) ImageFetch 69 71 Lod 73
+ 82: 81(ptr) AccessChain 77(psout) 78
+ Store 82 80
+ 85: 84(ptr) AccessChain 77(psout) 83
+ Store 85 79
+ 86:75(PS_OUTPUT) Load 77(psout)
+ ReturnValue 86
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out
new file mode 100644
index 0000000..54f964e
--- /dev/null
+++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -0,0 +1,589 @@
+hlsl.load.basic.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetch (global 4-component vector of float)
+0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:52 vector swizzle (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 1 (const int)
+0:53 textureFetch (global 4-component vector of int)
+0:53 'g_tTex1di4' (uniform itexture1D)
+0:53 vector swizzle (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 direct index (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Constant:
+0:53 1 (const int)
+0:54 textureFetch (global 4-component vector of uint)
+0:54 'g_tTex1du4' (uniform utexture1D)
+0:54 vector swizzle (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 direct index (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Constant:
+0:54 1 (const int)
+0:57 textureFetch (global 4-component vector of float)
+0:57 'g_tTex2df4' (uniform texture2D)
+0:57 vector swizzle (temp 2-component vector of int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 direct index (temp int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Constant:
+0:57 2 (const int)
+0:58 textureFetch (global 4-component vector of int)
+0:58 'g_tTex2di4' (uniform itexture2D)
+0:58 vector swizzle (temp 2-component vector of int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 direct index (temp int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Constant:
+0:58 2 (const int)
+0:59 textureFetch (global 4-component vector of uint)
+0:59 'g_tTex2du4' (uniform utexture2D)
+0:59 vector swizzle (temp 2-component vector of int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 direct index (temp int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Constant:
+0:59 2 (const int)
+0:62 textureFetch (global 4-component vector of float)
+0:62 'g_tTex3df4' (uniform texture3D)
+0:62 vector swizzle (temp 3-component vector of int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Sequence
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 2 (const int)
+0:62 direct index (temp int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Constant:
+0:62 3 (const int)
+0:63 textureFetch (global 4-component vector of int)
+0:63 'g_tTex3di4' (uniform itexture3D)
+0:63 vector swizzle (temp 3-component vector of int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 direct index (temp int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Constant:
+0:63 3 (const int)
+0:64 textureFetch (global 4-component vector of uint)
+0:64 'g_tTex3du4' (uniform utexture3D)
+0:64 vector swizzle (temp 3-component vector of int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Sequence
+0:64 Constant:
+0:64 0 (const int)
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 2 (const int)
+0:64 direct index (temp int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Constant:
+0:64 3 (const int)
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 Color: direct index for structure (temp 4-component vector of float)
+0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:72 Constant:
+0:72 0 (const int)
+0:72 Constant:
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:73 move second child to first child (temp float)
+0:73 Depth: direct index for structure (temp float FragDepth)
+0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:73 Constant:
+0:73 1 (const int)
+0:73 Constant:
+0:73 1.000000
+0:75 Branch: Return with expression
+0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetch (global 4-component vector of float)
+0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:52 vector swizzle (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 1 (const int)
+0:53 textureFetch (global 4-component vector of int)
+0:53 'g_tTex1di4' (uniform itexture1D)
+0:53 vector swizzle (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 direct index (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Constant:
+0:53 1 (const int)
+0:54 textureFetch (global 4-component vector of uint)
+0:54 'g_tTex1du4' (uniform utexture1D)
+0:54 vector swizzle (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 direct index (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Constant:
+0:54 1 (const int)
+0:57 textureFetch (global 4-component vector of float)
+0:57 'g_tTex2df4' (uniform texture2D)
+0:57 vector swizzle (temp 2-component vector of int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 direct index (temp int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Constant:
+0:57 2 (const int)
+0:58 textureFetch (global 4-component vector of int)
+0:58 'g_tTex2di4' (uniform itexture2D)
+0:58 vector swizzle (temp 2-component vector of int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 direct index (temp int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Constant:
+0:58 2 (const int)
+0:59 textureFetch (global 4-component vector of uint)
+0:59 'g_tTex2du4' (uniform utexture2D)
+0:59 vector swizzle (temp 2-component vector of int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 direct index (temp int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Constant:
+0:59 2 (const int)
+0:62 textureFetch (global 4-component vector of float)
+0:62 'g_tTex3df4' (uniform texture3D)
+0:62 vector swizzle (temp 3-component vector of int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Sequence
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 2 (const int)
+0:62 direct index (temp int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Constant:
+0:62 3 (const int)
+0:63 textureFetch (global 4-component vector of int)
+0:63 'g_tTex3di4' (uniform itexture3D)
+0:63 vector swizzle (temp 3-component vector of int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 direct index (temp int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Constant:
+0:63 3 (const int)
+0:64 textureFetch (global 4-component vector of uint)
+0:64 'g_tTex3du4' (uniform utexture3D)
+0:64 vector swizzle (temp 3-component vector of int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Sequence
+0:64 Constant:
+0:64 0 (const int)
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 2 (const int)
+0:64 direct index (temp int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Constant:
+0:64 3 (const int)
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 Color: direct index for structure (temp 4-component vector of float)
+0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:72 Constant:
+0:72 0 (const int)
+0:72 Constant:
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:73 move second child to first child (temp float)
+0:73 Depth: direct index for structure (temp float FragDepth)
+0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:73 Constant:
+0:73 1 (const int)
+0:73 Constant:
+0:73 1.000000
+0:75 Branch: Return with expression
+0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 163
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "g_tTex1df4"
+ Name 14 "c2"
+ Name 27 "g_tTex1di4"
+ Name 37 "g_tTex1du4"
+ Name 47 "g_tTex2df4"
+ Name 51 "c3"
+ Name 60 "g_tTex2di4"
+ Name 69 "g_tTex2du4"
+ Name 78 "g_tTex3df4"
+ Name 81 "c4"
+ Name 90 "g_tTex3di4"
+ Name 99 "g_tTex3du4"
+ Name 106 "PS_OUTPUT"
+ MemberName 106(PS_OUTPUT) 0 "Color"
+ MemberName 106(PS_OUTPUT) 1 "Depth"
+ Name 108 "psout"
+ Name 121 "g_sSamp"
+ Name 124 "g_tTexcdf4"
+ Name 127 "g_tTexcdi4"
+ Name 130 "g_tTexcdu4"
+ Name 133 "g_tTex1df4a"
+ Name 136 "g_tTex1di4a"
+ Name 139 "g_tTex1du4a"
+ Name 142 "g_tTex2df4a"
+ Name 145 "g_tTex2di4a"
+ Name 148 "g_tTex2du4a"
+ Name 151 "g_tTexcdf4a"
+ Name 154 "g_tTexcdi4a"
+ Name 157 "g_tTexcdu4a"
+ Name 158 "c1"
+ Name 159 "o1"
+ Name 160 "o2"
+ Name 161 "o3"
+ Name 162 "o4"
+ Decorate 9(g_tTex1df4) DescriptorSet 0
+ Decorate 9(g_tTex1df4) Binding 0
+ Decorate 27(g_tTex1di4) DescriptorSet 0
+ Decorate 37(g_tTex1du4) DescriptorSet 0
+ Decorate 47(g_tTex2df4) DescriptorSet 0
+ Decorate 60(g_tTex2di4) DescriptorSet 0
+ Decorate 69(g_tTex2du4) DescriptorSet 0
+ Decorate 78(g_tTex3df4) DescriptorSet 0
+ Decorate 90(g_tTex3di4) DescriptorSet 0
+ Decorate 99(g_tTex3du4) DescriptorSet 0
+ MemberDecorate 106(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 121(g_sSamp) DescriptorSet 0
+ Decorate 121(g_sSamp) Binding 0
+ Decorate 124(g_tTexcdf4) DescriptorSet 0
+ Decorate 127(g_tTexcdi4) DescriptorSet 0
+ Decorate 130(g_tTexcdu4) DescriptorSet 0
+ Decorate 133(g_tTex1df4a) DescriptorSet 0
+ Decorate 136(g_tTex1di4a) DescriptorSet 0
+ Decorate 139(g_tTex1du4a) DescriptorSet 0
+ Decorate 142(g_tTex2df4a) DescriptorSet 0
+ Decorate 145(g_tTex2di4a) DescriptorSet 0
+ Decorate 148(g_tTex2du4a) DescriptorSet 0
+ Decorate 151(g_tTexcdf4a) DescriptorSet 0
+ Decorate 154(g_tTexcdi4a) DescriptorSet 0
+ Decorate 157(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeImage 6(float) 1D sampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex1df4): 8(ptr) Variable UniformConstant
+ 11: TypeInt 32 1
+ 12: TypeVector 11(int) 2
+ 13: TypePointer UniformConstant 12(ivec2)
+ 14(c2): 13(ptr) Variable UniformConstant
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 0
+ 17: TypePointer UniformConstant 11(int)
+ 20: 15(int) Constant 1
+ 23: TypeVector 6(float) 4
+ 25: TypeImage 11(int) 1D sampled format:Unknown
+ 26: TypePointer UniformConstant 25
+ 27(g_tTex1di4): 26(ptr) Variable UniformConstant
+ 33: TypeVector 11(int) 4
+ 35: TypeImage 15(int) 1D sampled format:Unknown
+ 36: TypePointer UniformConstant 35
+ 37(g_tTex1du4): 36(ptr) Variable UniformConstant
+ 43: TypeVector 15(int) 4
+ 45: TypeImage 6(float) 2D sampled format:Unknown
+ 46: TypePointer UniformConstant 45
+ 47(g_tTex2df4): 46(ptr) Variable UniformConstant
+ 49: TypeVector 11(int) 3
+ 50: TypePointer UniformConstant 49(ivec3)
+ 51(c3): 50(ptr) Variable UniformConstant
+ 54: 15(int) Constant 2
+ 58: TypeImage 11(int) 2D sampled format:Unknown
+ 59: TypePointer UniformConstant 58
+ 60(g_tTex2di4): 59(ptr) Variable UniformConstant
+ 67: TypeImage 15(int) 2D sampled format:Unknown
+ 68: TypePointer UniformConstant 67
+ 69(g_tTex2du4): 68(ptr) Variable UniformConstant
+ 76: TypeImage 6(float) 3D sampled format:Unknown
+ 77: TypePointer UniformConstant 76
+ 78(g_tTex3df4): 77(ptr) Variable UniformConstant
+ 80: TypePointer UniformConstant 33(ivec4)
+ 81(c4): 80(ptr) Variable UniformConstant
+ 84: 15(int) Constant 3
+ 88: TypeImage 11(int) 3D sampled format:Unknown
+ 89: TypePointer UniformConstant 88
+ 90(g_tTex3di4): 89(ptr) Variable UniformConstant
+ 97: TypeImage 15(int) 3D sampled format:Unknown
+ 98: TypePointer UniformConstant 97
+ 99(g_tTex3du4): 98(ptr) Variable UniformConstant
+ 106(PS_OUTPUT): TypeStruct 23(fvec4) 6(float)
+ 107: TypePointer Function 106(PS_OUTPUT)
+ 109: 11(int) Constant 0
+ 110: 6(float) Constant 1065353216
+ 111: 23(fvec4) ConstantComposite 110 110 110 110
+ 112: TypePointer Function 23(fvec4)
+ 114: 11(int) Constant 1
+ 115: TypePointer Function 6(float)
+ 119: TypeSampler
+ 120: TypePointer UniformConstant 119
+ 121(g_sSamp): 120(ptr) Variable UniformConstant
+ 122: TypeImage 6(float) Cube sampled format:Unknown
+ 123: TypePointer UniformConstant 122
+ 124(g_tTexcdf4): 123(ptr) Variable UniformConstant
+ 125: TypeImage 11(int) Cube sampled format:Unknown
+ 126: TypePointer UniformConstant 125
+ 127(g_tTexcdi4): 126(ptr) Variable UniformConstant
+ 128: TypeImage 15(int) Cube sampled format:Unknown
+ 129: TypePointer UniformConstant 128
+ 130(g_tTexcdu4): 129(ptr) Variable UniformConstant
+ 131: TypeImage 6(float) 1D array sampled format:Unknown
+ 132: TypePointer UniformConstant 131
+133(g_tTex1df4a): 132(ptr) Variable UniformConstant
+ 134: TypeImage 11(int) 1D array sampled format:Unknown
+ 135: TypePointer UniformConstant 134
+136(g_tTex1di4a): 135(ptr) Variable UniformConstant
+ 137: TypeImage 15(int) 1D array sampled format:Unknown
+ 138: TypePointer UniformConstant 137
+139(g_tTex1du4a): 138(ptr) Variable UniformConstant
+ 140: TypeImage 6(float) 2D array sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+142(g_tTex2df4a): 141(ptr) Variable UniformConstant
+ 143: TypeImage 11(int) 2D array sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+145(g_tTex2di4a): 144(ptr) Variable UniformConstant
+ 146: TypeImage 15(int) 2D array sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+148(g_tTex2du4a): 147(ptr) Variable UniformConstant
+ 149: TypeImage 6(float) Cube array sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+151(g_tTexcdf4a): 150(ptr) Variable UniformConstant
+ 152: TypeImage 11(int) Cube array sampled format:Unknown
+ 153: TypePointer UniformConstant 152
+154(g_tTexcdi4a): 153(ptr) Variable UniformConstant
+ 155: TypeImage 15(int) Cube array sampled format:Unknown
+ 156: TypePointer UniformConstant 155
+157(g_tTexcdu4a): 156(ptr) Variable UniformConstant
+ 158(c1): 17(ptr) Variable UniformConstant
+ 159(o1): 17(ptr) Variable UniformConstant
+ 160(o2): 13(ptr) Variable UniformConstant
+ 161(o3): 50(ptr) Variable UniformConstant
+ 162(o4): 80(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 108(psout): 107(ptr) Variable Function
+ 10: 7 Load 9(g_tTex1df4)
+ 18: 17(ptr) AccessChain 14(c2) 16
+ 19: 11(int) Load 18
+ 21: 17(ptr) AccessChain 14(c2) 20
+ 22: 11(int) Load 21
+ 24: 23(fvec4) ImageFetch 10 19 Lod 22
+ 28: 25 Load 27(g_tTex1di4)
+ 29: 17(ptr) AccessChain 14(c2) 16
+ 30: 11(int) Load 29
+ 31: 17(ptr) AccessChain 14(c2) 20
+ 32: 11(int) Load 31
+ 34: 33(ivec4) ImageFetch 28 30 Lod 32
+ 38: 35 Load 37(g_tTex1du4)
+ 39: 17(ptr) AccessChain 14(c2) 16
+ 40: 11(int) Load 39
+ 41: 17(ptr) AccessChain 14(c2) 20
+ 42: 11(int) Load 41
+ 44: 43(ivec4) ImageFetch 38 40 Lod 42
+ 48: 45 Load 47(g_tTex2df4)
+ 52: 49(ivec3) Load 51(c3)
+ 53: 12(ivec2) VectorShuffle 52 52 0 1
+ 55: 17(ptr) AccessChain 51(c3) 54
+ 56: 11(int) Load 55
+ 57: 23(fvec4) ImageFetch 48 53 Lod 56
+ 61: 58 Load 60(g_tTex2di4)
+ 62: 49(ivec3) Load 51(c3)
+ 63: 12(ivec2) VectorShuffle 62 62 0 1
+ 64: 17(ptr) AccessChain 51(c3) 54
+ 65: 11(int) Load 64
+ 66: 33(ivec4) ImageFetch 61 63 Lod 65
+ 70: 67 Load 69(g_tTex2du4)
+ 71: 49(ivec3) Load 51(c3)
+ 72: 12(ivec2) VectorShuffle 71 71 0 1
+ 73: 17(ptr) AccessChain 51(c3) 54
+ 74: 11(int) Load 73
+ 75: 43(ivec4) ImageFetch 70 72 Lod 74
+ 79: 76 Load 78(g_tTex3df4)
+ 82: 33(ivec4) Load 81(c4)
+ 83: 49(ivec3) VectorShuffle 82 82 0 1 2
+ 85: 17(ptr) AccessChain 81(c4) 84
+ 86: 11(int) Load 85
+ 87: 23(fvec4) ImageFetch 79 83 Lod 86
+ 91: 88 Load 90(g_tTex3di4)
+ 92: 33(ivec4) Load 81(c4)
+ 93: 49(ivec3) VectorShuffle 92 92 0 1 2
+ 94: 17(ptr) AccessChain 81(c4) 84
+ 95: 11(int) Load 94
+ 96: 33(ivec4) ImageFetch 91 93 Lod 95
+ 100: 97 Load 99(g_tTex3du4)
+ 101: 33(ivec4) Load 81(c4)
+ 102: 49(ivec3) VectorShuffle 101 101 0 1 2
+ 103: 17(ptr) AccessChain 81(c4) 84
+ 104: 11(int) Load 103
+ 105: 43(ivec4) ImageFetch 100 102 Lod 104
+ 113: 112(ptr) AccessChain 108(psout) 109
+ Store 113 111
+ 116: 115(ptr) AccessChain 108(psout) 114
+ Store 116 110
+ 117:106(PS_OUTPUT) Load 108(psout)
+ ReturnValue 117
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
new file mode 100644
index 0000000..cd4fea5
--- /dev/null
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -0,0 +1,567 @@
+hlsl.load.basic.dx10.vert
+Shader version: 450
+0:? Sequence
+0:71 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
+0:47 Function Parameters:
+0:? Sequence
+0:51 textureFetch (global 4-component vector of float)
+0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:51 vector swizzle (temp int)
+0:51 'c2' (uniform 2-component vector of int)
+0:51 Sequence
+0:51 Constant:
+0:51 0 (const int)
+0:51 direct index (temp int)
+0:51 'c2' (uniform 2-component vector of int)
+0:51 Constant:
+0:51 1 (const int)
+0:52 textureFetch (global 4-component vector of int)
+0:52 'g_tTex1di4' (uniform itexture1D)
+0:52 vector swizzle (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 1 (const int)
+0:53 textureFetch (global 4-component vector of uint)
+0:53 'g_tTex1du4' (uniform utexture1D)
+0:53 vector swizzle (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 direct index (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Constant:
+0:53 1 (const int)
+0:56 textureFetch (global 4-component vector of float)
+0:56 'g_tTex2df4' (uniform texture2D)
+0:56 vector swizzle (temp 2-component vector of int)
+0:56 'c3' (uniform 3-component vector of int)
+0:56 Sequence
+0:56 Constant:
+0:56 0 (const int)
+0:56 Constant:
+0:56 1 (const int)
+0:56 direct index (temp int)
+0:56 'c3' (uniform 3-component vector of int)
+0:56 Constant:
+0:56 2 (const int)
+0:57 textureFetch (global 4-component vector of int)
+0:57 'g_tTex2di4' (uniform itexture2D)
+0:57 vector swizzle (temp 2-component vector of int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 direct index (temp int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Constant:
+0:57 2 (const int)
+0:58 textureFetch (global 4-component vector of uint)
+0:58 'g_tTex2du4' (uniform utexture2D)
+0:58 vector swizzle (temp 2-component vector of int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 direct index (temp int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Constant:
+0:58 2 (const int)
+0:61 textureFetch (global 4-component vector of float)
+0:61 'g_tTex3df4' (uniform texture3D)
+0:61 vector swizzle (temp 3-component vector of int)
+0:61 'c4' (uniform 4-component vector of int)
+0:61 Sequence
+0:61 Constant:
+0:61 0 (const int)
+0:61 Constant:
+0:61 1 (const int)
+0:61 Constant:
+0:61 2 (const int)
+0:61 direct index (temp int)
+0:61 'c4' (uniform 4-component vector of int)
+0:61 Constant:
+0:61 3 (const int)
+0:62 textureFetch (global 4-component vector of int)
+0:62 'g_tTex3di4' (uniform itexture3D)
+0:62 vector swizzle (temp 3-component vector of int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Sequence
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 2 (const int)
+0:62 direct index (temp int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Constant:
+0:62 3 (const int)
+0:63 textureFetch (global 4-component vector of uint)
+0:63 'g_tTex3du4' (uniform utexture3D)
+0:63 vector swizzle (temp 3-component vector of int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 direct index (temp int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Constant:
+0:63 3 (const int)
+0:67 move second child to first child (temp 4-component vector of float)
+0:67 Pos: direct index for structure (temp 4-component vector of float FragCoord)
+0:67 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:67 Constant:
+0:67 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:69 Branch: Return with expression
+0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:71 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
+0:47 Function Parameters:
+0:? Sequence
+0:51 textureFetch (global 4-component vector of float)
+0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:51 vector swizzle (temp int)
+0:51 'c2' (uniform 2-component vector of int)
+0:51 Sequence
+0:51 Constant:
+0:51 0 (const int)
+0:51 direct index (temp int)
+0:51 'c2' (uniform 2-component vector of int)
+0:51 Constant:
+0:51 1 (const int)
+0:52 textureFetch (global 4-component vector of int)
+0:52 'g_tTex1di4' (uniform itexture1D)
+0:52 vector swizzle (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 1 (const int)
+0:53 textureFetch (global 4-component vector of uint)
+0:53 'g_tTex1du4' (uniform utexture1D)
+0:53 vector swizzle (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 direct index (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Constant:
+0:53 1 (const int)
+0:56 textureFetch (global 4-component vector of float)
+0:56 'g_tTex2df4' (uniform texture2D)
+0:56 vector swizzle (temp 2-component vector of int)
+0:56 'c3' (uniform 3-component vector of int)
+0:56 Sequence
+0:56 Constant:
+0:56 0 (const int)
+0:56 Constant:
+0:56 1 (const int)
+0:56 direct index (temp int)
+0:56 'c3' (uniform 3-component vector of int)
+0:56 Constant:
+0:56 2 (const int)
+0:57 textureFetch (global 4-component vector of int)
+0:57 'g_tTex2di4' (uniform itexture2D)
+0:57 vector swizzle (temp 2-component vector of int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 direct index (temp int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Constant:
+0:57 2 (const int)
+0:58 textureFetch (global 4-component vector of uint)
+0:58 'g_tTex2du4' (uniform utexture2D)
+0:58 vector swizzle (temp 2-component vector of int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 direct index (temp int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Constant:
+0:58 2 (const int)
+0:61 textureFetch (global 4-component vector of float)
+0:61 'g_tTex3df4' (uniform texture3D)
+0:61 vector swizzle (temp 3-component vector of int)
+0:61 'c4' (uniform 4-component vector of int)
+0:61 Sequence
+0:61 Constant:
+0:61 0 (const int)
+0:61 Constant:
+0:61 1 (const int)
+0:61 Constant:
+0:61 2 (const int)
+0:61 direct index (temp int)
+0:61 'c4' (uniform 4-component vector of int)
+0:61 Constant:
+0:61 3 (const int)
+0:62 textureFetch (global 4-component vector of int)
+0:62 'g_tTex3di4' (uniform itexture3D)
+0:62 vector swizzle (temp 3-component vector of int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Sequence
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 2 (const int)
+0:62 direct index (temp int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Constant:
+0:62 3 (const int)
+0:63 textureFetch (global 4-component vector of uint)
+0:63 'g_tTex3du4' (uniform utexture3D)
+0:63 vector swizzle (temp 3-component vector of int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 direct index (temp int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Constant:
+0:63 3 (const int)
+0:67 move second child to first child (temp 4-component vector of float)
+0:67 Pos: direct index for structure (temp 4-component vector of float FragCoord)
+0:67 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:67 Constant:
+0:67 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:69 Branch: Return with expression
+0:69 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 160
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "g_tTex1df4"
+ Name 14 "c2"
+ Name 27 "g_tTex1di4"
+ Name 37 "g_tTex1du4"
+ Name 47 "g_tTex2df4"
+ Name 51 "c3"
+ Name 60 "g_tTex2di4"
+ Name 69 "g_tTex2du4"
+ Name 78 "g_tTex3df4"
+ Name 81 "c4"
+ Name 90 "g_tTex3di4"
+ Name 99 "g_tTex3du4"
+ Name 106 "VS_OUTPUT"
+ MemberName 106(VS_OUTPUT) 0 "Pos"
+ Name 108 "vsout"
+ Name 118 "g_sSamp"
+ Name 121 "g_tTexcdf4"
+ Name 124 "g_tTexcdi4"
+ Name 127 "g_tTexcdu4"
+ Name 130 "g_tTex1df4a"
+ Name 133 "g_tTex1di4a"
+ Name 136 "g_tTex1du4a"
+ Name 139 "g_tTex2df4a"
+ Name 142 "g_tTex2di4a"
+ Name 145 "g_tTex2du4a"
+ Name 148 "g_tTexcdf4a"
+ Name 151 "g_tTexcdi4a"
+ Name 154 "g_tTexcdu4a"
+ Name 155 "c1"
+ Name 156 "o1"
+ Name 157 "o2"
+ Name 158 "o3"
+ Name 159 "o4"
+ Decorate 9(g_tTex1df4) DescriptorSet 0
+ Decorate 9(g_tTex1df4) Binding 0
+ Decorate 27(g_tTex1di4) DescriptorSet 0
+ Decorate 37(g_tTex1du4) DescriptorSet 0
+ Decorate 47(g_tTex2df4) DescriptorSet 0
+ Decorate 60(g_tTex2di4) DescriptorSet 0
+ Decorate 69(g_tTex2du4) DescriptorSet 0
+ Decorate 78(g_tTex3df4) DescriptorSet 0
+ Decorate 90(g_tTex3di4) DescriptorSet 0
+ Decorate 99(g_tTex3du4) DescriptorSet 0
+ MemberDecorate 106(VS_OUTPUT) 0 BuiltIn FragCoord
+ Decorate 118(g_sSamp) DescriptorSet 0
+ Decorate 118(g_sSamp) Binding 0
+ Decorate 121(g_tTexcdf4) DescriptorSet 0
+ Decorate 124(g_tTexcdi4) DescriptorSet 0
+ Decorate 127(g_tTexcdu4) DescriptorSet 0
+ Decorate 130(g_tTex1df4a) DescriptorSet 0
+ Decorate 133(g_tTex1di4a) DescriptorSet 0
+ Decorate 136(g_tTex1du4a) DescriptorSet 0
+ Decorate 139(g_tTex2df4a) DescriptorSet 0
+ Decorate 142(g_tTex2di4a) DescriptorSet 0
+ Decorate 145(g_tTex2du4a) DescriptorSet 0
+ Decorate 148(g_tTexcdf4a) DescriptorSet 0
+ Decorate 151(g_tTexcdi4a) DescriptorSet 0
+ Decorate 154(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeImage 6(float) 1D sampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex1df4): 8(ptr) Variable UniformConstant
+ 11: TypeInt 32 1
+ 12: TypeVector 11(int) 2
+ 13: TypePointer UniformConstant 12(ivec2)
+ 14(c2): 13(ptr) Variable UniformConstant
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 0
+ 17: TypePointer UniformConstant 11(int)
+ 20: 15(int) Constant 1
+ 23: TypeVector 6(float) 4
+ 25: TypeImage 11(int) 1D sampled format:Unknown
+ 26: TypePointer UniformConstant 25
+ 27(g_tTex1di4): 26(ptr) Variable UniformConstant
+ 33: TypeVector 11(int) 4
+ 35: TypeImage 15(int) 1D sampled format:Unknown
+ 36: TypePointer UniformConstant 35
+ 37(g_tTex1du4): 36(ptr) Variable UniformConstant
+ 43: TypeVector 15(int) 4
+ 45: TypeImage 6(float) 2D sampled format:Unknown
+ 46: TypePointer UniformConstant 45
+ 47(g_tTex2df4): 46(ptr) Variable UniformConstant
+ 49: TypeVector 11(int) 3
+ 50: TypePointer UniformConstant 49(ivec3)
+ 51(c3): 50(ptr) Variable UniformConstant
+ 54: 15(int) Constant 2
+ 58: TypeImage 11(int) 2D sampled format:Unknown
+ 59: TypePointer UniformConstant 58
+ 60(g_tTex2di4): 59(ptr) Variable UniformConstant
+ 67: TypeImage 15(int) 2D sampled format:Unknown
+ 68: TypePointer UniformConstant 67
+ 69(g_tTex2du4): 68(ptr) Variable UniformConstant
+ 76: TypeImage 6(float) 3D sampled format:Unknown
+ 77: TypePointer UniformConstant 76
+ 78(g_tTex3df4): 77(ptr) Variable UniformConstant
+ 80: TypePointer UniformConstant 33(ivec4)
+ 81(c4): 80(ptr) Variable UniformConstant
+ 84: 15(int) Constant 3
+ 88: TypeImage 11(int) 3D sampled format:Unknown
+ 89: TypePointer UniformConstant 88
+ 90(g_tTex3di4): 89(ptr) Variable UniformConstant
+ 97: TypeImage 15(int) 3D sampled format:Unknown
+ 98: TypePointer UniformConstant 97
+ 99(g_tTex3du4): 98(ptr) Variable UniformConstant
+ 106(VS_OUTPUT): TypeStruct 23(fvec4)
+ 107: TypePointer Function 106(VS_OUTPUT)
+ 109: 11(int) Constant 0
+ 110: 6(float) Constant 0
+ 111: 23(fvec4) ConstantComposite 110 110 110 110
+ 112: TypePointer Function 23(fvec4)
+ 116: TypeSampler
+ 117: TypePointer UniformConstant 116
+ 118(g_sSamp): 117(ptr) Variable UniformConstant
+ 119: TypeImage 6(float) Cube sampled format:Unknown
+ 120: TypePointer UniformConstant 119
+ 121(g_tTexcdf4): 120(ptr) Variable UniformConstant
+ 122: TypeImage 11(int) Cube sampled format:Unknown
+ 123: TypePointer UniformConstant 122
+ 124(g_tTexcdi4): 123(ptr) Variable UniformConstant
+ 125: TypeImage 15(int) Cube sampled format:Unknown
+ 126: TypePointer UniformConstant 125
+ 127(g_tTexcdu4): 126(ptr) Variable UniformConstant
+ 128: TypeImage 6(float) 1D array sampled format:Unknown
+ 129: TypePointer UniformConstant 128
+130(g_tTex1df4a): 129(ptr) Variable UniformConstant
+ 131: TypeImage 11(int) 1D array sampled format:Unknown
+ 132: TypePointer UniformConstant 131
+133(g_tTex1di4a): 132(ptr) Variable UniformConstant
+ 134: TypeImage 15(int) 1D array sampled format:Unknown
+ 135: TypePointer UniformConstant 134
+136(g_tTex1du4a): 135(ptr) Variable UniformConstant
+ 137: TypeImage 6(float) 2D array sampled format:Unknown
+ 138: TypePointer UniformConstant 137
+139(g_tTex2df4a): 138(ptr) Variable UniformConstant
+ 140: TypeImage 11(int) 2D array sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+142(g_tTex2di4a): 141(ptr) Variable UniformConstant
+ 143: TypeImage 15(int) 2D array sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+145(g_tTex2du4a): 144(ptr) Variable UniformConstant
+ 146: TypeImage 6(float) Cube array sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+148(g_tTexcdf4a): 147(ptr) Variable UniformConstant
+ 149: TypeImage 11(int) Cube array sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+151(g_tTexcdi4a): 150(ptr) Variable UniformConstant
+ 152: TypeImage 15(int) Cube array sampled format:Unknown
+ 153: TypePointer UniformConstant 152
+154(g_tTexcdu4a): 153(ptr) Variable UniformConstant
+ 155(c1): 17(ptr) Variable UniformConstant
+ 156(o1): 17(ptr) Variable UniformConstant
+ 157(o2): 13(ptr) Variable UniformConstant
+ 158(o3): 50(ptr) Variable UniformConstant
+ 159(o4): 80(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 108(vsout): 107(ptr) Variable Function
+ 10: 7 Load 9(g_tTex1df4)
+ 18: 17(ptr) AccessChain 14(c2) 16
+ 19: 11(int) Load 18
+ 21: 17(ptr) AccessChain 14(c2) 20
+ 22: 11(int) Load 21
+ 24: 23(fvec4) ImageFetch 10 19 Lod 22
+ 28: 25 Load 27(g_tTex1di4)
+ 29: 17(ptr) AccessChain 14(c2) 16
+ 30: 11(int) Load 29
+ 31: 17(ptr) AccessChain 14(c2) 20
+ 32: 11(int) Load 31
+ 34: 33(ivec4) ImageFetch 28 30 Lod 32
+ 38: 35 Load 37(g_tTex1du4)
+ 39: 17(ptr) AccessChain 14(c2) 16
+ 40: 11(int) Load 39
+ 41: 17(ptr) AccessChain 14(c2) 20
+ 42: 11(int) Load 41
+ 44: 43(ivec4) ImageFetch 38 40 Lod 42
+ 48: 45 Load 47(g_tTex2df4)
+ 52: 49(ivec3) Load 51(c3)
+ 53: 12(ivec2) VectorShuffle 52 52 0 1
+ 55: 17(ptr) AccessChain 51(c3) 54
+ 56: 11(int) Load 55
+ 57: 23(fvec4) ImageFetch 48 53 Lod 56
+ 61: 58 Load 60(g_tTex2di4)
+ 62: 49(ivec3) Load 51(c3)
+ 63: 12(ivec2) VectorShuffle 62 62 0 1
+ 64: 17(ptr) AccessChain 51(c3) 54
+ 65: 11(int) Load 64
+ 66: 33(ivec4) ImageFetch 61 63 Lod 65
+ 70: 67 Load 69(g_tTex2du4)
+ 71: 49(ivec3) Load 51(c3)
+ 72: 12(ivec2) VectorShuffle 71 71 0 1
+ 73: 17(ptr) AccessChain 51(c3) 54
+ 74: 11(int) Load 73
+ 75: 43(ivec4) ImageFetch 70 72 Lod 74
+ 79: 76 Load 78(g_tTex3df4)
+ 82: 33(ivec4) Load 81(c4)
+ 83: 49(ivec3) VectorShuffle 82 82 0 1 2
+ 85: 17(ptr) AccessChain 81(c4) 84
+ 86: 11(int) Load 85
+ 87: 23(fvec4) ImageFetch 79 83 Lod 86
+ 91: 88 Load 90(g_tTex3di4)
+ 92: 33(ivec4) Load 81(c4)
+ 93: 49(ivec3) VectorShuffle 92 92 0 1 2
+ 94: 17(ptr) AccessChain 81(c4) 84
+ 95: 11(int) Load 94
+ 96: 33(ivec4) ImageFetch 91 93 Lod 95
+ 100: 97 Load 99(g_tTex3du4)
+ 101: 33(ivec4) Load 81(c4)
+ 102: 49(ivec3) VectorShuffle 101 101 0 1 2
+ 103: 17(ptr) AccessChain 81(c4) 84
+ 104: 11(int) Load 103
+ 105: 43(ivec4) ImageFetch 100 102 Lod 104
+ 113: 112(ptr) AccessChain 108(vsout) 109
+ Store 113 111
+ 114:106(VS_OUTPUT) Load 108(vsout)
+ ReturnValue 114
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
new file mode 100644
index 0000000..8c77675
--- /dev/null
+++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -0,0 +1,229 @@
+hlsl.load.buffer.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:28 Sequence
+0:28 move second child to first child (temp 4-component vector of float)
+0:28 'r00' (temp 4-component vector of float)
+0:28 textureFetch (global 4-component vector of float)
+0:28 'g_tTexbf4' (uniform samplerBuffer)
+0:28 'c1' (uniform int)
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of int)
+0:29 'r01' (temp 4-component vector of int)
+0:29 textureFetch (global 4-component vector of int)
+0:29 'g_tTexbi4' (uniform isamplerBuffer)
+0:29 'c1' (uniform int)
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of uint)
+0:30 'r02' (temp 4-component vector of uint)
+0:30 textureFetch (global 4-component vector of uint)
+0:30 'g_tTexbu4' (uniform usamplerBuffer)
+0:30 'c1' (uniform int)
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 Color: direct index for structure (temp 4-component vector of float)
+0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 1.000000
+0:34 1.000000
+0:34 1.000000
+0:34 1.000000
+0:35 move second child to first child (temp float)
+0:35 Depth: direct index for structure (temp float FragDepth)
+0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:35 Constant:
+0:35 1 (const int)
+0:35 Constant:
+0:35 1.000000
+0:37 Branch: Return with expression
+0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer)
+0:? 'g_tTexbf4' (uniform samplerBuffer)
+0:? 'g_tTexbi4' (uniform isamplerBuffer)
+0:? 'g_tTexbu4' (uniform usamplerBuffer)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:28 Sequence
+0:28 move second child to first child (temp 4-component vector of float)
+0:28 'r00' (temp 4-component vector of float)
+0:28 textureFetch (global 4-component vector of float)
+0:28 'g_tTexbf4' (uniform samplerBuffer)
+0:28 'c1' (uniform int)
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of int)
+0:29 'r01' (temp 4-component vector of int)
+0:29 textureFetch (global 4-component vector of int)
+0:29 'g_tTexbi4' (uniform isamplerBuffer)
+0:29 'c1' (uniform int)
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of uint)
+0:30 'r02' (temp 4-component vector of uint)
+0:30 textureFetch (global 4-component vector of uint)
+0:30 'g_tTexbu4' (uniform usamplerBuffer)
+0:30 'c1' (uniform int)
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 Color: direct index for structure (temp 4-component vector of float)
+0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34 Constant:
+0:34 0 (const int)
+0:34 Constant:
+0:34 1.000000
+0:34 1.000000
+0:34 1.000000
+0:34 1.000000
+0:35 move second child to first child (temp float)
+0:35 Depth: direct index for structure (temp float FragDepth)
+0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:35 Constant:
+0:35 1 (const int)
+0:35 Constant:
+0:35 1.000000
+0:37 Branch: Return with expression
+0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer)
+0:? 'g_tTexbf4' (uniform samplerBuffer)
+0:? 'g_tTexbi4' (uniform isamplerBuffer)
+0:? 'g_tTexbu4' (uniform usamplerBuffer)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 69
+
+ Capability Shader
+ Capability SampledBuffer
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "r00"
+ Name 13 "g_tTexbf4"
+ Name 17 "c1"
+ Name 23 "r01"
+ Name 27 "g_tTexbi4"
+ Name 35 "r02"
+ Name 39 "g_tTexbu4"
+ Name 44 "PS_OUTPUT"
+ MemberName 44(PS_OUTPUT) 0 "Color"
+ MemberName 44(PS_OUTPUT) 1 "Depth"
+ Name 46 "psout"
+ Name 56 "g_tTexbf4_test"
+ Name 59 "c2"
+ Name 62 "c3"
+ Name 64 "c4"
+ Name 65 "o1"
+ Name 66 "o2"
+ Name 67 "o3"
+ Name 68 "o4"
+ Decorate 13(g_tTexbf4) DescriptorSet 0
+ Decorate 27(g_tTexbi4) DescriptorSet 0
+ Decorate 39(g_tTexbu4) DescriptorSet 0
+ MemberDecorate 44(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 56(g_tTexbf4_test) DescriptorSet 0
+ Decorate 56(g_tTexbf4_test) Binding 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) Buffer sampled format:Unknown
+ 11: TypeSampledImage 10
+ 12: TypePointer UniformConstant 11
+ 13(g_tTexbf4): 12(ptr) Variable UniformConstant
+ 15: TypeInt 32 1
+ 16: TypePointer UniformConstant 15(int)
+ 17(c1): 16(ptr) Variable UniformConstant
+ 21: TypeVector 15(int) 4
+ 22: TypePointer Function 21(ivec4)
+ 24: TypeImage 15(int) Buffer sampled format:Unknown
+ 25: TypeSampledImage 24
+ 26: TypePointer UniformConstant 25
+ 27(g_tTexbi4): 26(ptr) Variable UniformConstant
+ 32: TypeInt 32 0
+ 33: TypeVector 32(int) 4
+ 34: TypePointer Function 33(ivec4)
+ 36: TypeImage 32(int) Buffer sampled format:Unknown
+ 37: TypeSampledImage 36
+ 38: TypePointer UniformConstant 37
+ 39(g_tTexbu4): 38(ptr) Variable UniformConstant
+ 44(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 45: TypePointer Function 44(PS_OUTPUT)
+ 47: 15(int) Constant 0
+ 48: 6(float) Constant 1065353216
+ 49: 7(fvec4) ConstantComposite 48 48 48 48
+ 51: 15(int) Constant 1
+ 52: TypePointer Function 6(float)
+56(g_tTexbf4_test): 12(ptr) Variable UniformConstant
+ 57: TypeVector 15(int) 2
+ 58: TypePointer UniformConstant 57(ivec2)
+ 59(c2): 58(ptr) Variable UniformConstant
+ 60: TypeVector 15(int) 3
+ 61: TypePointer UniformConstant 60(ivec3)
+ 62(c3): 61(ptr) Variable UniformConstant
+ 63: TypePointer UniformConstant 21(ivec4)
+ 64(c4): 63(ptr) Variable UniformConstant
+ 65(o1): 16(ptr) Variable UniformConstant
+ 66(o2): 58(ptr) Variable UniformConstant
+ 67(o3): 61(ptr) Variable UniformConstant
+ 68(o4): 63(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(r00): 8(ptr) Variable Function
+ 23(r01): 22(ptr) Variable Function
+ 35(r02): 34(ptr) Variable Function
+ 46(psout): 45(ptr) Variable Function
+ 14: 11 Load 13(g_tTexbf4)
+ 18: 15(int) Load 17(c1)
+ 19: 10 Image 14
+ 20: 7(fvec4) ImageFetch 19 18
+ Store 9(r00) 20
+ 28: 25 Load 27(g_tTexbi4)
+ 29: 15(int) Load 17(c1)
+ 30: 24 Image 28
+ 31: 21(ivec4) ImageFetch 30 29
+ Store 23(r01) 31
+ 40: 37 Load 39(g_tTexbu4)
+ 41: 15(int) Load 17(c1)
+ 42: 36 Image 40
+ 43: 33(ivec4) ImageFetch 42 41
+ Store 35(r02) 43
+ 50: 8(ptr) AccessChain 46(psout) 47
+ Store 50 49
+ 53: 52(ptr) AccessChain 46(psout) 51
+ Store 53 48
+ 54:44(PS_OUTPUT) Load 46(psout)
+ ReturnValue 54
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
new file mode 100644
index 0000000..da9f2e4
--- /dev/null
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -0,0 +1,617 @@
+hlsl.load.offset.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetchOffset (global 4-component vector of float)
+0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:52 vector swizzle (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 1 (const int)
+0:52 'o1' (uniform int)
+0:53 textureFetchOffset (global 4-component vector of int)
+0:53 'g_tTex1di4' (uniform itexture1D)
+0:53 vector swizzle (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 direct index (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Constant:
+0:53 1 (const int)
+0:53 'o1' (uniform int)
+0:54 textureFetchOffset (global 4-component vector of uint)
+0:54 'g_tTex1du4' (uniform utexture1D)
+0:54 vector swizzle (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 direct index (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Constant:
+0:54 1 (const int)
+0:54 'o1' (uniform int)
+0:57 textureFetchOffset (global 4-component vector of float)
+0:57 'g_tTex2df4' (uniform texture2D)
+0:57 vector swizzle (temp 2-component vector of int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 direct index (temp int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Constant:
+0:57 2 (const int)
+0:57 'o2' (uniform 2-component vector of int)
+0:58 textureFetchOffset (global 4-component vector of int)
+0:58 'g_tTex2di4' (uniform itexture2D)
+0:58 vector swizzle (temp 2-component vector of int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 direct index (temp int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Constant:
+0:58 2 (const int)
+0:58 'o2' (uniform 2-component vector of int)
+0:59 textureFetchOffset (global 4-component vector of uint)
+0:59 'g_tTex2du4' (uniform utexture2D)
+0:59 vector swizzle (temp 2-component vector of int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 direct index (temp int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Constant:
+0:59 2 (const int)
+0:59 'o2' (uniform 2-component vector of int)
+0:62 textureFetchOffset (global 4-component vector of float)
+0:62 'g_tTex3df4' (uniform texture3D)
+0:62 vector swizzle (temp 3-component vector of int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Sequence
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 2 (const int)
+0:62 direct index (temp int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Constant:
+0:62 3 (const int)
+0:62 'o3' (uniform 3-component vector of int)
+0:63 textureFetchOffset (global 4-component vector of int)
+0:63 'g_tTex3di4' (uniform itexture3D)
+0:63 vector swizzle (temp 3-component vector of int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 direct index (temp int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Constant:
+0:63 3 (const int)
+0:63 'o3' (uniform 3-component vector of int)
+0:64 textureFetchOffset (global 4-component vector of uint)
+0:64 'g_tTex3du4' (uniform utexture3D)
+0:64 vector swizzle (temp 3-component vector of int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Sequence
+0:64 Constant:
+0:64 0 (const int)
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 2 (const int)
+0:64 direct index (temp int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Constant:
+0:64 3 (const int)
+0:64 'o3' (uniform 3-component vector of int)
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 Color: direct index for structure (temp 4-component vector of float)
+0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:72 Constant:
+0:72 0 (const int)
+0:72 Constant:
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:73 move second child to first child (temp float)
+0:73 Depth: direct index for structure (temp float FragDepth)
+0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:73 Constant:
+0:73 1 (const int)
+0:73 Constant:
+0:73 1.000000
+0:75 Branch: Return with expression
+0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:77 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetchOffset (global 4-component vector of float)
+0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:52 vector swizzle (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 direct index (temp int)
+0:52 'c2' (uniform 2-component vector of int)
+0:52 Constant:
+0:52 1 (const int)
+0:52 'o1' (uniform int)
+0:53 textureFetchOffset (global 4-component vector of int)
+0:53 'g_tTex1di4' (uniform itexture1D)
+0:53 vector swizzle (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 direct index (temp int)
+0:53 'c2' (uniform 2-component vector of int)
+0:53 Constant:
+0:53 1 (const int)
+0:53 'o1' (uniform int)
+0:54 textureFetchOffset (global 4-component vector of uint)
+0:54 'g_tTex1du4' (uniform utexture1D)
+0:54 vector swizzle (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 direct index (temp int)
+0:54 'c2' (uniform 2-component vector of int)
+0:54 Constant:
+0:54 1 (const int)
+0:54 'o1' (uniform int)
+0:57 textureFetchOffset (global 4-component vector of float)
+0:57 'g_tTex2df4' (uniform texture2D)
+0:57 vector swizzle (temp 2-component vector of int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 direct index (temp int)
+0:57 'c3' (uniform 3-component vector of int)
+0:57 Constant:
+0:57 2 (const int)
+0:57 'o2' (uniform 2-component vector of int)
+0:58 textureFetchOffset (global 4-component vector of int)
+0:58 'g_tTex2di4' (uniform itexture2D)
+0:58 vector swizzle (temp 2-component vector of int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 direct index (temp int)
+0:58 'c3' (uniform 3-component vector of int)
+0:58 Constant:
+0:58 2 (const int)
+0:58 'o2' (uniform 2-component vector of int)
+0:59 textureFetchOffset (global 4-component vector of uint)
+0:59 'g_tTex2du4' (uniform utexture2D)
+0:59 vector swizzle (temp 2-component vector of int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 direct index (temp int)
+0:59 'c3' (uniform 3-component vector of int)
+0:59 Constant:
+0:59 2 (const int)
+0:59 'o2' (uniform 2-component vector of int)
+0:62 textureFetchOffset (global 4-component vector of float)
+0:62 'g_tTex3df4' (uniform texture3D)
+0:62 vector swizzle (temp 3-component vector of int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Sequence
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1 (const int)
+0:62 Constant:
+0:62 2 (const int)
+0:62 direct index (temp int)
+0:62 'c4' (uniform 4-component vector of int)
+0:62 Constant:
+0:62 3 (const int)
+0:62 'o3' (uniform 3-component vector of int)
+0:63 textureFetchOffset (global 4-component vector of int)
+0:63 'g_tTex3di4' (uniform itexture3D)
+0:63 vector swizzle (temp 3-component vector of int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Sequence
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 2 (const int)
+0:63 direct index (temp int)
+0:63 'c4' (uniform 4-component vector of int)
+0:63 Constant:
+0:63 3 (const int)
+0:63 'o3' (uniform 3-component vector of int)
+0:64 textureFetchOffset (global 4-component vector of uint)
+0:64 'g_tTex3du4' (uniform utexture3D)
+0:64 vector swizzle (temp 3-component vector of int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Sequence
+0:64 Constant:
+0:64 0 (const int)
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 2 (const int)
+0:64 direct index (temp int)
+0:64 'c4' (uniform 4-component vector of int)
+0:64 Constant:
+0:64 3 (const int)
+0:64 'o3' (uniform 3-component vector of int)
+0:72 move second child to first child (temp 4-component vector of float)
+0:72 Color: direct index for structure (temp 4-component vector of float)
+0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:72 Constant:
+0:72 0 (const int)
+0:72 Constant:
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:72 1.000000
+0:73 move second child to first child (temp float)
+0:73 Depth: direct index for structure (temp float FragDepth)
+0:73 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:73 Constant:
+0:73 1 (const int)
+0:73 Constant:
+0:73 1.000000
+0:75 Branch: Return with expression
+0:75 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 172
+
+ Capability Shader
+ Capability ImageGatherExtended
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "g_tTex1df4"
+ Name 14 "c2"
+ Name 23 "o1"
+ Name 29 "g_tTex1di4"
+ Name 40 "g_tTex1du4"
+ Name 51 "g_tTex2df4"
+ Name 55 "c3"
+ Name 61 "o2"
+ Name 66 "g_tTex2di4"
+ Name 76 "g_tTex2du4"
+ Name 86 "g_tTex3df4"
+ Name 89 "c4"
+ Name 95 "o3"
+ Name 100 "g_tTex3di4"
+ Name 110 "g_tTex3du4"
+ Name 118 "PS_OUTPUT"
+ MemberName 118(PS_OUTPUT) 0 "Color"
+ MemberName 118(PS_OUTPUT) 1 "Depth"
+ Name 120 "psout"
+ Name 133 "g_sSamp"
+ Name 136 "g_tTexcdf4"
+ Name 139 "g_tTexcdi4"
+ Name 142 "g_tTexcdu4"
+ Name 145 "g_tTex1df4a"
+ Name 148 "g_tTex1di4a"
+ Name 151 "g_tTex1du4a"
+ Name 154 "g_tTex2df4a"
+ Name 157 "g_tTex2di4a"
+ Name 160 "g_tTex2du4a"
+ Name 163 "g_tTexcdf4a"
+ Name 166 "g_tTexcdi4a"
+ Name 169 "g_tTexcdu4a"
+ Name 170 "c1"
+ Name 171 "o4"
+ Decorate 9(g_tTex1df4) DescriptorSet 0
+ Decorate 9(g_tTex1df4) Binding 0
+ Decorate 29(g_tTex1di4) DescriptorSet 0
+ Decorate 40(g_tTex1du4) DescriptorSet 0
+ Decorate 51(g_tTex2df4) DescriptorSet 0
+ Decorate 66(g_tTex2di4) DescriptorSet 0
+ Decorate 76(g_tTex2du4) DescriptorSet 0
+ Decorate 86(g_tTex3df4) DescriptorSet 0
+ Decorate 100(g_tTex3di4) DescriptorSet 0
+ Decorate 110(g_tTex3du4) DescriptorSet 0
+ MemberDecorate 118(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 133(g_sSamp) DescriptorSet 0
+ Decorate 133(g_sSamp) Binding 0
+ Decorate 136(g_tTexcdf4) DescriptorSet 0
+ Decorate 139(g_tTexcdi4) DescriptorSet 0
+ Decorate 142(g_tTexcdu4) DescriptorSet 0
+ Decorate 145(g_tTex1df4a) DescriptorSet 0
+ Decorate 148(g_tTex1di4a) DescriptorSet 0
+ Decorate 151(g_tTex1du4a) DescriptorSet 0
+ Decorate 154(g_tTex2df4a) DescriptorSet 0
+ Decorate 157(g_tTex2di4a) DescriptorSet 0
+ Decorate 160(g_tTex2du4a) DescriptorSet 0
+ Decorate 163(g_tTexcdf4a) DescriptorSet 0
+ Decorate 166(g_tTexcdi4a) DescriptorSet 0
+ Decorate 169(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeImage 6(float) 1D sampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex1df4): 8(ptr) Variable UniformConstant
+ 11: TypeInt 32 1
+ 12: TypeVector 11(int) 2
+ 13: TypePointer UniformConstant 12(ivec2)
+ 14(c2): 13(ptr) Variable UniformConstant
+ 15: TypeInt 32 0
+ 16: 15(int) Constant 0
+ 17: TypePointer UniformConstant 11(int)
+ 20: 15(int) Constant 1
+ 23(o1): 17(ptr) Variable UniformConstant
+ 25: TypeVector 6(float) 4
+ 27: TypeImage 11(int) 1D sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+ 29(g_tTex1di4): 28(ptr) Variable UniformConstant
+ 36: TypeVector 11(int) 4
+ 38: TypeImage 15(int) 1D sampled format:Unknown
+ 39: TypePointer UniformConstant 38
+ 40(g_tTex1du4): 39(ptr) Variable UniformConstant
+ 47: TypeVector 15(int) 4
+ 49: TypeImage 6(float) 2D sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex2df4): 50(ptr) Variable UniformConstant
+ 53: TypeVector 11(int) 3
+ 54: TypePointer UniformConstant 53(ivec3)
+ 55(c3): 54(ptr) Variable UniformConstant
+ 58: 15(int) Constant 2
+ 61(o2): 13(ptr) Variable UniformConstant
+ 64: TypeImage 11(int) 2D sampled format:Unknown
+ 65: TypePointer UniformConstant 64
+ 66(g_tTex2di4): 65(ptr) Variable UniformConstant
+ 74: TypeImage 15(int) 2D sampled format:Unknown
+ 75: TypePointer UniformConstant 74
+ 76(g_tTex2du4): 75(ptr) Variable UniformConstant
+ 84: TypeImage 6(float) 3D sampled format:Unknown
+ 85: TypePointer UniformConstant 84
+ 86(g_tTex3df4): 85(ptr) Variable UniformConstant
+ 88: TypePointer UniformConstant 36(ivec4)
+ 89(c4): 88(ptr) Variable UniformConstant
+ 92: 15(int) Constant 3
+ 95(o3): 54(ptr) Variable UniformConstant
+ 98: TypeImage 11(int) 3D sampled format:Unknown
+ 99: TypePointer UniformConstant 98
+ 100(g_tTex3di4): 99(ptr) Variable UniformConstant
+ 108: TypeImage 15(int) 3D sampled format:Unknown
+ 109: TypePointer UniformConstant 108
+ 110(g_tTex3du4): 109(ptr) Variable UniformConstant
+ 118(PS_OUTPUT): TypeStruct 25(fvec4) 6(float)
+ 119: TypePointer Function 118(PS_OUTPUT)
+ 121: 11(int) Constant 0
+ 122: 6(float) Constant 1065353216
+ 123: 25(fvec4) ConstantComposite 122 122 122 122
+ 124: TypePointer Function 25(fvec4)
+ 126: 11(int) Constant 1
+ 127: TypePointer Function 6(float)
+ 131: TypeSampler
+ 132: TypePointer UniformConstant 131
+ 133(g_sSamp): 132(ptr) Variable UniformConstant
+ 134: TypeImage 6(float) Cube sampled format:Unknown
+ 135: TypePointer UniformConstant 134
+ 136(g_tTexcdf4): 135(ptr) Variable UniformConstant
+ 137: TypeImage 11(int) Cube sampled format:Unknown
+ 138: TypePointer UniformConstant 137
+ 139(g_tTexcdi4): 138(ptr) Variable UniformConstant
+ 140: TypeImage 15(int) Cube sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+ 142(g_tTexcdu4): 141(ptr) Variable UniformConstant
+ 143: TypeImage 6(float) 1D array sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+145(g_tTex1df4a): 144(ptr) Variable UniformConstant
+ 146: TypeImage 11(int) 1D array sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+148(g_tTex1di4a): 147(ptr) Variable UniformConstant
+ 149: TypeImage 15(int) 1D array sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+151(g_tTex1du4a): 150(ptr) Variable UniformConstant
+ 152: TypeImage 6(float) 2D array sampled format:Unknown
+ 153: TypePointer UniformConstant 152
+154(g_tTex2df4a): 153(ptr) Variable UniformConstant
+ 155: TypeImage 11(int) 2D array sampled format:Unknown
+ 156: TypePointer UniformConstant 155
+157(g_tTex2di4a): 156(ptr) Variable UniformConstant
+ 158: TypeImage 15(int) 2D array sampled format:Unknown
+ 159: TypePointer UniformConstant 158
+160(g_tTex2du4a): 159(ptr) Variable UniformConstant
+ 161: TypeImage 6(float) Cube array sampled format:Unknown
+ 162: TypePointer UniformConstant 161
+163(g_tTexcdf4a): 162(ptr) Variable UniformConstant
+ 164: TypeImage 11(int) Cube array sampled format:Unknown
+ 165: TypePointer UniformConstant 164
+166(g_tTexcdi4a): 165(ptr) Variable UniformConstant
+ 167: TypeImage 15(int) Cube array sampled format:Unknown
+ 168: TypePointer UniformConstant 167
+169(g_tTexcdu4a): 168(ptr) Variable UniformConstant
+ 170(c1): 17(ptr) Variable UniformConstant
+ 171(o4): 88(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 120(psout): 119(ptr) Variable Function
+ 10: 7 Load 9(g_tTex1df4)
+ 18: 17(ptr) AccessChain 14(c2) 16
+ 19: 11(int) Load 18
+ 21: 17(ptr) AccessChain 14(c2) 20
+ 22: 11(int) Load 21
+ 24: 11(int) Load 23(o1)
+ 26: 25(fvec4) ImageFetch 10 19 Lod Offset 22 24
+ 30: 27 Load 29(g_tTex1di4)
+ 31: 17(ptr) AccessChain 14(c2) 16
+ 32: 11(int) Load 31
+ 33: 17(ptr) AccessChain 14(c2) 20
+ 34: 11(int) Load 33
+ 35: 11(int) Load 23(o1)
+ 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35
+ 41: 38 Load 40(g_tTex1du4)
+ 42: 17(ptr) AccessChain 14(c2) 16
+ 43: 11(int) Load 42
+ 44: 17(ptr) AccessChain 14(c2) 20
+ 45: 11(int) Load 44
+ 46: 11(int) Load 23(o1)
+ 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46
+ 52: 49 Load 51(g_tTex2df4)
+ 56: 53(ivec3) Load 55(c3)
+ 57: 12(ivec2) VectorShuffle 56 56 0 1
+ 59: 17(ptr) AccessChain 55(c3) 58
+ 60: 11(int) Load 59
+ 62: 12(ivec2) Load 61(o2)
+ 63: 25(fvec4) ImageFetch 52 57 Lod Offset 60 62
+ 67: 64 Load 66(g_tTex2di4)
+ 68: 53(ivec3) Load 55(c3)
+ 69: 12(ivec2) VectorShuffle 68 68 0 1
+ 70: 17(ptr) AccessChain 55(c3) 58
+ 71: 11(int) Load 70
+ 72: 12(ivec2) Load 61(o2)
+ 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72
+ 77: 74 Load 76(g_tTex2du4)
+ 78: 53(ivec3) Load 55(c3)
+ 79: 12(ivec2) VectorShuffle 78 78 0 1
+ 80: 17(ptr) AccessChain 55(c3) 58
+ 81: 11(int) Load 80
+ 82: 12(ivec2) Load 61(o2)
+ 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82
+ 87: 84 Load 86(g_tTex3df4)
+ 90: 36(ivec4) Load 89(c4)
+ 91: 53(ivec3) VectorShuffle 90 90 0 1 2
+ 93: 17(ptr) AccessChain 89(c4) 92
+ 94: 11(int) Load 93
+ 96: 53(ivec3) Load 95(o3)
+ 97: 25(fvec4) ImageFetch 87 91 Lod Offset 94 96
+ 101: 98 Load 100(g_tTex3di4)
+ 102: 36(ivec4) Load 89(c4)
+ 103: 53(ivec3) VectorShuffle 102 102 0 1 2
+ 104: 17(ptr) AccessChain 89(c4) 92
+ 105: 11(int) Load 104
+ 106: 53(ivec3) Load 95(o3)
+ 107: 36(ivec4) ImageFetch 101 103 Lod Offset 105 106
+ 111: 108 Load 110(g_tTex3du4)
+ 112: 36(ivec4) Load 89(c4)
+ 113: 53(ivec3) VectorShuffle 112 112 0 1 2
+ 114: 17(ptr) AccessChain 89(c4) 92
+ 115: 11(int) Load 114
+ 116: 53(ivec3) Load 95(o3)
+ 117: 47(ivec4) ImageFetch 111 113 Lod Offset 115 116
+ 125: 124(ptr) AccessChain 120(psout) 121
+ Store 125 123
+ 128: 127(ptr) AccessChain 120(psout) 126
+ Store 128 122
+ 129:118(PS_OUTPUT) Load 120(psout)
+ ReturnValue 129
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
new file mode 100644
index 0000000..97c164c
--- /dev/null
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -0,0 +1,522 @@
+hlsl.load.offsetarray.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetchOffset (global 4-component vector of float)
+0:52 'g_tTex1df4a' (uniform texture1DArray)
+0:52 vector swizzle (temp 2-component vector of int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 Constant:
+0:52 1 (const int)
+0:52 direct index (temp int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Constant:
+0:52 2 (const int)
+0:52 'o1' (uniform int)
+0:53 textureFetchOffset (global 4-component vector of int)
+0:53 'g_tTex1di4a' (uniform itexture1DArray)
+0:53 vector swizzle (temp 2-component vector of int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 Constant:
+0:53 1 (const int)
+0:53 direct index (temp int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Constant:
+0:53 2 (const int)
+0:53 'o1' (uniform int)
+0:54 textureFetchOffset (global 4-component vector of uint)
+0:54 'g_tTex1du4a' (uniform utexture1DArray)
+0:54 vector swizzle (temp 2-component vector of int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 Constant:
+0:54 1 (const int)
+0:54 direct index (temp int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Constant:
+0:54 2 (const int)
+0:54 'o1' (uniform int)
+0:57 textureFetchOffset (global 4-component vector of float)
+0:57 'g_tTex2df4a' (uniform texture2DArray)
+0:57 vector swizzle (temp 3-component vector of int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 2 (const int)
+0:57 direct index (temp int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Constant:
+0:57 3 (const int)
+0:57 'o2' (uniform 2-component vector of int)
+0:58 textureFetchOffset (global 4-component vector of int)
+0:58 'g_tTex2di4a' (uniform itexture2DArray)
+0:58 vector swizzle (temp 3-component vector of int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 2 (const int)
+0:58 direct index (temp int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Constant:
+0:58 3 (const int)
+0:58 'o2' (uniform 2-component vector of int)
+0:59 textureFetchOffset (global 4-component vector of uint)
+0:59 'g_tTex2du4a' (uniform utexture2DArray)
+0:59 vector swizzle (temp 3-component vector of int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 Constant:
+0:59 2 (const int)
+0:59 direct index (temp int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Constant:
+0:59 3 (const int)
+0:59 'o2' (uniform 2-component vector of int)
+0:65 move second child to first child (temp 4-component vector of float)
+0:65 Color: direct index for structure (temp 4-component vector of float)
+0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:65 Constant:
+0:65 0 (const int)
+0:65 Constant:
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:66 move second child to first child (temp float)
+0:66 Depth: direct index for structure (temp float FragDepth)
+0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:66 Constant:
+0:66 1 (const int)
+0:66 Constant:
+0:66 1.000000
+0:68 Branch: Return with expression
+0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:70 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Function Parameters:
+0:? Sequence
+0:52 textureFetchOffset (global 4-component vector of float)
+0:52 'g_tTex1df4a' (uniform texture1DArray)
+0:52 vector swizzle (temp 2-component vector of int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Sequence
+0:52 Constant:
+0:52 0 (const int)
+0:52 Constant:
+0:52 1 (const int)
+0:52 direct index (temp int)
+0:52 'c3' (uniform 3-component vector of int)
+0:52 Constant:
+0:52 2 (const int)
+0:52 'o1' (uniform int)
+0:53 textureFetchOffset (global 4-component vector of int)
+0:53 'g_tTex1di4a' (uniform itexture1DArray)
+0:53 vector swizzle (temp 2-component vector of int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Sequence
+0:53 Constant:
+0:53 0 (const int)
+0:53 Constant:
+0:53 1 (const int)
+0:53 direct index (temp int)
+0:53 'c3' (uniform 3-component vector of int)
+0:53 Constant:
+0:53 2 (const int)
+0:53 'o1' (uniform int)
+0:54 textureFetchOffset (global 4-component vector of uint)
+0:54 'g_tTex1du4a' (uniform utexture1DArray)
+0:54 vector swizzle (temp 2-component vector of int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Sequence
+0:54 Constant:
+0:54 0 (const int)
+0:54 Constant:
+0:54 1 (const int)
+0:54 direct index (temp int)
+0:54 'c3' (uniform 3-component vector of int)
+0:54 Constant:
+0:54 2 (const int)
+0:54 'o1' (uniform int)
+0:57 textureFetchOffset (global 4-component vector of float)
+0:57 'g_tTex2df4a' (uniform texture2DArray)
+0:57 vector swizzle (temp 3-component vector of int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Sequence
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 2 (const int)
+0:57 direct index (temp int)
+0:57 'c4' (uniform 4-component vector of int)
+0:57 Constant:
+0:57 3 (const int)
+0:57 'o2' (uniform 2-component vector of int)
+0:58 textureFetchOffset (global 4-component vector of int)
+0:58 'g_tTex2di4a' (uniform itexture2DArray)
+0:58 vector swizzle (temp 3-component vector of int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Sequence
+0:58 Constant:
+0:58 0 (const int)
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 2 (const int)
+0:58 direct index (temp int)
+0:58 'c4' (uniform 4-component vector of int)
+0:58 Constant:
+0:58 3 (const int)
+0:58 'o2' (uniform 2-component vector of int)
+0:59 textureFetchOffset (global 4-component vector of uint)
+0:59 'g_tTex2du4a' (uniform utexture2DArray)
+0:59 vector swizzle (temp 3-component vector of int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Sequence
+0:59 Constant:
+0:59 0 (const int)
+0:59 Constant:
+0:59 1 (const int)
+0:59 Constant:
+0:59 2 (const int)
+0:59 direct index (temp int)
+0:59 'c4' (uniform 4-component vector of int)
+0:59 Constant:
+0:59 3 (const int)
+0:59 'o2' (uniform 2-component vector of int)
+0:65 move second child to first child (temp 4-component vector of float)
+0:65 Color: direct index for structure (temp 4-component vector of float)
+0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:65 Constant:
+0:65 0 (const int)
+0:65 Constant:
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:65 1.000000
+0:66 move second child to first child (temp float)
+0:66 Depth: direct index for structure (temp float FragDepth)
+0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:66 Constant:
+0:66 1 (const int)
+0:66 Constant:
+0:66 1.000000
+0:68 Branch: Return with expression
+0:68 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:? 'c1' (uniform int)
+0:? 'c2' (uniform 2-component vector of int)
+0:? 'c3' (uniform 3-component vector of int)
+0:? 'c4' (uniform 4-component vector of int)
+0:? 'o1' (uniform int)
+0:? 'o2' (uniform 2-component vector of int)
+0:? 'o3' (uniform 3-component vector of int)
+0:? 'o4' (uniform 4-component vector of int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 149
+
+ Capability Shader
+ Capability ImageGatherExtended
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "g_tTex1df4a"
+ Name 14 "c3"
+ Name 23 "o1"
+ Name 29 "g_tTex1di4a"
+ Name 40 "g_tTex1du4a"
+ Name 51 "g_tTex2df4a"
+ Name 54 "c4"
+ Name 61 "o2"
+ Name 66 "g_tTex2di4a"
+ Name 76 "g_tTex2du4a"
+ Name 84 "PS_OUTPUT"
+ MemberName 84(PS_OUTPUT) 0 "Color"
+ MemberName 84(PS_OUTPUT) 1 "Depth"
+ Name 86 "psout"
+ Name 99 "g_sSamp"
+ Name 102 "g_tTex1df4"
+ Name 105 "g_tTex1di4"
+ Name 108 "g_tTex1du4"
+ Name 111 "g_tTex2df4"
+ Name 114 "g_tTex2di4"
+ Name 117 "g_tTex2du4"
+ Name 120 "g_tTex3df4"
+ Name 123 "g_tTex3di4"
+ Name 126 "g_tTex3du4"
+ Name 129 "g_tTexcdf4"
+ Name 132 "g_tTexcdi4"
+ Name 135 "g_tTexcdu4"
+ Name 138 "g_tTexcdf4a"
+ Name 141 "g_tTexcdi4a"
+ Name 144 "g_tTexcdu4a"
+ Name 145 "c1"
+ Name 146 "c2"
+ Name 147 "o3"
+ Name 148 "o4"
+ Decorate 9(g_tTex1df4a) DescriptorSet 0
+ Decorate 29(g_tTex1di4a) DescriptorSet 0
+ Decorate 40(g_tTex1du4a) DescriptorSet 0
+ Decorate 51(g_tTex2df4a) DescriptorSet 0
+ Decorate 66(g_tTex2di4a) DescriptorSet 0
+ Decorate 76(g_tTex2du4a) DescriptorSet 0
+ MemberDecorate 84(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 99(g_sSamp) DescriptorSet 0
+ Decorate 99(g_sSamp) Binding 0
+ Decorate 102(g_tTex1df4) DescriptorSet 0
+ Decorate 102(g_tTex1df4) Binding 0
+ Decorate 105(g_tTex1di4) DescriptorSet 0
+ Decorate 108(g_tTex1du4) DescriptorSet 0
+ Decorate 111(g_tTex2df4) DescriptorSet 0
+ Decorate 114(g_tTex2di4) DescriptorSet 0
+ Decorate 117(g_tTex2du4) DescriptorSet 0
+ Decorate 120(g_tTex3df4) DescriptorSet 0
+ Decorate 123(g_tTex3di4) DescriptorSet 0
+ Decorate 126(g_tTex3du4) DescriptorSet 0
+ Decorate 129(g_tTexcdf4) DescriptorSet 0
+ Decorate 132(g_tTexcdi4) DescriptorSet 0
+ Decorate 135(g_tTexcdu4) DescriptorSet 0
+ Decorate 138(g_tTexcdf4a) DescriptorSet 0
+ Decorate 141(g_tTexcdi4a) DescriptorSet 0
+ Decorate 144(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeImage 6(float) 1D array sampled format:Unknown
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex1df4a): 8(ptr) Variable UniformConstant
+ 11: TypeInt 32 1
+ 12: TypeVector 11(int) 3
+ 13: TypePointer UniformConstant 12(ivec3)
+ 14(c3): 13(ptr) Variable UniformConstant
+ 15: TypeVector 11(int) 2
+ 18: TypeInt 32 0
+ 19: 18(int) Constant 2
+ 20: TypePointer UniformConstant 11(int)
+ 23(o1): 20(ptr) Variable UniformConstant
+ 25: TypeVector 6(float) 4
+ 27: TypeImage 11(int) 1D array sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+ 29(g_tTex1di4a): 28(ptr) Variable UniformConstant
+ 36: TypeVector 11(int) 4
+ 38: TypeImage 18(int) 1D array sampled format:Unknown
+ 39: TypePointer UniformConstant 38
+ 40(g_tTex1du4a): 39(ptr) Variable UniformConstant
+ 47: TypeVector 18(int) 4
+ 49: TypeImage 6(float) 2D array sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex2df4a): 50(ptr) Variable UniformConstant
+ 53: TypePointer UniformConstant 36(ivec4)
+ 54(c4): 53(ptr) Variable UniformConstant
+ 57: 18(int) Constant 3
+ 60: TypePointer UniformConstant 15(ivec2)
+ 61(o2): 60(ptr) Variable UniformConstant
+ 64: TypeImage 11(int) 2D array sampled format:Unknown
+ 65: TypePointer UniformConstant 64
+ 66(g_tTex2di4a): 65(ptr) Variable UniformConstant
+ 74: TypeImage 18(int) 2D array sampled format:Unknown
+ 75: TypePointer UniformConstant 74
+ 76(g_tTex2du4a): 75(ptr) Variable UniformConstant
+ 84(PS_OUTPUT): TypeStruct 25(fvec4) 6(float)
+ 85: TypePointer Function 84(PS_OUTPUT)
+ 87: 11(int) Constant 0
+ 88: 6(float) Constant 1065353216
+ 89: 25(fvec4) ConstantComposite 88 88 88 88
+ 90: TypePointer Function 25(fvec4)
+ 92: 11(int) Constant 1
+ 93: TypePointer Function 6(float)
+ 97: TypeSampler
+ 98: TypePointer UniformConstant 97
+ 99(g_sSamp): 98(ptr) Variable UniformConstant
+ 100: TypeImage 6(float) 1D sampled format:Unknown
+ 101: TypePointer UniformConstant 100
+ 102(g_tTex1df4): 101(ptr) Variable UniformConstant
+ 103: TypeImage 11(int) 1D sampled format:Unknown
+ 104: TypePointer UniformConstant 103
+ 105(g_tTex1di4): 104(ptr) Variable UniformConstant
+ 106: TypeImage 18(int) 1D sampled format:Unknown
+ 107: TypePointer UniformConstant 106
+ 108(g_tTex1du4): 107(ptr) Variable UniformConstant
+ 109: TypeImage 6(float) 2D sampled format:Unknown
+ 110: TypePointer UniformConstant 109
+ 111(g_tTex2df4): 110(ptr) Variable UniformConstant
+ 112: TypeImage 11(int) 2D sampled format:Unknown
+ 113: TypePointer UniformConstant 112
+ 114(g_tTex2di4): 113(ptr) Variable UniformConstant
+ 115: TypeImage 18(int) 2D sampled format:Unknown
+ 116: TypePointer UniformConstant 115
+ 117(g_tTex2du4): 116(ptr) Variable UniformConstant
+ 118: TypeImage 6(float) 3D sampled format:Unknown
+ 119: TypePointer UniformConstant 118
+ 120(g_tTex3df4): 119(ptr) Variable UniformConstant
+ 121: TypeImage 11(int) 3D sampled format:Unknown
+ 122: TypePointer UniformConstant 121
+ 123(g_tTex3di4): 122(ptr) Variable UniformConstant
+ 124: TypeImage 18(int) 3D sampled format:Unknown
+ 125: TypePointer UniformConstant 124
+ 126(g_tTex3du4): 125(ptr) Variable UniformConstant
+ 127: TypeImage 6(float) Cube sampled format:Unknown
+ 128: TypePointer UniformConstant 127
+ 129(g_tTexcdf4): 128(ptr) Variable UniformConstant
+ 130: TypeImage 11(int) Cube sampled format:Unknown
+ 131: TypePointer UniformConstant 130
+ 132(g_tTexcdi4): 131(ptr) Variable UniformConstant
+ 133: TypeImage 18(int) Cube sampled format:Unknown
+ 134: TypePointer UniformConstant 133
+ 135(g_tTexcdu4): 134(ptr) Variable UniformConstant
+ 136: TypeImage 6(float) Cube array sampled format:Unknown
+ 137: TypePointer UniformConstant 136
+138(g_tTexcdf4a): 137(ptr) Variable UniformConstant
+ 139: TypeImage 11(int) Cube array sampled format:Unknown
+ 140: TypePointer UniformConstant 139
+141(g_tTexcdi4a): 140(ptr) Variable UniformConstant
+ 142: TypeImage 18(int) Cube array sampled format:Unknown
+ 143: TypePointer UniformConstant 142
+144(g_tTexcdu4a): 143(ptr) Variable UniformConstant
+ 145(c1): 20(ptr) Variable UniformConstant
+ 146(c2): 60(ptr) Variable UniformConstant
+ 147(o3): 13(ptr) Variable UniformConstant
+ 148(o4): 53(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 86(psout): 85(ptr) Variable Function
+ 10: 7 Load 9(g_tTex1df4a)
+ 16: 12(ivec3) Load 14(c3)
+ 17: 15(ivec2) VectorShuffle 16 16 0 1
+ 21: 20(ptr) AccessChain 14(c3) 19
+ 22: 11(int) Load 21
+ 24: 11(int) Load 23(o1)
+ 26: 25(fvec4) ImageFetch 10 17 Lod Offset 22 24
+ 30: 27 Load 29(g_tTex1di4a)
+ 31: 12(ivec3) Load 14(c3)
+ 32: 15(ivec2) VectorShuffle 31 31 0 1
+ 33: 20(ptr) AccessChain 14(c3) 19
+ 34: 11(int) Load 33
+ 35: 11(int) Load 23(o1)
+ 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35
+ 41: 38 Load 40(g_tTex1du4a)
+ 42: 12(ivec3) Load 14(c3)
+ 43: 15(ivec2) VectorShuffle 42 42 0 1
+ 44: 20(ptr) AccessChain 14(c3) 19
+ 45: 11(int) Load 44
+ 46: 11(int) Load 23(o1)
+ 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46
+ 52: 49 Load 51(g_tTex2df4a)
+ 55: 36(ivec4) Load 54(c4)
+ 56: 12(ivec3) VectorShuffle 55 55 0 1 2
+ 58: 20(ptr) AccessChain 54(c4) 57
+ 59: 11(int) Load 58
+ 62: 15(ivec2) Load 61(o2)
+ 63: 25(fvec4) ImageFetch 52 56 Lod Offset 59 62
+ 67: 64 Load 66(g_tTex2di4a)
+ 68: 36(ivec4) Load 54(c4)
+ 69: 12(ivec3) VectorShuffle 68 68 0 1 2
+ 70: 20(ptr) AccessChain 54(c4) 57
+ 71: 11(int) Load 70
+ 72: 15(ivec2) Load 61(o2)
+ 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72
+ 77: 74 Load 76(g_tTex2du4a)
+ 78: 36(ivec4) Load 54(c4)
+ 79: 12(ivec3) VectorShuffle 78 78 0 1 2
+ 80: 20(ptr) AccessChain 54(c4) 57
+ 81: 11(int) Load 80
+ 82: 15(ivec2) Load 61(o2)
+ 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82
+ 91: 90(ptr) AccessChain 86(psout) 87
+ Store 91 89
+ 94: 93(ptr) AccessChain 86(psout) 92
+ Store 94 88
+ 95:84(PS_OUTPUT) Load 86(psout)
+ ReturnValue 95
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out
new file mode 100644
index 0000000..5ba5831
--- /dev/null
+++ b/Test/baseResults/hlsl.numericsuffixes.frag.out
@@ -0,0 +1,204 @@
+hlsl.numericsuffixes.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:21 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:5 Function Parameters:
+0:? Sequence
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'r00' (temp float)
+0:7 Constant:
+0:7 1.000000
+0:8 Sequence
+0:8 move second child to first child (temp uint)
+0:8 'r01' (temp uint)
+0:8 Constant:
+0:8 1 (const uint)
+0:9 Sequence
+0:9 move second child to first child (temp uint)
+0:9 'r02' (temp uint)
+0:9 Constant:
+0:9 2 (const uint)
+0:10 Sequence
+0:10 move second child to first child (temp uint)
+0:10 'r03' (temp uint)
+0:10 Constant:
+0:10 2748 (const uint)
+0:11 Sequence
+0:11 move second child to first child (temp uint)
+0:11 'r04' (temp uint)
+0:11 Constant:
+0:11 2748 (const uint)
+0:12 Sequence
+0:12 move second child to first child (temp int)
+0:12 'r05' (temp int)
+0:12 Constant:
+0:12 5 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp int)
+0:13 'r06' (temp int)
+0:13 Constant:
+0:13 6 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'r07' (temp int)
+0:14 Constant:
+0:14 57 (const int)
+0:15 Sequence
+0:15 move second child to first child (temp uint)
+0:15 'r08' (temp uint)
+0:15 Constant:
+0:15 58 (const uint)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 color: direct index for structure (temp 4-component vector of float)
+0:18 'ps_output' (temp structure{temp 4-component vector of float color})
+0:18 Constant:
+0:18 0 (const int)
+0:18 Construct vec4 (temp 4-component vector of float)
+0:18 Convert int to float (temp float)
+0:18 'r07' (temp int)
+0:19 Branch: Return with expression
+0:19 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:21 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:5 Function Parameters:
+0:? Sequence
+0:7 Sequence
+0:7 move second child to first child (temp float)
+0:7 'r00' (temp float)
+0:7 Constant:
+0:7 1.000000
+0:8 Sequence
+0:8 move second child to first child (temp uint)
+0:8 'r01' (temp uint)
+0:8 Constant:
+0:8 1 (const uint)
+0:9 Sequence
+0:9 move second child to first child (temp uint)
+0:9 'r02' (temp uint)
+0:9 Constant:
+0:9 2 (const uint)
+0:10 Sequence
+0:10 move second child to first child (temp uint)
+0:10 'r03' (temp uint)
+0:10 Constant:
+0:10 2748 (const uint)
+0:11 Sequence
+0:11 move second child to first child (temp uint)
+0:11 'r04' (temp uint)
+0:11 Constant:
+0:11 2748 (const uint)
+0:12 Sequence
+0:12 move second child to first child (temp int)
+0:12 'r05' (temp int)
+0:12 Constant:
+0:12 5 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp int)
+0:13 'r06' (temp int)
+0:13 Constant:
+0:13 6 (const int)
+0:14 Sequence
+0:14 move second child to first child (temp int)
+0:14 'r07' (temp int)
+0:14 Constant:
+0:14 57 (const int)
+0:15 Sequence
+0:15 move second child to first child (temp uint)
+0:15 'r08' (temp uint)
+0:15 Constant:
+0:15 58 (const uint)
+0:18 move second child to first child (temp 4-component vector of float)
+0:18 color: direct index for structure (temp 4-component vector of float)
+0:18 'ps_output' (temp structure{temp 4-component vector of float color})
+0:18 Constant:
+0:18 0 (const int)
+0:18 Construct vec4 (temp 4-component vector of float)
+0:18 Convert int to float (temp float)
+0:18 'r07' (temp int)
+0:19 Branch: Return with expression
+0:19 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 41
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r00"
+ Name 12 "r01"
+ Name 14 "r02"
+ Name 16 "r03"
+ Name 18 "r04"
+ Name 21 "r05"
+ Name 23 "r06"
+ Name 25 "r07"
+ Name 27 "r08"
+ Name 30 "PS_OUTPUT"
+ MemberName 30(PS_OUTPUT) 0 "color"
+ Name 32 "ps_output"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: 6(float) Constant 1065353216
+ 10: TypeInt 32 0
+ 11: TypePointer Function 10(int)
+ 13: 10(int) Constant 1
+ 15: 10(int) Constant 2
+ 17: 10(int) Constant 2748
+ 19: TypeInt 32 1
+ 20: TypePointer Function 19(int)
+ 22: 19(int) Constant 5
+ 24: 19(int) Constant 6
+ 26: 19(int) Constant 57
+ 28: 10(int) Constant 58
+ 29: TypeVector 6(float) 4
+ 30(PS_OUTPUT): TypeStruct 29(fvec4)
+ 31: TypePointer Function 30(PS_OUTPUT)
+ 33: 19(int) Constant 0
+ 37: TypePointer Function 29(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 12(r01): 11(ptr) Variable Function
+ 14(r02): 11(ptr) Variable Function
+ 16(r03): 11(ptr) Variable Function
+ 18(r04): 11(ptr) Variable Function
+ 21(r05): 20(ptr) Variable Function
+ 23(r06): 20(ptr) Variable Function
+ 25(r07): 20(ptr) Variable Function
+ 27(r08): 11(ptr) Variable Function
+ 32(ps_output): 31(ptr) Variable Function
+ Store 8(r00) 9
+ Store 12(r01) 13
+ Store 14(r02) 15
+ Store 16(r03) 17
+ Store 18(r04) 17
+ Store 21(r05) 22
+ Store 23(r06) 24
+ Store 25(r07) 26
+ Store 27(r08) 28
+ 34: 19(int) Load 25(r07)
+ 35: 6(float) ConvertSToF 34
+ 36: 29(fvec4) CompositeConstruct 35 35 35 35
+ 38: 37(ptr) AccessChain 32(ps_output) 33
+ Store 38 36
+ 39:30(PS_OUTPUT) Load 32(ps_output)
+ ReturnValue 39
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out
new file mode 100644
index 0000000..6484eb0
--- /dev/null
+++ b/Test/baseResults/hlsl.pp.line.frag.out
@@ -0,0 +1,124 @@
+hlsl.pp.line.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:4 Function Parameters:
+0:? Sequence
+0:124 Sequence
+0:124 move second child to first child (temp int)
+0:124 'thisLineIs' (temp int)
+0:124 Constant:
+0:124 124 (const int)
+0:126 move second child to first child (temp 4-component vector of float)
+0:126 Color: direct index for structure (temp 4-component vector of float)
+0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:126 Constant:
+0:126 0 (const int)
+0:? Construct vec4 (temp 4-component vector of float)
+0:126 Convert int to float (temp float)
+0:126 'thisLineIs' (temp int)
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 1.000000
+0:127 move second child to first child (temp float)
+0:127 Depth: direct index for structure (temp float FragDepth)
+0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:127 Constant:
+0:127 1 (const int)
+0:127 Constant:
+0:127 1.000000
+0:129 Branch: Return with expression
+0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:131 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:4 Function Parameters:
+0:? Sequence
+0:124 Sequence
+0:124 move second child to first child (temp int)
+0:124 'thisLineIs' (temp int)
+0:124 Constant:
+0:124 124 (const int)
+0:126 move second child to first child (temp 4-component vector of float)
+0:126 Color: direct index for structure (temp 4-component vector of float)
+0:126 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:126 Constant:
+0:126 0 (const int)
+0:? Construct vec4 (temp 4-component vector of float)
+0:126 Convert int to float (temp float)
+0:126 'thisLineIs' (temp int)
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 0.000000
+0:126 Constant:
+0:126 1.000000
+0:127 move second child to first child (temp float)
+0:127 Depth: direct index for structure (temp float FragDepth)
+0:127 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:127 Constant:
+0:127 1 (const int)
+0:127 Constant:
+0:127 1.000000
+0:129 Branch: Return with expression
+0:129 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 28
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "thisLineIs"
+ Name 12 "PS_OUTPUT"
+ MemberName 12(PS_OUTPUT) 0 "Color"
+ MemberName 12(PS_OUTPUT) 1 "Depth"
+ Name 14 "psout"
+ MemberDecorate 12(PS_OUTPUT) 1 BuiltIn FragDepth
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 124
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12(PS_OUTPUT): TypeStruct 11(fvec4) 10(float)
+ 13: TypePointer Function 12(PS_OUTPUT)
+ 15: 6(int) Constant 0
+ 18: 10(float) Constant 0
+ 19: 10(float) Constant 1065353216
+ 21: TypePointer Function 11(fvec4)
+ 23: 6(int) Constant 1
+ 24: TypePointer Function 10(float)
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(thisLineIs): 7(ptr) Variable Function
+ 14(psout): 13(ptr) Variable Function
+ Store 8(thisLineIs) 9
+ 16: 6(int) Load 8(thisLineIs)
+ 17: 10(float) ConvertSToF 16
+ 20: 11(fvec4) CompositeConstruct 17 18 18 19
+ 22: 21(ptr) AccessChain 14(psout) 15
+ Store 22 20
+ 25: 24(ptr) AccessChain 14(psout) 23
+ Store 25 19
+ 26:12(PS_OUTPUT) Load 14(psout)
+ ReturnValue 26
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out
index d351353..2ad5ab5 100755
--- a/Test/baseResults/hlsl.precedence.frag.out
+++ b/Test/baseResults/hlsl.precedence.frag.out
@@ -12,11 +12,36 @@
0:8 Branch: Return with expression
0:8 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
-0:8 'a1' (in 4-component vector of float)
-0:8 component-wise multiply (temp 4-component vector of float)
-0:8 'a2' (in 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:8 'a1' (in 4-component vector of float)
+0:8 component-wise multiply (temp 4-component vector of float)
+0:8 'a2' (in 4-component vector of float)
+0:8 'a3' (in 4-component vector of float)
+0:8 'a4' (in 4-component vector of float)
+0:? Construct vec4 (temp 4-component vector of float)
+0:8 component-wise multiply (temp 3-component vector of float)
+0:8 vector swizzle (temp 3-component vector of float)
+0:8 'a1' (in 4-component vector of float)
+0:8 Sequence
+0:8 Constant:
+0:8 0 (const int)
+0:8 Constant:
+0:8 1 (const int)
+0:8 Constant:
+0:8 2 (const int)
+0:8 vector swizzle (temp 3-component vector of float)
+0:8 'a2' (in 4-component vector of float)
+0:8 Sequence
+0:8 Constant:
+0:8 0 (const int)
+0:8 Constant:
+0:8 1 (const int)
+0:8 Constant:
+0:8 2 (const int)
+0:8 direct index (temp float)
0:8 'a3' (in 4-component vector of float)
-0:8 'a4' (in 4-component vector of float)
+0:8 Constant:
+0:8 3 (const int)
0:? Linker Objects
@@ -36,16 +61,41 @@
0:8 Branch: Return with expression
0:8 add (temp 4-component vector of float)
0:8 add (temp 4-component vector of float)
-0:8 'a1' (in 4-component vector of float)
-0:8 component-wise multiply (temp 4-component vector of float)
-0:8 'a2' (in 4-component vector of float)
+0:8 add (temp 4-component vector of float)
+0:8 'a1' (in 4-component vector of float)
+0:8 component-wise multiply (temp 4-component vector of float)
+0:8 'a2' (in 4-component vector of float)
+0:8 'a3' (in 4-component vector of float)
+0:8 'a4' (in 4-component vector of float)
+0:? Construct vec4 (temp 4-component vector of float)
+0:8 component-wise multiply (temp 3-component vector of float)
+0:8 vector swizzle (temp 3-component vector of float)
+0:8 'a1' (in 4-component vector of float)
+0:8 Sequence
+0:8 Constant:
+0:8 0 (const int)
+0:8 Constant:
+0:8 1 (const int)
+0:8 Constant:
+0:8 2 (const int)
+0:8 vector swizzle (temp 3-component vector of float)
+0:8 'a2' (in 4-component vector of float)
+0:8 Sequence
+0:8 Constant:
+0:8 0 (const int)
+0:8 Constant:
+0:8 1 (const int)
+0:8 Constant:
+0:8 2 (const int)
+0:8 direct index (temp float)
0:8 'a3' (in 4-component vector of float)
-0:8 'a4' (in 4-component vector of float)
+0:8 Constant:
+0:8 3 (const int)
0:? Linker Objects
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 21
+// Id's are bound by 37
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -67,6 +117,10 @@
11(a2): 8(ptr) Variable Input
13(a3): 8(ptr) Variable Input
17(a4): 8(ptr) Variable Input
+ 20: TypeVector 6(float) 3
+ 26: TypeInt 32 0
+ 27: 26(int) Constant 3
+ 28: TypePointer Input 6(float)
4(PixelShaderFunction): 2 Function None 3
5: Label
10: 7(fvec4) Load 9(a1)
@@ -76,5 +130,17 @@
16: 7(fvec4) FAdd 10 15
18: 7(fvec4) Load 17(a4)
19: 7(fvec4) FAdd 16 18
- ReturnValue 19
+ 21: 7(fvec4) Load 9(a1)
+ 22: 20(fvec3) VectorShuffle 21 21 0 1 2
+ 23: 7(fvec4) Load 11(a2)
+ 24: 20(fvec3) VectorShuffle 23 23 0 1 2
+ 25: 20(fvec3) FMul 22 24
+ 29: 28(ptr) AccessChain 13(a3) 27
+ 30: 6(float) Load 29
+ 31: 6(float) CompositeExtract 25 0
+ 32: 6(float) CompositeExtract 25 1
+ 33: 6(float) CompositeExtract 25 2
+ 34: 7(fvec4) CompositeConstruct 31 32 33 30
+ 35: 7(fvec4) FAdd 19 34
+ ReturnValue 35
FunctionEnd
diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out
index 99784de..6336cfa 100644
--- a/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -10,8 +10,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 texture (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -21,7 +21,7 @@
0:28 texture (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -31,7 +31,7 @@
0:29 texture (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -41,7 +41,7 @@
0:31 texture (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -52,7 +52,7 @@
0:32 texture (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -63,7 +63,7 @@
0:33 texture (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -74,7 +74,7 @@
0:35 texture (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4' (uniform textureCubeArray)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -86,7 +86,7 @@
0:36 texture (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -98,12 +98,22 @@
0:37 texture (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:? 1.000000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float FragDepth)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -114,9 +124,9 @@
0:42 Branch: Return with expression
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -141,8 +151,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 texture (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -152,7 +162,7 @@
0:28 texture (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -162,7 +172,7 @@
0:29 texture (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -172,7 +182,7 @@
0:31 texture (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -183,7 +193,7 @@
0:32 texture (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -194,7 +204,7 @@
0:33 texture (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -205,7 +215,7 @@
0:35 texture (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4' (uniform textureCubeArray)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -217,7 +227,7 @@
0:36 texture (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -229,12 +239,22 @@
0:37 texture (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:? 1.000000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float FragDepth)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -245,9 +265,9 @@
0:42 Branch: Return with expression
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -259,7 +279,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 129
+// Id's are bound by 132
Capability Shader
Capability Sampled1D
@@ -293,9 +313,11 @@
MemberName 120(PS_OUTPUT) 0 "Color"
MemberName 120(PS_OUTPUT) 1 "Depth"
Name 122 "psout"
- Name 128 "g_tTex1df4a"
+ Name 131 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 31(g_tTex1di4) DescriptorSet 0
Decorate 45(g_tTex1du4) DescriptorSet 0
Decorate 56(g_tTex2df4) DescriptorSet 0
@@ -305,7 +327,8 @@
Decorate 100(g_tTexcdi4) DescriptorSet 0
Decorate 110(g_tTexcdu4) DescriptorSet 0
MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 128(g_tTex1df4a) DescriptorSet 0
+ Decorate 131(g_tTex1df4a) DescriptorSet 0
+ Decorate 131(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -379,9 +402,11 @@
118: 7(fvec4) ConstantComposite 84 115 116 117
120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
121: TypePointer Function 120(PS_OUTPUT)
- 123: 25(int) Constant 1
- 124: TypePointer Function 6(float)
-128(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 123: 25(int) Constant 0
+ 124: 7(fvec4) ConstantComposite 117 117 117 117
+ 126: 25(int) Constant 1
+ 127: TypePointer Function 6(float)
+131(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -439,8 +464,10 @@
114: 113 SampledImage 111 112
119: 40(ivec4) ImageSampleImplicitLod 114 118
Store 107(txval42) 119
- 125: 124(ptr) AccessChain 122(psout) 123
- Store 125 117
- 126:120(PS_OUTPUT) Load 122(psout)
- ReturnValue 126
+ 125: 8(ptr) AccessChain 122(psout) 123
+ Store 125 124
+ 128: 127(ptr) AccessChain 122(psout) 126
+ Store 128 117
+ 129:120(PS_OUTPUT) Load 122(psout)
+ ReturnValue 129
FunctionEnd
diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index 234e388..feb6461 100644
--- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -96,8 +96,8 @@
0:70 'txval10' (temp 4-component vector of float)
0:70 texture (global 4-component vector of float)
0:70 Construct combined texture-sampler (temp sampler1D)
-0:70 'g_tTex1df4' (uniform texture1D)
-0:70 'g_sSamp' (uniform sampler)
+0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:70 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:70 Constant:
0:70 0.100000
0:71 Sequence
@@ -106,7 +106,7 @@
0:71 texture (global 4-component vector of int)
0:71 Construct combined texture-sampler (temp isampler1D)
0:71 'g_tTex1di4' (uniform itexture1D)
-0:71 'g_sSamp' (uniform sampler)
+0:71 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:71 Constant:
0:71 0.200000
0:72 Sequence
@@ -115,7 +115,7 @@
0:72 texture (global 4-component vector of uint)
0:72 Construct combined texture-sampler (temp usampler1D)
0:72 'g_tTex1du4' (uniform utexture1D)
-0:72 'g_sSamp' (uniform sampler)
+0:72 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:72 Constant:
0:72 0.300000
0:74 Sequence
@@ -124,7 +124,7 @@
0:74 texture (global 4-component vector of float)
0:74 Construct combined texture-sampler (temp sampler2D)
0:74 'g_tTex2df4' (uniform texture2D)
-0:74 'g_sSamp' (uniform sampler)
+0:74 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -134,7 +134,7 @@
0:75 texture (global 4-component vector of int)
0:75 Construct combined texture-sampler (temp isampler2D)
0:75 'g_tTex2di4' (uniform itexture2D)
-0:75 'g_sSamp' (uniform sampler)
+0:75 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -144,7 +144,7 @@
0:76 texture (global 4-component vector of uint)
0:76 Construct combined texture-sampler (temp usampler2D)
0:76 'g_tTex2du4' (uniform utexture2D)
-0:76 'g_sSamp' (uniform sampler)
+0:76 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -154,7 +154,7 @@
0:78 texture (global 4-component vector of float)
0:78 Construct combined texture-sampler (temp sampler3D)
0:78 'g_tTex3df4' (uniform texture3D)
-0:78 'g_sSamp' (uniform sampler)
+0:78 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -165,7 +165,7 @@
0:79 texture (global 4-component vector of int)
0:79 Construct combined texture-sampler (temp isampler3D)
0:79 'g_tTex3di4' (uniform itexture3D)
-0:79 'g_sSamp' (uniform sampler)
+0:79 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -176,7 +176,7 @@
0:80 texture (global 4-component vector of uint)
0:80 Construct combined texture-sampler (temp usampler3D)
0:80 'g_tTex3du4' (uniform utexture3D)
-0:80 'g_sSamp' (uniform sampler)
+0:80 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -187,7 +187,7 @@
0:82 texture (global 4-component vector of float)
0:82 Construct combined texture-sampler (temp samplerCube)
0:82 'g_tTexcdf4' (uniform textureCube)
-0:82 'g_sSamp' (uniform sampler)
+0:82 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -198,7 +198,7 @@
0:83 texture (global 4-component vector of int)
0:83 Construct combined texture-sampler (temp isamplerCube)
0:83 'g_tTexcdi4' (uniform itextureCube)
-0:83 'g_sSamp' (uniform sampler)
+0:83 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -209,11 +209,21 @@
0:84 texture (global 4-component vector of uint)
0:84 Construct combined texture-sampler (temp usamplerCube)
0:84 'g_tTexcdu4' (uniform utextureCube)
-0:84 'g_sSamp' (uniform sampler)
+0:84 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
+0:86 move second child to first child (temp 4-component vector of float)
+0:86 Color: direct index for structure (temp 4-component vector of float)
+0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:86 Constant:
+0:86 0 (const int)
+0:86 Constant:
+0:86 1.000000
+0:86 1.000000
+0:86 1.000000
+0:86 1.000000
0:87 move second child to first child (temp float)
0:87 Depth: direct index for structure (temp float FragDepth)
0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -224,11 +234,11 @@
0:89 Branch: Return with expression
0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_sSamp2D_b' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -340,8 +350,8 @@
0:70 'txval10' (temp 4-component vector of float)
0:70 texture (global 4-component vector of float)
0:70 Construct combined texture-sampler (temp sampler1D)
-0:70 'g_tTex1df4' (uniform texture1D)
-0:70 'g_sSamp' (uniform sampler)
+0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:70 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:70 Constant:
0:70 0.100000
0:71 Sequence
@@ -350,7 +360,7 @@
0:71 texture (global 4-component vector of int)
0:71 Construct combined texture-sampler (temp isampler1D)
0:71 'g_tTex1di4' (uniform itexture1D)
-0:71 'g_sSamp' (uniform sampler)
+0:71 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:71 Constant:
0:71 0.200000
0:72 Sequence
@@ -359,7 +369,7 @@
0:72 texture (global 4-component vector of uint)
0:72 Construct combined texture-sampler (temp usampler1D)
0:72 'g_tTex1du4' (uniform utexture1D)
-0:72 'g_sSamp' (uniform sampler)
+0:72 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:72 Constant:
0:72 0.300000
0:74 Sequence
@@ -368,7 +378,7 @@
0:74 texture (global 4-component vector of float)
0:74 Construct combined texture-sampler (temp sampler2D)
0:74 'g_tTex2df4' (uniform texture2D)
-0:74 'g_sSamp' (uniform sampler)
+0:74 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -378,7 +388,7 @@
0:75 texture (global 4-component vector of int)
0:75 Construct combined texture-sampler (temp isampler2D)
0:75 'g_tTex2di4' (uniform itexture2D)
-0:75 'g_sSamp' (uniform sampler)
+0:75 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -388,7 +398,7 @@
0:76 texture (global 4-component vector of uint)
0:76 Construct combined texture-sampler (temp usampler2D)
0:76 'g_tTex2du4' (uniform utexture2D)
-0:76 'g_sSamp' (uniform sampler)
+0:76 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -398,7 +408,7 @@
0:78 texture (global 4-component vector of float)
0:78 Construct combined texture-sampler (temp sampler3D)
0:78 'g_tTex3df4' (uniform texture3D)
-0:78 'g_sSamp' (uniform sampler)
+0:78 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -409,7 +419,7 @@
0:79 texture (global 4-component vector of int)
0:79 Construct combined texture-sampler (temp isampler3D)
0:79 'g_tTex3di4' (uniform itexture3D)
-0:79 'g_sSamp' (uniform sampler)
+0:79 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -420,7 +430,7 @@
0:80 texture (global 4-component vector of uint)
0:80 Construct combined texture-sampler (temp usampler3D)
0:80 'g_tTex3du4' (uniform utexture3D)
-0:80 'g_sSamp' (uniform sampler)
+0:80 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -431,7 +441,7 @@
0:82 texture (global 4-component vector of float)
0:82 Construct combined texture-sampler (temp samplerCube)
0:82 'g_tTexcdf4' (uniform textureCube)
-0:82 'g_sSamp' (uniform sampler)
+0:82 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -442,7 +452,7 @@
0:83 texture (global 4-component vector of int)
0:83 Construct combined texture-sampler (temp isamplerCube)
0:83 'g_tTexcdi4' (uniform itextureCube)
-0:83 'g_sSamp' (uniform sampler)
+0:83 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -453,11 +463,21 @@
0:84 texture (global 4-component vector of uint)
0:84 Construct combined texture-sampler (temp usamplerCube)
0:84 'g_tTexcdu4' (uniform utextureCube)
-0:84 'g_sSamp' (uniform sampler)
+0:84 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
+0:86 move second child to first child (temp 4-component vector of float)
+0:86 Color: direct index for structure (temp 4-component vector of float)
+0:86 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:86 Constant:
+0:86 0 (const int)
+0:86 Constant:
+0:86 1.000000
+0:86 1.000000
+0:86 1.000000
+0:86 1.000000
0:87 move second child to first child (temp float)
0:87 Depth: direct index for structure (temp float FragDepth)
0:87 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -468,11 +488,11 @@
0:89 Branch: Return with expression
0:89 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_sSamp2D_b' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -487,7 +507,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 182
+// Id's are bound by 184
Capability Shader
Capability Sampled1D
@@ -540,11 +560,13 @@
MemberName 171(PS_OUTPUT) 0 "Color"
MemberName 171(PS_OUTPUT) 1 "Depth"
Name 173 "psout"
- Name 179 "g_sSamp2d"
- Name 180 "g_sSamp2D_b"
- Name 181 "g_tTex1df4a"
+ Name 181 "g_sSamp2d"
+ Name 182 "g_sSamp2D_b"
+ Name 183 "g_tTex1df4a"
Decorate 41(g_tTex1df4) DescriptorSet 0
+ Decorate 41(g_tTex1df4) Binding 0
Decorate 45(g_sSamp) DescriptorSet 0
+ Decorate 45(g_sSamp) Binding 0
Decorate 56(g_tTex1di4) DescriptorSet 0
Decorate 69(g_tTex1du4) DescriptorSet 0
Decorate 79(g_tTex2df4) DescriptorSet 0
@@ -557,9 +579,10 @@
Decorate 156(g_tTexcdi4) DescriptorSet 0
Decorate 165(g_tTexcdu4) DescriptorSet 0
MemberDecorate 171(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 179(g_sSamp2d) DescriptorSet 0
- Decorate 180(g_sSamp2D_b) DescriptorSet 0
- Decorate 181(g_tTex1df4a) DescriptorSet 0
+ Decorate 181(g_sSamp2d) DescriptorSet 0
+ Decorate 182(g_sSamp2D_b) DescriptorSet 0
+ Decorate 183(g_tTex1df4a) DescriptorSet 0
+ Decorate 183(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@@ -657,10 +680,11 @@
171(PS_OUTPUT): TypeStruct 36(fvec4) 35(float)
172: TypePointer Function 171(PS_OUTPUT)
174: 35(float) Constant 1065353216
- 175: TypePointer Function 35(float)
- 179(g_sSamp2d): 44(ptr) Variable UniformConstant
-180(g_sSamp2D_b): 44(ptr) Variable UniformConstant
-181(g_tTex1df4a): 40(ptr) Variable UniformConstant
+ 175: 36(fvec4) ConstantComposite 174 174 174 174
+ 177: TypePointer Function 35(float)
+ 181(g_sSamp2d): 44(ptr) Variable UniformConstant
+182(g_sSamp2D_b): 44(ptr) Variable UniformConstant
+183(g_tTex1df4a): 40(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(mtest): 8(ptr) Variable Function
@@ -761,8 +785,10 @@
169: 168 SampledImage 166 167
170: 64(ivec4) ImageSampleImplicitLod 169 142
Store 162(txval42) 170
- 176: 175(ptr) AccessChain 173(psout) 10
- Store 176 174
- 177:171(PS_OUTPUT) Load 173(psout)
- ReturnValue 177
+ 176: 37(ptr) AccessChain 173(psout) 23
+ Store 176 175
+ 178: 177(ptr) AccessChain 173(psout) 10
+ Store 178 174
+ 179:171(PS_OUTPUT) Load 173(psout)
+ ReturnValue 179
FunctionEnd
diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index 09e94a7..ce20777 100644
--- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -10,8 +10,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -22,7 +22,7 @@
0:32 textureOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -33,7 +33,7 @@
0:33 textureOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -44,7 +44,7 @@
0:35 textureOffset (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -57,7 +57,7 @@
0:36 textureOffset (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -70,7 +70,7 @@
0:37 textureOffset (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -83,7 +83,7 @@
0:39 textureOffset (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -98,7 +98,7 @@
0:40 textureOffset (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -113,7 +113,7 @@
0:41 textureOffset (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -122,6 +122,16 @@
0:? 1 (const int)
0:? 0 (const int)
0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
0:46 move second child to first child (temp float)
0:46 Depth: direct index for structure (temp float FragDepth)
0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -132,9 +142,9 @@
0:48 Branch: Return with expression
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -162,8 +172,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -174,7 +184,7 @@
0:32 textureOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -185,7 +195,7 @@
0:33 textureOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -196,7 +206,7 @@
0:35 textureOffset (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -209,7 +219,7 @@
0:36 textureOffset (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -222,7 +232,7 @@
0:37 textureOffset (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -235,7 +245,7 @@
0:39 textureOffset (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -250,7 +260,7 @@
0:40 textureOffset (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -265,7 +275,7 @@
0:41 textureOffset (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -274,6 +284,16 @@
0:? 1 (const int)
0:? 0 (const int)
0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
0:46 move second child to first child (temp float)
0:46 Depth: direct index for structure (temp float FragDepth)
0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -284,9 +304,9 @@
0:48 Branch: Return with expression
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -301,7 +321,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 145
+// Id's are bound by 147
Capability Shader
Capability Sampled1D
@@ -334,12 +354,14 @@
MemberName 127(PS_OUTPUT) 0 "Color"
MemberName 127(PS_OUTPUT) 1 "Depth"
Name 129 "psout"
- Name 135 "g_tTex1df4a"
- Name 138 "g_tTexcdf4"
- Name 141 "g_tTexcdi4"
- Name 144 "g_tTexcdu4"
+ Name 137 "g_tTex1df4a"
+ Name 140 "g_tTexcdf4"
+ Name 143 "g_tTexcdi4"
+ Name 146 "g_tTexcdu4"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 29(g_tTex1di4) DescriptorSet 0
Decorate 42(g_tTex1du4) DescriptorSet 0
Decorate 52(g_tTex2df4) DescriptorSet 0
@@ -349,10 +371,11 @@
Decorate 105(g_tTex3di4) DescriptorSet 0
Decorate 116(g_tTex3du4) DescriptorSet 0
MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 135(g_tTex1df4a) DescriptorSet 0
- Decorate 138(g_tTexcdf4) DescriptorSet 0
- Decorate 141(g_tTexcdi4) DescriptorSet 0
- Decorate 144(g_tTexcdu4) DescriptorSet 0
+ Decorate 137(g_tTex1df4a) DescriptorSet 0
+ Decorate 137(g_tTex1df4a) Binding 1
+ Decorate 140(g_tTexcdf4) DescriptorSet 0
+ Decorate 143(g_tTexcdi4) DescriptorSet 0
+ Decorate 146(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -434,17 +457,18 @@
127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
128: TypePointer Function 127(PS_OUTPUT)
130: 6(float) Constant 1065353216
- 131: TypePointer Function 6(float)
-135(g_tTex1df4a): 11(ptr) Variable UniformConstant
- 136: TypeImage 6(float) Cube sampled format:Unknown
- 137: TypePointer UniformConstant 136
- 138(g_tTexcdf4): 137(ptr) Variable UniformConstant
- 139: TypeImage 21(int) Cube sampled format:Unknown
- 140: TypePointer UniformConstant 139
- 141(g_tTexcdi4): 140(ptr) Variable UniformConstant
- 142: TypeImage 36(int) Cube sampled format:Unknown
- 143: TypePointer UniformConstant 142
- 144(g_tTexcdu4): 143(ptr) Variable UniformConstant
+ 131: 7(fvec4) ConstantComposite 130 130 130 130
+ 133: TypePointer Function 6(float)
+137(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 138: TypeImage 6(float) Cube sampled format:Unknown
+ 139: TypePointer UniformConstant 138
+ 140(g_tTexcdf4): 139(ptr) Variable UniformConstant
+ 141: TypeImage 21(int) Cube sampled format:Unknown
+ 142: TypePointer UniformConstant 141
+ 143(g_tTexcdi4): 142(ptr) Variable UniformConstant
+ 144: TypeImage 36(int) Cube sampled format:Unknown
+ 145: TypePointer UniformConstant 144
+ 146(g_tTexcdu4): 145(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -502,8 +526,10 @@
120: 119 SampledImage 117 118
126: 37(ivec4) ImageSampleImplicitLod 120 124 ConstOffset 125
Store 113(txval32) 126
- 132: 131(ptr) AccessChain 129(psout) 22
- Store 132 130
- 133:127(PS_OUTPUT) Load 129(psout)
- ReturnValue 133
+ 132: 8(ptr) AccessChain 129(psout) 60
+ Store 132 131
+ 134: 133(ptr) AccessChain 129(psout) 22
+ Store 134 130
+ 135:127(PS_OUTPUT) Load 129(psout)
+ ReturnValue 135
FunctionEnd
diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index 38119f7..008ba94 100644
--- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -10,8 +10,8 @@
0:23 'txval10' (temp 4-component vector of float)
0:23 textureOffset (global 4-component vector of float)
0:23 Construct combined texture-sampler (temp sampler1DArray)
-0:23 'g_tTex1df4' (uniform texture1DArray)
-0:23 'g_sSamp' (uniform sampler)
+0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:23 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -23,7 +23,7 @@
0:24 textureOffset (global 4-component vector of int)
0:24 Construct combined texture-sampler (temp isampler1DArray)
0:24 'g_tTex1di4' (uniform itexture1DArray)
-0:24 'g_sSamp' (uniform sampler)
+0:24 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -35,7 +35,7 @@
0:25 textureOffset (global 4-component vector of uint)
0:25 Construct combined texture-sampler (temp usampler1DArray)
0:25 'g_tTex1du4' (uniform utexture1DArray)
-0:25 'g_sSamp' (uniform sampler)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -47,7 +47,7 @@
0:27 textureOffset (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler2DArray)
0:27 'g_tTex2df4' (uniform texture2DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -61,7 +61,7 @@
0:28 textureOffset (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler2DArray)
0:28 'g_tTex2di4' (uniform itexture2DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -75,7 +75,7 @@
0:29 textureOffset (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler2DArray)
0:29 'g_tTex2du4' (uniform utexture2DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -83,6 +83,16 @@
0:? Constant:
0:? 0 (const int)
0:? 1 (const int)
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 Color: direct index for structure (temp 4-component vector of float)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
0:34 move second child to first child (temp float)
0:34 Depth: direct index for structure (temp float FragDepth)
0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -93,9 +103,9 @@
0:36 Branch: Return with expression
0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -117,8 +127,8 @@
0:23 'txval10' (temp 4-component vector of float)
0:23 textureOffset (global 4-component vector of float)
0:23 Construct combined texture-sampler (temp sampler1DArray)
-0:23 'g_tTex1df4' (uniform texture1DArray)
-0:23 'g_sSamp' (uniform sampler)
+0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:23 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -130,7 +140,7 @@
0:24 textureOffset (global 4-component vector of int)
0:24 Construct combined texture-sampler (temp isampler1DArray)
0:24 'g_tTex1di4' (uniform itexture1DArray)
-0:24 'g_sSamp' (uniform sampler)
+0:24 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -142,7 +152,7 @@
0:25 textureOffset (global 4-component vector of uint)
0:25 Construct combined texture-sampler (temp usampler1DArray)
0:25 'g_tTex1du4' (uniform utexture1DArray)
-0:25 'g_sSamp' (uniform sampler)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -154,7 +164,7 @@
0:27 textureOffset (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler2DArray)
0:27 'g_tTex2df4' (uniform texture2DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -168,7 +178,7 @@
0:28 textureOffset (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler2DArray)
0:28 'g_tTex2di4' (uniform itexture2DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -182,7 +192,7 @@
0:29 textureOffset (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler2DArray)
0:29 'g_tTex2du4' (uniform utexture2DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -190,6 +200,16 @@
0:? Constant:
0:? 0 (const int)
0:? 1 (const int)
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 Color: direct index for structure (temp 4-component vector of float)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
0:34 move second child to first child (temp float)
0:34 Depth: direct index for structure (temp float FragDepth)
0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -200,9 +220,9 @@
0:36 Branch: Return with expression
0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -211,7 +231,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 102
+// Id's are bound by 104
Capability Shader
Capability Sampled1D
@@ -238,16 +258,19 @@
MemberName 93(PS_OUTPUT) 0 "Color"
MemberName 93(PS_OUTPUT) 1 "Depth"
Name 95 "psout"
- Name 101 "g_tTex1df4a"
+ Name 103 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 32(g_tTex1di4) DescriptorSet 0
Decorate 47(g_tTex1du4) DescriptorSet 0
Decorate 59(g_tTex2df4) DescriptorSet 0
Decorate 72(g_tTex2di4) DescriptorSet 0
Decorate 83(g_tTex2du4) DescriptorSet 0
MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 101(g_tTex1df4a) DescriptorSet 0
+ Decorate 103(g_tTex1df4a) DescriptorSet 0
+ Decorate 103(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -310,8 +333,9 @@
93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
94: TypePointer Function 93(PS_OUTPUT)
96: 6(float) Constant 1065353216
- 97: TypePointer Function 6(float)
-101(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 97: 7(fvec4) ConstantComposite 96 96 96 96
+ 99: TypePointer Function 6(float)
+103(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -351,8 +375,10 @@
87: 86 SampledImage 84 85
92: 42(ivec4) ImageSampleImplicitLod 87 90 ConstOffset 91
Store 80(txval22) 92
- 98: 97(ptr) AccessChain 95(psout) 39
- Store 98 96
- 99:93(PS_OUTPUT) Load 95(psout)
- ReturnValue 99
+ 98: 8(ptr) AccessChain 95(psout) 25
+ Store 98 97
+ 100: 99(ptr) AccessChain 95(psout) 39
+ Store 100 96
+ 101:93(PS_OUTPUT) Load 95(psout)
+ ReturnValue 101
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index 96d9be7..b672544 100644
--- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -10,8 +10,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 texture (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -23,7 +23,7 @@
0:28 texture (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -35,7 +35,7 @@
0:29 texture (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -47,7 +47,7 @@
0:31 texture (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -60,7 +60,7 @@
0:32 texture (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -73,7 +73,7 @@
0:33 texture (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -86,7 +86,7 @@
0:35 texture (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4' (uniform textureCubeArray)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -100,7 +100,7 @@
0:36 texture (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -114,7 +114,7 @@
0:37 texture (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -122,6 +122,16 @@
0:? 1.000000
0:37 Constant:
0:37 0.500000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float FragDepth)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -132,9 +142,9 @@
0:42 Branch: Return with expression
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -159,8 +169,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 texture (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -172,7 +182,7 @@
0:28 texture (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -184,7 +194,7 @@
0:29 texture (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -196,7 +206,7 @@
0:31 texture (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -209,7 +219,7 @@
0:32 texture (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -222,7 +232,7 @@
0:33 texture (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -235,7 +245,7 @@
0:35 texture (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4' (uniform textureCubeArray)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -249,7 +259,7 @@
0:36 texture (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -263,7 +273,7 @@
0:37 texture (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -271,6 +281,16 @@
0:? 1.000000
0:37 Constant:
0:37 0.500000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float FragDepth)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -281,9 +301,9 @@
0:42 Branch: Return with expression
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -295,7 +315,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 129
+// Id's are bound by 132
Capability Shader
Capability Sampled1D
@@ -329,9 +349,11 @@
MemberName 120(PS_OUTPUT) 0 "Color"
MemberName 120(PS_OUTPUT) 1 "Depth"
Name 122 "psout"
- Name 128 "g_tTex1df4a"
+ Name 131 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 32(g_tTex1di4) DescriptorSet 0
Decorate 46(g_tTex1du4) DescriptorSet 0
Decorate 57(g_tTex2df4) DescriptorSet 0
@@ -341,7 +363,8 @@
Decorate 100(g_tTexcdi4) DescriptorSet 0
Decorate 110(g_tTexcdu4) DescriptorSet 0
MemberDecorate 120(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 128(g_tTex1df4a) DescriptorSet 0
+ Decorate 131(g_tTex1df4a) DescriptorSet 0
+ Decorate 131(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -415,9 +438,11 @@
118: 7(fvec4) ConstantComposite 84 115 116 117
120(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
121: TypePointer Function 120(PS_OUTPUT)
- 123: 26(int) Constant 1
- 124: TypePointer Function 6(float)
-128(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 123: 26(int) Constant 0
+ 124: 7(fvec4) ConstantComposite 117 117 117 117
+ 126: 26(int) Constant 1
+ 127: TypePointer Function 6(float)
+131(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -475,8 +500,10 @@
114: 113 SampledImage 111 112
119: 41(ivec4) ImageSampleImplicitLod 114 118 Bias 24
Store 107(txval42) 119
- 125: 124(ptr) AccessChain 122(psout) 123
- Store 125 117
- 126:120(PS_OUTPUT) Load 122(psout)
- ReturnValue 126
+ 125: 8(ptr) AccessChain 122(psout) 123
+ Store 125 124
+ 128: 127(ptr) AccessChain 122(psout) 126
+ Store 128 117
+ 129:120(PS_OUTPUT) Load 122(psout)
+ ReturnValue 129
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index 3fb36ee..8161a59 100644
--- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -10,8 +10,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 texture (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -22,7 +22,7 @@
0:32 texture (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -33,7 +33,7 @@
0:33 texture (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -44,7 +44,7 @@
0:35 texture (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -56,7 +56,7 @@
0:36 texture (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -68,7 +68,7 @@
0:37 texture (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -80,7 +80,7 @@
0:39 texture (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -93,7 +93,7 @@
0:40 texture (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -106,7 +106,7 @@
0:41 texture (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -119,7 +119,7 @@
0:43 texture (global 4-component vector of float)
0:43 Construct combined texture-sampler (temp samplerCube)
0:43 'g_tTexcdf4' (uniform textureCube)
-0:43 'g_sSamp' (uniform sampler)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -132,7 +132,7 @@
0:44 texture (global 4-component vector of int)
0:44 Construct combined texture-sampler (temp isamplerCube)
0:44 'g_tTexcdi4' (uniform itextureCube)
-0:44 'g_sSamp' (uniform sampler)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -145,13 +145,23 @@
0:45 texture (global 4-component vector of uint)
0:45 Construct combined texture-sampler (temp usamplerCube)
0:45 'g_tTexcdu4' (uniform utextureCube)
-0:45 'g_sSamp' (uniform sampler)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:45 Constant:
0:45 0.500000
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 Color: direct index for structure (temp 4-component vector of float)
+0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
0:48 move second child to first child (temp float)
0:48 Depth: direct index for structure (temp float FragDepth)
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -162,9 +172,9 @@
0:50 Branch: Return with expression
0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -192,8 +202,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 texture (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -204,7 +214,7 @@
0:32 texture (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -215,7 +225,7 @@
0:33 texture (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -226,7 +236,7 @@
0:35 texture (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -238,7 +248,7 @@
0:36 texture (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -250,7 +260,7 @@
0:37 texture (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -262,7 +272,7 @@
0:39 texture (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -275,7 +285,7 @@
0:40 texture (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -288,7 +298,7 @@
0:41 texture (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -301,7 +311,7 @@
0:43 texture (global 4-component vector of float)
0:43 Construct combined texture-sampler (temp samplerCube)
0:43 'g_tTexcdf4' (uniform textureCube)
-0:43 'g_sSamp' (uniform sampler)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -314,7 +324,7 @@
0:44 texture (global 4-component vector of int)
0:44 Construct combined texture-sampler (temp isamplerCube)
0:44 'g_tTexcdi4' (uniform itextureCube)
-0:44 'g_sSamp' (uniform sampler)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -327,13 +337,23 @@
0:45 texture (global 4-component vector of uint)
0:45 Construct combined texture-sampler (temp usamplerCube)
0:45 'g_tTexcdu4' (uniform utextureCube)
-0:45 'g_sSamp' (uniform sampler)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
0:? 0.900000
0:45 Constant:
0:45 0.500000
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 Color: direct index for structure (temp 4-component vector of float)
+0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
0:48 move second child to first child (temp float)
0:48 Depth: direct index for structure (temp float FragDepth)
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -344,9 +364,9 @@
0:50 Branch: Return with expression
0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -361,7 +381,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 153
+// Id's are bound by 156
Capability Shader
Capability Sampled1D
@@ -400,9 +420,11 @@
MemberName 143(PS_OUTPUT) 0 "Color"
MemberName 143(PS_OUTPUT) 1 "Depth"
Name 145 "psout"
- Name 152 "g_tTex1df4a"
+ Name 155 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 29(g_tTex1di4) DescriptorSet 0
Decorate 42(g_tTex1du4) DescriptorSet 0
Decorate 52(g_tTex2df4) DescriptorSet 0
@@ -415,7 +437,8 @@
Decorate 128(g_tTexcdi4) DescriptorSet 0
Decorate 137(g_tTexcdu4) DescriptorSet 0
MemberDecorate 143(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 152(g_tTex1df4a) DescriptorSet 0
+ Decorate 155(g_tTex1df4a) DescriptorSet 0
+ Decorate 155(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -497,10 +520,12 @@
140: TypeSampledImage 135
143(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
144: TypePointer Function 143(PS_OUTPUT)
- 146: 23(int) Constant 1
+ 146: 23(int) Constant 0
147: 6(float) Constant 1065353216
- 148: TypePointer Function 6(float)
-152(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 148: 7(fvec4) ConstantComposite 147 147 147 147
+ 150: 23(int) Constant 1
+ 151: TypePointer Function 6(float)
+155(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -576,8 +601,10 @@
141: 140 SampledImage 138 139
142: 37(ivec4) ImageSampleImplicitLod 141 114 Bias 21
Store 134(txval42) 142
- 149: 148(ptr) AccessChain 145(psout) 146
- Store 149 147
- 150:143(PS_OUTPUT) Load 145(psout)
- ReturnValue 150
+ 149: 8(ptr) AccessChain 145(psout) 146
+ Store 149 148
+ 152: 151(ptr) AccessChain 145(psout) 150
+ Store 152 147
+ 153:143(PS_OUTPUT) Load 145(psout)
+ ReturnValue 153
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index 8faab19..8c5726c 100644
--- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -10,8 +10,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -24,7 +24,7 @@
0:32 textureOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -37,7 +37,7 @@
0:33 textureOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -50,7 +50,7 @@
0:35 textureOffset (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -65,7 +65,7 @@
0:36 textureOffset (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -80,7 +80,7 @@
0:37 textureOffset (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -95,7 +95,7 @@
0:39 textureOffset (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -112,7 +112,7 @@
0:40 textureOffset (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -129,7 +129,7 @@
0:41 textureOffset (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -140,6 +140,16 @@
0:? 1 (const int)
0:? 0 (const int)
0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
0:46 move second child to first child (temp float)
0:46 Depth: direct index for structure (temp float FragDepth)
0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -150,9 +160,9 @@
0:48 Branch: Return with expression
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -180,8 +190,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -194,7 +204,7 @@
0:32 textureOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -207,7 +217,7 @@
0:33 textureOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -220,7 +230,7 @@
0:35 textureOffset (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -235,7 +245,7 @@
0:36 textureOffset (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -250,7 +260,7 @@
0:37 textureOffset (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -265,7 +275,7 @@
0:39 textureOffset (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -282,7 +292,7 @@
0:40 textureOffset (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -299,7 +309,7 @@
0:41 textureOffset (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -310,6 +320,16 @@
0:? 1 (const int)
0:? 0 (const int)
0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
0:46 move second child to first child (temp float)
0:46 Depth: direct index for structure (temp float FragDepth)
0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -320,9 +340,9 @@
0:48 Branch: Return with expression
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -337,7 +357,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 145
+// Id's are bound by 147
Capability Shader
Capability Sampled1D
@@ -370,12 +390,14 @@
MemberName 127(PS_OUTPUT) 0 "Color"
MemberName 127(PS_OUTPUT) 1 "Depth"
Name 129 "psout"
- Name 135 "g_tTex1df4a"
- Name 138 "g_tTexcdf4"
- Name 141 "g_tTexcdi4"
- Name 144 "g_tTexcdu4"
+ Name 137 "g_tTex1df4a"
+ Name 140 "g_tTexcdf4"
+ Name 143 "g_tTexcdi4"
+ Name 146 "g_tTexcdu4"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 30(g_tTex1di4) DescriptorSet 0
Decorate 43(g_tTex1du4) DescriptorSet 0
Decorate 53(g_tTex2df4) DescriptorSet 0
@@ -385,10 +407,11 @@
Decorate 105(g_tTex3di4) DescriptorSet 0
Decorate 116(g_tTex3du4) DescriptorSet 0
MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 135(g_tTex1df4a) DescriptorSet 0
- Decorate 138(g_tTexcdf4) DescriptorSet 0
- Decorate 141(g_tTexcdi4) DescriptorSet 0
- Decorate 144(g_tTexcdu4) DescriptorSet 0
+ Decorate 137(g_tTex1df4a) DescriptorSet 0
+ Decorate 137(g_tTex1df4a) Binding 1
+ Decorate 140(g_tTexcdf4) DescriptorSet 0
+ Decorate 143(g_tTexcdi4) DescriptorSet 0
+ Decorate 146(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -470,17 +493,18 @@
127(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
128: TypePointer Function 127(PS_OUTPUT)
130: 6(float) Constant 1065353216
- 131: TypePointer Function 6(float)
-135(g_tTex1df4a): 11(ptr) Variable UniformConstant
- 136: TypeImage 6(float) Cube sampled format:Unknown
- 137: TypePointer UniformConstant 136
- 138(g_tTexcdf4): 137(ptr) Variable UniformConstant
- 139: TypeImage 22(int) Cube sampled format:Unknown
- 140: TypePointer UniformConstant 139
- 141(g_tTexcdi4): 140(ptr) Variable UniformConstant
- 142: TypeImage 37(int) Cube sampled format:Unknown
- 143: TypePointer UniformConstant 142
- 144(g_tTexcdu4): 143(ptr) Variable UniformConstant
+ 131: 7(fvec4) ConstantComposite 130 130 130 130
+ 133: TypePointer Function 6(float)
+137(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 138: TypeImage 6(float) Cube sampled format:Unknown
+ 139: TypePointer UniformConstant 138
+ 140(g_tTexcdf4): 139(ptr) Variable UniformConstant
+ 141: TypeImage 22(int) Cube sampled format:Unknown
+ 142: TypePointer UniformConstant 141
+ 143(g_tTexcdi4): 142(ptr) Variable UniformConstant
+ 144: TypeImage 37(int) Cube sampled format:Unknown
+ 145: TypePointer UniformConstant 144
+ 146(g_tTexcdu4): 145(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -538,8 +562,10 @@
120: 119 SampledImage 117 118
126: 38(ivec4) ImageSampleImplicitLod 120 124 Bias ConstOffset 125 21
Store 113(txval32) 126
- 132: 131(ptr) AccessChain 129(psout) 23
- Store 132 130
- 133:127(PS_OUTPUT) Load 129(psout)
- ReturnValue 133
+ 132: 8(ptr) AccessChain 129(psout) 61
+ Store 132 131
+ 134: 133(ptr) AccessChain 129(psout) 23
+ Store 134 130
+ 135:127(PS_OUTPUT) Load 129(psout)
+ ReturnValue 135
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index 51f6123..0933594 100644
--- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -10,8 +10,8 @@
0:23 'txval10' (temp 4-component vector of float)
0:23 textureOffset (global 4-component vector of float)
0:23 Construct combined texture-sampler (temp sampler1DArray)
-0:23 'g_tTex1df4' (uniform texture1DArray)
-0:23 'g_sSamp' (uniform sampler)
+0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:23 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -25,7 +25,7 @@
0:24 textureOffset (global 4-component vector of int)
0:24 Construct combined texture-sampler (temp isampler1DArray)
0:24 'g_tTex1di4' (uniform itexture1DArray)
-0:24 'g_sSamp' (uniform sampler)
+0:24 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -39,7 +39,7 @@
0:25 textureOffset (global 4-component vector of uint)
0:25 Construct combined texture-sampler (temp usampler1DArray)
0:25 'g_tTex1du4' (uniform utexture1DArray)
-0:25 'g_sSamp' (uniform sampler)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -53,7 +53,7 @@
0:27 textureOffset (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler2DArray)
0:27 'g_tTex2df4' (uniform texture2DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -69,7 +69,7 @@
0:28 textureOffset (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler2DArray)
0:28 'g_tTex2di4' (uniform itexture2DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -85,7 +85,7 @@
0:29 textureOffset (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler2DArray)
0:29 'g_tTex2du4' (uniform utexture2DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -95,6 +95,16 @@
0:? Constant:
0:? 0 (const int)
0:? 1 (const int)
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 Color: direct index for structure (temp 4-component vector of float)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
0:34 move second child to first child (temp float)
0:34 Depth: direct index for structure (temp float FragDepth)
0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -105,9 +115,9 @@
0:36 Branch: Return with expression
0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -129,8 +139,8 @@
0:23 'txval10' (temp 4-component vector of float)
0:23 textureOffset (global 4-component vector of float)
0:23 Construct combined texture-sampler (temp sampler1DArray)
-0:23 'g_tTex1df4' (uniform texture1DArray)
-0:23 'g_sSamp' (uniform sampler)
+0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:23 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -144,7 +154,7 @@
0:24 textureOffset (global 4-component vector of int)
0:24 Construct combined texture-sampler (temp isampler1DArray)
0:24 'g_tTex1di4' (uniform itexture1DArray)
-0:24 'g_sSamp' (uniform sampler)
+0:24 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.200000
0:? 0.300000
@@ -158,7 +168,7 @@
0:25 textureOffset (global 4-component vector of uint)
0:25 Construct combined texture-sampler (temp usampler1DArray)
0:25 'g_tTex1du4' (uniform utexture1DArray)
-0:25 'g_sSamp' (uniform sampler)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -172,7 +182,7 @@
0:27 textureOffset (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler2DArray)
0:27 'g_tTex2df4' (uniform texture2DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -188,7 +198,7 @@
0:28 textureOffset (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler2DArray)
0:28 'g_tTex2di4' (uniform itexture2DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -204,7 +214,7 @@
0:29 textureOffset (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler2DArray)
0:29 'g_tTex2du4' (uniform utexture2DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -214,6 +224,16 @@
0:? Constant:
0:? 0 (const int)
0:? 1 (const int)
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 Color: direct index for structure (temp 4-component vector of float)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
0:34 move second child to first child (temp float)
0:34 Depth: direct index for structure (temp float FragDepth)
0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -224,9 +244,9 @@
0:36 Branch: Return with expression
0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -235,7 +255,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 102
+// Id's are bound by 104
Capability Shader
Capability Sampled1D
@@ -262,16 +282,19 @@
MemberName 93(PS_OUTPUT) 0 "Color"
MemberName 93(PS_OUTPUT) 1 "Depth"
Name 95 "psout"
- Name 101 "g_tTex1df4a"
+ Name 103 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 33(g_tTex1di4) DescriptorSet 0
Decorate 48(g_tTex1du4) DescriptorSet 0
Decorate 60(g_tTex2df4) DescriptorSet 0
Decorate 73(g_tTex2di4) DescriptorSet 0
Decorate 83(g_tTex2du4) DescriptorSet 0
MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 101(g_tTex1df4a) DescriptorSet 0
+ Decorate 103(g_tTex1df4a) DescriptorSet 0
+ Decorate 103(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -334,8 +357,9 @@
93(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
94: TypePointer Function 93(PS_OUTPUT)
96: 6(float) Constant 1065353216
- 97: TypePointer Function 6(float)
-101(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 97: 7(fvec4) ConstantComposite 96 96 96 96
+ 99: TypePointer Function 6(float)
+103(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -375,8 +399,10 @@
87: 86 SampledImage 84 85
92: 43(ivec4) ImageSampleImplicitLod 87 90 Bias ConstOffset 91 24
Store 80(txval22) 92
- 98: 97(ptr) AccessChain 95(psout) 40
- Store 98 96
- 99:93(PS_OUTPUT) Load 95(psout)
- ReturnValue 99
+ 98: 8(ptr) AccessChain 95(psout) 26
+ Store 98 97
+ 100: 99(ptr) AccessChain 95(psout) 40
+ Store 100 96
+ 101:93(PS_OUTPUT) Load 95(psout)
+ ReturnValue 101
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
new file mode 100644
index 0000000..1b2d27f
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
@@ -0,0 +1,615 @@
+hlsl.samplecmp.array.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r10' (temp float)
+0:42 texture (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r12' (temp float)
+0:43 texture (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r14' (temp float)
+0:44 texture (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r30' (temp float)
+0:47 texture (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r32' (temp float)
+0:48 texture (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r34' (temp float)
+0:49 texture (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'r60' (temp float)
+0:52 texture (global float)
+0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
+0:52 'g_tTexcdf4a' (uniform textureCubeArray)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:52 Constant:
+0:52 0.750000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r62' (temp float)
+0:53 texture (global float)
+0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
+0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:53 Constant:
+0:53 0.750000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r64' (temp float)
+0:54 texture (global float)
+0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
+0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:54 Constant:
+0:54 0.750000
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 Color: direct index for structure (temp 4-component vector of float)
+0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:56 Constant:
+0:56 0 (const int)
+0:56 Constant:
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:57 move second child to first child (temp float)
+0:57 Depth: direct index for structure (temp float FragDepth)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 1.000000
+0:59 Branch: Return with expression
+0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r10' (temp float)
+0:42 texture (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r12' (temp float)
+0:43 texture (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r14' (temp float)
+0:44 texture (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r30' (temp float)
+0:47 texture (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r32' (temp float)
+0:48 texture (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r34' (temp float)
+0:49 texture (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'r60' (temp float)
+0:52 texture (global float)
+0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
+0:52 'g_tTexcdf4a' (uniform textureCubeArray)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:52 Constant:
+0:52 0.750000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r62' (temp float)
+0:53 texture (global float)
+0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
+0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:53 Constant:
+0:53 0.750000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r64' (temp float)
+0:54 texture (global float)
+0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
+0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:54 Constant:
+0:54 0.750000
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 Color: direct index for structure (temp 4-component vector of float)
+0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:56 Constant:
+0:56 0 (const int)
+0:56 Constant:
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:57 move second child to first child (temp float)
+0:57 Depth: direct index for structure (temp float FragDepth)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 1.000000
+0:59 Branch: Return with expression
+0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 177
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r10"
+ Name 11 "g_tTex1df4a"
+ Name 15 "g_sSamp"
+ Name 28 "r12"
+ Name 32 "g_tTex1di4a"
+ Name 41 "r14"
+ Name 45 "g_tTex1du4a"
+ Name 54 "r30"
+ Name 57 "g_tTex2df4a"
+ Name 69 "r32"
+ Name 72 "g_tTex2di4a"
+ Name 81 "r34"
+ Name 84 "g_tTex2du4a"
+ Name 93 "r60"
+ Name 96 "g_tTexcdf4a"
+ Name 107 "r62"
+ Name 110 "g_tTexcdi4a"
+ Name 118 "r64"
+ Name 121 "g_tTexcdu4a"
+ Name 129 "PS_OUTPUT"
+ MemberName 129(PS_OUTPUT) 0 "Color"
+ MemberName 129(PS_OUTPUT) 1 "Depth"
+ Name 131 "psout"
+ Name 143 "g_tTex1df4"
+ Name 146 "g_tTex1di4"
+ Name 149 "g_tTex1du4"
+ Name 152 "g_tTex2df4"
+ Name 155 "g_tTex2di4"
+ Name 158 "g_tTex2du4"
+ Name 161 "g_tTex3df4"
+ Name 164 "g_tTex3di4"
+ Name 167 "g_tTex3du4"
+ Name 170 "g_tTexcdf4"
+ Name 173 "g_tTexcdi4"
+ Name 176 "g_tTexcdu4"
+ Decorate 11(g_tTex1df4a) DescriptorSet 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 32(g_tTex1di4a) DescriptorSet 0
+ Decorate 45(g_tTex1du4a) DescriptorSet 0
+ Decorate 57(g_tTex2df4a) DescriptorSet 0
+ Decorate 72(g_tTex2di4a) DescriptorSet 0
+ Decorate 84(g_tTex2du4a) DescriptorSet 0
+ Decorate 96(g_tTexcdf4a) DescriptorSet 0
+ Decorate 110(g_tTexcdi4a) DescriptorSet 0
+ Decorate 121(g_tTexcdu4a) DescriptorSet 0
+ MemberDecorate 129(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 143(g_tTex1df4) DescriptorSet 0
+ Decorate 143(g_tTex1df4) Binding 0
+ Decorate 146(g_tTex1di4) DescriptorSet 0
+ Decorate 149(g_tTex1du4) DescriptorSet 0
+ Decorate 152(g_tTex2df4) DescriptorSet 0
+ Decorate 155(g_tTex2di4) DescriptorSet 0
+ Decorate 158(g_tTex2du4) DescriptorSet 0
+ Decorate 161(g_tTex3df4) DescriptorSet 0
+ Decorate 164(g_tTex3di4) DescriptorSet 0
+ Decorate 167(g_tTex3du4) DescriptorSet 0
+ Decorate 170(g_tTexcdf4) DescriptorSet 0
+ Decorate 173(g_tTexcdi4) DescriptorSet 0
+ Decorate 176(g_tTexcdu4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D array sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4a): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth array sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: 6(float) Constant 1061158912
+ 29: TypeInt 32 1
+ 30: TypeImage 29(int) 1D array sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex1di4a): 31(ptr) Variable UniformConstant
+ 35: TypeImage 29(int) 1D depth array sampled format:Unknown
+ 36: TypeSampledImage 35
+ 42: TypeInt 32 0
+ 43: TypeImage 42(int) 1D array sampled format:Unknown
+ 44: TypePointer UniformConstant 43
+ 45(g_tTex1du4a): 44(ptr) Variable UniformConstant
+ 48: TypeImage 42(int) 1D depth array sampled format:Unknown
+ 49: TypeSampledImage 48
+ 55: TypeImage 6(float) 2D array sampled format:Unknown
+ 56: TypePointer UniformConstant 55
+ 57(g_tTex2df4a): 56(ptr) Variable UniformConstant
+ 60: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 61: TypeSampledImage 60
+ 63: TypeVector 6(float) 3
+ 64: 6(float) Constant 1050253722
+ 65: 63(fvec3) ConstantComposite 21 22 64
+ 70: TypeImage 29(int) 2D array sampled format:Unknown
+ 71: TypePointer UniformConstant 70
+ 72(g_tTex2di4a): 71(ptr) Variable UniformConstant
+ 75: TypeImage 29(int) 2D depth array sampled format:Unknown
+ 76: TypeSampledImage 75
+ 82: TypeImage 42(int) 2D array sampled format:Unknown
+ 83: TypePointer UniformConstant 82
+ 84(g_tTex2du4a): 83(ptr) Variable UniformConstant
+ 87: TypeImage 42(int) 2D depth array sampled format:Unknown
+ 88: TypeSampledImage 87
+ 94: TypeImage 6(float) Cube array sampled format:Unknown
+ 95: TypePointer UniformConstant 94
+ 96(g_tTexcdf4a): 95(ptr) Variable UniformConstant
+ 99: TypeImage 6(float) Cube depth array sampled format:Unknown
+ 100: TypeSampledImage 99
+ 102: TypeVector 6(float) 4
+ 103: 6(float) Constant 1053609165
+ 104: 102(fvec4) ConstantComposite 21 22 64 103
+ 108: TypeImage 29(int) Cube array sampled format:Unknown
+ 109: TypePointer UniformConstant 108
+110(g_tTexcdi4a): 109(ptr) Variable UniformConstant
+ 113: TypeImage 29(int) Cube depth array sampled format:Unknown
+ 114: TypeSampledImage 113
+ 119: TypeImage 42(int) Cube array sampled format:Unknown
+ 120: TypePointer UniformConstant 119
+121(g_tTexcdu4a): 120(ptr) Variable UniformConstant
+ 124: TypeImage 42(int) Cube depth array sampled format:Unknown
+ 125: TypeSampledImage 124
+ 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float)
+ 130: TypePointer Function 129(PS_OUTPUT)
+ 132: 29(int) Constant 0
+ 133: 6(float) Constant 1065353216
+ 134: 102(fvec4) ConstantComposite 133 133 133 133
+ 135: TypePointer Function 102(fvec4)
+ 137: 29(int) Constant 1
+ 141: TypeImage 6(float) 1D sampled format:Unknown
+ 142: TypePointer UniformConstant 141
+ 143(g_tTex1df4): 142(ptr) Variable UniformConstant
+ 144: TypeImage 29(int) 1D sampled format:Unknown
+ 145: TypePointer UniformConstant 144
+ 146(g_tTex1di4): 145(ptr) Variable UniformConstant
+ 147: TypeImage 42(int) 1D sampled format:Unknown
+ 148: TypePointer UniformConstant 147
+ 149(g_tTex1du4): 148(ptr) Variable UniformConstant
+ 150: TypeImage 6(float) 2D sampled format:Unknown
+ 151: TypePointer UniformConstant 150
+ 152(g_tTex2df4): 151(ptr) Variable UniformConstant
+ 153: TypeImage 29(int) 2D sampled format:Unknown
+ 154: TypePointer UniformConstant 153
+ 155(g_tTex2di4): 154(ptr) Variable UniformConstant
+ 156: TypeImage 42(int) 2D sampled format:Unknown
+ 157: TypePointer UniformConstant 156
+ 158(g_tTex2du4): 157(ptr) Variable UniformConstant
+ 159: TypeImage 6(float) 3D sampled format:Unknown
+ 160: TypePointer UniformConstant 159
+ 161(g_tTex3df4): 160(ptr) Variable UniformConstant
+ 162: TypeImage 29(int) 3D sampled format:Unknown
+ 163: TypePointer UniformConstant 162
+ 164(g_tTex3di4): 163(ptr) Variable UniformConstant
+ 165: TypeImage 42(int) 3D sampled format:Unknown
+ 166: TypePointer UniformConstant 165
+ 167(g_tTex3du4): 166(ptr) Variable UniformConstant
+ 168: TypeImage 6(float) Cube sampled format:Unknown
+ 169: TypePointer UniformConstant 168
+ 170(g_tTexcdf4): 169(ptr) Variable UniformConstant
+ 171: TypeImage 29(int) Cube sampled format:Unknown
+ 172: TypePointer UniformConstant 171
+ 173(g_tTexcdi4): 172(ptr) Variable UniformConstant
+ 174: TypeImage 42(int) Cube sampled format:Unknown
+ 175: TypePointer UniformConstant 174
+ 176(g_tTexcdu4): 175(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r10): 7(ptr) Variable Function
+ 28(r12): 7(ptr) Variable Function
+ 41(r14): 7(ptr) Variable Function
+ 54(r30): 7(ptr) Variable Function
+ 69(r32): 7(ptr) Variable Function
+ 81(r34): 7(ptr) Variable Function
+ 93(r60): 7(ptr) Variable Function
+ 107(r62): 7(ptr) Variable Function
+ 118(r64): 7(ptr) Variable Function
+ 131(psout): 130(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4a)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 25: 6(float) CompositeExtract 23 0
+ 26: 6(float) CompositeExtract 25 0
+ 27: 6(float) ImageSampleDrefImplicitLod 19 25 26
+ Store 8(r10) 27
+ 33: 30 Load 32(g_tTex1di4a)
+ 34: 13 Load 15(g_sSamp)
+ 37: 36 SampledImage 33 34
+ 38: 6(float) CompositeExtract 23 0
+ 39: 6(float) CompositeExtract 38 0
+ 40: 6(float) ImageSampleDrefImplicitLod 37 38 39
+ Store 28(r12) 40
+ 46: 43 Load 45(g_tTex1du4a)
+ 47: 13 Load 15(g_sSamp)
+ 50: 49 SampledImage 46 47
+ 51: 6(float) CompositeExtract 23 0
+ 52: 6(float) CompositeExtract 51 0
+ 53: 6(float) ImageSampleDrefImplicitLod 50 51 52
+ Store 41(r14) 53
+ 58: 55 Load 57(g_tTex2df4a)
+ 59: 13 Load 15(g_sSamp)
+ 62: 61 SampledImage 58 59
+ 66: 6(float) CompositeExtract 65 0
+ 67: 6(float) CompositeExtract 66 0
+ 68: 6(float) ImageSampleDrefImplicitLod 62 66 67
+ Store 54(r30) 68
+ 73: 70 Load 72(g_tTex2di4a)
+ 74: 13 Load 15(g_sSamp)
+ 77: 76 SampledImage 73 74
+ 78: 6(float) CompositeExtract 65 0
+ 79: 6(float) CompositeExtract 78 0
+ 80: 6(float) ImageSampleDrefImplicitLod 77 78 79
+ Store 69(r32) 80
+ 85: 82 Load 84(g_tTex2du4a)
+ 86: 13 Load 15(g_sSamp)
+ 89: 88 SampledImage 85 86
+ 90: 6(float) CompositeExtract 65 0
+ 91: 6(float) CompositeExtract 90 0
+ 92: 6(float) ImageSampleDrefImplicitLod 89 90 91
+ Store 81(r34) 92
+ 97: 94 Load 96(g_tTexcdf4a)
+ 98: 13 Load 15(g_sSamp)
+ 101: 100 SampledImage 97 98
+ 105: 6(float) CompositeExtract 104 0
+ 106: 6(float) ImageSampleDrefImplicitLod 101 105 24
+ Store 93(r60) 106
+ 111: 108 Load 110(g_tTexcdi4a)
+ 112: 13 Load 15(g_sSamp)
+ 115: 114 SampledImage 111 112
+ 116: 6(float) CompositeExtract 104 0
+ 117: 6(float) ImageSampleDrefImplicitLod 115 116 24
+ Store 107(r62) 117
+ 122: 119 Load 121(g_tTexcdu4a)
+ 123: 13 Load 15(g_sSamp)
+ 126: 125 SampledImage 122 123
+ 127: 6(float) CompositeExtract 104 0
+ 128: 6(float) ImageSampleDrefImplicitLod 126 127 24
+ Store 118(r64) 128
+ 136: 135(ptr) AccessChain 131(psout) 132
+ Store 136 134
+ 138: 7(ptr) AccessChain 131(psout) 137
+ Store 138 133
+ 139:129(PS_OUTPUT) Load 131(psout)
+ ReturnValue 139
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
new file mode 100644
index 0000000..3068030
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
@@ -0,0 +1,595 @@
+hlsl.samplecmp.basic.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r00' (temp float)
+0:42 texture (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r02' (temp float)
+0:43 texture (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r04' (temp float)
+0:44 texture (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r20' (temp float)
+0:47 texture (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r22' (temp float)
+0:48 texture (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r24' (temp float)
+0:49 texture (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r50' (temp float)
+0:53 texture (global float)
+0:53 Construct combined texture-sampler (temp samplerCubeShadow)
+0:53 'g_tTexcdf4' (uniform textureCube)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:53 Constant:
+0:53 0.750000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r52' (temp float)
+0:54 texture (global float)
+0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
+0:54 'g_tTexcdi4' (uniform itextureCube)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:54 Constant:
+0:54 0.750000
+0:55 Sequence
+0:55 move second child to first child (temp float)
+0:55 'r54' (temp float)
+0:55 texture (global float)
+0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
+0:55 'g_tTexcdu4' (uniform utextureCube)
+0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:55 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:55 Constant:
+0:55 0.750000
+0:57 move second child to first child (temp 4-component vector of float)
+0:57 Color: direct index for structure (temp 4-component vector of float)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:58 move second child to first child (temp float)
+0:58 Depth: direct index for structure (temp float FragDepth)
+0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 1.000000
+0:60 Branch: Return with expression
+0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r00' (temp float)
+0:42 texture (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r02' (temp float)
+0:43 texture (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r04' (temp float)
+0:44 texture (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r20' (temp float)
+0:47 texture (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r22' (temp float)
+0:48 texture (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r24' (temp float)
+0:49 texture (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r50' (temp float)
+0:53 texture (global float)
+0:53 Construct combined texture-sampler (temp samplerCubeShadow)
+0:53 'g_tTexcdf4' (uniform textureCube)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:53 Constant:
+0:53 0.750000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r52' (temp float)
+0:54 texture (global float)
+0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
+0:54 'g_tTexcdi4' (uniform itextureCube)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:54 Constant:
+0:54 0.750000
+0:55 Sequence
+0:55 move second child to first child (temp float)
+0:55 'r54' (temp float)
+0:55 texture (global float)
+0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
+0:55 'g_tTexcdu4' (uniform utextureCube)
+0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:55 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:55 Constant:
+0:55 0.750000
+0:57 move second child to first child (temp 4-component vector of float)
+0:57 Color: direct index for structure (temp 4-component vector of float)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:58 move second child to first child (temp float)
+0:58 Depth: direct index for structure (temp float FragDepth)
+0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 1.000000
+0:60 Branch: Return with expression
+0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 175
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r00"
+ Name 11 "g_tTex1df4"
+ Name 15 "g_sSamp"
+ Name 24 "r02"
+ Name 28 "g_tTex1di4"
+ Name 36 "r04"
+ Name 40 "g_tTex1du4"
+ Name 48 "r20"
+ Name 51 "g_tTex2df4"
+ Name 63 "r22"
+ Name 66 "g_tTex2di4"
+ Name 75 "r24"
+ Name 78 "g_tTex2du4"
+ Name 87 "r50"
+ Name 90 "g_tTexcdf4"
+ Name 102 "r52"
+ Name 105 "g_tTexcdi4"
+ Name 114 "r54"
+ Name 117 "g_tTexcdu4"
+ Name 127 "PS_OUTPUT"
+ MemberName 127(PS_OUTPUT) 0 "Color"
+ MemberName 127(PS_OUTPUT) 1 "Depth"
+ Name 129 "psout"
+ Name 141 "g_tTex3df4"
+ Name 144 "g_tTex3di4"
+ Name 147 "g_tTex3du4"
+ Name 150 "g_tTex1df4a"
+ Name 153 "g_tTex1di4a"
+ Name 156 "g_tTex1du4a"
+ Name 159 "g_tTex2df4a"
+ Name 162 "g_tTex2di4a"
+ Name 165 "g_tTex2du4a"
+ Name 168 "g_tTexcdf4a"
+ Name 171 "g_tTexcdi4a"
+ Name 174 "g_tTexcdu4a"
+ Decorate 11(g_tTex1df4) DescriptorSet 0
+ Decorate 11(g_tTex1df4) Binding 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 28(g_tTex1di4) DescriptorSet 0
+ Decorate 40(g_tTex1du4) DescriptorSet 0
+ Decorate 51(g_tTex2df4) DescriptorSet 0
+ Decorate 66(g_tTex2di4) DescriptorSet 0
+ Decorate 78(g_tTex2du4) DescriptorSet 0
+ Decorate 90(g_tTexcdf4) DescriptorSet 0
+ Decorate 105(g_tTexcdi4) DescriptorSet 0
+ Decorate 117(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 127(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 141(g_tTex3df4) DescriptorSet 0
+ Decorate 144(g_tTex3di4) DescriptorSet 0
+ Decorate 147(g_tTex3du4) DescriptorSet 0
+ Decorate 150(g_tTex1df4a) DescriptorSet 0
+ Decorate 153(g_tTex1di4a) DescriptorSet 0
+ Decorate 156(g_tTex1du4a) DescriptorSet 0
+ Decorate 159(g_tTex2df4a) DescriptorSet 0
+ Decorate 162(g_tTex2di4a) DescriptorSet 0
+ Decorate 165(g_tTex2du4a) DescriptorSet 0
+ Decorate 168(g_tTexcdf4a) DescriptorSet 0
+ Decorate 171(g_tTexcdi4a) DescriptorSet 0
+ Decorate 174(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 25: TypeInt 32 1
+ 26: TypeImage 25(int) 1D sampled format:Unknown
+ 27: TypePointer UniformConstant 26
+ 28(g_tTex1di4): 27(ptr) Variable UniformConstant
+ 31: TypeImage 25(int) 1D depth sampled format:Unknown
+ 32: TypeSampledImage 31
+ 37: TypeInt 32 0
+ 38: TypeImage 37(int) 1D sampled format:Unknown
+ 39: TypePointer UniformConstant 38
+ 40(g_tTex1du4): 39(ptr) Variable UniformConstant
+ 43: TypeImage 37(int) 1D depth sampled format:Unknown
+ 44: TypeSampledImage 43
+ 49: TypeImage 6(float) 2D sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex2df4): 50(ptr) Variable UniformConstant
+ 54: TypeImage 6(float) 2D depth sampled format:Unknown
+ 55: TypeSampledImage 54
+ 57: TypeVector 6(float) 2
+ 58: 6(float) Constant 1045220557
+ 59: 57(fvec2) ConstantComposite 20 58
+ 64: TypeImage 25(int) 2D sampled format:Unknown
+ 65: TypePointer UniformConstant 64
+ 66(g_tTex2di4): 65(ptr) Variable UniformConstant
+ 69: TypeImage 25(int) 2D depth sampled format:Unknown
+ 70: TypeSampledImage 69
+ 76: TypeImage 37(int) 2D sampled format:Unknown
+ 77: TypePointer UniformConstant 76
+ 78(g_tTex2du4): 77(ptr) Variable UniformConstant
+ 81: TypeImage 37(int) 2D depth sampled format:Unknown
+ 82: TypeSampledImage 81
+ 88: TypeImage 6(float) Cube sampled format:Unknown
+ 89: TypePointer UniformConstant 88
+ 90(g_tTexcdf4): 89(ptr) Variable UniformConstant
+ 93: TypeImage 6(float) Cube depth sampled format:Unknown
+ 94: TypeSampledImage 93
+ 96: TypeVector 6(float) 3
+ 97: 6(float) Constant 1050253722
+ 98: 96(fvec3) ConstantComposite 20 58 97
+ 103: TypeImage 25(int) Cube sampled format:Unknown
+ 104: TypePointer UniformConstant 103
+ 105(g_tTexcdi4): 104(ptr) Variable UniformConstant
+ 108: TypeImage 25(int) Cube depth sampled format:Unknown
+ 109: TypeSampledImage 108
+ 115: TypeImage 37(int) Cube sampled format:Unknown
+ 116: TypePointer UniformConstant 115
+ 117(g_tTexcdu4): 116(ptr) Variable UniformConstant
+ 120: TypeImage 37(int) Cube depth sampled format:Unknown
+ 121: TypeSampledImage 120
+ 126: TypeVector 6(float) 4
+ 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float)
+ 128: TypePointer Function 127(PS_OUTPUT)
+ 130: 25(int) Constant 0
+ 131: 6(float) Constant 1065353216
+ 132: 126(fvec4) ConstantComposite 131 131 131 131
+ 133: TypePointer Function 126(fvec4)
+ 135: 25(int) Constant 1
+ 139: TypeImage 6(float) 3D sampled format:Unknown
+ 140: TypePointer UniformConstant 139
+ 141(g_tTex3df4): 140(ptr) Variable UniformConstant
+ 142: TypeImage 25(int) 3D sampled format:Unknown
+ 143: TypePointer UniformConstant 142
+ 144(g_tTex3di4): 143(ptr) Variable UniformConstant
+ 145: TypeImage 37(int) 3D sampled format:Unknown
+ 146: TypePointer UniformConstant 145
+ 147(g_tTex3du4): 146(ptr) Variable UniformConstant
+ 148: TypeImage 6(float) 1D array sampled format:Unknown
+ 149: TypePointer UniformConstant 148
+150(g_tTex1df4a): 149(ptr) Variable UniformConstant
+ 151: TypeImage 25(int) 1D array sampled format:Unknown
+ 152: TypePointer UniformConstant 151
+153(g_tTex1di4a): 152(ptr) Variable UniformConstant
+ 154: TypeImage 37(int) 1D array sampled format:Unknown
+ 155: TypePointer UniformConstant 154
+156(g_tTex1du4a): 155(ptr) Variable UniformConstant
+ 157: TypeImage 6(float) 2D array sampled format:Unknown
+ 158: TypePointer UniformConstant 157
+159(g_tTex2df4a): 158(ptr) Variable UniformConstant
+ 160: TypeImage 25(int) 2D array sampled format:Unknown
+ 161: TypePointer UniformConstant 160
+162(g_tTex2di4a): 161(ptr) Variable UniformConstant
+ 163: TypeImage 37(int) 2D array sampled format:Unknown
+ 164: TypePointer UniformConstant 163
+165(g_tTex2du4a): 164(ptr) Variable UniformConstant
+ 166: TypeImage 6(float) Cube array sampled format:Unknown
+ 167: TypePointer UniformConstant 166
+168(g_tTexcdf4a): 167(ptr) Variable UniformConstant
+ 169: TypeImage 25(int) Cube array sampled format:Unknown
+ 170: TypePointer UniformConstant 169
+171(g_tTexcdi4a): 170(ptr) Variable UniformConstant
+ 172: TypeImage 37(int) Cube array sampled format:Unknown
+ 173: TypePointer UniformConstant 172
+174(g_tTexcdu4a): 173(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 24(r02): 7(ptr) Variable Function
+ 36(r04): 7(ptr) Variable Function
+ 48(r20): 7(ptr) Variable Function
+ 63(r22): 7(ptr) Variable Function
+ 75(r24): 7(ptr) Variable Function
+ 87(r50): 7(ptr) Variable Function
+ 102(r52): 7(ptr) Variable Function
+ 114(r54): 7(ptr) Variable Function
+ 129(psout): 128(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 22: 6(float) CompositeExtract 20 0
+ 23: 6(float) ImageSampleDrefImplicitLod 19 20 22
+ Store 8(r00) 23
+ 29: 26 Load 28(g_tTex1di4)
+ 30: 13 Load 15(g_sSamp)
+ 33: 32 SampledImage 29 30
+ 34: 6(float) CompositeExtract 20 0
+ 35: 6(float) ImageSampleDrefImplicitLod 33 20 34
+ Store 24(r02) 35
+ 41: 38 Load 40(g_tTex1du4)
+ 42: 13 Load 15(g_sSamp)
+ 45: 44 SampledImage 41 42
+ 46: 6(float) CompositeExtract 20 0
+ 47: 6(float) ImageSampleDrefImplicitLod 45 20 46
+ Store 36(r04) 47
+ 52: 49 Load 51(g_tTex2df4)
+ 53: 13 Load 15(g_sSamp)
+ 56: 55 SampledImage 52 53
+ 60: 6(float) CompositeExtract 59 0
+ 61: 6(float) CompositeExtract 60 0
+ 62: 6(float) ImageSampleDrefImplicitLod 56 60 61
+ Store 48(r20) 62
+ 67: 64 Load 66(g_tTex2di4)
+ 68: 13 Load 15(g_sSamp)
+ 71: 70 SampledImage 67 68
+ 72: 6(float) CompositeExtract 59 0
+ 73: 6(float) CompositeExtract 72 0
+ 74: 6(float) ImageSampleDrefImplicitLod 71 72 73
+ Store 63(r22) 74
+ 79: 76 Load 78(g_tTex2du4)
+ 80: 13 Load 15(g_sSamp)
+ 83: 82 SampledImage 79 80
+ 84: 6(float) CompositeExtract 59 0
+ 85: 6(float) CompositeExtract 84 0
+ 86: 6(float) ImageSampleDrefImplicitLod 83 84 85
+ Store 75(r24) 86
+ 91: 88 Load 90(g_tTexcdf4)
+ 92: 13 Load 15(g_sSamp)
+ 95: 94 SampledImage 91 92
+ 99: 6(float) CompositeExtract 98 0
+ 100: 6(float) CompositeExtract 99 0
+ 101: 6(float) ImageSampleDrefImplicitLod 95 99 100
+ Store 87(r50) 101
+ 106: 103 Load 105(g_tTexcdi4)
+ 107: 13 Load 15(g_sSamp)
+ 110: 109 SampledImage 106 107
+ 111: 6(float) CompositeExtract 98 0
+ 112: 6(float) CompositeExtract 111 0
+ 113: 6(float) ImageSampleDrefImplicitLod 110 111 112
+ Store 102(r52) 113
+ 118: 115 Load 117(g_tTexcdu4)
+ 119: 13 Load 15(g_sSamp)
+ 122: 121 SampledImage 118 119
+ 123: 6(float) CompositeExtract 98 0
+ 124: 6(float) CompositeExtract 123 0
+ 125: 6(float) ImageSampleDrefImplicitLod 122 123 124
+ Store 114(r54) 125
+ 134: 133(ptr) AccessChain 129(psout) 130
+ Store 134 132
+ 136: 7(ptr) AccessChain 129(psout) 135
+ Store 136 131
+ 137:127(PS_OUTPUT) Load 129(psout)
+ ReturnValue 137
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
new file mode 100644
index 0000000..df298da
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
@@ -0,0 +1,509 @@
+hlsl.samplecmp.offset.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r01' (temp float)
+0:42 textureOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r03' (temp float)
+0:43 textureOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r05' (temp float)
+0:44 textureOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r21' (temp float)
+0:47 textureOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r23' (temp float)
+0:48 textureOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r25' (temp float)
+0:49 textureOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 Color: direct index for structure (temp 4-component vector of float)
+0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:63 move second child to first child (temp float)
+0:63 Depth: direct index for structure (temp float FragDepth)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 1.000000
+0:65 Branch: Return with expression
+0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r01' (temp float)
+0:42 textureOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r03' (temp float)
+0:43 textureOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r05' (temp float)
+0:44 textureOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r21' (temp float)
+0:47 textureOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r23' (temp float)
+0:48 textureOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r25' (temp float)
+0:49 textureOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 Color: direct index for structure (temp 4-component vector of float)
+0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:63 move second child to first child (temp float)
+0:63 Depth: direct index for structure (temp float FragDepth)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 1.000000
+0:65 Branch: Return with expression
+0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 149
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r01"
+ Name 11 "g_tTex1df4"
+ Name 15 "g_sSamp"
+ Name 26 "r03"
+ Name 29 "g_tTex1di4"
+ Name 37 "r05"
+ Name 41 "g_tTex1du4"
+ Name 49 "r21"
+ Name 52 "g_tTex2df4"
+ Name 67 "r23"
+ Name 70 "g_tTex2di4"
+ Name 79 "r25"
+ Name 82 "g_tTex2du4"
+ Name 92 "PS_OUTPUT"
+ MemberName 92(PS_OUTPUT) 0 "Color"
+ MemberName 92(PS_OUTPUT) 1 "Depth"
+ Name 94 "psout"
+ Name 106 "g_tTex3df4"
+ Name 109 "g_tTex3di4"
+ Name 112 "g_tTex3du4"
+ Name 115 "g_tTexcdf4"
+ Name 118 "g_tTexcdi4"
+ Name 121 "g_tTexcdu4"
+ Name 124 "g_tTex1df4a"
+ Name 127 "g_tTex1di4a"
+ Name 130 "g_tTex1du4a"
+ Name 133 "g_tTex2df4a"
+ Name 136 "g_tTex2di4a"
+ Name 139 "g_tTex2du4a"
+ Name 142 "g_tTexcdf4a"
+ Name 145 "g_tTexcdi4a"
+ Name 148 "g_tTexcdu4a"
+ Decorate 11(g_tTex1df4) DescriptorSet 0
+ Decorate 11(g_tTex1df4) Binding 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 29(g_tTex1di4) DescriptorSet 0
+ Decorate 41(g_tTex1du4) DescriptorSet 0
+ Decorate 52(g_tTex2df4) DescriptorSet 0
+ Decorate 70(g_tTex2di4) DescriptorSet 0
+ Decorate 82(g_tTex2du4) DescriptorSet 0
+ MemberDecorate 92(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 106(g_tTex3df4) DescriptorSet 0
+ Decorate 109(g_tTex3di4) DescriptorSet 0
+ Decorate 112(g_tTex3du4) DescriptorSet 0
+ Decorate 115(g_tTexcdf4) DescriptorSet 0
+ Decorate 118(g_tTexcdi4) DescriptorSet 0
+ Decorate 121(g_tTexcdu4) DescriptorSet 0
+ Decorate 124(g_tTex1df4a) DescriptorSet 0
+ Decorate 127(g_tTex1di4a) DescriptorSet 0
+ Decorate 130(g_tTex1du4a) DescriptorSet 0
+ Decorate 133(g_tTex2df4a) DescriptorSet 0
+ Decorate 136(g_tTex2di4a) DescriptorSet 0
+ Decorate 139(g_tTex2du4a) DescriptorSet 0
+ Decorate 142(g_tTexcdf4a) DescriptorSet 0
+ Decorate 145(g_tTexcdi4a) DescriptorSet 0
+ Decorate 148(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 22: TypeInt 32 1
+ 23: 22(int) Constant 2
+ 27: TypeImage 22(int) 1D sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+ 29(g_tTex1di4): 28(ptr) Variable UniformConstant
+ 32: TypeImage 22(int) 1D depth sampled format:Unknown
+ 33: TypeSampledImage 32
+ 38: TypeInt 32 0
+ 39: TypeImage 38(int) 1D sampled format:Unknown
+ 40: TypePointer UniformConstant 39
+ 41(g_tTex1du4): 40(ptr) Variable UniformConstant
+ 44: TypeImage 38(int) 1D depth sampled format:Unknown
+ 45: TypeSampledImage 44
+ 50: TypeImage 6(float) 2D sampled format:Unknown
+ 51: TypePointer UniformConstant 50
+ 52(g_tTex2df4): 51(ptr) Variable UniformConstant
+ 55: TypeImage 6(float) 2D depth sampled format:Unknown
+ 56: TypeSampledImage 55
+ 58: TypeVector 6(float) 2
+ 59: 6(float) Constant 1045220557
+ 60: 58(fvec2) ConstantComposite 20 59
+ 62: TypeVector 22(int) 2
+ 63: 22(int) Constant 3
+ 64: 62(ivec2) ConstantComposite 23 63
+ 68: TypeImage 22(int) 2D sampled format:Unknown
+ 69: TypePointer UniformConstant 68
+ 70(g_tTex2di4): 69(ptr) Variable UniformConstant
+ 73: TypeImage 22(int) 2D depth sampled format:Unknown
+ 74: TypeSampledImage 73
+ 80: TypeImage 38(int) 2D sampled format:Unknown
+ 81: TypePointer UniformConstant 80
+ 82(g_tTex2du4): 81(ptr) Variable UniformConstant
+ 85: TypeImage 38(int) 2D depth sampled format:Unknown
+ 86: TypeSampledImage 85
+ 91: TypeVector 6(float) 4
+ 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float)
+ 93: TypePointer Function 92(PS_OUTPUT)
+ 95: 22(int) Constant 0
+ 96: 6(float) Constant 1065353216
+ 97: 91(fvec4) ConstantComposite 96 96 96 96
+ 98: TypePointer Function 91(fvec4)
+ 100: 22(int) Constant 1
+ 104: TypeImage 6(float) 3D sampled format:Unknown
+ 105: TypePointer UniformConstant 104
+ 106(g_tTex3df4): 105(ptr) Variable UniformConstant
+ 107: TypeImage 22(int) 3D sampled format:Unknown
+ 108: TypePointer UniformConstant 107
+ 109(g_tTex3di4): 108(ptr) Variable UniformConstant
+ 110: TypeImage 38(int) 3D sampled format:Unknown
+ 111: TypePointer UniformConstant 110
+ 112(g_tTex3du4): 111(ptr) Variable UniformConstant
+ 113: TypeImage 6(float) Cube sampled format:Unknown
+ 114: TypePointer UniformConstant 113
+ 115(g_tTexcdf4): 114(ptr) Variable UniformConstant
+ 116: TypeImage 22(int) Cube sampled format:Unknown
+ 117: TypePointer UniformConstant 116
+ 118(g_tTexcdi4): 117(ptr) Variable UniformConstant
+ 119: TypeImage 38(int) Cube sampled format:Unknown
+ 120: TypePointer UniformConstant 119
+ 121(g_tTexcdu4): 120(ptr) Variable UniformConstant
+ 122: TypeImage 6(float) 1D array sampled format:Unknown
+ 123: TypePointer UniformConstant 122
+124(g_tTex1df4a): 123(ptr) Variable UniformConstant
+ 125: TypeImage 22(int) 1D array sampled format:Unknown
+ 126: TypePointer UniformConstant 125
+127(g_tTex1di4a): 126(ptr) Variable UniformConstant
+ 128: TypeImage 38(int) 1D array sampled format:Unknown
+ 129: TypePointer UniformConstant 128
+130(g_tTex1du4a): 129(ptr) Variable UniformConstant
+ 131: TypeImage 6(float) 2D array sampled format:Unknown
+ 132: TypePointer UniformConstant 131
+133(g_tTex2df4a): 132(ptr) Variable UniformConstant
+ 134: TypeImage 22(int) 2D array sampled format:Unknown
+ 135: TypePointer UniformConstant 134
+136(g_tTex2di4a): 135(ptr) Variable UniformConstant
+ 137: TypeImage 38(int) 2D array sampled format:Unknown
+ 138: TypePointer UniformConstant 137
+139(g_tTex2du4a): 138(ptr) Variable UniformConstant
+ 140: TypeImage 6(float) Cube array sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+142(g_tTexcdf4a): 141(ptr) Variable UniformConstant
+ 143: TypeImage 22(int) Cube array sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+145(g_tTexcdi4a): 144(ptr) Variable UniformConstant
+ 146: TypeImage 38(int) Cube array sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+148(g_tTexcdu4a): 147(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r01): 7(ptr) Variable Function
+ 26(r03): 7(ptr) Variable Function
+ 37(r05): 7(ptr) Variable Function
+ 49(r21): 7(ptr) Variable Function
+ 67(r23): 7(ptr) Variable Function
+ 79(r25): 7(ptr) Variable Function
+ 94(psout): 93(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 24: 6(float) CompositeExtract 20 0
+ 25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23
+ Store 8(r01) 25
+ 30: 27 Load 29(g_tTex1di4)
+ 31: 13 Load 15(g_sSamp)
+ 34: 33 SampledImage 30 31
+ 35: 6(float) CompositeExtract 20 0
+ 36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23
+ Store 26(r03) 36
+ 42: 39 Load 41(g_tTex1du4)
+ 43: 13 Load 15(g_sSamp)
+ 46: 45 SampledImage 42 43
+ 47: 6(float) CompositeExtract 20 0
+ 48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23
+ Store 37(r05) 48
+ 53: 50 Load 52(g_tTex2df4)
+ 54: 13 Load 15(g_sSamp)
+ 57: 56 SampledImage 53 54
+ 61: 6(float) CompositeExtract 60 0
+ 65: 6(float) CompositeExtract 61 0
+ 66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64
+ Store 49(r21) 66
+ 71: 68 Load 70(g_tTex2di4)
+ 72: 13 Load 15(g_sSamp)
+ 75: 74 SampledImage 71 72
+ 76: 6(float) CompositeExtract 60 0
+ 77: 6(float) CompositeExtract 76 0
+ 78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64
+ Store 67(r23) 78
+ 83: 80 Load 82(g_tTex2du4)
+ 84: 13 Load 15(g_sSamp)
+ 87: 86 SampledImage 83 84
+ 88: 6(float) CompositeExtract 60 0
+ 89: 6(float) CompositeExtract 88 0
+ 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64
+ Store 79(r25) 90
+ 99: 98(ptr) AccessChain 94(psout) 95
+ Store 99 97
+ 101: 7(ptr) AccessChain 94(psout) 100
+ Store 101 96
+ 102:92(PS_OUTPUT) Load 94(psout)
+ ReturnValue 102
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
new file mode 100644
index 0000000..5d42073
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
@@ -0,0 +1,527 @@
+hlsl.samplecmp.offsetarray.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r11' (temp float)
+0:42 textureOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r13' (temp float)
+0:43 textureOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r15' (temp float)
+0:44 textureOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r31' (temp float)
+0:47 textureOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r33' (temp float)
+0:48 textureOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r35' (temp float)
+0:49 textureOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:63 move second child to first child (temp 4-component vector of float)
+0:63 Color: direct index for structure (temp 4-component vector of float)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:64 move second child to first child (temp float)
+0:64 Depth: direct index for structure (temp float FragDepth)
+0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 1.000000
+0:66 Branch: Return with expression
+0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r11' (temp float)
+0:42 textureOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r13' (temp float)
+0:43 textureOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r15' (temp float)
+0:44 textureOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r31' (temp float)
+0:47 textureOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r33' (temp float)
+0:48 textureOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r35' (temp float)
+0:49 textureOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:63 move second child to first child (temp 4-component vector of float)
+0:63 Color: direct index for structure (temp 4-component vector of float)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:64 move second child to first child (temp float)
+0:64 Depth: direct index for structure (temp float FragDepth)
+0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 1.000000
+0:66 Branch: Return with expression
+0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 155
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r11"
+ Name 11 "g_tTex1df4a"
+ Name 15 "g_sSamp"
+ Name 30 "r13"
+ Name 33 "g_tTex1di4a"
+ Name 42 "r15"
+ Name 46 "g_tTex1du4a"
+ Name 55 "r31"
+ Name 58 "g_tTex2df4a"
+ Name 73 "r33"
+ Name 76 "g_tTex2di4a"
+ Name 85 "r35"
+ Name 88 "g_tTex2du4a"
+ Name 98 "PS_OUTPUT"
+ MemberName 98(PS_OUTPUT) 0 "Color"
+ MemberName 98(PS_OUTPUT) 1 "Depth"
+ Name 100 "psout"
+ Name 112 "g_tTex1df4"
+ Name 115 "g_tTex1di4"
+ Name 118 "g_tTex1du4"
+ Name 121 "g_tTex2df4"
+ Name 124 "g_tTex2di4"
+ Name 127 "g_tTex2du4"
+ Name 130 "g_tTex3df4"
+ Name 133 "g_tTex3di4"
+ Name 136 "g_tTex3du4"
+ Name 139 "g_tTexcdf4"
+ Name 142 "g_tTexcdi4"
+ Name 145 "g_tTexcdu4"
+ Name 148 "g_tTexcdf4a"
+ Name 151 "g_tTexcdi4a"
+ Name 154 "g_tTexcdu4a"
+ Decorate 11(g_tTex1df4a) DescriptorSet 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 33(g_tTex1di4a) DescriptorSet 0
+ Decorate 46(g_tTex1du4a) DescriptorSet 0
+ Decorate 58(g_tTex2df4a) DescriptorSet 0
+ Decorate 76(g_tTex2di4a) DescriptorSet 0
+ Decorate 88(g_tTex2du4a) DescriptorSet 0
+ MemberDecorate 98(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 112(g_tTex1df4) DescriptorSet 0
+ Decorate 112(g_tTex1df4) Binding 0
+ Decorate 115(g_tTex1di4) DescriptorSet 0
+ Decorate 118(g_tTex1du4) DescriptorSet 0
+ Decorate 121(g_tTex2df4) DescriptorSet 0
+ Decorate 124(g_tTex2di4) DescriptorSet 0
+ Decorate 127(g_tTex2du4) DescriptorSet 0
+ Decorate 130(g_tTex3df4) DescriptorSet 0
+ Decorate 133(g_tTex3di4) DescriptorSet 0
+ Decorate 136(g_tTex3du4) DescriptorSet 0
+ Decorate 139(g_tTexcdf4) DescriptorSet 0
+ Decorate 142(g_tTexcdi4) DescriptorSet 0
+ Decorate 145(g_tTexcdu4) DescriptorSet 0
+ Decorate 148(g_tTexcdf4a) DescriptorSet 0
+ Decorate 151(g_tTexcdi4a) DescriptorSet 0
+ Decorate 154(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D array sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4a): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth array sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: 6(float) Constant 1061158912
+ 26: TypeInt 32 1
+ 27: 26(int) Constant 2
+ 31: TypeImage 26(int) 1D array sampled format:Unknown
+ 32: TypePointer UniformConstant 31
+ 33(g_tTex1di4a): 32(ptr) Variable UniformConstant
+ 36: TypeImage 26(int) 1D depth array sampled format:Unknown
+ 37: TypeSampledImage 36
+ 43: TypeInt 32 0
+ 44: TypeImage 43(int) 1D array sampled format:Unknown
+ 45: TypePointer UniformConstant 44
+ 46(g_tTex1du4a): 45(ptr) Variable UniformConstant
+ 49: TypeImage 43(int) 1D depth array sampled format:Unknown
+ 50: TypeSampledImage 49
+ 56: TypeImage 6(float) 2D array sampled format:Unknown
+ 57: TypePointer UniformConstant 56
+ 58(g_tTex2df4a): 57(ptr) Variable UniformConstant
+ 61: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 62: TypeSampledImage 61
+ 64: TypeVector 6(float) 3
+ 65: 6(float) Constant 1050253722
+ 66: 64(fvec3) ConstantComposite 21 22 65
+ 68: TypeVector 26(int) 2
+ 69: 26(int) Constant 3
+ 70: 68(ivec2) ConstantComposite 27 69
+ 74: TypeImage 26(int) 2D array sampled format:Unknown
+ 75: TypePointer UniformConstant 74
+ 76(g_tTex2di4a): 75(ptr) Variable UniformConstant
+ 79: TypeImage 26(int) 2D depth array sampled format:Unknown
+ 80: TypeSampledImage 79
+ 86: TypeImage 43(int) 2D array sampled format:Unknown
+ 87: TypePointer UniformConstant 86
+ 88(g_tTex2du4a): 87(ptr) Variable UniformConstant
+ 91: TypeImage 43(int) 2D depth array sampled format:Unknown
+ 92: TypeSampledImage 91
+ 97: TypeVector 6(float) 4
+ 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float)
+ 99: TypePointer Function 98(PS_OUTPUT)
+ 101: 26(int) Constant 0
+ 102: 6(float) Constant 1065353216
+ 103: 97(fvec4) ConstantComposite 102 102 102 102
+ 104: TypePointer Function 97(fvec4)
+ 106: 26(int) Constant 1
+ 110: TypeImage 6(float) 1D sampled format:Unknown
+ 111: TypePointer UniformConstant 110
+ 112(g_tTex1df4): 111(ptr) Variable UniformConstant
+ 113: TypeImage 26(int) 1D sampled format:Unknown
+ 114: TypePointer UniformConstant 113
+ 115(g_tTex1di4): 114(ptr) Variable UniformConstant
+ 116: TypeImage 43(int) 1D sampled format:Unknown
+ 117: TypePointer UniformConstant 116
+ 118(g_tTex1du4): 117(ptr) Variable UniformConstant
+ 119: TypeImage 6(float) 2D sampled format:Unknown
+ 120: TypePointer UniformConstant 119
+ 121(g_tTex2df4): 120(ptr) Variable UniformConstant
+ 122: TypeImage 26(int) 2D sampled format:Unknown
+ 123: TypePointer UniformConstant 122
+ 124(g_tTex2di4): 123(ptr) Variable UniformConstant
+ 125: TypeImage 43(int) 2D sampled format:Unknown
+ 126: TypePointer UniformConstant 125
+ 127(g_tTex2du4): 126(ptr) Variable UniformConstant
+ 128: TypeImage 6(float) 3D sampled format:Unknown
+ 129: TypePointer UniformConstant 128
+ 130(g_tTex3df4): 129(ptr) Variable UniformConstant
+ 131: TypeImage 26(int) 3D sampled format:Unknown
+ 132: TypePointer UniformConstant 131
+ 133(g_tTex3di4): 132(ptr) Variable UniformConstant
+ 134: TypeImage 43(int) 3D sampled format:Unknown
+ 135: TypePointer UniformConstant 134
+ 136(g_tTex3du4): 135(ptr) Variable UniformConstant
+ 137: TypeImage 6(float) Cube sampled format:Unknown
+ 138: TypePointer UniformConstant 137
+ 139(g_tTexcdf4): 138(ptr) Variable UniformConstant
+ 140: TypeImage 26(int) Cube sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+ 142(g_tTexcdi4): 141(ptr) Variable UniformConstant
+ 143: TypeImage 43(int) Cube sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+ 145(g_tTexcdu4): 144(ptr) Variable UniformConstant
+ 146: TypeImage 6(float) Cube array sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+148(g_tTexcdf4a): 147(ptr) Variable UniformConstant
+ 149: TypeImage 26(int) Cube array sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+151(g_tTexcdi4a): 150(ptr) Variable UniformConstant
+ 152: TypeImage 43(int) Cube array sampled format:Unknown
+ 153: TypePointer UniformConstant 152
+154(g_tTexcdu4a): 153(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r11): 7(ptr) Variable Function
+ 30(r13): 7(ptr) Variable Function
+ 42(r15): 7(ptr) Variable Function
+ 55(r31): 7(ptr) Variable Function
+ 73(r33): 7(ptr) Variable Function
+ 85(r35): 7(ptr) Variable Function
+ 100(psout): 99(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4a)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 25: 6(float) CompositeExtract 23 0
+ 28: 6(float) CompositeExtract 25 0
+ 29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27
+ Store 8(r11) 29
+ 34: 31 Load 33(g_tTex1di4a)
+ 35: 13 Load 15(g_sSamp)
+ 38: 37 SampledImage 34 35
+ 39: 6(float) CompositeExtract 23 0
+ 40: 6(float) CompositeExtract 39 0
+ 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27
+ Store 30(r13) 41
+ 47: 44 Load 46(g_tTex1du4a)
+ 48: 13 Load 15(g_sSamp)
+ 51: 50 SampledImage 47 48
+ 52: 6(float) CompositeExtract 23 0
+ 53: 6(float) CompositeExtract 52 0
+ 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27
+ Store 42(r15) 54
+ 59: 56 Load 58(g_tTex2df4a)
+ 60: 13 Load 15(g_sSamp)
+ 63: 62 SampledImage 59 60
+ 67: 6(float) CompositeExtract 66 0
+ 71: 6(float) CompositeExtract 67 0
+ 72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70
+ Store 55(r31) 72
+ 77: 74 Load 76(g_tTex2di4a)
+ 78: 13 Load 15(g_sSamp)
+ 81: 80 SampledImage 77 78
+ 82: 6(float) CompositeExtract 66 0
+ 83: 6(float) CompositeExtract 82 0
+ 84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70
+ Store 73(r33) 84
+ 89: 86 Load 88(g_tTex2du4a)
+ 90: 13 Load 15(g_sSamp)
+ 93: 92 SampledImage 89 90
+ 94: 6(float) CompositeExtract 66 0
+ 95: 6(float) CompositeExtract 94 0
+ 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70
+ Store 85(r35) 96
+ 105: 104(ptr) AccessChain 100(psout) 101
+ Store 105 103
+ 107: 7(ptr) AccessChain 100(psout) 106
+ Store 107 102
+ 108:98(PS_OUTPUT) Load 100(psout)
+ ReturnValue 108
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
new file mode 100644
index 0000000..c54e2d5
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
@@ -0,0 +1,652 @@
+hlsl.samplecmplevelzero.array.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r10' (temp float)
+0:42 textureLod (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r12' (temp float)
+0:43 textureLod (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r14' (temp float)
+0:44 textureLod (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r30' (temp float)
+0:47 textureLod (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r32' (temp float)
+0:48 textureLod (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r34' (temp float)
+0:49 textureLod (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'r60' (temp float)
+0:52 textureLod (global float)
+0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
+0:52 'g_tTexcdf4a' (uniform textureCubeArray)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:52 Constant:
+0:52 0.750000
+0:52 Constant:
+0:52 0.000000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r62' (temp float)
+0:53 textureLod (global float)
+0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
+0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:53 Constant:
+0:53 0.750000
+0:53 Constant:
+0:53 0.000000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r64' (temp float)
+0:54 textureLod (global float)
+0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
+0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:54 Constant:
+0:54 0.750000
+0:54 Constant:
+0:54 0.000000
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 Color: direct index for structure (temp 4-component vector of float)
+0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:56 Constant:
+0:56 0 (const int)
+0:56 Constant:
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:57 move second child to first child (temp float)
+0:57 Depth: direct index for structure (temp float FragDepth)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 1.000000
+0:59 Branch: Return with expression
+0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:61 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r10' (temp float)
+0:42 textureLod (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r12' (temp float)
+0:43 textureLod (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r14' (temp float)
+0:44 textureLod (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r30' (temp float)
+0:47 textureLod (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r32' (temp float)
+0:48 textureLod (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r34' (temp float)
+0:49 textureLod (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:52 Sequence
+0:52 move second child to first child (temp float)
+0:52 'r60' (temp float)
+0:52 textureLod (global float)
+0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow)
+0:52 'g_tTexcdf4a' (uniform textureCubeArray)
+0:52 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:52 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:52 Constant:
+0:52 0.750000
+0:52 Constant:
+0:52 0.000000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r62' (temp float)
+0:53 textureLod (global float)
+0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow)
+0:53 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:53 Constant:
+0:53 0.750000
+0:53 Constant:
+0:53 0.000000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r64' (temp float)
+0:54 textureLod (global float)
+0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow)
+0:54 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:54 Constant:
+0:54 0.750000
+0:54 Constant:
+0:54 0.000000
+0:56 move second child to first child (temp 4-component vector of float)
+0:56 Color: direct index for structure (temp 4-component vector of float)
+0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:56 Constant:
+0:56 0 (const int)
+0:56 Constant:
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:56 1.000000
+0:57 move second child to first child (temp float)
+0:57 Depth: direct index for structure (temp float FragDepth)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 1 (const int)
+0:57 Constant:
+0:57 1.000000
+0:59 Branch: Return with expression
+0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 178
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r10"
+ Name 11 "g_tTex1df4a"
+ Name 15 "g_sSamp"
+ Name 29 "r12"
+ Name 33 "g_tTex1di4a"
+ Name 42 "r14"
+ Name 46 "g_tTex1du4a"
+ Name 55 "r30"
+ Name 58 "g_tTex2df4a"
+ Name 70 "r32"
+ Name 73 "g_tTex2di4a"
+ Name 82 "r34"
+ Name 85 "g_tTex2du4a"
+ Name 94 "r60"
+ Name 97 "g_tTexcdf4a"
+ Name 108 "r62"
+ Name 111 "g_tTexcdi4a"
+ Name 119 "r64"
+ Name 122 "g_tTexcdu4a"
+ Name 130 "PS_OUTPUT"
+ MemberName 130(PS_OUTPUT) 0 "Color"
+ MemberName 130(PS_OUTPUT) 1 "Depth"
+ Name 132 "psout"
+ Name 144 "g_tTex1df4"
+ Name 147 "g_tTex1di4"
+ Name 150 "g_tTex1du4"
+ Name 153 "g_tTex2df4"
+ Name 156 "g_tTex2di4"
+ Name 159 "g_tTex2du4"
+ Name 162 "g_tTex3df4"
+ Name 165 "g_tTex3di4"
+ Name 168 "g_tTex3du4"
+ Name 171 "g_tTexcdf4"
+ Name 174 "g_tTexcdi4"
+ Name 177 "g_tTexcdu4"
+ Decorate 11(g_tTex1df4a) DescriptorSet 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 33(g_tTex1di4a) DescriptorSet 0
+ Decorate 46(g_tTex1du4a) DescriptorSet 0
+ Decorate 58(g_tTex2df4a) DescriptorSet 0
+ Decorate 73(g_tTex2di4a) DescriptorSet 0
+ Decorate 85(g_tTex2du4a) DescriptorSet 0
+ Decorate 97(g_tTexcdf4a) DescriptorSet 0
+ Decorate 111(g_tTexcdi4a) DescriptorSet 0
+ Decorate 122(g_tTexcdu4a) DescriptorSet 0
+ MemberDecorate 130(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 144(g_tTex1df4) DescriptorSet 0
+ Decorate 144(g_tTex1df4) Binding 0
+ Decorate 147(g_tTex1di4) DescriptorSet 0
+ Decorate 150(g_tTex1du4) DescriptorSet 0
+ Decorate 153(g_tTex2df4) DescriptorSet 0
+ Decorate 156(g_tTex2di4) DescriptorSet 0
+ Decorate 159(g_tTex2du4) DescriptorSet 0
+ Decorate 162(g_tTex3df4) DescriptorSet 0
+ Decorate 165(g_tTex3di4) DescriptorSet 0
+ Decorate 168(g_tTex3du4) DescriptorSet 0
+ Decorate 171(g_tTexcdf4) DescriptorSet 0
+ Decorate 174(g_tTexcdi4) DescriptorSet 0
+ Decorate 177(g_tTexcdu4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D array sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4a): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth array sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: 6(float) Constant 1061158912
+ 26: 6(float) Constant 0
+ 30: TypeInt 32 1
+ 31: TypeImage 30(int) 1D array sampled format:Unknown
+ 32: TypePointer UniformConstant 31
+ 33(g_tTex1di4a): 32(ptr) Variable UniformConstant
+ 36: TypeImage 30(int) 1D depth array sampled format:Unknown
+ 37: TypeSampledImage 36
+ 43: TypeInt 32 0
+ 44: TypeImage 43(int) 1D array sampled format:Unknown
+ 45: TypePointer UniformConstant 44
+ 46(g_tTex1du4a): 45(ptr) Variable UniformConstant
+ 49: TypeImage 43(int) 1D depth array sampled format:Unknown
+ 50: TypeSampledImage 49
+ 56: TypeImage 6(float) 2D array sampled format:Unknown
+ 57: TypePointer UniformConstant 56
+ 58(g_tTex2df4a): 57(ptr) Variable UniformConstant
+ 61: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 62: TypeSampledImage 61
+ 64: TypeVector 6(float) 3
+ 65: 6(float) Constant 1050253722
+ 66: 64(fvec3) ConstantComposite 21 22 65
+ 71: TypeImage 30(int) 2D array sampled format:Unknown
+ 72: TypePointer UniformConstant 71
+ 73(g_tTex2di4a): 72(ptr) Variable UniformConstant
+ 76: TypeImage 30(int) 2D depth array sampled format:Unknown
+ 77: TypeSampledImage 76
+ 83: TypeImage 43(int) 2D array sampled format:Unknown
+ 84: TypePointer UniformConstant 83
+ 85(g_tTex2du4a): 84(ptr) Variable UniformConstant
+ 88: TypeImage 43(int) 2D depth array sampled format:Unknown
+ 89: TypeSampledImage 88
+ 95: TypeImage 6(float) Cube array sampled format:Unknown
+ 96: TypePointer UniformConstant 95
+ 97(g_tTexcdf4a): 96(ptr) Variable UniformConstant
+ 100: TypeImage 6(float) Cube depth array sampled format:Unknown
+ 101: TypeSampledImage 100
+ 103: TypeVector 6(float) 4
+ 104: 6(float) Constant 1053609165
+ 105: 103(fvec4) ConstantComposite 21 22 65 104
+ 109: TypeImage 30(int) Cube array sampled format:Unknown
+ 110: TypePointer UniformConstant 109
+111(g_tTexcdi4a): 110(ptr) Variable UniformConstant
+ 114: TypeImage 30(int) Cube depth array sampled format:Unknown
+ 115: TypeSampledImage 114
+ 120: TypeImage 43(int) Cube array sampled format:Unknown
+ 121: TypePointer UniformConstant 120
+122(g_tTexcdu4a): 121(ptr) Variable UniformConstant
+ 125: TypeImage 43(int) Cube depth array sampled format:Unknown
+ 126: TypeSampledImage 125
+ 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float)
+ 131: TypePointer Function 130(PS_OUTPUT)
+ 133: 30(int) Constant 0
+ 134: 6(float) Constant 1065353216
+ 135: 103(fvec4) ConstantComposite 134 134 134 134
+ 136: TypePointer Function 103(fvec4)
+ 138: 30(int) Constant 1
+ 142: TypeImage 6(float) 1D sampled format:Unknown
+ 143: TypePointer UniformConstant 142
+ 144(g_tTex1df4): 143(ptr) Variable UniformConstant
+ 145: TypeImage 30(int) 1D sampled format:Unknown
+ 146: TypePointer UniformConstant 145
+ 147(g_tTex1di4): 146(ptr) Variable UniformConstant
+ 148: TypeImage 43(int) 1D sampled format:Unknown
+ 149: TypePointer UniformConstant 148
+ 150(g_tTex1du4): 149(ptr) Variable UniformConstant
+ 151: TypeImage 6(float) 2D sampled format:Unknown
+ 152: TypePointer UniformConstant 151
+ 153(g_tTex2df4): 152(ptr) Variable UniformConstant
+ 154: TypeImage 30(int) 2D sampled format:Unknown
+ 155: TypePointer UniformConstant 154
+ 156(g_tTex2di4): 155(ptr) Variable UniformConstant
+ 157: TypeImage 43(int) 2D sampled format:Unknown
+ 158: TypePointer UniformConstant 157
+ 159(g_tTex2du4): 158(ptr) Variable UniformConstant
+ 160: TypeImage 6(float) 3D sampled format:Unknown
+ 161: TypePointer UniformConstant 160
+ 162(g_tTex3df4): 161(ptr) Variable UniformConstant
+ 163: TypeImage 30(int) 3D sampled format:Unknown
+ 164: TypePointer UniformConstant 163
+ 165(g_tTex3di4): 164(ptr) Variable UniformConstant
+ 166: TypeImage 43(int) 3D sampled format:Unknown
+ 167: TypePointer UniformConstant 166
+ 168(g_tTex3du4): 167(ptr) Variable UniformConstant
+ 169: TypeImage 6(float) Cube sampled format:Unknown
+ 170: TypePointer UniformConstant 169
+ 171(g_tTexcdf4): 170(ptr) Variable UniformConstant
+ 172: TypeImage 30(int) Cube sampled format:Unknown
+ 173: TypePointer UniformConstant 172
+ 174(g_tTexcdi4): 173(ptr) Variable UniformConstant
+ 175: TypeImage 43(int) Cube sampled format:Unknown
+ 176: TypePointer UniformConstant 175
+ 177(g_tTexcdu4): 176(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r10): 7(ptr) Variable Function
+ 29(r12): 7(ptr) Variable Function
+ 42(r14): 7(ptr) Variable Function
+ 55(r30): 7(ptr) Variable Function
+ 70(r32): 7(ptr) Variable Function
+ 82(r34): 7(ptr) Variable Function
+ 94(r60): 7(ptr) Variable Function
+ 108(r62): 7(ptr) Variable Function
+ 119(r64): 7(ptr) Variable Function
+ 132(psout): 131(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4a)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 25: 6(float) CompositeExtract 23 0
+ 27: 6(float) CompositeExtract 25 0
+ 28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26
+ Store 8(r10) 28
+ 34: 31 Load 33(g_tTex1di4a)
+ 35: 13 Load 15(g_sSamp)
+ 38: 37 SampledImage 34 35
+ 39: 6(float) CompositeExtract 23 0
+ 40: 6(float) CompositeExtract 39 0
+ 41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26
+ Store 29(r12) 41
+ 47: 44 Load 46(g_tTex1du4a)
+ 48: 13 Load 15(g_sSamp)
+ 51: 50 SampledImage 47 48
+ 52: 6(float) CompositeExtract 23 0
+ 53: 6(float) CompositeExtract 52 0
+ 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26
+ Store 42(r14) 54
+ 59: 56 Load 58(g_tTex2df4a)
+ 60: 13 Load 15(g_sSamp)
+ 63: 62 SampledImage 59 60
+ 67: 6(float) CompositeExtract 66 0
+ 68: 6(float) CompositeExtract 67 0
+ 69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26
+ Store 55(r30) 69
+ 74: 71 Load 73(g_tTex2di4a)
+ 75: 13 Load 15(g_sSamp)
+ 78: 77 SampledImage 74 75
+ 79: 6(float) CompositeExtract 66 0
+ 80: 6(float) CompositeExtract 79 0
+ 81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26
+ Store 70(r32) 81
+ 86: 83 Load 85(g_tTex2du4a)
+ 87: 13 Load 15(g_sSamp)
+ 90: 89 SampledImage 86 87
+ 91: 6(float) CompositeExtract 66 0
+ 92: 6(float) CompositeExtract 91 0
+ 93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26
+ Store 82(r34) 93
+ 98: 95 Load 97(g_tTexcdf4a)
+ 99: 13 Load 15(g_sSamp)
+ 102: 101 SampledImage 98 99
+ 106: 6(float) CompositeExtract 105 0
+ 107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24
+ Store 94(r60) 107
+ 112: 109 Load 111(g_tTexcdi4a)
+ 113: 13 Load 15(g_sSamp)
+ 116: 115 SampledImage 112 113
+ 117: 6(float) CompositeExtract 105 0
+ 118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24
+ Store 108(r62) 118
+ 123: 120 Load 122(g_tTexcdu4a)
+ 124: 13 Load 15(g_sSamp)
+ 127: 126 SampledImage 123 124
+ 128: 6(float) CompositeExtract 105 0
+ 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24
+ Store 119(r64) 129
+ 137: 136(ptr) AccessChain 132(psout) 133
+ Store 137 135
+ 139: 7(ptr) AccessChain 132(psout) 138
+ Store 139 134
+ 140:130(PS_OUTPUT) Load 132(psout)
+ ReturnValue 140
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
new file mode 100644
index 0000000..1fbdb48
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
@@ -0,0 +1,632 @@
+hlsl.samplecmplevelzero.basic.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r00' (temp float)
+0:42 textureLod (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r02' (temp float)
+0:43 textureLod (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r04' (temp float)
+0:44 textureLod (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r20' (temp float)
+0:47 textureLod (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r22' (temp float)
+0:48 textureLod (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r24' (temp float)
+0:49 textureLod (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r50' (temp float)
+0:53 textureLod (global float)
+0:53 Construct combined texture-sampler (temp samplerCubeShadow)
+0:53 'g_tTexcdf4' (uniform textureCube)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:53 Constant:
+0:53 0.750000
+0:53 Constant:
+0:53 0.000000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r52' (temp float)
+0:54 textureLod (global float)
+0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
+0:54 'g_tTexcdi4' (uniform itextureCube)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:54 Constant:
+0:54 0.750000
+0:54 Constant:
+0:54 0.000000
+0:55 Sequence
+0:55 move second child to first child (temp float)
+0:55 'r54' (temp float)
+0:55 textureLod (global float)
+0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
+0:55 'g_tTexcdu4' (uniform utextureCube)
+0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:55 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:55 Constant:
+0:55 0.750000
+0:55 Constant:
+0:55 0.000000
+0:57 move second child to first child (temp 4-component vector of float)
+0:57 Color: direct index for structure (temp 4-component vector of float)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:58 move second child to first child (temp float)
+0:58 Depth: direct index for structure (temp float FragDepth)
+0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 1.000000
+0:60 Branch: Return with expression
+0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:62 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r00' (temp float)
+0:42 textureLod (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r02' (temp float)
+0:43 textureLod (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r04' (temp float)
+0:44 textureLod (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r20' (temp float)
+0:47 textureLod (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r22' (temp float)
+0:48 textureLod (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r24' (temp float)
+0:49 textureLod (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:53 Sequence
+0:53 move second child to first child (temp float)
+0:53 'r50' (temp float)
+0:53 textureLod (global float)
+0:53 Construct combined texture-sampler (temp samplerCubeShadow)
+0:53 'g_tTexcdf4' (uniform textureCube)
+0:53 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:53 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:53 Constant:
+0:53 0.750000
+0:53 Constant:
+0:53 0.000000
+0:54 Sequence
+0:54 move second child to first child (temp float)
+0:54 'r52' (temp float)
+0:54 textureLod (global float)
+0:54 Construct combined texture-sampler (temp isamplerCubeShadow)
+0:54 'g_tTexcdi4' (uniform itextureCube)
+0:54 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:54 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:54 Constant:
+0:54 0.750000
+0:54 Constant:
+0:54 0.000000
+0:55 Sequence
+0:55 move second child to first child (temp float)
+0:55 'r54' (temp float)
+0:55 textureLod (global float)
+0:55 Construct combined texture-sampler (temp usamplerCubeShadow)
+0:55 'g_tTexcdu4' (uniform utextureCube)
+0:55 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:55 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:55 Constant:
+0:55 0.750000
+0:55 Constant:
+0:55 0.000000
+0:57 move second child to first child (temp 4-component vector of float)
+0:57 Color: direct index for structure (temp 4-component vector of float)
+0:57 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:57 Constant:
+0:57 0 (const int)
+0:57 Constant:
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:57 1.000000
+0:58 move second child to first child (temp float)
+0:58 Depth: direct index for structure (temp float FragDepth)
+0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:58 Constant:
+0:58 1 (const int)
+0:58 Constant:
+0:58 1.000000
+0:60 Branch: Return with expression
+0:60 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 176
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r00"
+ Name 11 "g_tTex1df4"
+ Name 15 "g_sSamp"
+ Name 25 "r02"
+ Name 29 "g_tTex1di4"
+ Name 37 "r04"
+ Name 41 "g_tTex1du4"
+ Name 49 "r20"
+ Name 52 "g_tTex2df4"
+ Name 64 "r22"
+ Name 67 "g_tTex2di4"
+ Name 76 "r24"
+ Name 79 "g_tTex2du4"
+ Name 88 "r50"
+ Name 91 "g_tTexcdf4"
+ Name 103 "r52"
+ Name 106 "g_tTexcdi4"
+ Name 115 "r54"
+ Name 118 "g_tTexcdu4"
+ Name 128 "PS_OUTPUT"
+ MemberName 128(PS_OUTPUT) 0 "Color"
+ MemberName 128(PS_OUTPUT) 1 "Depth"
+ Name 130 "psout"
+ Name 142 "g_tTex3df4"
+ Name 145 "g_tTex3di4"
+ Name 148 "g_tTex3du4"
+ Name 151 "g_tTex1df4a"
+ Name 154 "g_tTex1di4a"
+ Name 157 "g_tTex1du4a"
+ Name 160 "g_tTex2df4a"
+ Name 163 "g_tTex2di4a"
+ Name 166 "g_tTex2du4a"
+ Name 169 "g_tTexcdf4a"
+ Name 172 "g_tTexcdi4a"
+ Name 175 "g_tTexcdu4a"
+ Decorate 11(g_tTex1df4) DescriptorSet 0
+ Decorate 11(g_tTex1df4) Binding 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 29(g_tTex1di4) DescriptorSet 0
+ Decorate 41(g_tTex1du4) DescriptorSet 0
+ Decorate 52(g_tTex2df4) DescriptorSet 0
+ Decorate 67(g_tTex2di4) DescriptorSet 0
+ Decorate 79(g_tTex2du4) DescriptorSet 0
+ Decorate 91(g_tTexcdf4) DescriptorSet 0
+ Decorate 106(g_tTexcdi4) DescriptorSet 0
+ Decorate 118(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 142(g_tTex3df4) DescriptorSet 0
+ Decorate 145(g_tTex3di4) DescriptorSet 0
+ Decorate 148(g_tTex3du4) DescriptorSet 0
+ Decorate 151(g_tTex1df4a) DescriptorSet 0
+ Decorate 154(g_tTex1di4a) DescriptorSet 0
+ Decorate 157(g_tTex1du4a) DescriptorSet 0
+ Decorate 160(g_tTex2df4a) DescriptorSet 0
+ Decorate 163(g_tTex2di4a) DescriptorSet 0
+ Decorate 166(g_tTex2du4a) DescriptorSet 0
+ Decorate 169(g_tTexcdf4a) DescriptorSet 0
+ Decorate 172(g_tTexcdi4a) DescriptorSet 0
+ Decorate 175(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 22: 6(float) Constant 0
+ 26: TypeInt 32 1
+ 27: TypeImage 26(int) 1D sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+ 29(g_tTex1di4): 28(ptr) Variable UniformConstant
+ 32: TypeImage 26(int) 1D depth sampled format:Unknown
+ 33: TypeSampledImage 32
+ 38: TypeInt 32 0
+ 39: TypeImage 38(int) 1D sampled format:Unknown
+ 40: TypePointer UniformConstant 39
+ 41(g_tTex1du4): 40(ptr) Variable UniformConstant
+ 44: TypeImage 38(int) 1D depth sampled format:Unknown
+ 45: TypeSampledImage 44
+ 50: TypeImage 6(float) 2D sampled format:Unknown
+ 51: TypePointer UniformConstant 50
+ 52(g_tTex2df4): 51(ptr) Variable UniformConstant
+ 55: TypeImage 6(float) 2D depth sampled format:Unknown
+ 56: TypeSampledImage 55
+ 58: TypeVector 6(float) 2
+ 59: 6(float) Constant 1045220557
+ 60: 58(fvec2) ConstantComposite 20 59
+ 65: TypeImage 26(int) 2D sampled format:Unknown
+ 66: TypePointer UniformConstant 65
+ 67(g_tTex2di4): 66(ptr) Variable UniformConstant
+ 70: TypeImage 26(int) 2D depth sampled format:Unknown
+ 71: TypeSampledImage 70
+ 77: TypeImage 38(int) 2D sampled format:Unknown
+ 78: TypePointer UniformConstant 77
+ 79(g_tTex2du4): 78(ptr) Variable UniformConstant
+ 82: TypeImage 38(int) 2D depth sampled format:Unknown
+ 83: TypeSampledImage 82
+ 89: TypeImage 6(float) Cube sampled format:Unknown
+ 90: TypePointer UniformConstant 89
+ 91(g_tTexcdf4): 90(ptr) Variable UniformConstant
+ 94: TypeImage 6(float) Cube depth sampled format:Unknown
+ 95: TypeSampledImage 94
+ 97: TypeVector 6(float) 3
+ 98: 6(float) Constant 1050253722
+ 99: 97(fvec3) ConstantComposite 20 59 98
+ 104: TypeImage 26(int) Cube sampled format:Unknown
+ 105: TypePointer UniformConstant 104
+ 106(g_tTexcdi4): 105(ptr) Variable UniformConstant
+ 109: TypeImage 26(int) Cube depth sampled format:Unknown
+ 110: TypeSampledImage 109
+ 116: TypeImage 38(int) Cube sampled format:Unknown
+ 117: TypePointer UniformConstant 116
+ 118(g_tTexcdu4): 117(ptr) Variable UniformConstant
+ 121: TypeImage 38(int) Cube depth sampled format:Unknown
+ 122: TypeSampledImage 121
+ 127: TypeVector 6(float) 4
+ 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float)
+ 129: TypePointer Function 128(PS_OUTPUT)
+ 131: 26(int) Constant 0
+ 132: 6(float) Constant 1065353216
+ 133: 127(fvec4) ConstantComposite 132 132 132 132
+ 134: TypePointer Function 127(fvec4)
+ 136: 26(int) Constant 1
+ 140: TypeImage 6(float) 3D sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+ 142(g_tTex3df4): 141(ptr) Variable UniformConstant
+ 143: TypeImage 26(int) 3D sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+ 145(g_tTex3di4): 144(ptr) Variable UniformConstant
+ 146: TypeImage 38(int) 3D sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+ 148(g_tTex3du4): 147(ptr) Variable UniformConstant
+ 149: TypeImage 6(float) 1D array sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+151(g_tTex1df4a): 150(ptr) Variable UniformConstant
+ 152: TypeImage 26(int) 1D array sampled format:Unknown
+ 153: TypePointer UniformConstant 152
+154(g_tTex1di4a): 153(ptr) Variable UniformConstant
+ 155: TypeImage 38(int) 1D array sampled format:Unknown
+ 156: TypePointer UniformConstant 155
+157(g_tTex1du4a): 156(ptr) Variable UniformConstant
+ 158: TypeImage 6(float) 2D array sampled format:Unknown
+ 159: TypePointer UniformConstant 158
+160(g_tTex2df4a): 159(ptr) Variable UniformConstant
+ 161: TypeImage 26(int) 2D array sampled format:Unknown
+ 162: TypePointer UniformConstant 161
+163(g_tTex2di4a): 162(ptr) Variable UniformConstant
+ 164: TypeImage 38(int) 2D array sampled format:Unknown
+ 165: TypePointer UniformConstant 164
+166(g_tTex2du4a): 165(ptr) Variable UniformConstant
+ 167: TypeImage 6(float) Cube array sampled format:Unknown
+ 168: TypePointer UniformConstant 167
+169(g_tTexcdf4a): 168(ptr) Variable UniformConstant
+ 170: TypeImage 26(int) Cube array sampled format:Unknown
+ 171: TypePointer UniformConstant 170
+172(g_tTexcdi4a): 171(ptr) Variable UniformConstant
+ 173: TypeImage 38(int) Cube array sampled format:Unknown
+ 174: TypePointer UniformConstant 173
+175(g_tTexcdu4a): 174(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 25(r02): 7(ptr) Variable Function
+ 37(r04): 7(ptr) Variable Function
+ 49(r20): 7(ptr) Variable Function
+ 64(r22): 7(ptr) Variable Function
+ 76(r24): 7(ptr) Variable Function
+ 88(r50): 7(ptr) Variable Function
+ 103(r52): 7(ptr) Variable Function
+ 115(r54): 7(ptr) Variable Function
+ 130(psout): 129(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 23: 6(float) CompositeExtract 20 0
+ 24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22
+ Store 8(r00) 24
+ 30: 27 Load 29(g_tTex1di4)
+ 31: 13 Load 15(g_sSamp)
+ 34: 33 SampledImage 30 31
+ 35: 6(float) CompositeExtract 20 0
+ 36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22
+ Store 25(r02) 36
+ 42: 39 Load 41(g_tTex1du4)
+ 43: 13 Load 15(g_sSamp)
+ 46: 45 SampledImage 42 43
+ 47: 6(float) CompositeExtract 20 0
+ 48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22
+ Store 37(r04) 48
+ 53: 50 Load 52(g_tTex2df4)
+ 54: 13 Load 15(g_sSamp)
+ 57: 56 SampledImage 53 54
+ 61: 6(float) CompositeExtract 60 0
+ 62: 6(float) CompositeExtract 61 0
+ 63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22
+ Store 49(r20) 63
+ 68: 65 Load 67(g_tTex2di4)
+ 69: 13 Load 15(g_sSamp)
+ 72: 71 SampledImage 68 69
+ 73: 6(float) CompositeExtract 60 0
+ 74: 6(float) CompositeExtract 73 0
+ 75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22
+ Store 64(r22) 75
+ 80: 77 Load 79(g_tTex2du4)
+ 81: 13 Load 15(g_sSamp)
+ 84: 83 SampledImage 80 81
+ 85: 6(float) CompositeExtract 60 0
+ 86: 6(float) CompositeExtract 85 0
+ 87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22
+ Store 76(r24) 87
+ 92: 89 Load 91(g_tTexcdf4)
+ 93: 13 Load 15(g_sSamp)
+ 96: 95 SampledImage 92 93
+ 100: 6(float) CompositeExtract 99 0
+ 101: 6(float) CompositeExtract 100 0
+ 102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22
+ Store 88(r50) 102
+ 107: 104 Load 106(g_tTexcdi4)
+ 108: 13 Load 15(g_sSamp)
+ 111: 110 SampledImage 107 108
+ 112: 6(float) CompositeExtract 99 0
+ 113: 6(float) CompositeExtract 112 0
+ 114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22
+ Store 103(r52) 114
+ 119: 116 Load 118(g_tTexcdu4)
+ 120: 13 Load 15(g_sSamp)
+ 123: 122 SampledImage 119 120
+ 124: 6(float) CompositeExtract 99 0
+ 125: 6(float) CompositeExtract 124 0
+ 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22
+ Store 115(r54) 126
+ 135: 134(ptr) AccessChain 130(psout) 131
+ Store 135 133
+ 137: 7(ptr) AccessChain 130(psout) 136
+ Store 137 132
+ 138:128(PS_OUTPUT) Load 130(psout)
+ ReturnValue 138
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
new file mode 100644
index 0000000..68d07d5
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
@@ -0,0 +1,534 @@
+hlsl.samplecmplevelzero.offset.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r01' (temp float)
+0:42 textureLodOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r03' (temp float)
+0:43 textureLodOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r05' (temp float)
+0:44 textureLodOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r21' (temp float)
+0:47 textureLodOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r23' (temp float)
+0:48 textureLodOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r25' (temp float)
+0:49 textureLodOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 Color: direct index for structure (temp 4-component vector of float)
+0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:63 move second child to first child (temp float)
+0:63 Depth: direct index for structure (temp float FragDepth)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 1.000000
+0:65 Branch: Return with expression
+0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:67 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r01' (temp float)
+0:42 textureLodOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DShadow)
+0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec2 (temp float)
+0:42 Constant:
+0:42 0.100000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r03' (temp float)
+0:43 textureLodOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DShadow)
+0:43 'g_tTex1di4' (uniform itexture1D)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec2 (temp float)
+0:43 Constant:
+0:43 0.100000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r05' (temp float)
+0:44 textureLodOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DShadow)
+0:44 'g_tTex1du4' (uniform utexture1D)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec2 (temp float)
+0:44 Constant:
+0:44 0.100000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r21' (temp float)
+0:47 textureLodOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DShadow)
+0:47 'g_tTex2df4' (uniform texture2D)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r23' (temp float)
+0:48 textureLodOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DShadow)
+0:48 'g_tTex2di4' (uniform itexture2D)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r25' (temp float)
+0:49 textureLodOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DShadow)
+0:49 'g_tTex2du4' (uniform utexture2D)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:62 move second child to first child (temp 4-component vector of float)
+0:62 Color: direct index for structure (temp 4-component vector of float)
+0:62 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:62 Constant:
+0:62 0 (const int)
+0:62 Constant:
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:62 1.000000
+0:63 move second child to first child (temp float)
+0:63 Depth: direct index for structure (temp float FragDepth)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 1 (const int)
+0:63 Constant:
+0:63 1.000000
+0:65 Branch: Return with expression
+0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 150
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r01"
+ Name 11 "g_tTex1df4"
+ Name 15 "g_sSamp"
+ Name 27 "r03"
+ Name 30 "g_tTex1di4"
+ Name 38 "r05"
+ Name 42 "g_tTex1du4"
+ Name 50 "r21"
+ Name 53 "g_tTex2df4"
+ Name 68 "r23"
+ Name 71 "g_tTex2di4"
+ Name 80 "r25"
+ Name 83 "g_tTex2du4"
+ Name 93 "PS_OUTPUT"
+ MemberName 93(PS_OUTPUT) 0 "Color"
+ MemberName 93(PS_OUTPUT) 1 "Depth"
+ Name 95 "psout"
+ Name 107 "g_tTex3df4"
+ Name 110 "g_tTex3di4"
+ Name 113 "g_tTex3du4"
+ Name 116 "g_tTexcdf4"
+ Name 119 "g_tTexcdi4"
+ Name 122 "g_tTexcdu4"
+ Name 125 "g_tTex1df4a"
+ Name 128 "g_tTex1di4a"
+ Name 131 "g_tTex1du4a"
+ Name 134 "g_tTex2df4a"
+ Name 137 "g_tTex2di4a"
+ Name 140 "g_tTex2du4a"
+ Name 143 "g_tTexcdf4a"
+ Name 146 "g_tTexcdi4a"
+ Name 149 "g_tTexcdu4a"
+ Decorate 11(g_tTex1df4) DescriptorSet 0
+ Decorate 11(g_tTex1df4) Binding 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 30(g_tTex1di4) DescriptorSet 0
+ Decorate 42(g_tTex1du4) DescriptorSet 0
+ Decorate 53(g_tTex2df4) DescriptorSet 0
+ Decorate 71(g_tTex2di4) DescriptorSet 0
+ Decorate 83(g_tTex2du4) DescriptorSet 0
+ MemberDecorate 93(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 107(g_tTex3df4) DescriptorSet 0
+ Decorate 110(g_tTex3di4) DescriptorSet 0
+ Decorate 113(g_tTex3du4) DescriptorSet 0
+ Decorate 116(g_tTexcdf4) DescriptorSet 0
+ Decorate 119(g_tTexcdi4) DescriptorSet 0
+ Decorate 122(g_tTexcdu4) DescriptorSet 0
+ Decorate 125(g_tTex1df4a) DescriptorSet 0
+ Decorate 128(g_tTex1di4a) DescriptorSet 0
+ Decorate 131(g_tTex1du4a) DescriptorSet 0
+ Decorate 134(g_tTex2df4a) DescriptorSet 0
+ Decorate 137(g_tTex2di4a) DescriptorSet 0
+ Decorate 140(g_tTex2du4a) DescriptorSet 0
+ Decorate 143(g_tTexcdf4a) DescriptorSet 0
+ Decorate 146(g_tTexcdi4a) DescriptorSet 0
+ Decorate 149(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 22: 6(float) Constant 0
+ 23: TypeInt 32 1
+ 24: 23(int) Constant 2
+ 28: TypeImage 23(int) 1D sampled format:Unknown
+ 29: TypePointer UniformConstant 28
+ 30(g_tTex1di4): 29(ptr) Variable UniformConstant
+ 33: TypeImage 23(int) 1D depth sampled format:Unknown
+ 34: TypeSampledImage 33
+ 39: TypeInt 32 0
+ 40: TypeImage 39(int) 1D sampled format:Unknown
+ 41: TypePointer UniformConstant 40
+ 42(g_tTex1du4): 41(ptr) Variable UniformConstant
+ 45: TypeImage 39(int) 1D depth sampled format:Unknown
+ 46: TypeSampledImage 45
+ 51: TypeImage 6(float) 2D sampled format:Unknown
+ 52: TypePointer UniformConstant 51
+ 53(g_tTex2df4): 52(ptr) Variable UniformConstant
+ 56: TypeImage 6(float) 2D depth sampled format:Unknown
+ 57: TypeSampledImage 56
+ 59: TypeVector 6(float) 2
+ 60: 6(float) Constant 1045220557
+ 61: 59(fvec2) ConstantComposite 20 60
+ 63: TypeVector 23(int) 2
+ 64: 23(int) Constant 3
+ 65: 63(ivec2) ConstantComposite 24 64
+ 69: TypeImage 23(int) 2D sampled format:Unknown
+ 70: TypePointer UniformConstant 69
+ 71(g_tTex2di4): 70(ptr) Variable UniformConstant
+ 74: TypeImage 23(int) 2D depth sampled format:Unknown
+ 75: TypeSampledImage 74
+ 81: TypeImage 39(int) 2D sampled format:Unknown
+ 82: TypePointer UniformConstant 81
+ 83(g_tTex2du4): 82(ptr) Variable UniformConstant
+ 86: TypeImage 39(int) 2D depth sampled format:Unknown
+ 87: TypeSampledImage 86
+ 92: TypeVector 6(float) 4
+ 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float)
+ 94: TypePointer Function 93(PS_OUTPUT)
+ 96: 23(int) Constant 0
+ 97: 6(float) Constant 1065353216
+ 98: 92(fvec4) ConstantComposite 97 97 97 97
+ 99: TypePointer Function 92(fvec4)
+ 101: 23(int) Constant 1
+ 105: TypeImage 6(float) 3D sampled format:Unknown
+ 106: TypePointer UniformConstant 105
+ 107(g_tTex3df4): 106(ptr) Variable UniformConstant
+ 108: TypeImage 23(int) 3D sampled format:Unknown
+ 109: TypePointer UniformConstant 108
+ 110(g_tTex3di4): 109(ptr) Variable UniformConstant
+ 111: TypeImage 39(int) 3D sampled format:Unknown
+ 112: TypePointer UniformConstant 111
+ 113(g_tTex3du4): 112(ptr) Variable UniformConstant
+ 114: TypeImage 6(float) Cube sampled format:Unknown
+ 115: TypePointer UniformConstant 114
+ 116(g_tTexcdf4): 115(ptr) Variable UniformConstant
+ 117: TypeImage 23(int) Cube sampled format:Unknown
+ 118: TypePointer UniformConstant 117
+ 119(g_tTexcdi4): 118(ptr) Variable UniformConstant
+ 120: TypeImage 39(int) Cube sampled format:Unknown
+ 121: TypePointer UniformConstant 120
+ 122(g_tTexcdu4): 121(ptr) Variable UniformConstant
+ 123: TypeImage 6(float) 1D array sampled format:Unknown
+ 124: TypePointer UniformConstant 123
+125(g_tTex1df4a): 124(ptr) Variable UniformConstant
+ 126: TypeImage 23(int) 1D array sampled format:Unknown
+ 127: TypePointer UniformConstant 126
+128(g_tTex1di4a): 127(ptr) Variable UniformConstant
+ 129: TypeImage 39(int) 1D array sampled format:Unknown
+ 130: TypePointer UniformConstant 129
+131(g_tTex1du4a): 130(ptr) Variable UniformConstant
+ 132: TypeImage 6(float) 2D array sampled format:Unknown
+ 133: TypePointer UniformConstant 132
+134(g_tTex2df4a): 133(ptr) Variable UniformConstant
+ 135: TypeImage 23(int) 2D array sampled format:Unknown
+ 136: TypePointer UniformConstant 135
+137(g_tTex2di4a): 136(ptr) Variable UniformConstant
+ 138: TypeImage 39(int) 2D array sampled format:Unknown
+ 139: TypePointer UniformConstant 138
+140(g_tTex2du4a): 139(ptr) Variable UniformConstant
+ 141: TypeImage 6(float) Cube array sampled format:Unknown
+ 142: TypePointer UniformConstant 141
+143(g_tTexcdf4a): 142(ptr) Variable UniformConstant
+ 144: TypeImage 23(int) Cube array sampled format:Unknown
+ 145: TypePointer UniformConstant 144
+146(g_tTexcdi4a): 145(ptr) Variable UniformConstant
+ 147: TypeImage 39(int) Cube array sampled format:Unknown
+ 148: TypePointer UniformConstant 147
+149(g_tTexcdu4a): 148(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r01): 7(ptr) Variable Function
+ 27(r03): 7(ptr) Variable Function
+ 38(r05): 7(ptr) Variable Function
+ 50(r21): 7(ptr) Variable Function
+ 68(r23): 7(ptr) Variable Function
+ 80(r25): 7(ptr) Variable Function
+ 95(psout): 94(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 25: 6(float) CompositeExtract 20 0
+ 26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24
+ Store 8(r01) 26
+ 31: 28 Load 30(g_tTex1di4)
+ 32: 13 Load 15(g_sSamp)
+ 35: 34 SampledImage 31 32
+ 36: 6(float) CompositeExtract 20 0
+ 37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24
+ Store 27(r03) 37
+ 43: 40 Load 42(g_tTex1du4)
+ 44: 13 Load 15(g_sSamp)
+ 47: 46 SampledImage 43 44
+ 48: 6(float) CompositeExtract 20 0
+ 49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24
+ Store 38(r05) 49
+ 54: 51 Load 53(g_tTex2df4)
+ 55: 13 Load 15(g_sSamp)
+ 58: 57 SampledImage 54 55
+ 62: 6(float) CompositeExtract 61 0
+ 66: 6(float) CompositeExtract 62 0
+ 67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65
+ Store 50(r21) 67
+ 72: 69 Load 71(g_tTex2di4)
+ 73: 13 Load 15(g_sSamp)
+ 76: 75 SampledImage 72 73
+ 77: 6(float) CompositeExtract 61 0
+ 78: 6(float) CompositeExtract 77 0
+ 79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65
+ Store 68(r23) 79
+ 84: 81 Load 83(g_tTex2du4)
+ 85: 13 Load 15(g_sSamp)
+ 88: 87 SampledImage 84 85
+ 89: 6(float) CompositeExtract 61 0
+ 90: 6(float) CompositeExtract 89 0
+ 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65
+ Store 80(r25) 91
+ 100: 99(ptr) AccessChain 95(psout) 96
+ Store 100 98
+ 102: 7(ptr) AccessChain 95(psout) 101
+ Store 102 97
+ 103:93(PS_OUTPUT) Load 95(psout)
+ ReturnValue 103
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
new file mode 100644
index 0000000..627b023
--- /dev/null
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
@@ -0,0 +1,552 @@
+hlsl.samplecmplevelzero.offsetarray.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r11' (temp float)
+0:42 textureLodOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r13' (temp float)
+0:43 textureLodOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r15' (temp float)
+0:44 textureLodOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r31' (temp float)
+0:47 textureLodOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r33' (temp float)
+0:48 textureLodOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r35' (temp float)
+0:49 textureLodOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:63 move second child to first child (temp 4-component vector of float)
+0:63 Color: direct index for structure (temp 4-component vector of float)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:64 move second child to first child (temp float)
+0:64 Depth: direct index for structure (temp float FragDepth)
+0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 1.000000
+0:66 Branch: Return with expression
+0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:68 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:38 Function Parameters:
+0:? Sequence
+0:42 Sequence
+0:42 move second child to first child (temp float)
+0:42 'r11' (temp float)
+0:42 textureLodOffset (global float)
+0:42 Construct combined texture-sampler (temp sampler1DArrayShadow)
+0:42 'g_tTex1df4a' (uniform texture1DArray)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:42 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:42 Constant:
+0:42 0.750000
+0:42 Constant:
+0:42 0.000000
+0:42 Constant:
+0:42 2 (const int)
+0:43 Sequence
+0:43 move second child to first child (temp float)
+0:43 'r13' (temp float)
+0:43 textureLodOffset (global float)
+0:43 Construct combined texture-sampler (temp isampler1DArrayShadow)
+0:43 'g_tTex1di4a' (uniform itexture1DArray)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:43 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:43 Constant:
+0:43 0.750000
+0:43 Constant:
+0:43 0.000000
+0:43 Constant:
+0:43 2 (const int)
+0:44 Sequence
+0:44 move second child to first child (temp float)
+0:44 'r15' (temp float)
+0:44 textureLodOffset (global float)
+0:44 Construct combined texture-sampler (temp usampler1DArrayShadow)
+0:44 'g_tTex1du4a' (uniform utexture1DArray)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:44 Construct vec3 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:44 Constant:
+0:44 0.750000
+0:44 Constant:
+0:44 0.000000
+0:44 Constant:
+0:44 2 (const int)
+0:47 Sequence
+0:47 move second child to first child (temp float)
+0:47 'r31' (temp float)
+0:47 textureLodOffset (global float)
+0:47 Construct combined texture-sampler (temp sampler2DArrayShadow)
+0:47 'g_tTex2df4a' (uniform texture2DArray)
+0:47 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:47 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:47 Constant:
+0:47 0.750000
+0:47 Constant:
+0:47 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:48 Sequence
+0:48 move second child to first child (temp float)
+0:48 'r33' (temp float)
+0:48 textureLodOffset (global float)
+0:48 Construct combined texture-sampler (temp isampler2DArrayShadow)
+0:48 'g_tTex2di4a' (uniform itexture2DArray)
+0:48 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:48 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:48 Constant:
+0:48 0.750000
+0:48 Constant:
+0:48 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:49 Sequence
+0:49 move second child to first child (temp float)
+0:49 'r35' (temp float)
+0:49 textureLodOffset (global float)
+0:49 Construct combined texture-sampler (temp usampler2DArrayShadow)
+0:49 'g_tTex2du4a' (uniform utexture2DArray)
+0:49 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:49 Construct vec4 (temp float)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:49 Constant:
+0:49 0.750000
+0:49 Constant:
+0:49 0.000000
+0:? Constant:
+0:? 2 (const int)
+0:? 3 (const int)
+0:63 move second child to first child (temp 4-component vector of float)
+0:63 Color: direct index for structure (temp 4-component vector of float)
+0:63 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:63 Constant:
+0:63 0 (const int)
+0:63 Constant:
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:63 1.000000
+0:64 move second child to first child (temp float)
+0:64 Depth: direct index for structure (temp float FragDepth)
+0:64 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:64 Constant:
+0:64 1 (const int)
+0:64 Constant:
+0:64 1.000000
+0:66 Branch: Return with expression
+0:66 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+0:? 'g_tTex1df4a' (uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 156
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 8 "r11"
+ Name 11 "g_tTex1df4a"
+ Name 15 "g_sSamp"
+ Name 31 "r13"
+ Name 34 "g_tTex1di4a"
+ Name 43 "r15"
+ Name 47 "g_tTex1du4a"
+ Name 56 "r31"
+ Name 59 "g_tTex2df4a"
+ Name 74 "r33"
+ Name 77 "g_tTex2di4a"
+ Name 86 "r35"
+ Name 89 "g_tTex2du4a"
+ Name 99 "PS_OUTPUT"
+ MemberName 99(PS_OUTPUT) 0 "Color"
+ MemberName 99(PS_OUTPUT) 1 "Depth"
+ Name 101 "psout"
+ Name 113 "g_tTex1df4"
+ Name 116 "g_tTex1di4"
+ Name 119 "g_tTex1du4"
+ Name 122 "g_tTex2df4"
+ Name 125 "g_tTex2di4"
+ Name 128 "g_tTex2du4"
+ Name 131 "g_tTex3df4"
+ Name 134 "g_tTex3di4"
+ Name 137 "g_tTex3du4"
+ Name 140 "g_tTexcdf4"
+ Name 143 "g_tTexcdi4"
+ Name 146 "g_tTexcdu4"
+ Name 149 "g_tTexcdf4a"
+ Name 152 "g_tTexcdi4a"
+ Name 155 "g_tTexcdu4a"
+ Decorate 11(g_tTex1df4a) DescriptorSet 0
+ Decorate 15(g_sSamp) DescriptorSet 0
+ Decorate 15(g_sSamp) Binding 0
+ Decorate 34(g_tTex1di4a) DescriptorSet 0
+ Decorate 47(g_tTex1du4a) DescriptorSet 0
+ Decorate 59(g_tTex2df4a) DescriptorSet 0
+ Decorate 77(g_tTex2di4a) DescriptorSet 0
+ Decorate 89(g_tTex2du4a) DescriptorSet 0
+ MemberDecorate 99(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 113(g_tTex1df4) DescriptorSet 0
+ Decorate 113(g_tTex1df4) Binding 0
+ Decorate 116(g_tTex1di4) DescriptorSet 0
+ Decorate 119(g_tTex1du4) DescriptorSet 0
+ Decorate 122(g_tTex2df4) DescriptorSet 0
+ Decorate 125(g_tTex2di4) DescriptorSet 0
+ Decorate 128(g_tTex2du4) DescriptorSet 0
+ Decorate 131(g_tTex3df4) DescriptorSet 0
+ Decorate 134(g_tTex3di4) DescriptorSet 0
+ Decorate 137(g_tTex3du4) DescriptorSet 0
+ Decorate 140(g_tTexcdf4) DescriptorSet 0
+ Decorate 143(g_tTexcdi4) DescriptorSet 0
+ Decorate 146(g_tTexcdu4) DescriptorSet 0
+ Decorate 149(g_tTexcdf4a) DescriptorSet 0
+ Decorate 152(g_tTexcdi4a) DescriptorSet 0
+ Decorate 155(g_tTexcdu4a) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D array sampled format:Unknown
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df4a): 10(ptr) Variable UniformConstant
+ 13: TypeSampler
+ 14: TypePointer UniformConstant 13
+ 15(g_sSamp): 14(ptr) Variable UniformConstant
+ 17: TypeImage 6(float) 1D depth array sampled format:Unknown
+ 18: TypeSampledImage 17
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: 6(float) Constant 1061158912
+ 26: 6(float) Constant 0
+ 27: TypeInt 32 1
+ 28: 27(int) Constant 2
+ 32: TypeImage 27(int) 1D array sampled format:Unknown
+ 33: TypePointer UniformConstant 32
+ 34(g_tTex1di4a): 33(ptr) Variable UniformConstant
+ 37: TypeImage 27(int) 1D depth array sampled format:Unknown
+ 38: TypeSampledImage 37
+ 44: TypeInt 32 0
+ 45: TypeImage 44(int) 1D array sampled format:Unknown
+ 46: TypePointer UniformConstant 45
+ 47(g_tTex1du4a): 46(ptr) Variable UniformConstant
+ 50: TypeImage 44(int) 1D depth array sampled format:Unknown
+ 51: TypeSampledImage 50
+ 57: TypeImage 6(float) 2D array sampled format:Unknown
+ 58: TypePointer UniformConstant 57
+ 59(g_tTex2df4a): 58(ptr) Variable UniformConstant
+ 62: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 63: TypeSampledImage 62
+ 65: TypeVector 6(float) 3
+ 66: 6(float) Constant 1050253722
+ 67: 65(fvec3) ConstantComposite 21 22 66
+ 69: TypeVector 27(int) 2
+ 70: 27(int) Constant 3
+ 71: 69(ivec2) ConstantComposite 28 70
+ 75: TypeImage 27(int) 2D array sampled format:Unknown
+ 76: TypePointer UniformConstant 75
+ 77(g_tTex2di4a): 76(ptr) Variable UniformConstant
+ 80: TypeImage 27(int) 2D depth array sampled format:Unknown
+ 81: TypeSampledImage 80
+ 87: TypeImage 44(int) 2D array sampled format:Unknown
+ 88: TypePointer UniformConstant 87
+ 89(g_tTex2du4a): 88(ptr) Variable UniformConstant
+ 92: TypeImage 44(int) 2D depth array sampled format:Unknown
+ 93: TypeSampledImage 92
+ 98: TypeVector 6(float) 4
+ 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float)
+ 100: TypePointer Function 99(PS_OUTPUT)
+ 102: 27(int) Constant 0
+ 103: 6(float) Constant 1065353216
+ 104: 98(fvec4) ConstantComposite 103 103 103 103
+ 105: TypePointer Function 98(fvec4)
+ 107: 27(int) Constant 1
+ 111: TypeImage 6(float) 1D sampled format:Unknown
+ 112: TypePointer UniformConstant 111
+ 113(g_tTex1df4): 112(ptr) Variable UniformConstant
+ 114: TypeImage 27(int) 1D sampled format:Unknown
+ 115: TypePointer UniformConstant 114
+ 116(g_tTex1di4): 115(ptr) Variable UniformConstant
+ 117: TypeImage 44(int) 1D sampled format:Unknown
+ 118: TypePointer UniformConstant 117
+ 119(g_tTex1du4): 118(ptr) Variable UniformConstant
+ 120: TypeImage 6(float) 2D sampled format:Unknown
+ 121: TypePointer UniformConstant 120
+ 122(g_tTex2df4): 121(ptr) Variable UniformConstant
+ 123: TypeImage 27(int) 2D sampled format:Unknown
+ 124: TypePointer UniformConstant 123
+ 125(g_tTex2di4): 124(ptr) Variable UniformConstant
+ 126: TypeImage 44(int) 2D sampled format:Unknown
+ 127: TypePointer UniformConstant 126
+ 128(g_tTex2du4): 127(ptr) Variable UniformConstant
+ 129: TypeImage 6(float) 3D sampled format:Unknown
+ 130: TypePointer UniformConstant 129
+ 131(g_tTex3df4): 130(ptr) Variable UniformConstant
+ 132: TypeImage 27(int) 3D sampled format:Unknown
+ 133: TypePointer UniformConstant 132
+ 134(g_tTex3di4): 133(ptr) Variable UniformConstant
+ 135: TypeImage 44(int) 3D sampled format:Unknown
+ 136: TypePointer UniformConstant 135
+ 137(g_tTex3du4): 136(ptr) Variable UniformConstant
+ 138: TypeImage 6(float) Cube sampled format:Unknown
+ 139: TypePointer UniformConstant 138
+ 140(g_tTexcdf4): 139(ptr) Variable UniformConstant
+ 141: TypeImage 27(int) Cube sampled format:Unknown
+ 142: TypePointer UniformConstant 141
+ 143(g_tTexcdi4): 142(ptr) Variable UniformConstant
+ 144: TypeImage 44(int) Cube sampled format:Unknown
+ 145: TypePointer UniformConstant 144
+ 146(g_tTexcdu4): 145(ptr) Variable UniformConstant
+ 147: TypeImage 6(float) Cube array sampled format:Unknown
+ 148: TypePointer UniformConstant 147
+149(g_tTexcdf4a): 148(ptr) Variable UniformConstant
+ 150: TypeImage 27(int) Cube array sampled format:Unknown
+ 151: TypePointer UniformConstant 150
+152(g_tTexcdi4a): 151(ptr) Variable UniformConstant
+ 153: TypeImage 44(int) Cube array sampled format:Unknown
+ 154: TypePointer UniformConstant 153
+155(g_tTexcdu4a): 154(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r11): 7(ptr) Variable Function
+ 31(r13): 7(ptr) Variable Function
+ 43(r15): 7(ptr) Variable Function
+ 56(r31): 7(ptr) Variable Function
+ 74(r33): 7(ptr) Variable Function
+ 86(r35): 7(ptr) Variable Function
+ 101(psout): 100(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df4a)
+ 16: 13 Load 15(g_sSamp)
+ 19: 18 SampledImage 12 16
+ 25: 6(float) CompositeExtract 23 0
+ 29: 6(float) CompositeExtract 25 0
+ 30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28
+ Store 8(r11) 30
+ 35: 32 Load 34(g_tTex1di4a)
+ 36: 13 Load 15(g_sSamp)
+ 39: 38 SampledImage 35 36
+ 40: 6(float) CompositeExtract 23 0
+ 41: 6(float) CompositeExtract 40 0
+ 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28
+ Store 31(r13) 42
+ 48: 45 Load 47(g_tTex1du4a)
+ 49: 13 Load 15(g_sSamp)
+ 52: 51 SampledImage 48 49
+ 53: 6(float) CompositeExtract 23 0
+ 54: 6(float) CompositeExtract 53 0
+ 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28
+ Store 43(r15) 55
+ 60: 57 Load 59(g_tTex2df4a)
+ 61: 13 Load 15(g_sSamp)
+ 64: 63 SampledImage 60 61
+ 68: 6(float) CompositeExtract 67 0
+ 72: 6(float) CompositeExtract 68 0
+ 73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71
+ Store 56(r31) 73
+ 78: 75 Load 77(g_tTex2di4a)
+ 79: 13 Load 15(g_sSamp)
+ 82: 81 SampledImage 78 79
+ 83: 6(float) CompositeExtract 67 0
+ 84: 6(float) CompositeExtract 83 0
+ 85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71
+ Store 74(r33) 85
+ 90: 87 Load 89(g_tTex2du4a)
+ 91: 13 Load 15(g_sSamp)
+ 94: 93 SampledImage 90 91
+ 95: 6(float) CompositeExtract 67 0
+ 96: 6(float) CompositeExtract 95 0
+ 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71
+ Store 86(r35) 97
+ 106: 105(ptr) AccessChain 101(psout) 102
+ Store 106 104
+ 108: 7(ptr) AccessChain 101(psout) 107
+ Store 108 103
+ 109:99(PS_OUTPUT) Load 101(psout)
+ ReturnValue 109
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index 4d3a096..6da919a 100644
--- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -10,8 +10,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 textureGrad (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -25,7 +25,7 @@
0:28 textureGrad (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -39,7 +39,7 @@
0:29 textureGrad (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -53,7 +53,7 @@
0:31 textureGrad (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -70,7 +70,7 @@
0:32 textureGrad (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -87,7 +87,7 @@
0:33 textureGrad (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -104,7 +104,7 @@
0:35 textureGrad (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4' (uniform textureCubeArray)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -124,7 +124,7 @@
0:36 textureGrad (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -144,7 +144,7 @@
0:37 textureGrad (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -158,6 +158,16 @@
0:? 1.100000
0:? 1.200000
0:? 1.300000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float FragDepth)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -168,9 +178,9 @@
0:42 Branch: Return with expression
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -195,8 +205,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 textureGrad (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -210,7 +220,7 @@
0:28 textureGrad (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -224,7 +234,7 @@
0:29 textureGrad (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -238,7 +248,7 @@
0:31 textureGrad (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -255,7 +265,7 @@
0:32 textureGrad (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -272,7 +282,7 @@
0:33 textureGrad (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -289,7 +299,7 @@
0:35 textureGrad (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp samplerCubeArray)
0:35 'g_tTexcdf4' (uniform textureCubeArray)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -309,7 +319,7 @@
0:36 textureGrad (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isamplerCubeArray)
0:36 'g_tTexcdi4' (uniform itextureCubeArray)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -329,7 +339,7 @@
0:37 textureGrad (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usamplerCubeArray)
0:37 'g_tTexcdu4' (uniform utextureCubeArray)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -343,6 +353,16 @@
0:? 1.100000
0:? 1.200000
0:? 1.300000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
0:40 move second child to first child (temp float)
0:40 Depth: direct index for structure (temp float FragDepth)
0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -353,9 +373,9 @@
0:42 Branch: Return with expression
0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -367,7 +387,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 123
+// Id's are bound by 126
Capability Shader
Capability Sampled1D
@@ -401,9 +421,11 @@
MemberName 113(PS_OUTPUT) 0 "Color"
MemberName 113(PS_OUTPUT) 1 "Depth"
Name 115 "psout"
- Name 122 "g_tTex1df4a"
+ Name 125 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 33(g_tTex1di4) DescriptorSet 0
Decorate 45(g_tTex1du4) DescriptorSet 0
Decorate 54(g_tTex2df4) DescriptorSet 0
@@ -413,7 +435,8 @@
Decorate 98(g_tTexcdi4) DescriptorSet 0
Decorate 107(g_tTexcdu4) DescriptorSet 0
MemberDecorate 113(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 122(g_tTex1df4a) DescriptorSet 0
+ Decorate 125(g_tTex1df4a) DescriptorSet 0
+ Decorate 125(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -480,10 +503,12 @@
110: TypeSampledImage 105
113(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
114: TypePointer Function 113(PS_OUTPUT)
- 116: 27(int) Constant 1
+ 116: 27(int) Constant 0
117: 6(float) Constant 1065353216
- 118: TypePointer Function 6(float)
-122(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 118: 7(fvec4) ConstantComposite 117 117 117 117
+ 120: 27(int) Constant 1
+ 121: TypePointer Function 6(float)
+125(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -541,8 +566,10 @@
111: 110 SampledImage 108 109
112: 40(ivec4) ImageSampleExplicitLod 111 91 Grad 93 93
Store 104(txval42) 112
- 119: 118(ptr) AccessChain 115(psout) 116
- Store 119 117
- 120:113(PS_OUTPUT) Load 115(psout)
- ReturnValue 120
+ 119: 8(ptr) AccessChain 115(psout) 116
+ Store 119 118
+ 122: 121(ptr) AccessChain 115(psout) 120
+ Store 122 117
+ 123:113(PS_OUTPUT) Load 115(psout)
+ ReturnValue 123
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index ac5442e..0685dc2 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -10,8 +10,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureGrad (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -24,7 +24,7 @@
0:32 textureGrad (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -37,7 +37,7 @@
0:33 textureGrad (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -50,7 +50,7 @@
0:35 textureGrad (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -66,7 +66,7 @@
0:36 textureGrad (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -82,7 +82,7 @@
0:37 textureGrad (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -98,7 +98,7 @@
0:39 textureGrad (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -117,7 +117,7 @@
0:40 textureGrad (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -136,7 +136,7 @@
0:41 textureGrad (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -155,7 +155,7 @@
0:43 textureGrad (global 4-component vector of float)
0:43 Construct combined texture-sampler (temp samplerCube)
0:43 'g_tTexcdf4' (uniform textureCube)
-0:43 'g_sSamp' (uniform sampler)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -174,7 +174,7 @@
0:44 textureGrad (global 4-component vector of int)
0:44 Construct combined texture-sampler (temp isamplerCube)
0:44 'g_tTexcdi4' (uniform itextureCube)
-0:44 'g_sSamp' (uniform sampler)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -193,7 +193,7 @@
0:45 textureGrad (global 4-component vector of uint)
0:45 Construct combined texture-sampler (temp usamplerCube)
0:45 'g_tTexcdu4' (uniform utextureCube)
-0:45 'g_sSamp' (uniform sampler)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -206,6 +206,16 @@
0:? 1.100000
0:? 1.200000
0:? 1.300000
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 Color: direct index for structure (temp 4-component vector of float)
+0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
0:48 move second child to first child (temp float)
0:48 Depth: direct index for structure (temp float FragDepth)
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -216,9 +226,9 @@
0:50 Branch: Return with expression
0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -246,8 +256,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureGrad (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -260,7 +270,7 @@
0:32 textureGrad (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -273,7 +283,7 @@
0:33 textureGrad (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -286,7 +296,7 @@
0:35 textureGrad (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -302,7 +312,7 @@
0:36 textureGrad (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -318,7 +328,7 @@
0:37 textureGrad (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -334,7 +344,7 @@
0:39 textureGrad (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -353,7 +363,7 @@
0:40 textureGrad (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -372,7 +382,7 @@
0:41 textureGrad (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -391,7 +401,7 @@
0:43 textureGrad (global 4-component vector of float)
0:43 Construct combined texture-sampler (temp samplerCube)
0:43 'g_tTexcdf4' (uniform textureCube)
-0:43 'g_sSamp' (uniform sampler)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -410,7 +420,7 @@
0:44 textureGrad (global 4-component vector of int)
0:44 Construct combined texture-sampler (temp isamplerCube)
0:44 'g_tTexcdi4' (uniform itextureCube)
-0:44 'g_sSamp' (uniform sampler)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -429,7 +439,7 @@
0:45 textureGrad (global 4-component vector of uint)
0:45 Construct combined texture-sampler (temp usamplerCube)
0:45 'g_tTexcdu4' (uniform utextureCube)
-0:45 'g_sSamp' (uniform sampler)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -442,6 +452,16 @@
0:? 1.100000
0:? 1.200000
0:? 1.300000
+0:47 move second child to first child (temp 4-component vector of float)
+0:47 Color: direct index for structure (temp 4-component vector of float)
+0:47 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
+0:47 1.000000
0:48 move second child to first child (temp float)
0:48 Depth: direct index for structure (temp float FragDepth)
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -452,9 +472,9 @@
0:50 Branch: Return with expression
0:50 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -469,7 +489,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 158
+// Id's are bound by 161
Capability Shader
Capability Sampled1D
@@ -508,9 +528,11 @@
MemberName 148(PS_OUTPUT) 0 "Color"
MemberName 148(PS_OUTPUT) 1 "Depth"
Name 150 "psout"
- Name 157 "g_tTex1df4a"
+ Name 160 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 30(g_tTex1di4) DescriptorSet 0
Decorate 43(g_tTex1du4) DescriptorSet 0
Decorate 53(g_tTex2df4) DescriptorSet 0
@@ -523,7 +545,8 @@
Decorate 133(g_tTexcdi4) DescriptorSet 0
Decorate 142(g_tTexcdu4) DescriptorSet 0
MemberDecorate 148(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 157(g_tTex1df4a) DescriptorSet 0
+ Decorate 160(g_tTex1df4a) DescriptorSet 0
+ Decorate 160(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -610,10 +633,12 @@
145: TypeSampledImage 140
148(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
149: TypePointer Function 148(PS_OUTPUT)
- 151: 24(int) Constant 1
+ 151: 24(int) Constant 0
152: 6(float) Constant 1065353216
- 153: TypePointer Function 6(float)
-157(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 153: 7(fvec4) ConstantComposite 152 152 152 152
+ 155: 24(int) Constant 1
+ 156: TypePointer Function 6(float)
+160(g_tTex1df4a): 11(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -689,8 +714,10 @@
146: 145 SampledImage 143 144
147: 38(ivec4) ImageSampleExplicitLod 146 119 Grad 96 96
Store 139(txval42) 147
- 154: 153(ptr) AccessChain 150(psout) 151
- Store 154 152
- 155:148(PS_OUTPUT) Load 150(psout)
- ReturnValue 155
+ 154: 8(ptr) AccessChain 150(psout) 151
+ Store 154 153
+ 157: 156(ptr) AccessChain 150(psout) 155
+ Store 157 152
+ 158:148(PS_OUTPUT) Load 150(psout)
+ ReturnValue 158
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index 7b4cbde..eacddae 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -9,8 +9,8 @@
0:30 'txval10' (temp 4-component vector of float)
0:30 textureGrad (global 4-component vector of float)
0:30 Construct combined texture-sampler (temp sampler1D)
-0:30 'g_tTex1df4' (uniform texture1D)
-0:30 'g_sSamp' (uniform sampler)
+0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:30 Constant:
0:30 0.100000
0:30 Constant:
@@ -23,7 +23,7 @@
0:31 textureGrad (global 4-component vector of int)
0:31 Construct combined texture-sampler (temp isampler1D)
0:31 'g_tTex1di4' (uniform itexture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.200000
0:31 Constant:
@@ -36,7 +36,7 @@
0:32 textureGrad (global 4-component vector of uint)
0:32 Construct combined texture-sampler (temp usampler1D)
0:32 'g_tTex1du4' (uniform utexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.300000
0:32 Constant:
@@ -49,7 +49,7 @@
0:34 textureGrad (global 4-component vector of float)
0:34 Construct combined texture-sampler (temp sampler2D)
0:34 'g_tTex2df4' (uniform texture2D)
-0:34 'g_sSamp' (uniform sampler)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -65,7 +65,7 @@
0:35 textureGrad (global 4-component vector of int)
0:35 Construct combined texture-sampler (temp isampler2D)
0:35 'g_tTex2di4' (uniform itexture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -81,7 +81,7 @@
0:36 textureGrad (global 4-component vector of uint)
0:36 Construct combined texture-sampler (temp usampler2D)
0:36 'g_tTex2du4' (uniform utexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -97,7 +97,7 @@
0:38 textureGrad (global 4-component vector of float)
0:38 Construct combined texture-sampler (temp sampler3D)
0:38 'g_tTex3df4' (uniform texture3D)
-0:38 'g_sSamp' (uniform sampler)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -116,7 +116,7 @@
0:39 textureGrad (global 4-component vector of int)
0:39 Construct combined texture-sampler (temp isampler3D)
0:39 'g_tTex3di4' (uniform itexture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -135,7 +135,7 @@
0:40 textureGrad (global 4-component vector of uint)
0:40 Construct combined texture-sampler (temp usampler3D)
0:40 'g_tTex3du4' (uniform utexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -154,7 +154,7 @@
0:42 textureGrad (global 4-component vector of float)
0:42 Construct combined texture-sampler (temp samplerCube)
0:42 'g_tTexcdf4' (uniform textureCube)
-0:42 'g_sSamp' (uniform sampler)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -173,7 +173,7 @@
0:43 textureGrad (global 4-component vector of int)
0:43 Construct combined texture-sampler (temp isamplerCube)
0:43 'g_tTexcdi4' (uniform itextureCube)
-0:43 'g_sSamp' (uniform sampler)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -192,7 +192,7 @@
0:44 textureGrad (global 4-component vector of uint)
0:44 Construct combined texture-sampler (temp usamplerCube)
0:44 'g_tTexcdu4' (uniform utextureCube)
-0:44 'g_sSamp' (uniform sampler)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -218,9 +218,9 @@
0:48 Branch: Return with expression
0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -247,8 +247,8 @@
0:30 'txval10' (temp 4-component vector of float)
0:30 textureGrad (global 4-component vector of float)
0:30 Construct combined texture-sampler (temp sampler1D)
-0:30 'g_tTex1df4' (uniform texture1D)
-0:30 'g_sSamp' (uniform sampler)
+0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:30 Constant:
0:30 0.100000
0:30 Constant:
@@ -261,7 +261,7 @@
0:31 textureGrad (global 4-component vector of int)
0:31 Construct combined texture-sampler (temp isampler1D)
0:31 'g_tTex1di4' (uniform itexture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.200000
0:31 Constant:
@@ -274,7 +274,7 @@
0:32 textureGrad (global 4-component vector of uint)
0:32 Construct combined texture-sampler (temp usampler1D)
0:32 'g_tTex1du4' (uniform utexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.300000
0:32 Constant:
@@ -287,7 +287,7 @@
0:34 textureGrad (global 4-component vector of float)
0:34 Construct combined texture-sampler (temp sampler2D)
0:34 'g_tTex2df4' (uniform texture2D)
-0:34 'g_sSamp' (uniform sampler)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -303,7 +303,7 @@
0:35 textureGrad (global 4-component vector of int)
0:35 Construct combined texture-sampler (temp isampler2D)
0:35 'g_tTex2di4' (uniform itexture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -319,7 +319,7 @@
0:36 textureGrad (global 4-component vector of uint)
0:36 Construct combined texture-sampler (temp usampler2D)
0:36 'g_tTex2du4' (uniform utexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -335,7 +335,7 @@
0:38 textureGrad (global 4-component vector of float)
0:38 Construct combined texture-sampler (temp sampler3D)
0:38 'g_tTex3df4' (uniform texture3D)
-0:38 'g_sSamp' (uniform sampler)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -354,7 +354,7 @@
0:39 textureGrad (global 4-component vector of int)
0:39 Construct combined texture-sampler (temp isampler3D)
0:39 'g_tTex3di4' (uniform itexture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -373,7 +373,7 @@
0:40 textureGrad (global 4-component vector of uint)
0:40 Construct combined texture-sampler (temp usampler3D)
0:40 'g_tTex3du4' (uniform utexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -392,7 +392,7 @@
0:42 textureGrad (global 4-component vector of float)
0:42 Construct combined texture-sampler (temp samplerCube)
0:42 'g_tTexcdf4' (uniform textureCube)
-0:42 'g_sSamp' (uniform sampler)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -411,7 +411,7 @@
0:43 textureGrad (global 4-component vector of int)
0:43 Construct combined texture-sampler (temp isamplerCube)
0:43 'g_tTexcdi4' (uniform itextureCube)
-0:43 'g_sSamp' (uniform sampler)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -430,7 +430,7 @@
0:44 textureGrad (global 4-component vector of uint)
0:44 Construct combined texture-sampler (temp usamplerCube)
0:44 'g_tTexcdu4' (uniform utextureCube)
-0:44 'g_sSamp' (uniform sampler)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -456,9 +456,9 @@
0:48 Branch: Return with expression
0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -512,7 +512,9 @@
Name 150 "vsout"
Name 157 "g_tTex1df4a"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 30(g_tTex1di4) DescriptorSet 0
Decorate 43(g_tTex1du4) DescriptorSet 0
Decorate 53(g_tTex2df4) DescriptorSet 0
@@ -526,6 +528,7 @@
Decorate 142(g_tTexcdu4) DescriptorSet 0
MemberDecorate 148(VS_OUTPUT) 0 BuiltIn FragCoord
Decorate 157(g_tTex1df4a) DescriptorSet 0
+ Decorate 157(g_tTex1df4a) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index 30f5d06..343babc 100644
--- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -10,8 +10,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureGradOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -26,7 +26,7 @@
0:32 textureGradOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -41,7 +41,7 @@
0:33 textureGradOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -56,7 +56,7 @@
0:35 textureGradOffset (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -75,7 +75,7 @@
0:36 textureGradOffset (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -94,7 +94,7 @@
0:37 textureGradOffset (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -113,7 +113,7 @@
0:39 textureGradOffset (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -136,7 +136,7 @@
0:40 textureGradOffset (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -159,7 +159,7 @@
0:41 textureGradOffset (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -176,6 +176,16 @@
0:? 1 (const int)
0:? 0 (const int)
0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
0:46 move second child to first child (temp float)
0:46 Depth: direct index for structure (temp float FragDepth)
0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -186,9 +196,9 @@
0:48 Branch: Return with expression
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -216,8 +226,8 @@
0:31 'txval10' (temp 4-component vector of float)
0:31 textureGradOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler1D)
-0:31 'g_tTex1df4' (uniform texture1D)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:31 Constant:
0:31 0.100000
0:31 Constant:
@@ -232,7 +242,7 @@
0:32 textureGradOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler1D)
0:32 'g_tTex1di4' (uniform itexture1D)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:32 Constant:
0:32 0.200000
0:32 Constant:
@@ -247,7 +257,7 @@
0:33 textureGradOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler1D)
0:33 'g_tTex1du4' (uniform utexture1D)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:33 Constant:
0:33 0.300000
0:33 Constant:
@@ -262,7 +272,7 @@
0:35 textureGradOffset (global 4-component vector of float)
0:35 Construct combined texture-sampler (temp sampler2D)
0:35 'g_tTex2df4' (uniform texture2D)
-0:35 'g_sSamp' (uniform sampler)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -281,7 +291,7 @@
0:36 textureGradOffset (global 4-component vector of int)
0:36 Construct combined texture-sampler (temp isampler2D)
0:36 'g_tTex2di4' (uniform itexture2D)
-0:36 'g_sSamp' (uniform sampler)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.300000
0:? 0.400000
@@ -300,7 +310,7 @@
0:37 textureGradOffset (global 4-component vector of uint)
0:37 Construct combined texture-sampler (temp usampler2D)
0:37 'g_tTex2du4' (uniform utexture2D)
-0:37 'g_sSamp' (uniform sampler)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.500000
0:? 0.600000
@@ -319,7 +329,7 @@
0:39 textureGradOffset (global 4-component vector of float)
0:39 Construct combined texture-sampler (temp sampler3D)
0:39 'g_tTex3df4' (uniform texture3D)
-0:39 'g_sSamp' (uniform sampler)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -342,7 +352,7 @@
0:40 textureGradOffset (global 4-component vector of int)
0:40 Construct combined texture-sampler (temp isampler3D)
0:40 'g_tTex3di4' (uniform itexture3D)
-0:40 'g_sSamp' (uniform sampler)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.400000
0:? 0.500000
@@ -365,7 +375,7 @@
0:41 textureGradOffset (global 4-component vector of uint)
0:41 Construct combined texture-sampler (temp usampler3D)
0:41 'g_tTex3du4' (uniform utexture3D)
-0:41 'g_sSamp' (uniform sampler)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.700000
0:? 0.800000
@@ -382,6 +392,16 @@
0:? 1 (const int)
0:? 0 (const int)
0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
0:46 move second child to first child (temp float)
0:46 Depth: direct index for structure (temp float FragDepth)
0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -392,9 +412,9 @@
0:48 Branch: Return with expression
0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1D)
-0:? 'g_tTex1df4' (uniform texture1D)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
0:? 'g_tTex1du4' (uniform utexture1D)
0:? 'g_tTex2df4' (uniform texture2D)
@@ -409,7 +429,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 150
+// Id's are bound by 152
Capability Shader
Capability Sampled1D
@@ -442,12 +462,14 @@
MemberName 132(PS_OUTPUT) 0 "Color"
MemberName 132(PS_OUTPUT) 1 "Depth"
Name 134 "psout"
- Name 140 "g_tTex1df4a"
- Name 143 "g_tTexcdf4"
- Name 146 "g_tTexcdi4"
- Name 149 "g_tTexcdu4"
+ Name 142 "g_tTex1df4a"
+ Name 145 "g_tTexcdf4"
+ Name 148 "g_tTexcdi4"
+ Name 151 "g_tTexcdu4"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 31(g_tTex1di4) DescriptorSet 0
Decorate 44(g_tTex1du4) DescriptorSet 0
Decorate 54(g_tTex2df4) DescriptorSet 0
@@ -457,10 +479,11 @@
Decorate 110(g_tTex3di4) DescriptorSet 0
Decorate 121(g_tTex3du4) DescriptorSet 0
MemberDecorate 132(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 140(g_tTex1df4a) DescriptorSet 0
- Decorate 143(g_tTexcdf4) DescriptorSet 0
- Decorate 146(g_tTexcdi4) DescriptorSet 0
- Decorate 149(g_tTexcdu4) DescriptorSet 0
+ Decorate 142(g_tTex1df4a) DescriptorSet 0
+ Decorate 142(g_tTex1df4a) Binding 1
+ Decorate 145(g_tTexcdf4) DescriptorSet 0
+ Decorate 148(g_tTexcdi4) DescriptorSet 0
+ Decorate 151(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -547,17 +570,18 @@
132(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
133: TypePointer Function 132(PS_OUTPUT)
135: 6(float) Constant 1065353216
- 136: TypePointer Function 6(float)
-140(g_tTex1df4a): 11(ptr) Variable UniformConstant
- 141: TypeImage 6(float) Cube sampled format:Unknown
- 142: TypePointer UniformConstant 141
- 143(g_tTexcdf4): 142(ptr) Variable UniformConstant
- 144: TypeImage 23(int) Cube sampled format:Unknown
- 145: TypePointer UniformConstant 144
- 146(g_tTexcdi4): 145(ptr) Variable UniformConstant
- 147: TypeImage 38(int) Cube sampled format:Unknown
- 148: TypePointer UniformConstant 147
- 149(g_tTexcdu4): 148(ptr) Variable UniformConstant
+ 136: 7(fvec4) ConstantComposite 135 135 135 135
+ 138: TypePointer Function 6(float)
+142(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 143: TypeImage 6(float) Cube sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+ 145(g_tTexcdf4): 144(ptr) Variable UniformConstant
+ 146: TypeImage 23(int) Cube sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+ 148(g_tTexcdi4): 147(ptr) Variable UniformConstant
+ 149: TypeImage 38(int) Cube sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+ 151(g_tTexcdu4): 150(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -615,8 +639,10 @@
125: 124 SampledImage 122 123
131: 39(ivec4) ImageSampleExplicitLod 125 129 Grad ConstOffset 103 103 130
Store 118(txval32) 131
- 137: 136(ptr) AccessChain 134(psout) 24
- Store 137 135
- 138:132(PS_OUTPUT) Load 134(psout)
- ReturnValue 138
+ 137: 8(ptr) AccessChain 134(psout) 63
+ Store 137 136
+ 139: 138(ptr) AccessChain 134(psout) 24
+ Store 139 135
+ 140:132(PS_OUTPUT) Load 134(psout)
+ ReturnValue 140
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index e568f44..3318e46 100644
--- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -10,8 +10,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 textureGradOffset (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -27,7 +27,7 @@
0:28 textureGradOffset (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -43,7 +43,7 @@
0:29 textureGradOffset (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -59,7 +59,7 @@
0:31 textureGradOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -79,7 +79,7 @@
0:32 textureGradOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -99,7 +99,7 @@
0:33 textureGradOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -113,6 +113,16 @@
0:? Constant:
0:? 1 (const int)
0:? 0 (const int)
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 Color: direct index for structure (temp 4-component vector of float)
+0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:35 Constant:
+0:35 0 (const int)
+0:35 Constant:
+0:35 1.000000
+0:35 1.000000
+0:35 1.000000
+0:35 1.000000
0:36 move second child to first child (temp float)
0:36 Depth: direct index for structure (temp float FragDepth)
0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -123,9 +133,9 @@
0:38 Branch: Return with expression
0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -150,8 +160,8 @@
0:27 'txval10' (temp 4-component vector of float)
0:27 textureGradOffset (global 4-component vector of float)
0:27 Construct combined texture-sampler (temp sampler1DArray)
-0:27 'g_tTex1df4' (uniform texture1DArray)
-0:27 'g_sSamp' (uniform sampler)
+0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -167,7 +177,7 @@
0:28 textureGradOffset (global 4-component vector of int)
0:28 Construct combined texture-sampler (temp isampler1DArray)
0:28 'g_tTex1di4' (uniform itexture1DArray)
-0:28 'g_sSamp' (uniform sampler)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -183,7 +193,7 @@
0:29 textureGradOffset (global 4-component vector of uint)
0:29 Construct combined texture-sampler (temp usampler1DArray)
0:29 'g_tTex1du4' (uniform utexture1DArray)
-0:29 'g_sSamp' (uniform sampler)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -199,7 +209,7 @@
0:31 textureGradOffset (global 4-component vector of float)
0:31 Construct combined texture-sampler (temp sampler2DArray)
0:31 'g_tTex2df4' (uniform texture2DArray)
-0:31 'g_sSamp' (uniform sampler)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -219,7 +229,7 @@
0:32 textureGradOffset (global 4-component vector of int)
0:32 Construct combined texture-sampler (temp isampler2DArray)
0:32 'g_tTex2di4' (uniform itexture2DArray)
-0:32 'g_sSamp' (uniform sampler)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -239,7 +249,7 @@
0:33 textureGradOffset (global 4-component vector of uint)
0:33 Construct combined texture-sampler (temp usampler2DArray)
0:33 'g_tTex2du4' (uniform utexture2DArray)
-0:33 'g_sSamp' (uniform sampler)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -253,6 +263,16 @@
0:? Constant:
0:? 1 (const int)
0:? 0 (const int)
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 Color: direct index for structure (temp 4-component vector of float)
+0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:35 Constant:
+0:35 0 (const int)
+0:35 Constant:
+0:35 1.000000
+0:35 1.000000
+0:35 1.000000
+0:35 1.000000
0:36 move second child to first child (temp float)
0:36 Depth: direct index for structure (temp float FragDepth)
0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
@@ -263,9 +283,9 @@
0:38 Branch: Return with expression
0:38 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
0:? Linker Objects
-0:? 'g_sSamp' (uniform sampler)
-0:? 'g_tTex1df4a' (uniform texture1DArray)
-0:? 'g_tTex1df4' (uniform texture1DArray)
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
0:? 'g_tTex1di4' (uniform itexture1DArray)
0:? 'g_tTex1du4' (uniform utexture1DArray)
0:? 'g_tTex2df4' (uniform texture2DArray)
@@ -277,7 +297,7 @@
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 104
+// Id's are bound by 106
Capability Shader
Capability Sampled1D
@@ -305,22 +325,25 @@
MemberName 86(PS_OUTPUT) 0 "Color"
MemberName 86(PS_OUTPUT) 1 "Depth"
Name 88 "psout"
- Name 94 "g_tTex1df4a"
- Name 97 "g_tTexcdf4"
- Name 100 "g_tTexcdi4"
- Name 103 "g_tTexcdu4"
+ Name 96 "g_tTex1df4a"
+ Name 99 "g_tTexcdf4"
+ Name 102 "g_tTexcdi4"
+ Name 105 "g_tTexcdu4"
Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
Decorate 34(g_tTex1di4) DescriptorSet 0
Decorate 46(g_tTex1du4) DescriptorSet 0
Decorate 55(g_tTex2df4) DescriptorSet 0
Decorate 71(g_tTex2di4) DescriptorSet 0
Decorate 80(g_tTex2du4) DescriptorSet 0
MemberDecorate 86(PS_OUTPUT) 1 BuiltIn FragDepth
- Decorate 94(g_tTex1df4a) DescriptorSet 0
- Decorate 97(g_tTexcdf4) DescriptorSet 0
- Decorate 100(g_tTexcdi4) DescriptorSet 0
- Decorate 103(g_tTexcdu4) DescriptorSet 0
+ Decorate 96(g_tTex1df4a) DescriptorSet 0
+ Decorate 96(g_tTex1df4a) Binding 1
+ Decorate 99(g_tTexcdf4) DescriptorSet 0
+ Decorate 102(g_tTexcdi4) DescriptorSet 0
+ Decorate 105(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -376,17 +399,18 @@
86(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
87: TypePointer Function 86(PS_OUTPUT)
89: 6(float) Constant 1065353216
- 90: TypePointer Function 6(float)
- 94(g_tTex1df4a): 11(ptr) Variable UniformConstant
- 95: TypeImage 6(float) Cube array sampled format:Unknown
- 96: TypePointer UniformConstant 95
- 97(g_tTexcdf4): 96(ptr) Variable UniformConstant
- 98: TypeImage 26(int) Cube array sampled format:Unknown
- 99: TypePointer UniformConstant 98
- 100(g_tTexcdi4): 99(ptr) Variable UniformConstant
- 101: TypeImage 40(int) Cube array sampled format:Unknown
- 102: TypePointer UniformConstant 101
- 103(g_tTexcdu4): 102(ptr) Variable UniformConstant
+ 90: 7(fvec4) ConstantComposite 89 89 89 89
+ 92: TypePointer Function 6(float)
+ 96(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 97: TypeImage 6(float) Cube array sampled format:Unknown
+ 98: TypePointer UniformConstant 97
+ 99(g_tTexcdf4): 98(ptr) Variable UniformConstant
+ 100: TypeImage 26(int) Cube array sampled format:Unknown
+ 101: TypePointer UniformConstant 100
+ 102(g_tTexcdi4): 101(ptr) Variable UniformConstant
+ 103: TypeImage 40(int) Cube array sampled format:Unknown
+ 104: TypePointer UniformConstant 103
+ 105(g_tTexcdu4): 104(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(txval10): 8(ptr) Variable Function
@@ -426,8 +450,10 @@
84: 83 SampledImage 81 82
85: 41(ivec4) ImageSampleExplicitLod 84 62 Grad ConstOffset 63 63 66
Store 77(txval22) 85
- 91: 90(ptr) AccessChain 88(psout) 27
- Store 91 89
- 92:86(PS_OUTPUT) Load 88(psout)
- ReturnValue 92
+ 91: 8(ptr) AccessChain 88(psout) 65
+ Store 91 90
+ 93: 92(ptr) AccessChain 88(psout) 27
+ Store 93 89
+ 94:86(PS_OUTPUT) Load 88(psout)
+ ReturnValue 94
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
new file mode 100644
index 0000000..dd042de
--- /dev/null
+++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -0,0 +1,510 @@
+hlsl.samplelevel.array.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'txval10' (temp 4-component vector of float)
+0:27 textureLod (global 4-component vector of float)
+0:27 Construct combined texture-sampler (temp sampler1DArray)
+0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:27 Constant:
+0:27 0.750000
+0:28 Sequence
+0:28 move second child to first child (temp 4-component vector of int)
+0:28 'txval11' (temp 4-component vector of int)
+0:28 textureLod (global 4-component vector of int)
+0:28 Construct combined texture-sampler (temp isampler1DArray)
+0:28 'g_tTex1di4a' (uniform itexture1DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.200000
+0:? 0.300000
+0:28 Constant:
+0:28 0.750000
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of uint)
+0:29 'txval12' (temp 4-component vector of uint)
+0:29 textureLod (global 4-component vector of uint)
+0:29 Construct combined texture-sampler (temp usampler1DArray)
+0:29 'g_tTex1du4a' (uniform utexture1DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:29 Constant:
+0:29 0.750000
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'txval20' (temp 4-component vector of float)
+0:31 textureLod (global 4-component vector of float)
+0:31 Construct combined texture-sampler (temp sampler2DArray)
+0:31 'g_tTex2df4a' (uniform texture2DArray)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:31 Constant:
+0:31 0.750000
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of int)
+0:32 'txval21' (temp 4-component vector of int)
+0:32 textureLod (global 4-component vector of int)
+0:32 Construct combined texture-sampler (temp isampler2DArray)
+0:32 'g_tTex2di4a' (uniform itexture2DArray)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.500000
+0:32 Constant:
+0:32 0.750000
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of uint)
+0:33 'txval22' (temp 4-component vector of uint)
+0:33 textureLod (global 4-component vector of uint)
+0:33 Construct combined texture-sampler (temp usampler2DArray)
+0:33 'g_tTex2du4a' (uniform utexture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:33 Constant:
+0:33 0.750000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'txval40' (temp 4-component vector of float)
+0:35 textureLod (global 4-component vector of float)
+0:35 Construct combined texture-sampler (temp samplerCubeArray)
+0:35 'g_tTexcdf4a' (uniform textureCubeArray)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:35 Constant:
+0:35 0.750000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of int)
+0:36 'txval41' (temp 4-component vector of int)
+0:36 textureLod (global 4-component vector of int)
+0:36 Construct combined texture-sampler (temp isamplerCubeArray)
+0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:36 Constant:
+0:36 0.750000
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of uint)
+0:37 'txval42' (temp 4-component vector of uint)
+0:37 textureLod (global 4-component vector of uint)
+0:37 Construct combined texture-sampler (temp usamplerCubeArray)
+0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:? 1.000000
+0:37 Constant:
+0:37 0.750000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:40 move second child to first child (temp float)
+0:40 Depth: direct index for structure (temp float FragDepth)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 1 (const int)
+0:40 Constant:
+0:40 1.000000
+0:42 Branch: Return with expression
+0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:44 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:24 Function Parameters:
+0:? Sequence
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'txval10' (temp 4-component vector of float)
+0:27 textureLod (global 4-component vector of float)
+0:27 Construct combined texture-sampler (temp sampler1DArray)
+0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:27 Constant:
+0:27 0.750000
+0:28 Sequence
+0:28 move second child to first child (temp 4-component vector of int)
+0:28 'txval11' (temp 4-component vector of int)
+0:28 textureLod (global 4-component vector of int)
+0:28 Construct combined texture-sampler (temp isampler1DArray)
+0:28 'g_tTex1di4a' (uniform itexture1DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.200000
+0:? 0.300000
+0:28 Constant:
+0:28 0.750000
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of uint)
+0:29 'txval12' (temp 4-component vector of uint)
+0:29 textureLod (global 4-component vector of uint)
+0:29 Construct combined texture-sampler (temp usampler1DArray)
+0:29 'g_tTex1du4a' (uniform utexture1DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:29 Constant:
+0:29 0.750000
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'txval20' (temp 4-component vector of float)
+0:31 textureLod (global 4-component vector of float)
+0:31 Construct combined texture-sampler (temp sampler2DArray)
+0:31 'g_tTex2df4a' (uniform texture2DArray)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:31 Constant:
+0:31 0.750000
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of int)
+0:32 'txval21' (temp 4-component vector of int)
+0:32 textureLod (global 4-component vector of int)
+0:32 Construct combined texture-sampler (temp isampler2DArray)
+0:32 'g_tTex2di4a' (uniform itexture2DArray)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.500000
+0:32 Constant:
+0:32 0.750000
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of uint)
+0:33 'txval22' (temp 4-component vector of uint)
+0:33 textureLod (global 4-component vector of uint)
+0:33 Construct combined texture-sampler (temp usampler2DArray)
+0:33 'g_tTex2du4a' (uniform utexture2DArray)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:33 Constant:
+0:33 0.750000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'txval40' (temp 4-component vector of float)
+0:35 textureLod (global 4-component vector of float)
+0:35 Construct combined texture-sampler (temp samplerCubeArray)
+0:35 'g_tTexcdf4a' (uniform textureCubeArray)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:? 0.400000
+0:35 Constant:
+0:35 0.750000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of int)
+0:36 'txval41' (temp 4-component vector of int)
+0:36 textureLod (global 4-component vector of int)
+0:36 Construct combined texture-sampler (temp isamplerCubeArray)
+0:36 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:36 Constant:
+0:36 0.750000
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of uint)
+0:37 'txval42' (temp 4-component vector of uint)
+0:37 textureLod (global 4-component vector of uint)
+0:37 Construct combined texture-sampler (temp usamplerCubeArray)
+0:37 'g_tTexcdu4a' (uniform utextureCubeArray)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:? 1.000000
+0:37 Constant:
+0:37 0.750000
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 Color: direct index for structure (temp 4-component vector of float)
+0:39 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:39 Constant:
+0:39 0 (const int)
+0:39 Constant:
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:39 1.000000
+0:40 move second child to first child (temp float)
+0:40 Depth: direct index for structure (temp float FragDepth)
+0:40 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:40 Constant:
+0:40 1 (const int)
+0:40 Constant:
+0:40 1.000000
+0:42 Branch: Return with expression
+0:42 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4a' (uniform itexture1DArray)
+0:? 'g_tTex1du4a' (uniform utexture1DArray)
+0:? 'g_tTex2df4a' (uniform texture2DArray)
+0:? 'g_tTex2di4a' (uniform itexture2DArray)
+0:? 'g_tTex2du4a' (uniform utexture2DArray)
+0:? 'g_tTexcdf4a' (uniform textureCubeArray)
+0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
+0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 133
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledCubeArray
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval10"
+ Name 12 "g_tTex1df4a"
+ Name 16 "g_sSamp"
+ Name 29 "txval11"
+ Name 32 "g_tTex1di4a"
+ Name 43 "txval12"
+ Name 46 "g_tTex1du4a"
+ Name 54 "txval20"
+ Name 57 "g_tTex2df4a"
+ Name 65 "txval21"
+ Name 68 "g_tTex2di4a"
+ Name 76 "txval22"
+ Name 79 "g_tTex2du4a"
+ Name 88 "txval40"
+ Name 91 "g_tTexcdf4a"
+ Name 98 "txval41"
+ Name 101 "g_tTexcdi4a"
+ Name 108 "txval42"
+ Name 111 "g_tTexcdu4a"
+ Name 121 "PS_OUTPUT"
+ MemberName 121(PS_OUTPUT) 0 "Color"
+ MemberName 121(PS_OUTPUT) 1 "Depth"
+ Name 123 "psout"
+ Name 132 "g_tTex1df4"
+ Decorate 12(g_tTex1df4a) DescriptorSet 0
+ Decorate 12(g_tTex1df4a) Binding 1
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 32(g_tTex1di4a) DescriptorSet 0
+ Decorate 46(g_tTex1du4a) DescriptorSet 0
+ Decorate 57(g_tTex2df4a) DescriptorSet 0
+ Decorate 68(g_tTex2di4a) DescriptorSet 0
+ Decorate 79(g_tTex2du4a) DescriptorSet 0
+ Decorate 91(g_tTexcdf4a) DescriptorSet 0
+ Decorate 101(g_tTexcdi4a) DescriptorSet 0
+ Decorate 111(g_tTexcdu4a) DescriptorSet 0
+ MemberDecorate 121(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 132(g_tTex1df4) DescriptorSet 0
+ Decorate 132(g_tTex1df4) Binding 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 1D array sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: 6(float) Constant 1061158912
+ 26: TypeInt 32 1
+ 27: TypeVector 26(int) 4
+ 28: TypePointer Function 27(ivec4)
+ 30: TypeImage 26(int) 1D array sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex1di4a): 31(ptr) Variable UniformConstant
+ 35: TypeSampledImage 30
+ 37: 6(float) Constant 1050253722
+ 38: 20(fvec2) ConstantComposite 22 37
+ 40: TypeInt 32 0
+ 41: TypeVector 40(int) 4
+ 42: TypePointer Function 41(ivec4)
+ 44: TypeImage 40(int) 1D array sampled format:Unknown
+ 45: TypePointer UniformConstant 44
+ 46(g_tTex1du4a): 45(ptr) Variable UniformConstant
+ 49: TypeSampledImage 44
+ 51: 6(float) Constant 1053609165
+ 52: 20(fvec2) ConstantComposite 37 51
+ 55: TypeImage 6(float) 2D array sampled format:Unknown
+ 56: TypePointer UniformConstant 55
+ 57(g_tTex2df4a): 56(ptr) Variable UniformConstant
+ 60: TypeSampledImage 55
+ 62: TypeVector 6(float) 3
+ 63: 62(fvec3) ConstantComposite 21 22 37
+ 66: TypeImage 26(int) 2D array sampled format:Unknown
+ 67: TypePointer UniformConstant 66
+ 68(g_tTex2di4a): 67(ptr) Variable UniformConstant
+ 71: TypeSampledImage 66
+ 73: 6(float) Constant 1056964608
+ 74: 62(fvec3) ConstantComposite 37 51 73
+ 77: TypeImage 40(int) 2D array sampled format:Unknown
+ 78: TypePointer UniformConstant 77
+ 79(g_tTex2du4a): 78(ptr) Variable UniformConstant
+ 82: TypeSampledImage 77
+ 84: 6(float) Constant 1058642330
+ 85: 6(float) Constant 1060320051
+ 86: 62(fvec3) ConstantComposite 73 84 85
+ 89: TypeImage 6(float) Cube array sampled format:Unknown
+ 90: TypePointer UniformConstant 89
+ 91(g_tTexcdf4a): 90(ptr) Variable UniformConstant
+ 94: TypeSampledImage 89
+ 96: 7(fvec4) ConstantComposite 21 22 37 51
+ 99: TypeImage 26(int) Cube array sampled format:Unknown
+ 100: TypePointer UniformConstant 99
+101(g_tTexcdi4a): 100(ptr) Variable UniformConstant
+ 104: TypeSampledImage 99
+ 106: 7(fvec4) ConstantComposite 51 73 84 85
+ 109: TypeImage 40(int) Cube array sampled format:Unknown
+ 110: TypePointer UniformConstant 109
+111(g_tTexcdu4a): 110(ptr) Variable UniformConstant
+ 114: TypeSampledImage 109
+ 116: 6(float) Constant 1061997773
+ 117: 6(float) Constant 1063675494
+ 118: 6(float) Constant 1065353216
+ 119: 7(fvec4) ConstantComposite 85 116 117 118
+ 121(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 122: TypePointer Function 121(PS_OUTPUT)
+ 124: 26(int) Constant 0
+ 125: 7(fvec4) ConstantComposite 118 118 118 118
+ 127: 26(int) Constant 1
+ 128: TypePointer Function 6(float)
+ 132(g_tTex1df4): 11(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval10): 8(ptr) Variable Function
+ 29(txval11): 28(ptr) Variable Function
+ 43(txval12): 42(ptr) Variable Function
+ 54(txval20): 8(ptr) Variable Function
+ 65(txval21): 28(ptr) Variable Function
+ 76(txval22): 42(ptr) Variable Function
+ 88(txval40): 8(ptr) Variable Function
+ 98(txval41): 28(ptr) Variable Function
+ 108(txval42): 42(ptr) Variable Function
+ 123(psout): 122(ptr) Variable Function
+ 13: 10 Load 12(g_tTex1df4a)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 25: 7(fvec4) ImageSampleExplicitLod 19 23 Lod 24
+ Store 9(txval10) 25
+ 33: 30 Load 32(g_tTex1di4a)
+ 34: 14 Load 16(g_sSamp)
+ 36: 35 SampledImage 33 34
+ 39: 27(ivec4) ImageSampleExplicitLod 36 38 Lod 24
+ Store 29(txval11) 39
+ 47: 44 Load 46(g_tTex1du4a)
+ 48: 14 Load 16(g_sSamp)
+ 50: 49 SampledImage 47 48
+ 53: 41(ivec4) ImageSampleExplicitLod 50 52 Lod 24
+ Store 43(txval12) 53
+ 58: 55 Load 57(g_tTex2df4a)
+ 59: 14 Load 16(g_sSamp)
+ 61: 60 SampledImage 58 59
+ 64: 7(fvec4) ImageSampleExplicitLod 61 63 Lod 24
+ Store 54(txval20) 64
+ 69: 66 Load 68(g_tTex2di4a)
+ 70: 14 Load 16(g_sSamp)
+ 72: 71 SampledImage 69 70
+ 75: 27(ivec4) ImageSampleExplicitLod 72 74 Lod 24
+ Store 65(txval21) 75
+ 80: 77 Load 79(g_tTex2du4a)
+ 81: 14 Load 16(g_sSamp)
+ 83: 82 SampledImage 80 81
+ 87: 41(ivec4) ImageSampleExplicitLod 83 86 Lod 24
+ Store 76(txval22) 87
+ 92: 89 Load 91(g_tTexcdf4a)
+ 93: 14 Load 16(g_sSamp)
+ 95: 94 SampledImage 92 93
+ 97: 7(fvec4) ImageSampleExplicitLod 95 96 Lod 24
+ Store 88(txval40) 97
+ 102: 99 Load 101(g_tTexcdi4a)
+ 103: 14 Load 16(g_sSamp)
+ 105: 104 SampledImage 102 103
+ 107: 27(ivec4) ImageSampleExplicitLod 105 106 Lod 24
+ Store 98(txval41) 107
+ 112: 109 Load 111(g_tTexcdu4a)
+ 113: 14 Load 16(g_sSamp)
+ 115: 114 SampledImage 112 113
+ 120: 41(ivec4) ImageSampleExplicitLod 115 119 Lod 24
+ Store 108(txval42) 120
+ 126: 8(ptr) AccessChain 123(psout) 124
+ Store 126 125
+ 129: 128(ptr) AccessChain 123(psout) 127
+ Store 129 118
+ 130:121(PS_OUTPUT) Load 123(psout)
+ ReturnValue 130
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
new file mode 100644
index 0000000..52c635d
--- /dev/null
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -0,0 +1,616 @@
+hlsl.samplelevel.basic.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29 Function Parameters:
+0:? Sequence
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 'txval10' (temp 4-component vector of float)
+0:32 textureLod (global 4-component vector of float)
+0:32 Construct combined texture-sampler (temp sampler1D)
+0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:32 Constant:
+0:32 0.100000
+0:32 Constant:
+0:32 0.750000
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of int)
+0:33 'txval11' (temp 4-component vector of int)
+0:33 textureLod (global 4-component vector of int)
+0:33 Construct combined texture-sampler (temp isampler1D)
+0:33 'g_tTex1di4' (uniform itexture1D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:33 Constant:
+0:33 0.200000
+0:33 Constant:
+0:33 0.750000
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of uint)
+0:34 'txval12' (temp 4-component vector of uint)
+0:34 textureLod (global 4-component vector of uint)
+0:34 Construct combined texture-sampler (temp usampler1D)
+0:34 'g_tTex1du4' (uniform utexture1D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:34 Constant:
+0:34 0.300000
+0:34 Constant:
+0:34 0.750000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of float)
+0:36 'txval20' (temp 4-component vector of float)
+0:36 textureLod (global 4-component vector of float)
+0:36 Construct combined texture-sampler (temp sampler2D)
+0:36 'g_tTex2df4' (uniform texture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:36 Constant:
+0:36 0.750000
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of int)
+0:37 'txval21' (temp 4-component vector of int)
+0:37 textureLod (global 4-component vector of int)
+0:37 Construct combined texture-sampler (temp isampler2D)
+0:37 'g_tTex2di4' (uniform itexture2D)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:37 Constant:
+0:37 0.750000
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of uint)
+0:38 'txval22' (temp 4-component vector of uint)
+0:38 textureLod (global 4-component vector of uint)
+0:38 Construct combined texture-sampler (temp usampler2D)
+0:38 'g_tTex2du4' (uniform utexture2D)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:38 Constant:
+0:38 0.750000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'txval30' (temp 4-component vector of float)
+0:40 textureLod (global 4-component vector of float)
+0:40 Construct combined texture-sampler (temp sampler3D)
+0:40 'g_tTex3df4' (uniform texture3D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:40 Constant:
+0:40 0.750000
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of int)
+0:41 'txval31' (temp 4-component vector of int)
+0:41 textureLod (global 4-component vector of int)
+0:41 Construct combined texture-sampler (temp isampler3D)
+0:41 'g_tTex3di4' (uniform itexture3D)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:41 Constant:
+0:41 0.750000
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of uint)
+0:42 'txval32' (temp 4-component vector of uint)
+0:42 textureLod (global 4-component vector of uint)
+0:42 Construct combined texture-sampler (temp usampler3D)
+0:42 'g_tTex3du4' (uniform utexture3D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:42 Constant:
+0:42 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'txval40' (temp 4-component vector of float)
+0:44 textureLod (global 4-component vector of float)
+0:44 Construct combined texture-sampler (temp samplerCube)
+0:44 'g_tTexcdf4' (uniform textureCube)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:44 Constant:
+0:44 0.750000
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of int)
+0:45 'txval41' (temp 4-component vector of int)
+0:45 textureLod (global 4-component vector of int)
+0:45 Construct combined texture-sampler (temp isamplerCube)
+0:45 'g_tTexcdi4' (uniform itextureCube)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:45 Constant:
+0:45 0.750000
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of uint)
+0:46 'txval42' (temp 4-component vector of uint)
+0:46 textureLod (global 4-component vector of uint)
+0:46 Construct combined texture-sampler (temp usamplerCube)
+0:46 'g_tTexcdu4' (uniform utextureCube)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:46 Constant:
+0:46 0.750000
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 Color: direct index for structure (temp 4-component vector of float)
+0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Constant:
+0:48 0 (const int)
+0:48 Constant:
+0:48 1.000000
+0:48 1.000000
+0:48 1.000000
+0:48 1.000000
+0:49 move second child to first child (temp float)
+0:49 Depth: direct index for structure (temp float FragDepth)
+0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:49 Constant:
+0:49 1 (const int)
+0:49 Constant:
+0:49 1.000000
+0:51 Branch: Return with expression
+0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:29 Function Parameters:
+0:? Sequence
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of float)
+0:32 'txval10' (temp 4-component vector of float)
+0:32 textureLod (global 4-component vector of float)
+0:32 Construct combined texture-sampler (temp sampler1D)
+0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:32 Constant:
+0:32 0.100000
+0:32 Constant:
+0:32 0.750000
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of int)
+0:33 'txval11' (temp 4-component vector of int)
+0:33 textureLod (global 4-component vector of int)
+0:33 Construct combined texture-sampler (temp isampler1D)
+0:33 'g_tTex1di4' (uniform itexture1D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:33 Constant:
+0:33 0.200000
+0:33 Constant:
+0:33 0.750000
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of uint)
+0:34 'txval12' (temp 4-component vector of uint)
+0:34 textureLod (global 4-component vector of uint)
+0:34 Construct combined texture-sampler (temp usampler1D)
+0:34 'g_tTex1du4' (uniform utexture1D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:34 Constant:
+0:34 0.300000
+0:34 Constant:
+0:34 0.750000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of float)
+0:36 'txval20' (temp 4-component vector of float)
+0:36 textureLod (global 4-component vector of float)
+0:36 Construct combined texture-sampler (temp sampler2D)
+0:36 'g_tTex2df4' (uniform texture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:36 Constant:
+0:36 0.750000
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of int)
+0:37 'txval21' (temp 4-component vector of int)
+0:37 textureLod (global 4-component vector of int)
+0:37 Construct combined texture-sampler (temp isampler2D)
+0:37 'g_tTex2di4' (uniform itexture2D)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:37 Constant:
+0:37 0.750000
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of uint)
+0:38 'txval22' (temp 4-component vector of uint)
+0:38 textureLod (global 4-component vector of uint)
+0:38 Construct combined texture-sampler (temp usampler2D)
+0:38 'g_tTex2du4' (uniform utexture2D)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:38 Constant:
+0:38 0.750000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 'txval30' (temp 4-component vector of float)
+0:40 textureLod (global 4-component vector of float)
+0:40 Construct combined texture-sampler (temp sampler3D)
+0:40 'g_tTex3df4' (uniform texture3D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:40 Constant:
+0:40 0.750000
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of int)
+0:41 'txval31' (temp 4-component vector of int)
+0:41 textureLod (global 4-component vector of int)
+0:41 Construct combined texture-sampler (temp isampler3D)
+0:41 'g_tTex3di4' (uniform itexture3D)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:41 Constant:
+0:41 0.750000
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of uint)
+0:42 'txval32' (temp 4-component vector of uint)
+0:42 textureLod (global 4-component vector of uint)
+0:42 Construct combined texture-sampler (temp usampler3D)
+0:42 'g_tTex3du4' (uniform utexture3D)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:42 Constant:
+0:42 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of float)
+0:44 'txval40' (temp 4-component vector of float)
+0:44 textureLod (global 4-component vector of float)
+0:44 Construct combined texture-sampler (temp samplerCube)
+0:44 'g_tTexcdf4' (uniform textureCube)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:44 Constant:
+0:44 0.750000
+0:45 Sequence
+0:45 move second child to first child (temp 4-component vector of int)
+0:45 'txval41' (temp 4-component vector of int)
+0:45 textureLod (global 4-component vector of int)
+0:45 Construct combined texture-sampler (temp isamplerCube)
+0:45 'g_tTexcdi4' (uniform itextureCube)
+0:45 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:45 Constant:
+0:45 0.750000
+0:46 Sequence
+0:46 move second child to first child (temp 4-component vector of uint)
+0:46 'txval42' (temp 4-component vector of uint)
+0:46 textureLod (global 4-component vector of uint)
+0:46 Construct combined texture-sampler (temp usamplerCube)
+0:46 'g_tTexcdu4' (uniform utextureCube)
+0:46 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:46 Constant:
+0:46 0.750000
+0:48 move second child to first child (temp 4-component vector of float)
+0:48 Color: direct index for structure (temp 4-component vector of float)
+0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:48 Constant:
+0:48 0 (const int)
+0:48 Constant:
+0:48 1.000000
+0:48 1.000000
+0:48 1.000000
+0:48 1.000000
+0:49 move second child to first child (temp float)
+0:49 Depth: direct index for structure (temp float FragDepth)
+0:49 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:49 Constant:
+0:49 1 (const int)
+0:49 Constant:
+0:49 1.000000
+0:51 Branch: Return with expression
+0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_sSamp2d' (uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 158
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval10"
+ Name 12 "g_tTex1df4"
+ Name 16 "g_sSamp"
+ Name 26 "txval11"
+ Name 29 "g_tTex1di4"
+ Name 39 "txval12"
+ Name 42 "g_tTex1du4"
+ Name 49 "txval20"
+ Name 52 "g_tTex2df4"
+ Name 60 "txval21"
+ Name 63 "g_tTex2di4"
+ Name 71 "txval22"
+ Name 74 "g_tTex2du4"
+ Name 83 "txval30"
+ Name 86 "g_tTex3df4"
+ Name 94 "txval31"
+ Name 97 "g_tTex3di4"
+ Name 104 "txval32"
+ Name 107 "g_tTex3du4"
+ Name 117 "txval40"
+ Name 120 "g_tTexcdf4"
+ Name 126 "txval41"
+ Name 129 "g_tTexcdi4"
+ Name 135 "txval42"
+ Name 138 "g_tTexcdu4"
+ Name 144 "PS_OUTPUT"
+ MemberName 144(PS_OUTPUT) 0 "Color"
+ MemberName 144(PS_OUTPUT) 1 "Depth"
+ Name 146 "psout"
+ Name 156 "g_sSamp2d"
+ Name 157 "g_tTex1df4a"
+ Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 29(g_tTex1di4) DescriptorSet 0
+ Decorate 42(g_tTex1du4) DescriptorSet 0
+ Decorate 52(g_tTex2df4) DescriptorSet 0
+ Decorate 63(g_tTex2di4) DescriptorSet 0
+ Decorate 74(g_tTex2du4) DescriptorSet 0
+ Decorate 86(g_tTex3df4) DescriptorSet 0
+ Decorate 97(g_tTex3di4) DescriptorSet 0
+ Decorate 107(g_tTex3du4) DescriptorSet 0
+ Decorate 120(g_tTexcdf4) DescriptorSet 0
+ Decorate 129(g_tTexcdi4) DescriptorSet 0
+ Decorate 138(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 144(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 156(g_sSamp2d) DescriptorSet 0
+ Decorate 157(g_tTex1df4a) DescriptorSet 0
+ Decorate 157(g_tTex1df4a) Binding 1
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 1D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex1df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 23: TypeInt 32 1
+ 24: TypeVector 23(int) 4
+ 25: TypePointer Function 24(ivec4)
+ 27: TypeImage 23(int) 1D sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+ 29(g_tTex1di4): 28(ptr) Variable UniformConstant
+ 32: TypeSampledImage 27
+ 34: 6(float) Constant 1045220557
+ 36: TypeInt 32 0
+ 37: TypeVector 36(int) 4
+ 38: TypePointer Function 37(ivec4)
+ 40: TypeImage 36(int) 1D sampled format:Unknown
+ 41: TypePointer UniformConstant 40
+ 42(g_tTex1du4): 41(ptr) Variable UniformConstant
+ 45: TypeSampledImage 40
+ 47: 6(float) Constant 1050253722
+ 50: TypeImage 6(float) 2D sampled format:Unknown
+ 51: TypePointer UniformConstant 50
+ 52(g_tTex2df4): 51(ptr) Variable UniformConstant
+ 55: TypeSampledImage 50
+ 57: TypeVector 6(float) 2
+ 58: 57(fvec2) ConstantComposite 20 34
+ 61: TypeImage 23(int) 2D sampled format:Unknown
+ 62: TypePointer UniformConstant 61
+ 63(g_tTex2di4): 62(ptr) Variable UniformConstant
+ 66: TypeSampledImage 61
+ 68: 6(float) Constant 1053609165
+ 69: 57(fvec2) ConstantComposite 47 68
+ 72: TypeImage 36(int) 2D sampled format:Unknown
+ 73: TypePointer UniformConstant 72
+ 74(g_tTex2du4): 73(ptr) Variable UniformConstant
+ 77: TypeSampledImage 72
+ 79: 6(float) Constant 1056964608
+ 80: 6(float) Constant 1058642330
+ 81: 57(fvec2) ConstantComposite 79 80
+ 84: TypeImage 6(float) 3D sampled format:Unknown
+ 85: TypePointer UniformConstant 84
+ 86(g_tTex3df4): 85(ptr) Variable UniformConstant
+ 89: TypeSampledImage 84
+ 91: TypeVector 6(float) 3
+ 92: 91(fvec3) ConstantComposite 20 34 47
+ 95: TypeImage 23(int) 3D sampled format:Unknown
+ 96: TypePointer UniformConstant 95
+ 97(g_tTex3di4): 96(ptr) Variable UniformConstant
+ 100: TypeSampledImage 95
+ 102: 91(fvec3) ConstantComposite 68 79 80
+ 105: TypeImage 36(int) 3D sampled format:Unknown
+ 106: TypePointer UniformConstant 105
+ 107(g_tTex3du4): 106(ptr) Variable UniformConstant
+ 110: TypeSampledImage 105
+ 112: 6(float) Constant 1060320051
+ 113: 6(float) Constant 1061997773
+ 114: 6(float) Constant 1063675494
+ 115: 91(fvec3) ConstantComposite 112 113 114
+ 118: TypeImage 6(float) Cube sampled format:Unknown
+ 119: TypePointer UniformConstant 118
+ 120(g_tTexcdf4): 119(ptr) Variable UniformConstant
+ 123: TypeSampledImage 118
+ 127: TypeImage 23(int) Cube sampled format:Unknown
+ 128: TypePointer UniformConstant 127
+ 129(g_tTexcdi4): 128(ptr) Variable UniformConstant
+ 132: TypeSampledImage 127
+ 136: TypeImage 36(int) Cube sampled format:Unknown
+ 137: TypePointer UniformConstant 136
+ 138(g_tTexcdu4): 137(ptr) Variable UniformConstant
+ 141: TypeSampledImage 136
+ 144(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 145: TypePointer Function 144(PS_OUTPUT)
+ 147: 23(int) Constant 0
+ 148: 6(float) Constant 1065353216
+ 149: 7(fvec4) ConstantComposite 148 148 148 148
+ 151: 23(int) Constant 1
+ 152: TypePointer Function 6(float)
+ 156(g_sSamp2d): 15(ptr) Variable UniformConstant
+157(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval10): 8(ptr) Variable Function
+ 26(txval11): 25(ptr) Variable Function
+ 39(txval12): 38(ptr) Variable Function
+ 49(txval20): 8(ptr) Variable Function
+ 60(txval21): 25(ptr) Variable Function
+ 71(txval22): 38(ptr) Variable Function
+ 83(txval30): 8(ptr) Variable Function
+ 94(txval31): 25(ptr) Variable Function
+ 104(txval32): 38(ptr) Variable Function
+ 117(txval40): 8(ptr) Variable Function
+ 126(txval41): 25(ptr) Variable Function
+ 135(txval42): 38(ptr) Variable Function
+ 146(psout): 145(ptr) Variable Function
+ 13: 10 Load 12(g_tTex1df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21
+ Store 9(txval10) 22
+ 30: 27 Load 29(g_tTex1di4)
+ 31: 14 Load 16(g_sSamp)
+ 33: 32 SampledImage 30 31
+ 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21
+ Store 26(txval11) 35
+ 43: 40 Load 42(g_tTex1du4)
+ 44: 14 Load 16(g_sSamp)
+ 46: 45 SampledImage 43 44
+ 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21
+ Store 39(txval12) 48
+ 53: 50 Load 52(g_tTex2df4)
+ 54: 14 Load 16(g_sSamp)
+ 56: 55 SampledImage 53 54
+ 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21
+ Store 49(txval20) 59
+ 64: 61 Load 63(g_tTex2di4)
+ 65: 14 Load 16(g_sSamp)
+ 67: 66 SampledImage 64 65
+ 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21
+ Store 60(txval21) 70
+ 75: 72 Load 74(g_tTex2du4)
+ 76: 14 Load 16(g_sSamp)
+ 78: 77 SampledImage 75 76
+ 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21
+ Store 71(txval22) 82
+ 87: 84 Load 86(g_tTex3df4)
+ 88: 14 Load 16(g_sSamp)
+ 90: 89 SampledImage 87 88
+ 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21
+ Store 83(txval30) 93
+ 98: 95 Load 97(g_tTex3di4)
+ 99: 14 Load 16(g_sSamp)
+ 101: 100 SampledImage 98 99
+ 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21
+ Store 94(txval31) 103
+ 108: 105 Load 107(g_tTex3du4)
+ 109: 14 Load 16(g_sSamp)
+ 111: 110 SampledImage 108 109
+ 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21
+ Store 104(txval32) 116
+ 121: 118 Load 120(g_tTexcdf4)
+ 122: 14 Load 16(g_sSamp)
+ 124: 123 SampledImage 121 122
+ 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21
+ Store 117(txval40) 125
+ 130: 127 Load 129(g_tTexcdi4)
+ 131: 14 Load 16(g_sSamp)
+ 133: 132 SampledImage 130 131
+ 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21
+ Store 126(txval41) 134
+ 139: 136 Load 138(g_tTexcdu4)
+ 140: 14 Load 16(g_sSamp)
+ 142: 141 SampledImage 139 140
+ 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21
+ Store 135(txval42) 143
+ 150: 8(ptr) AccessChain 146(psout) 147
+ Store 150 149
+ 153: 152(ptr) AccessChain 146(psout) 151
+ Store 153 148
+ 154:144(PS_OUTPUT) Load 146(psout)
+ ReturnValue 154
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
new file mode 100644
index 0000000..4bef16d
--- /dev/null
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -0,0 +1,589 @@
+hlsl.samplelevel.basic.dx10.vert
+Shader version: 450
+0:? Sequence
+0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
+0:27 Function Parameters:
+0:? Sequence
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of float)
+0:30 'txval10' (temp 4-component vector of float)
+0:30 textureLod (global 4-component vector of float)
+0:30 Construct combined texture-sampler (temp sampler1D)
+0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:30 Constant:
+0:30 0.100000
+0:30 Constant:
+0:30 0.750000
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of int)
+0:31 'txval11' (temp 4-component vector of int)
+0:31 textureLod (global 4-component vector of int)
+0:31 Construct combined texture-sampler (temp isampler1D)
+0:31 'g_tTex1di4' (uniform itexture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:31 Constant:
+0:31 0.200000
+0:31 Constant:
+0:31 0.750000
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of uint)
+0:32 'txval12' (temp 4-component vector of uint)
+0:32 textureLod (global 4-component vector of uint)
+0:32 Construct combined texture-sampler (temp usampler1D)
+0:32 'g_tTex1du4' (uniform utexture1D)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:32 Constant:
+0:32 0.300000
+0:32 Constant:
+0:32 0.750000
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 'txval20' (temp 4-component vector of float)
+0:34 textureLod (global 4-component vector of float)
+0:34 Construct combined texture-sampler (temp sampler2D)
+0:34 'g_tTex2df4' (uniform texture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:34 Constant:
+0:34 0.750000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of int)
+0:35 'txval21' (temp 4-component vector of int)
+0:35 textureLod (global 4-component vector of int)
+0:35 Construct combined texture-sampler (temp isampler2D)
+0:35 'g_tTex2di4' (uniform itexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:35 Constant:
+0:35 0.750000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of uint)
+0:36 'txval22' (temp 4-component vector of uint)
+0:36 textureLod (global 4-component vector of uint)
+0:36 Construct combined texture-sampler (temp usampler2D)
+0:36 'g_tTex2du4' (uniform utexture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:36 Constant:
+0:36 0.750000
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of float)
+0:38 'txval30' (temp 4-component vector of float)
+0:38 textureLod (global 4-component vector of float)
+0:38 Construct combined texture-sampler (temp sampler3D)
+0:38 'g_tTex3df4' (uniform texture3D)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:38 Constant:
+0:38 0.750000
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of int)
+0:39 'txval31' (temp 4-component vector of int)
+0:39 textureLod (global 4-component vector of int)
+0:39 Construct combined texture-sampler (temp isampler3D)
+0:39 'g_tTex3di4' (uniform itexture3D)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:39 Constant:
+0:39 0.750000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of uint)
+0:40 'txval32' (temp 4-component vector of uint)
+0:40 textureLod (global 4-component vector of uint)
+0:40 Construct combined texture-sampler (temp usampler3D)
+0:40 'g_tTex3du4' (uniform utexture3D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:40 Constant:
+0:40 0.750000
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 'txval40' (temp 4-component vector of float)
+0:42 textureLod (global 4-component vector of float)
+0:42 Construct combined texture-sampler (temp samplerCube)
+0:42 'g_tTexcdf4' (uniform textureCube)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:42 Constant:
+0:42 0.750000
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 'txval41' (temp 4-component vector of int)
+0:43 textureLod (global 4-component vector of int)
+0:43 Construct combined texture-sampler (temp isamplerCube)
+0:43 'g_tTexcdi4' (uniform itextureCube)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:43 Constant:
+0:43 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of uint)
+0:44 'txval42' (temp 4-component vector of uint)
+0:44 textureLod (global 4-component vector of uint)
+0:44 Construct combined texture-sampler (temp usamplerCube)
+0:44 'g_tTexcdu4' (uniform utextureCube)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:44 Constant:
+0:44 0.750000
+0:46 move second child to first child (temp 4-component vector of float)
+0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord)
+0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:46 Constant:
+0:46 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:48 Branch: Return with expression
+0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:50 Function Definition: main( (global structure{temp 4-component vector of float FragCoord Pos})
+0:27 Function Parameters:
+0:? Sequence
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of float)
+0:30 'txval10' (temp 4-component vector of float)
+0:30 textureLod (global 4-component vector of float)
+0:30 Construct combined texture-sampler (temp sampler1D)
+0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:30 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:30 Constant:
+0:30 0.100000
+0:30 Constant:
+0:30 0.750000
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of int)
+0:31 'txval11' (temp 4-component vector of int)
+0:31 textureLod (global 4-component vector of int)
+0:31 Construct combined texture-sampler (temp isampler1D)
+0:31 'g_tTex1di4' (uniform itexture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:31 Constant:
+0:31 0.200000
+0:31 Constant:
+0:31 0.750000
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of uint)
+0:32 'txval12' (temp 4-component vector of uint)
+0:32 textureLod (global 4-component vector of uint)
+0:32 Construct combined texture-sampler (temp usampler1D)
+0:32 'g_tTex1du4' (uniform utexture1D)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:32 Constant:
+0:32 0.300000
+0:32 Constant:
+0:32 0.750000
+0:34 Sequence
+0:34 move second child to first child (temp 4-component vector of float)
+0:34 'txval20' (temp 4-component vector of float)
+0:34 textureLod (global 4-component vector of float)
+0:34 Construct combined texture-sampler (temp sampler2D)
+0:34 'g_tTex2df4' (uniform texture2D)
+0:34 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:34 Constant:
+0:34 0.750000
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of int)
+0:35 'txval21' (temp 4-component vector of int)
+0:35 textureLod (global 4-component vector of int)
+0:35 Construct combined texture-sampler (temp isampler2D)
+0:35 'g_tTex2di4' (uniform itexture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:35 Constant:
+0:35 0.750000
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of uint)
+0:36 'txval22' (temp 4-component vector of uint)
+0:36 textureLod (global 4-component vector of uint)
+0:36 Construct combined texture-sampler (temp usampler2D)
+0:36 'g_tTex2du4' (uniform utexture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:36 Constant:
+0:36 0.750000
+0:38 Sequence
+0:38 move second child to first child (temp 4-component vector of float)
+0:38 'txval30' (temp 4-component vector of float)
+0:38 textureLod (global 4-component vector of float)
+0:38 Construct combined texture-sampler (temp sampler3D)
+0:38 'g_tTex3df4' (uniform texture3D)
+0:38 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:38 Constant:
+0:38 0.750000
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of int)
+0:39 'txval31' (temp 4-component vector of int)
+0:39 textureLod (global 4-component vector of int)
+0:39 Construct combined texture-sampler (temp isampler3D)
+0:39 'g_tTex3di4' (uniform itexture3D)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:39 Constant:
+0:39 0.750000
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of uint)
+0:40 'txval32' (temp 4-component vector of uint)
+0:40 textureLod (global 4-component vector of uint)
+0:40 Construct combined texture-sampler (temp usampler3D)
+0:40 'g_tTex3du4' (uniform utexture3D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:40 Constant:
+0:40 0.750000
+0:42 Sequence
+0:42 move second child to first child (temp 4-component vector of float)
+0:42 'txval40' (temp 4-component vector of float)
+0:42 textureLod (global 4-component vector of float)
+0:42 Construct combined texture-sampler (temp samplerCube)
+0:42 'g_tTexcdf4' (uniform textureCube)
+0:42 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:42 Constant:
+0:42 0.750000
+0:43 Sequence
+0:43 move second child to first child (temp 4-component vector of int)
+0:43 'txval41' (temp 4-component vector of int)
+0:43 textureLod (global 4-component vector of int)
+0:43 Construct combined texture-sampler (temp isamplerCube)
+0:43 'g_tTexcdi4' (uniform itextureCube)
+0:43 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:43 Constant:
+0:43 0.750000
+0:44 Sequence
+0:44 move second child to first child (temp 4-component vector of uint)
+0:44 'txval42' (temp 4-component vector of uint)
+0:44 textureLod (global 4-component vector of uint)
+0:44 Construct combined texture-sampler (temp usamplerCube)
+0:44 'g_tTexcdu4' (uniform utextureCube)
+0:44 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:44 Constant:
+0:44 0.750000
+0:46 move second child to first child (temp 4-component vector of float)
+0:46 Pos: direct index for structure (temp 4-component vector of float FragCoord)
+0:46 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:46 Constant:
+0:46 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:48 Branch: Return with expression
+0:48 'vsout' (temp structure{temp 4-component vector of float FragCoord Pos})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 154
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Vertex 4 "main"
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval10"
+ Name 12 "g_tTex1df4"
+ Name 16 "g_sSamp"
+ Name 26 "txval11"
+ Name 29 "g_tTex1di4"
+ Name 39 "txval12"
+ Name 42 "g_tTex1du4"
+ Name 49 "txval20"
+ Name 52 "g_tTex2df4"
+ Name 60 "txval21"
+ Name 63 "g_tTex2di4"
+ Name 71 "txval22"
+ Name 74 "g_tTex2du4"
+ Name 83 "txval30"
+ Name 86 "g_tTex3df4"
+ Name 94 "txval31"
+ Name 97 "g_tTex3di4"
+ Name 104 "txval32"
+ Name 107 "g_tTex3du4"
+ Name 117 "txval40"
+ Name 120 "g_tTexcdf4"
+ Name 126 "txval41"
+ Name 129 "g_tTexcdi4"
+ Name 135 "txval42"
+ Name 138 "g_tTexcdu4"
+ Name 144 "VS_OUTPUT"
+ MemberName 144(VS_OUTPUT) 0 "Pos"
+ Name 146 "vsout"
+ Name 153 "g_tTex1df4a"
+ Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 29(g_tTex1di4) DescriptorSet 0
+ Decorate 42(g_tTex1du4) DescriptorSet 0
+ Decorate 52(g_tTex2df4) DescriptorSet 0
+ Decorate 63(g_tTex2di4) DescriptorSet 0
+ Decorate 74(g_tTex2du4) DescriptorSet 0
+ Decorate 86(g_tTex3df4) DescriptorSet 0
+ Decorate 97(g_tTex3di4) DescriptorSet 0
+ Decorate 107(g_tTex3du4) DescriptorSet 0
+ Decorate 120(g_tTexcdf4) DescriptorSet 0
+ Decorate 129(g_tTexcdi4) DescriptorSet 0
+ Decorate 138(g_tTexcdu4) DescriptorSet 0
+ MemberDecorate 144(VS_OUTPUT) 0 BuiltIn FragCoord
+ Decorate 153(g_tTex1df4a) DescriptorSet 0
+ Decorate 153(g_tTex1df4a) Binding 1
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 1D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex1df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 23: TypeInt 32 1
+ 24: TypeVector 23(int) 4
+ 25: TypePointer Function 24(ivec4)
+ 27: TypeImage 23(int) 1D sampled format:Unknown
+ 28: TypePointer UniformConstant 27
+ 29(g_tTex1di4): 28(ptr) Variable UniformConstant
+ 32: TypeSampledImage 27
+ 34: 6(float) Constant 1045220557
+ 36: TypeInt 32 0
+ 37: TypeVector 36(int) 4
+ 38: TypePointer Function 37(ivec4)
+ 40: TypeImage 36(int) 1D sampled format:Unknown
+ 41: TypePointer UniformConstant 40
+ 42(g_tTex1du4): 41(ptr) Variable UniformConstant
+ 45: TypeSampledImage 40
+ 47: 6(float) Constant 1050253722
+ 50: TypeImage 6(float) 2D sampled format:Unknown
+ 51: TypePointer UniformConstant 50
+ 52(g_tTex2df4): 51(ptr) Variable UniformConstant
+ 55: TypeSampledImage 50
+ 57: TypeVector 6(float) 2
+ 58: 57(fvec2) ConstantComposite 20 34
+ 61: TypeImage 23(int) 2D sampled format:Unknown
+ 62: TypePointer UniformConstant 61
+ 63(g_tTex2di4): 62(ptr) Variable UniformConstant
+ 66: TypeSampledImage 61
+ 68: 6(float) Constant 1053609165
+ 69: 57(fvec2) ConstantComposite 47 68
+ 72: TypeImage 36(int) 2D sampled format:Unknown
+ 73: TypePointer UniformConstant 72
+ 74(g_tTex2du4): 73(ptr) Variable UniformConstant
+ 77: TypeSampledImage 72
+ 79: 6(float) Constant 1056964608
+ 80: 6(float) Constant 1058642330
+ 81: 57(fvec2) ConstantComposite 79 80
+ 84: TypeImage 6(float) 3D sampled format:Unknown
+ 85: TypePointer UniformConstant 84
+ 86(g_tTex3df4): 85(ptr) Variable UniformConstant
+ 89: TypeSampledImage 84
+ 91: TypeVector 6(float) 3
+ 92: 91(fvec3) ConstantComposite 20 34 47
+ 95: TypeImage 23(int) 3D sampled format:Unknown
+ 96: TypePointer UniformConstant 95
+ 97(g_tTex3di4): 96(ptr) Variable UniformConstant
+ 100: TypeSampledImage 95
+ 102: 91(fvec3) ConstantComposite 68 79 80
+ 105: TypeImage 36(int) 3D sampled format:Unknown
+ 106: TypePointer UniformConstant 105
+ 107(g_tTex3du4): 106(ptr) Variable UniformConstant
+ 110: TypeSampledImage 105
+ 112: 6(float) Constant 1060320051
+ 113: 6(float) Constant 1061997773
+ 114: 6(float) Constant 1063675494
+ 115: 91(fvec3) ConstantComposite 112 113 114
+ 118: TypeImage 6(float) Cube sampled format:Unknown
+ 119: TypePointer UniformConstant 118
+ 120(g_tTexcdf4): 119(ptr) Variable UniformConstant
+ 123: TypeSampledImage 118
+ 127: TypeImage 23(int) Cube sampled format:Unknown
+ 128: TypePointer UniformConstant 127
+ 129(g_tTexcdi4): 128(ptr) Variable UniformConstant
+ 132: TypeSampledImage 127
+ 136: TypeImage 36(int) Cube sampled format:Unknown
+ 137: TypePointer UniformConstant 136
+ 138(g_tTexcdu4): 137(ptr) Variable UniformConstant
+ 141: TypeSampledImage 136
+ 144(VS_OUTPUT): TypeStruct 7(fvec4)
+ 145: TypePointer Function 144(VS_OUTPUT)
+ 147: 23(int) Constant 0
+ 148: 6(float) Constant 0
+ 149: 7(fvec4) ConstantComposite 148 148 148 148
+153(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval10): 8(ptr) Variable Function
+ 26(txval11): 25(ptr) Variable Function
+ 39(txval12): 38(ptr) Variable Function
+ 49(txval20): 8(ptr) Variable Function
+ 60(txval21): 25(ptr) Variable Function
+ 71(txval22): 38(ptr) Variable Function
+ 83(txval30): 8(ptr) Variable Function
+ 94(txval31): 25(ptr) Variable Function
+ 104(txval32): 38(ptr) Variable Function
+ 117(txval40): 8(ptr) Variable Function
+ 126(txval41): 25(ptr) Variable Function
+ 135(txval42): 38(ptr) Variable Function
+ 146(vsout): 145(ptr) Variable Function
+ 13: 10 Load 12(g_tTex1df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 22: 7(fvec4) ImageSampleExplicitLod 19 20 Lod 21
+ Store 9(txval10) 22
+ 30: 27 Load 29(g_tTex1di4)
+ 31: 14 Load 16(g_sSamp)
+ 33: 32 SampledImage 30 31
+ 35: 24(ivec4) ImageSampleExplicitLod 33 34 Lod 21
+ Store 26(txval11) 35
+ 43: 40 Load 42(g_tTex1du4)
+ 44: 14 Load 16(g_sSamp)
+ 46: 45 SampledImage 43 44
+ 48: 37(ivec4) ImageSampleExplicitLod 46 47 Lod 21
+ Store 39(txval12) 48
+ 53: 50 Load 52(g_tTex2df4)
+ 54: 14 Load 16(g_sSamp)
+ 56: 55 SampledImage 53 54
+ 59: 7(fvec4) ImageSampleExplicitLod 56 58 Lod 21
+ Store 49(txval20) 59
+ 64: 61 Load 63(g_tTex2di4)
+ 65: 14 Load 16(g_sSamp)
+ 67: 66 SampledImage 64 65
+ 70: 24(ivec4) ImageSampleExplicitLod 67 69 Lod 21
+ Store 60(txval21) 70
+ 75: 72 Load 74(g_tTex2du4)
+ 76: 14 Load 16(g_sSamp)
+ 78: 77 SampledImage 75 76
+ 82: 37(ivec4) ImageSampleExplicitLod 78 81 Lod 21
+ Store 71(txval22) 82
+ 87: 84 Load 86(g_tTex3df4)
+ 88: 14 Load 16(g_sSamp)
+ 90: 89 SampledImage 87 88
+ 93: 7(fvec4) ImageSampleExplicitLod 90 92 Lod 21
+ Store 83(txval30) 93
+ 98: 95 Load 97(g_tTex3di4)
+ 99: 14 Load 16(g_sSamp)
+ 101: 100 SampledImage 98 99
+ 103: 24(ivec4) ImageSampleExplicitLod 101 102 Lod 21
+ Store 94(txval31) 103
+ 108: 105 Load 107(g_tTex3du4)
+ 109: 14 Load 16(g_sSamp)
+ 111: 110 SampledImage 108 109
+ 116: 37(ivec4) ImageSampleExplicitLod 111 115 Lod 21
+ Store 104(txval32) 116
+ 121: 118 Load 120(g_tTexcdf4)
+ 122: 14 Load 16(g_sSamp)
+ 124: 123 SampledImage 121 122
+ 125: 7(fvec4) ImageSampleExplicitLod 124 92 Lod 21
+ Store 117(txval40) 125
+ 130: 127 Load 129(g_tTexcdi4)
+ 131: 14 Load 16(g_sSamp)
+ 133: 132 SampledImage 130 131
+ 134: 24(ivec4) ImageSampleExplicitLod 133 102 Lod 21
+ Store 126(txval41) 134
+ 139: 136 Load 138(g_tTexcdu4)
+ 140: 14 Load 16(g_sSamp)
+ 142: 141 SampledImage 139 140
+ 143: 37(ivec4) ImageSampleExplicitLod 142 115 Lod 21
+ Store 135(txval42) 143
+ 150: 8(ptr) AccessChain 146(vsout) 147
+ Store 150 149
+ 151:144(VS_OUTPUT) Load 146(vsout)
+ ReturnValue 151
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
new file mode 100644
index 0000000..4f7a1a0
--- /dev/null
+++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -0,0 +1,572 @@
+hlsl.samplelevel.offset.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'txval10' (temp 4-component vector of float)
+0:31 textureLodOffset (global 4-component vector of float)
+0:31 Construct combined texture-sampler (temp sampler1D)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:31 Constant:
+0:31 0.100000
+0:31 Constant:
+0:31 0.750000
+0:31 Constant:
+0:31 1 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of int)
+0:32 'txval11' (temp 4-component vector of int)
+0:32 textureLodOffset (global 4-component vector of int)
+0:32 Construct combined texture-sampler (temp isampler1D)
+0:32 'g_tTex1di4' (uniform itexture1D)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:32 Constant:
+0:32 0.200000
+0:32 Constant:
+0:32 0.750000
+0:32 Constant:
+0:32 1 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of uint)
+0:33 'txval12' (temp 4-component vector of uint)
+0:33 textureLodOffset (global 4-component vector of uint)
+0:33 Construct combined texture-sampler (temp usampler1D)
+0:33 'g_tTex1du4' (uniform utexture1D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:33 Constant:
+0:33 0.300000
+0:33 Constant:
+0:33 0.750000
+0:33 Constant:
+0:33 1 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'txval20' (temp 4-component vector of float)
+0:35 textureLodOffset (global 4-component vector of float)
+0:35 Construct combined texture-sampler (temp sampler2D)
+0:35 'g_tTex2df4' (uniform texture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:35 Constant:
+0:35 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of int)
+0:36 'txval21' (temp 4-component vector of int)
+0:36 textureLodOffset (global 4-component vector of int)
+0:36 Construct combined texture-sampler (temp isampler2D)
+0:36 'g_tTex2di4' (uniform itexture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:36 Constant:
+0:36 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of uint)
+0:37 'txval22' (temp 4-component vector of uint)
+0:37 textureLodOffset (global 4-component vector of uint)
+0:37 Construct combined texture-sampler (temp usampler2D)
+0:37 'g_tTex2du4' (uniform utexture2D)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:37 Constant:
+0:37 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? -1 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 'txval30' (temp 4-component vector of float)
+0:39 textureLodOffset (global 4-component vector of float)
+0:39 Construct combined texture-sampler (temp sampler3D)
+0:39 'g_tTex3df4' (uniform texture3D)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:39 Constant:
+0:39 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:? 1 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 'txval31' (temp 4-component vector of int)
+0:40 textureLodOffset (global 4-component vector of int)
+0:40 Construct combined texture-sampler (temp isampler3D)
+0:40 'g_tTex3di4' (uniform itexture3D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:40 Constant:
+0:40 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:? 1 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 'txval32' (temp 4-component vector of uint)
+0:41 textureLodOffset (global 4-component vector of uint)
+0:41 Construct combined texture-sampler (temp usampler3D)
+0:41 'g_tTex3du4' (uniform utexture3D)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:41 Constant:
+0:41 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:46 move second child to first child (temp float)
+0:46 Depth: direct index for structure (temp float FragDepth)
+0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 1.000000
+0:48 Branch: Return with expression
+0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:50 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:28 Function Parameters:
+0:? Sequence
+0:31 Sequence
+0:31 move second child to first child (temp 4-component vector of float)
+0:31 'txval10' (temp 4-component vector of float)
+0:31 textureLodOffset (global 4-component vector of float)
+0:31 Construct combined texture-sampler (temp sampler1D)
+0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:31 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:31 Constant:
+0:31 0.100000
+0:31 Constant:
+0:31 0.750000
+0:31 Constant:
+0:31 1 (const int)
+0:32 Sequence
+0:32 move second child to first child (temp 4-component vector of int)
+0:32 'txval11' (temp 4-component vector of int)
+0:32 textureLodOffset (global 4-component vector of int)
+0:32 Construct combined texture-sampler (temp isampler1D)
+0:32 'g_tTex1di4' (uniform itexture1D)
+0:32 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:32 Constant:
+0:32 0.200000
+0:32 Constant:
+0:32 0.750000
+0:32 Constant:
+0:32 1 (const int)
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of uint)
+0:33 'txval12' (temp 4-component vector of uint)
+0:33 textureLodOffset (global 4-component vector of uint)
+0:33 Construct combined texture-sampler (temp usampler1D)
+0:33 'g_tTex1du4' (uniform utexture1D)
+0:33 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:33 Constant:
+0:33 0.300000
+0:33 Constant:
+0:33 0.750000
+0:33 Constant:
+0:33 1 (const int)
+0:35 Sequence
+0:35 move second child to first child (temp 4-component vector of float)
+0:35 'txval20' (temp 4-component vector of float)
+0:35 textureLodOffset (global 4-component vector of float)
+0:35 Construct combined texture-sampler (temp sampler2D)
+0:35 'g_tTex2df4' (uniform texture2D)
+0:35 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:35 Constant:
+0:35 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:36 Sequence
+0:36 move second child to first child (temp 4-component vector of int)
+0:36 'txval21' (temp 4-component vector of int)
+0:36 textureLodOffset (global 4-component vector of int)
+0:36 Construct combined texture-sampler (temp isampler2D)
+0:36 'g_tTex2di4' (uniform itexture2D)
+0:36 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:36 Constant:
+0:36 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:37 Sequence
+0:37 move second child to first child (temp 4-component vector of uint)
+0:37 'txval22' (temp 4-component vector of uint)
+0:37 textureLodOffset (global 4-component vector of uint)
+0:37 Construct combined texture-sampler (temp usampler2D)
+0:37 'g_tTex2du4' (uniform utexture2D)
+0:37 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:37 Constant:
+0:37 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? -1 (const int)
+0:39 Sequence
+0:39 move second child to first child (temp 4-component vector of float)
+0:39 'txval30' (temp 4-component vector of float)
+0:39 textureLodOffset (global 4-component vector of float)
+0:39 Construct combined texture-sampler (temp sampler3D)
+0:39 'g_tTex3df4' (uniform texture3D)
+0:39 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:39 Constant:
+0:39 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:? 1 (const int)
+0:40 Sequence
+0:40 move second child to first child (temp 4-component vector of int)
+0:40 'txval31' (temp 4-component vector of int)
+0:40 textureLodOffset (global 4-component vector of int)
+0:40 Construct combined texture-sampler (temp isampler3D)
+0:40 'g_tTex3di4' (uniform itexture3D)
+0:40 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.400000
+0:? 0.500000
+0:? 0.600000
+0:40 Constant:
+0:40 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 1 (const int)
+0:? 1 (const int)
+0:41 Sequence
+0:41 move second child to first child (temp 4-component vector of uint)
+0:41 'txval32' (temp 4-component vector of uint)
+0:41 textureLodOffset (global 4-component vector of uint)
+0:41 Construct combined texture-sampler (temp usampler3D)
+0:41 'g_tTex3du4' (uniform utexture3D)
+0:41 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.700000
+0:? 0.800000
+0:? 0.900000
+0:41 Constant:
+0:41 0.750000
+0:? Constant:
+0:? 1 (const int)
+0:? 0 (const int)
+0:? -1 (const int)
+0:45 move second child to first child (temp 4-component vector of float)
+0:45 Color: direct index for structure (temp 4-component vector of float)
+0:45 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:45 Constant:
+0:45 0 (const int)
+0:45 Constant:
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:45 1.000000
+0:46 move second child to first child (temp float)
+0:46 Depth: direct index for structure (temp float FragDepth)
+0:46 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:46 Constant:
+0:46 1 (const int)
+0:46 Constant:
+0:46 1.000000
+0:48 Branch: Return with expression
+0:48 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:? 'g_tTex1di4' (uniform itexture1D)
+0:? 'g_tTex1du4' (uniform utexture1D)
+0:? 'g_tTex2df4' (uniform texture2D)
+0:? 'g_tTex2di4' (uniform itexture2D)
+0:? 'g_tTex2du4' (uniform utexture2D)
+0:? 'g_tTex3df4' (uniform texture3D)
+0:? 'g_tTex3di4' (uniform itexture3D)
+0:? 'g_tTex3du4' (uniform utexture3D)
+0:? 'g_tTexcdf4' (uniform textureCube)
+0:? 'g_tTexcdi4' (uniform itextureCube)
+0:? 'g_tTexcdu4' (uniform utextureCube)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 148
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval10"
+ Name 12 "g_tTex1df4"
+ Name 16 "g_sSamp"
+ Name 27 "txval11"
+ Name 30 "g_tTex1di4"
+ Name 40 "txval12"
+ Name 43 "g_tTex1du4"
+ Name 50 "txval20"
+ Name 53 "g_tTex2df4"
+ Name 64 "txval21"
+ Name 67 "g_tTex2di4"
+ Name 76 "txval22"
+ Name 79 "g_tTex2du4"
+ Name 90 "txval30"
+ Name 93 "g_tTex3df4"
+ Name 103 "txval31"
+ Name 106 "g_tTex3di4"
+ Name 114 "txval32"
+ Name 117 "g_tTex3du4"
+ Name 128 "PS_OUTPUT"
+ MemberName 128(PS_OUTPUT) 0 "Color"
+ MemberName 128(PS_OUTPUT) 1 "Depth"
+ Name 130 "psout"
+ Name 138 "g_tTex1df4a"
+ Name 141 "g_tTexcdf4"
+ Name 144 "g_tTexcdi4"
+ Name 147 "g_tTexcdu4"
+ Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 30(g_tTex1di4) DescriptorSet 0
+ Decorate 43(g_tTex1du4) DescriptorSet 0
+ Decorate 53(g_tTex2df4) DescriptorSet 0
+ Decorate 67(g_tTex2di4) DescriptorSet 0
+ Decorate 79(g_tTex2du4) DescriptorSet 0
+ Decorate 93(g_tTex3df4) DescriptorSet 0
+ Decorate 106(g_tTex3di4) DescriptorSet 0
+ Decorate 117(g_tTex3du4) DescriptorSet 0
+ MemberDecorate 128(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 138(g_tTex1df4a) DescriptorSet 0
+ Decorate 138(g_tTex1df4a) Binding 1
+ Decorate 141(g_tTexcdf4) DescriptorSet 0
+ Decorate 144(g_tTexcdi4) DescriptorSet 0
+ Decorate 147(g_tTexcdu4) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 1D sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex1df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: 6(float) Constant 1036831949
+ 21: 6(float) Constant 1061158912
+ 22: TypeInt 32 1
+ 23: 22(int) Constant 1
+ 25: TypeVector 22(int) 4
+ 26: TypePointer Function 25(ivec4)
+ 28: TypeImage 22(int) 1D sampled format:Unknown
+ 29: TypePointer UniformConstant 28
+ 30(g_tTex1di4): 29(ptr) Variable UniformConstant
+ 33: TypeSampledImage 28
+ 35: 6(float) Constant 1045220557
+ 37: TypeInt 32 0
+ 38: TypeVector 37(int) 4
+ 39: TypePointer Function 38(ivec4)
+ 41: TypeImage 37(int) 1D sampled format:Unknown
+ 42: TypePointer UniformConstant 41
+ 43(g_tTex1du4): 42(ptr) Variable UniformConstant
+ 46: TypeSampledImage 41
+ 48: 6(float) Constant 1050253722
+ 51: TypeImage 6(float) 2D sampled format:Unknown
+ 52: TypePointer UniformConstant 51
+ 53(g_tTex2df4): 52(ptr) Variable UniformConstant
+ 56: TypeSampledImage 51
+ 58: TypeVector 6(float) 2
+ 59: 58(fvec2) ConstantComposite 20 35
+ 60: TypeVector 22(int) 2
+ 61: 22(int) Constant 0
+ 62: 60(ivec2) ConstantComposite 23 61
+ 65: TypeImage 22(int) 2D sampled format:Unknown
+ 66: TypePointer UniformConstant 65
+ 67(g_tTex2di4): 66(ptr) Variable UniformConstant
+ 70: TypeSampledImage 65
+ 72: 6(float) Constant 1053609165
+ 73: 58(fvec2) ConstantComposite 48 72
+ 74: 60(ivec2) ConstantComposite 23 23
+ 77: TypeImage 37(int) 2D sampled format:Unknown
+ 78: TypePointer UniformConstant 77
+ 79(g_tTex2du4): 78(ptr) Variable UniformConstant
+ 82: TypeSampledImage 77
+ 84: 6(float) Constant 1056964608
+ 85: 6(float) Constant 1058642330
+ 86: 58(fvec2) ConstantComposite 84 85
+ 87: 22(int) Constant 4294967295
+ 88: 60(ivec2) ConstantComposite 23 87
+ 91: TypeImage 6(float) 3D sampled format:Unknown
+ 92: TypePointer UniformConstant 91
+ 93(g_tTex3df4): 92(ptr) Variable UniformConstant
+ 96: TypeSampledImage 91
+ 98: TypeVector 6(float) 3
+ 99: 98(fvec3) ConstantComposite 20 35 48
+ 100: TypeVector 22(int) 3
+ 101: 100(ivec3) ConstantComposite 23 61 23
+ 104: TypeImage 22(int) 3D sampled format:Unknown
+ 105: TypePointer UniformConstant 104
+ 106(g_tTex3di4): 105(ptr) Variable UniformConstant
+ 109: TypeSampledImage 104
+ 111: 98(fvec3) ConstantComposite 72 84 85
+ 112: 100(ivec3) ConstantComposite 23 23 23
+ 115: TypeImage 37(int) 3D sampled format:Unknown
+ 116: TypePointer UniformConstant 115
+ 117(g_tTex3du4): 116(ptr) Variable UniformConstant
+ 120: TypeSampledImage 115
+ 122: 6(float) Constant 1060320051
+ 123: 6(float) Constant 1061997773
+ 124: 6(float) Constant 1063675494
+ 125: 98(fvec3) ConstantComposite 122 123 124
+ 126: 100(ivec3) ConstantComposite 23 61 87
+ 128(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 129: TypePointer Function 128(PS_OUTPUT)
+ 131: 6(float) Constant 1065353216
+ 132: 7(fvec4) ConstantComposite 131 131 131 131
+ 134: TypePointer Function 6(float)
+138(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 139: TypeImage 6(float) Cube sampled format:Unknown
+ 140: TypePointer UniformConstant 139
+ 141(g_tTexcdf4): 140(ptr) Variable UniformConstant
+ 142: TypeImage 22(int) Cube sampled format:Unknown
+ 143: TypePointer UniformConstant 142
+ 144(g_tTexcdi4): 143(ptr) Variable UniformConstant
+ 145: TypeImage 37(int) Cube sampled format:Unknown
+ 146: TypePointer UniformConstant 145
+ 147(g_tTexcdu4): 146(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval10): 8(ptr) Variable Function
+ 27(txval11): 26(ptr) Variable Function
+ 40(txval12): 39(ptr) Variable Function
+ 50(txval20): 8(ptr) Variable Function
+ 64(txval21): 26(ptr) Variable Function
+ 76(txval22): 39(ptr) Variable Function
+ 90(txval30): 8(ptr) Variable Function
+ 103(txval31): 26(ptr) Variable Function
+ 114(txval32): 39(ptr) Variable Function
+ 130(psout): 129(ptr) Variable Function
+ 13: 10 Load 12(g_tTex1df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 24: 7(fvec4) ImageSampleExplicitLod 19 20 Lod ConstOffset 21 23
+ Store 9(txval10) 24
+ 31: 28 Load 30(g_tTex1di4)
+ 32: 14 Load 16(g_sSamp)
+ 34: 33 SampledImage 31 32
+ 36: 25(ivec4) ImageSampleExplicitLod 34 35 Lod ConstOffset 21 23
+ Store 27(txval11) 36
+ 44: 41 Load 43(g_tTex1du4)
+ 45: 14 Load 16(g_sSamp)
+ 47: 46 SampledImage 44 45
+ 49: 38(ivec4) ImageSampleExplicitLod 47 48 Lod ConstOffset 21 23
+ Store 40(txval12) 49
+ 54: 51 Load 53(g_tTex2df4)
+ 55: 14 Load 16(g_sSamp)
+ 57: 56 SampledImage 54 55
+ 63: 7(fvec4) ImageSampleExplicitLod 57 59 Lod ConstOffset 21 62
+ Store 50(txval20) 63
+ 68: 65 Load 67(g_tTex2di4)
+ 69: 14 Load 16(g_sSamp)
+ 71: 70 SampledImage 68 69
+ 75: 25(ivec4) ImageSampleExplicitLod 71 73 Lod ConstOffset 21 74
+ Store 64(txval21) 75
+ 80: 77 Load 79(g_tTex2du4)
+ 81: 14 Load 16(g_sSamp)
+ 83: 82 SampledImage 80 81
+ 89: 38(ivec4) ImageSampleExplicitLod 83 86 Lod ConstOffset 21 88
+ Store 76(txval22) 89
+ 94: 91 Load 93(g_tTex3df4)
+ 95: 14 Load 16(g_sSamp)
+ 97: 96 SampledImage 94 95
+ 102: 7(fvec4) ImageSampleExplicitLod 97 99 Lod ConstOffset 21 101
+ Store 90(txval30) 102
+ 107: 104 Load 106(g_tTex3di4)
+ 108: 14 Load 16(g_sSamp)
+ 110: 109 SampledImage 107 108
+ 113: 25(ivec4) ImageSampleExplicitLod 110 111 Lod ConstOffset 21 112
+ Store 103(txval31) 113
+ 118: 115 Load 117(g_tTex3du4)
+ 119: 14 Load 16(g_sSamp)
+ 121: 120 SampledImage 118 119
+ 127: 38(ivec4) ImageSampleExplicitLod 121 125 Lod ConstOffset 21 126
+ Store 114(txval32) 127
+ 133: 8(ptr) AccessChain 130(psout) 61
+ Store 133 132
+ 135: 134(ptr) AccessChain 130(psout) 23
+ Store 135 131
+ 136:128(PS_OUTPUT) Load 130(psout)
+ ReturnValue 136
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
new file mode 100644
index 0000000..0d18428
--- /dev/null
+++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -0,0 +1,409 @@
+hlsl.samplelevel.offsetarray.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20 Function Parameters:
+0:? Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'txval10' (temp 4-component vector of float)
+0:23 textureLodOffset (global 4-component vector of float)
+0:23 Construct combined texture-sampler (temp sampler1DArray)
+0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:23 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:23 Constant:
+0:23 0.750000
+0:23 Constant:
+0:23 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp 4-component vector of int)
+0:24 'txval11' (temp 4-component vector of int)
+0:24 textureLodOffset (global 4-component vector of int)
+0:24 Construct combined texture-sampler (temp isampler1DArray)
+0:24 'g_tTex1di4' (uniform itexture1DArray)
+0:24 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.200000
+0:? 0.300000
+0:24 Constant:
+0:24 0.750000
+0:24 Constant:
+0:24 1 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of uint)
+0:25 'txval12' (temp 4-component vector of uint)
+0:25 textureLodOffset (global 4-component vector of uint)
+0:25 Construct combined texture-sampler (temp usampler1DArray)
+0:25 'g_tTex1du4' (uniform utexture1DArray)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:25 Constant:
+0:25 0.750000
+0:25 Constant:
+0:25 2 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'txval20' (temp 4-component vector of float)
+0:27 textureLodOffset (global 4-component vector of float)
+0:27 Construct combined texture-sampler (temp sampler2DArray)
+0:27 'g_tTex2df4' (uniform texture2DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:27 Constant:
+0:27 0.750000
+0:? Constant:
+0:? 0 (const int)
+0:? 0 (const int)
+0:28 Sequence
+0:28 move second child to first child (temp 4-component vector of int)
+0:28 'txval21' (temp 4-component vector of int)
+0:28 textureLodOffset (global 4-component vector of int)
+0:28 Construct combined texture-sampler (temp isampler2DArray)
+0:28 'g_tTex2di4' (uniform itexture2DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.500000
+0:28 Constant:
+0:28 0.750000
+0:? Constant:
+0:? 0 (const int)
+0:? 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of uint)
+0:29 'txval22' (temp 4-component vector of uint)
+0:29 textureLodOffset (global 4-component vector of uint)
+0:29 Construct combined texture-sampler (temp usampler2DArray)
+0:29 'g_tTex2du4' (uniform utexture2DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:29 Constant:
+0:29 0.750000
+0:? Constant:
+0:? 0 (const int)
+0:? 1 (const int)
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 Color: direct index for structure (temp 4-component vector of float)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:34 move second child to first child (temp float)
+0:34 Depth: direct index for structure (temp float FragDepth)
+0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 1.000000
+0:36 Branch: Return with expression
+0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4' (uniform itexture1DArray)
+0:? 'g_tTex1du4' (uniform utexture1DArray)
+0:? 'g_tTex2df4' (uniform texture2DArray)
+0:? 'g_tTex2di4' (uniform itexture2DArray)
+0:? 'g_tTex2du4' (uniform utexture2DArray)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:20 Function Parameters:
+0:? Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:23 'txval10' (temp 4-component vector of float)
+0:23 textureLodOffset (global 4-component vector of float)
+0:23 Construct combined texture-sampler (temp sampler1DArray)
+0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:23 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:23 Constant:
+0:23 0.750000
+0:23 Constant:
+0:23 0 (const int)
+0:24 Sequence
+0:24 move second child to first child (temp 4-component vector of int)
+0:24 'txval11' (temp 4-component vector of int)
+0:24 textureLodOffset (global 4-component vector of int)
+0:24 Construct combined texture-sampler (temp isampler1DArray)
+0:24 'g_tTex1di4' (uniform itexture1DArray)
+0:24 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.200000
+0:? 0.300000
+0:24 Constant:
+0:24 0.750000
+0:24 Constant:
+0:24 1 (const int)
+0:25 Sequence
+0:25 move second child to first child (temp 4-component vector of uint)
+0:25 'txval12' (temp 4-component vector of uint)
+0:25 textureLodOffset (global 4-component vector of uint)
+0:25 Construct combined texture-sampler (temp usampler1DArray)
+0:25 'g_tTex1du4' (uniform utexture1DArray)
+0:25 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:25 Constant:
+0:25 0.750000
+0:25 Constant:
+0:25 2 (const int)
+0:27 Sequence
+0:27 move second child to first child (temp 4-component vector of float)
+0:27 'txval20' (temp 4-component vector of float)
+0:27 textureLodOffset (global 4-component vector of float)
+0:27 Construct combined texture-sampler (temp sampler2DArray)
+0:27 'g_tTex2df4' (uniform texture2DArray)
+0:27 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.100000
+0:? 0.200000
+0:? 0.300000
+0:27 Constant:
+0:27 0.750000
+0:? Constant:
+0:? 0 (const int)
+0:? 0 (const int)
+0:28 Sequence
+0:28 move second child to first child (temp 4-component vector of int)
+0:28 'txval21' (temp 4-component vector of int)
+0:28 textureLodOffset (global 4-component vector of int)
+0:28 Construct combined texture-sampler (temp isampler2DArray)
+0:28 'g_tTex2di4' (uniform itexture2DArray)
+0:28 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.300000
+0:? 0.400000
+0:? 0.500000
+0:28 Constant:
+0:28 0.750000
+0:? Constant:
+0:? 0 (const int)
+0:? 0 (const int)
+0:29 Sequence
+0:29 move second child to first child (temp 4-component vector of uint)
+0:29 'txval22' (temp 4-component vector of uint)
+0:29 textureLodOffset (global 4-component vector of uint)
+0:29 Construct combined texture-sampler (temp usampler2DArray)
+0:29 'g_tTex2du4' (uniform utexture2DArray)
+0:29 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? Constant:
+0:? 0.500000
+0:? 0.600000
+0:? 0.700000
+0:29 Constant:
+0:29 0.750000
+0:? Constant:
+0:? 0 (const int)
+0:? 1 (const int)
+0:33 move second child to first child (temp 4-component vector of float)
+0:33 Color: direct index for structure (temp 4-component vector of float)
+0:33 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Constant:
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:33 1.000000
+0:34 move second child to first child (temp float)
+0:34 Depth: direct index for structure (temp float FragDepth)
+0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:34 Constant:
+0:34 1 (const int)
+0:34 Constant:
+0:34 1.000000
+0:36 Branch: Return with expression
+0:36 'psout' (temp structure{temp 4-component vector of float Color, temp float FragDepth Depth})
+0:? Linker Objects
+0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
+0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
+0:? 'g_tTex1di4' (uniform itexture1DArray)
+0:? 'g_tTex1du4' (uniform utexture1DArray)
+0:? 'g_tTex2df4' (uniform texture2DArray)
+0:? 'g_tTex2di4' (uniform itexture2DArray)
+0:? 'g_tTex2du4' (uniform utexture2DArray)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 105
+
+ Capability Shader
+ Capability Sampled1D
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 9 "txval10"
+ Name 12 "g_tTex1df4"
+ Name 16 "g_sSamp"
+ Name 30 "txval11"
+ Name 33 "g_tTex1di4"
+ Name 45 "txval12"
+ Name 48 "g_tTex1du4"
+ Name 57 "txval20"
+ Name 60 "g_tTex2df4"
+ Name 70 "txval21"
+ Name 73 "g_tTex2di4"
+ Name 81 "txval22"
+ Name 84 "g_tTex2du4"
+ Name 94 "PS_OUTPUT"
+ MemberName 94(PS_OUTPUT) 0 "Color"
+ MemberName 94(PS_OUTPUT) 1 "Depth"
+ Name 96 "psout"
+ Name 104 "g_tTex1df4a"
+ Decorate 12(g_tTex1df4) DescriptorSet 0
+ Decorate 12(g_tTex1df4) Binding 0
+ Decorate 16(g_sSamp) DescriptorSet 0
+ Decorate 16(g_sSamp) Binding 0
+ Decorate 33(g_tTex1di4) DescriptorSet 0
+ Decorate 48(g_tTex1du4) DescriptorSet 0
+ Decorate 60(g_tTex2df4) DescriptorSet 0
+ Decorate 73(g_tTex2di4) DescriptorSet 0
+ Decorate 84(g_tTex2du4) DescriptorSet 0
+ MemberDecorate 94(PS_OUTPUT) 1 BuiltIn FragDepth
+ Decorate 104(g_tTex1df4a) DescriptorSet 0
+ Decorate 104(g_tTex1df4a) Binding 1
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 10: TypeImage 6(float) 1D array sampled format:Unknown
+ 11: TypePointer UniformConstant 10
+ 12(g_tTex1df4): 11(ptr) Variable UniformConstant
+ 14: TypeSampler
+ 15: TypePointer UniformConstant 14
+ 16(g_sSamp): 15(ptr) Variable UniformConstant
+ 18: TypeSampledImage 10
+ 20: TypeVector 6(float) 2
+ 21: 6(float) Constant 1036831949
+ 22: 6(float) Constant 1045220557
+ 23: 20(fvec2) ConstantComposite 21 22
+ 24: 6(float) Constant 1061158912
+ 25: TypeInt 32 1
+ 26: 25(int) Constant 0
+ 28: TypeVector 25(int) 4
+ 29: TypePointer Function 28(ivec4)
+ 31: TypeImage 25(int) 1D array sampled format:Unknown
+ 32: TypePointer UniformConstant 31
+ 33(g_tTex1di4): 32(ptr) Variable UniformConstant
+ 36: TypeSampledImage 31
+ 38: 6(float) Constant 1050253722
+ 39: 20(fvec2) ConstantComposite 22 38
+ 40: 25(int) Constant 1
+ 42: TypeInt 32 0
+ 43: TypeVector 42(int) 4
+ 44: TypePointer Function 43(ivec4)
+ 46: TypeImage 42(int) 1D array sampled format:Unknown
+ 47: TypePointer UniformConstant 46
+ 48(g_tTex1du4): 47(ptr) Variable UniformConstant
+ 51: TypeSampledImage 46
+ 53: 6(float) Constant 1053609165
+ 54: 20(fvec2) ConstantComposite 38 53
+ 55: 25(int) Constant 2
+ 58: TypeImage 6(float) 2D array sampled format:Unknown
+ 59: TypePointer UniformConstant 58
+ 60(g_tTex2df4): 59(ptr) Variable UniformConstant
+ 63: TypeSampledImage 58
+ 65: TypeVector 6(float) 3
+ 66: 65(fvec3) ConstantComposite 21 22 38
+ 67: TypeVector 25(int) 2
+ 68: 67(ivec2) ConstantComposite 26 26
+ 71: TypeImage 25(int) 2D array sampled format:Unknown
+ 72: TypePointer UniformConstant 71
+ 73(g_tTex2di4): 72(ptr) Variable UniformConstant
+ 76: TypeSampledImage 71
+ 78: 6(float) Constant 1056964608
+ 79: 65(fvec3) ConstantComposite 38 53 78
+ 82: TypeImage 42(int) 2D array sampled format:Unknown
+ 83: TypePointer UniformConstant 82
+ 84(g_tTex2du4): 83(ptr) Variable UniformConstant
+ 87: TypeSampledImage 82
+ 89: 6(float) Constant 1058642330
+ 90: 6(float) Constant 1060320051
+ 91: 65(fvec3) ConstantComposite 78 89 90
+ 92: 67(ivec2) ConstantComposite 26 40
+ 94(PS_OUTPUT): TypeStruct 7(fvec4) 6(float)
+ 95: TypePointer Function 94(PS_OUTPUT)
+ 97: 6(float) Constant 1065353216
+ 98: 7(fvec4) ConstantComposite 97 97 97 97
+ 100: TypePointer Function 6(float)
+104(g_tTex1df4a): 11(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(txval10): 8(ptr) Variable Function
+ 30(txval11): 29(ptr) Variable Function
+ 45(txval12): 44(ptr) Variable Function
+ 57(txval20): 8(ptr) Variable Function
+ 70(txval21): 29(ptr) Variable Function
+ 81(txval22): 44(ptr) Variable Function
+ 96(psout): 95(ptr) Variable Function
+ 13: 10 Load 12(g_tTex1df4)
+ 17: 14 Load 16(g_sSamp)
+ 19: 18 SampledImage 13 17
+ 27: 7(fvec4) ImageSampleExplicitLod 19 23 Lod ConstOffset 24 26
+ Store 9(txval10) 27
+ 34: 31 Load 33(g_tTex1di4)
+ 35: 14 Load 16(g_sSamp)
+ 37: 36 SampledImage 34 35
+ 41: 28(ivec4) ImageSampleExplicitLod 37 39 Lod ConstOffset 24 40
+ Store 30(txval11) 41
+ 49: 46 Load 48(g_tTex1du4)
+ 50: 14 Load 16(g_sSamp)
+ 52: 51 SampledImage 49 50
+ 56: 43(ivec4) ImageSampleExplicitLod 52 54 Lod ConstOffset 24 55
+ Store 45(txval12) 56
+ 61: 58 Load 60(g_tTex2df4)
+ 62: 14 Load 16(g_sSamp)
+ 64: 63 SampledImage 61 62
+ 69: 7(fvec4) ImageSampleExplicitLod 64 66 Lod ConstOffset 24 68
+ Store 57(txval20) 69
+ 74: 71 Load 73(g_tTex2di4)
+ 75: 14 Load 16(g_sSamp)
+ 77: 76 SampledImage 74 75
+ 80: 28(ivec4) ImageSampleExplicitLod 77 79 Lod ConstOffset 24 68
+ Store 70(txval21) 80
+ 85: 82 Load 84(g_tTex2du4)
+ 86: 14 Load 16(g_sSamp)
+ 88: 87 SampledImage 85 86
+ 93: 43(ivec4) ImageSampleExplicitLod 88 91 Lod ConstOffset 24 92
+ Store 81(txval22) 93
+ 99: 8(ptr) AccessChain 96(psout) 26
+ Store 99 98
+ 101: 100(ptr) AccessChain 96(psout) 40
+ Store 101 97
+ 102:94(PS_OUTPUT) Load 96(psout)
+ ReturnValue 102
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out
new file mode 100644
index 0000000..78a3a5a
--- /dev/null
+++ b/Test/baseResults/hlsl.semicolons.frag.out
@@ -0,0 +1,96 @@
+hlsl.semicolons.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:4 Function Definition: MyFunc( (global void)
+0:2 Function Parameters:
+0:8 Function Definition: MyFunc2( (global void)
+0:8 Function Parameters:
+0:18 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:13 Function Parameters:
+0:? Sequence
+0:16 move second child to first child (temp 4-component vector of float)
+0:16 color: direct index for structure (temp 4-component vector of float)
+0:16 'ps_output' (temp structure{temp 4-component vector of float color})
+0:16 Constant:
+0:16 0 (const int)
+0:16 Constant:
+0:16 1.000000
+0:16 1.000000
+0:16 1.000000
+0:16 1.000000
+0:17 Branch: Return with expression
+0:17 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:4 Function Definition: MyFunc( (global void)
+0:2 Function Parameters:
+0:8 Function Definition: MyFunc2( (global void)
+0:8 Function Parameters:
+0:18 Function Definition: main( (global structure{temp 4-component vector of float color})
+0:13 Function Parameters:
+0:? Sequence
+0:16 move second child to first child (temp 4-component vector of float)
+0:16 color: direct index for structure (temp 4-component vector of float)
+0:16 'ps_output' (temp structure{temp 4-component vector of float color})
+0:16 Constant:
+0:16 0 (const int)
+0:16 Constant:
+0:16 1.000000
+0:16 1.000000
+0:16 1.000000
+0:16 1.000000
+0:17 Branch: Return with expression
+0:17 'ps_output' (temp structure{temp 4-component vector of float color})
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 23
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 6 "MyFunc("
+ Name 8 "MyFunc2("
+ Name 12 "PS_OUTPUT"
+ MemberName 12(PS_OUTPUT) 0 "color"
+ Name 14 "ps_output"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12(PS_OUTPUT): TypeStruct 11(fvec4)
+ 13: TypePointer Function 12(PS_OUTPUT)
+ 15: TypeInt 32 1
+ 16: 15(int) Constant 0
+ 17: 10(float) Constant 1065353216
+ 18: 11(fvec4) ConstantComposite 17 17 17 17
+ 19: TypePointer Function 11(fvec4)
+ 4(main): 2 Function None 3
+ 5: Label
+ 14(ps_output): 13(ptr) Variable Function
+ 20: 19(ptr) AccessChain 14(ps_output) 16
+ Store 20 18
+ 21:12(PS_OUTPUT) Load 14(ps_output)
+ ReturnValue 21
+ FunctionEnd
+ 6(MyFunc(): 2 Function None 3
+ 7: Label
+ Return
+ FunctionEnd
+ 8(MyFunc2(): 2 Function None 3
+ 9: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out
new file mode 100755
index 0000000..e9b7389
--- /dev/null
+++ b/Test/baseResults/hlsl.shapeConv.frag.out
@@ -0,0 +1,152 @@
+hlsl.shapeConv.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (in 4-component vector of float)
+0:2 'f' (in float)
+0:? Sequence
+0:4 move second child to first child (temp 4-component vector of float)
+0:4 'v' (temp 4-component vector of float)
+0:4 Constant:
+0:4 1.000000
+0:4 1.000000
+0:4 1.000000
+0:4 1.000000
+0:5 move second child to first child (temp 4-component vector of float)
+0:5 'v' (temp 4-component vector of float)
+0:5 Constant:
+0:5 2.000000
+0:5 2.000000
+0:5 2.000000
+0:5 2.000000
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'v' (temp 4-component vector of float)
+0:6 Construct vec4 (temp 4-component vector of float)
+0:6 'f' (in float)
+0:8 move second child to first child (temp 3-component vector of float)
+0:8 'u' (temp 3-component vector of float)
+0:8 Constant:
+0:8 1.000000
+0:8 1.000000
+0:8 1.000000
+0:9 move second child to first child (temp 3-component vector of float)
+0:9 'u' (temp 3-component vector of float)
+0:9 Constant:
+0:9 2.000000
+0:9 2.000000
+0:9 2.000000
+0:10 move second child to first child (temp 3-component vector of float)
+0:10 'u' (temp 3-component vector of float)
+0:10 Construct vec3 (temp 3-component vector of float)
+0:10 Construct float (temp float)
+0:10 'f' (in float)
+0:12 Branch: Return with expression
+0:12 'input' (in 4-component vector of float)
+0:? Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float)
+0:2 Function Parameters:
+0:2 'input' (in 4-component vector of float)
+0:2 'f' (in float)
+0:? Sequence
+0:4 move second child to first child (temp 4-component vector of float)
+0:4 'v' (temp 4-component vector of float)
+0:4 Constant:
+0:4 1.000000
+0:4 1.000000
+0:4 1.000000
+0:4 1.000000
+0:5 move second child to first child (temp 4-component vector of float)
+0:5 'v' (temp 4-component vector of float)
+0:5 Constant:
+0:5 2.000000
+0:5 2.000000
+0:5 2.000000
+0:5 2.000000
+0:6 move second child to first child (temp 4-component vector of float)
+0:6 'v' (temp 4-component vector of float)
+0:6 Construct vec4 (temp 4-component vector of float)
+0:6 'f' (in float)
+0:8 move second child to first child (temp 3-component vector of float)
+0:8 'u' (temp 3-component vector of float)
+0:8 Constant:
+0:8 1.000000
+0:8 1.000000
+0:8 1.000000
+0:9 move second child to first child (temp 3-component vector of float)
+0:9 'u' (temp 3-component vector of float)
+0:9 Constant:
+0:9 2.000000
+0:9 2.000000
+0:9 2.000000
+0:10 move second child to first child (temp 3-component vector of float)
+0:10 'u' (temp 3-component vector of float)
+0:10 Construct vec3 (temp 3-component vector of float)
+0:10 Construct float (temp float)
+0:10 'f' (in float)
+0:12 Branch: Return with expression
+0:12 'input' (in 4-component vector of float)
+0:? Linker Objects
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 32
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main"
+ ExecutionMode 4 OriginUpperLeft
+ Source HLSL 450
+ Name 4 "main"
+ Name 13 "PixelShaderFunction(vf4;f1;"
+ Name 11 "input"
+ Name 12 "f"
+ Name 15 "v"
+ Name 24 "u"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 9: TypePointer Function 6(float)
+ 10: TypeFunction 7(fvec4) 8(ptr) 9(ptr)
+ 16: 6(float) Constant 1065353216
+ 17: 7(fvec4) ConstantComposite 16 16 16 16
+ 18: 6(float) Constant 1073741824
+ 19: 7(fvec4) ConstantComposite 18 18 18 18
+ 22: TypeVector 6(float) 3
+ 23: TypePointer Function 22(fvec3)
+ 25: 22(fvec3) ConstantComposite 16 16 16
+ 26: 22(fvec3) ConstantComposite 18 18 18
+ 4(main): 2 Function None 3
+ 5: Label
+ FunctionEnd
+13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10
+ 11(input): 8(ptr) FunctionParameter
+ 12(f): 9(ptr) FunctionParameter
+ 14: Label
+ 15(v): 8(ptr) Variable Function
+ 24(u): 23(ptr) Variable Function
+ Store 15(v) 17
+ Store 15(v) 19
+ 20: 6(float) Load 12(f)
+ 21: 7(fvec4) CompositeConstruct 20 20 20 20
+ Store 15(v) 21
+ Store 24(u) 25
+ Store 24(u) 26
+ 27: 6(float) Load 12(f)
+ 28: 22(fvec3) CompositeConstruct 27 27 27
+ Store 24(u) 28
+ 29: 7(fvec4) Load 11(input)
+ ReturnValue 29
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out
index a70bba6..02eed4e 100755
--- a/Test/baseResults/hlsl.struct.frag.out
+++ b/Test/baseResults/hlsl.struct.frag.out
@@ -1,29 +1,35 @@
hlsl.struct.frag
+WARNING: 0:26: 'register' : ignoring shader_profile
+WARNING: 0:27: 'register' : ignoring shader_profile
+WARNING: 0:30: 'register' : ignoring shader_profile
+
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
-0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
-0:31 Function Parameters:
-0:31 'input' (in 4-component vector of float)
+0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:34 Function Parameters:
+0:34 'input' (in 4-component vector of float)
0:? Sequence
-0:36 Compare Equal (temp bool)
-0:36 's3' (temp structure{temp 3-component vector of bool b3})
-0:36 's3' (temp structure{temp 3-component vector of bool b3})
-0:37 move second child to first child (temp 4-component vector of float)
-0:37 i: direct index for structure (temp 4-component vector of float)
-0:37 's2' (global structure{temp 4-component vector of float i})
-0:37 Constant:
-0:37 0 (const int)
-0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
-0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
-0:37 Constant:
-0:37 7 (const int)
-0:39 Branch: Return with expression
-0:39 'input' (in 4-component vector of float)
+0:39 Compare Equal (temp bool)
+0:39 's3' (temp structure{temp 3-component vector of bool b3})
+0:39 's3' (temp structure{temp 3-component vector of bool b3})
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 i: direct index for structure (temp 4-component vector of float)
+0:40 's2' (global structure{temp 4-component vector of float i})
+0:40 Constant:
+0:40 0 (const int)
+0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord)
+0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4})
+0:40 Constant:
+0:40 7 (const int)
+0:42 Branch: Return with expression
+0:42 'input' (in 4-component vector of float)
0:? Linker Objects
0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
0:? 's2' (global structure{temp 4-component vector of float i})
-0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4})
+0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float)
+0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float)
Linked fragment stage:
@@ -32,32 +38,34 @@
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
-0:40 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
-0:31 Function Parameters:
-0:31 'input' (in 4-component vector of float)
+0:43 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
+0:34 Function Parameters:
+0:34 'input' (in 4-component vector of float)
0:? Sequence
-0:36 Compare Equal (temp bool)
-0:36 's3' (temp structure{temp 3-component vector of bool b3})
-0:36 's3' (temp structure{temp 3-component vector of bool b3})
-0:37 move second child to first child (temp 4-component vector of float)
-0:37 i: direct index for structure (temp 4-component vector of float)
-0:37 's2' (global structure{temp 4-component vector of float i})
-0:37 Constant:
-0:37 0 (const int)
-0:37 ff4: direct index for structure (temp 4-component vector of float FragCoord)
-0:37 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
-0:37 Constant:
-0:37 7 (const int)
-0:39 Branch: Return with expression
-0:39 'input' (in 4-component vector of float)
+0:39 Compare Equal (temp bool)
+0:39 's3' (temp structure{temp 3-component vector of bool b3})
+0:39 's3' (temp structure{temp 3-component vector of bool b3})
+0:40 move second child to first child (temp 4-component vector of float)
+0:40 i: direct index for structure (temp 4-component vector of float)
+0:40 's2' (global structure{temp 4-component vector of float i})
+0:40 Constant:
+0:40 0 (const int)
+0:40 ff4: direct index for structure (layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord)
+0:40 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4})
+0:40 Constant:
+0:40 7 (const int)
+0:42 Branch: Return with expression
+0:42 'input' (in 4-component vector of float)
0:? Linker Objects
0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
0:? 's2' (global structure{temp 4-component vector of float i})
-0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+0:? 's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, layout(offset=4 ) temp bool ff2, layout(binding=0 offset=4 ) temp bool ff3, layout(binding=0 offset=4 ) temp 4-component vector of float FragCoord ff4})
+0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float)
+0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 40
+// Id's are bound by 44
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -89,8 +97,14 @@
MemberName 37(myS) 2 "a"
MemberName 37(myS) 3 "d"
Name 39 "s1"
+ Name 42 "ff5"
+ Name 43 "ff6"
MemberDecorate 25 4 BuiltIn FrontFacing
MemberDecorate 25 7 BuiltIn FragCoord
+ Decorate 42(ff5) Offset 20
+ Decorate 42(ff5) Binding 5
+ Decorate 43(ff6) Offset 36
+ Decorate 43(ff6) Binding 8
2: TypeVoid
3: TypeFunction 2
6: TypeBool
@@ -115,6 +129,10 @@
37(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
38: TypePointer Private 37(myS)
39(s1): 38(ptr) Variable Private
+ 40: TypeVector 17(float) 3
+ 41: TypePointer Private 40(fvec3)
+ 42(ff5): 41(ptr) Variable Private
+ 43(ff6): 41(ptr) Variable Private
4(PixelShaderFunction): 2 Function None 3
5: Label
10(s3): 9(ptr) Variable Function
diff --git a/Test/baseResults/numeral.frag.out b/Test/baseResults/numeral.frag.out
index 6f5595c..e5b2041 100644
--- a/Test/baseResults/numeral.frag.out
+++ b/Test/baseResults/numeral.frag.out
@@ -7,8 +7,8 @@
ERROR: 0:18: '' : octal literal too big
ERROR: 0:23: '' : octal literal digit too large
ERROR: 0:24: '' : octal literal digit too large
-ERROR: 0:49: '' : bad digit in hexidecimal literal
-ERROR: 0:50: '' : hexidecimal literal too big
+ERROR: 0:49: '' : bad digit in hexadecimal literal
+ERROR: 0:50: '' : hexadecimal literal too big
ERROR: 0:88: '' : float literal needs a decimal point or exponent
ERROR: 0:98: '' : numeric literal too big
ERROR: 0:101: '' : numeric literal too big
diff --git a/Test/baseResults/pointCoord.frag.out b/Test/baseResults/pointCoord.frag.out
index 633d8b9..5d53aea 100644
--- a/Test/baseResults/pointCoord.frag.out
+++ b/Test/baseResults/pointCoord.frag.out
@@ -14,7 +14,7 @@
0:9 true case
0:10 move second child to first child (temp highp 4-component vector of float)
0:10 'color' (temp highp 4-component vector of float)
-0:10 texture (global lowp 4-component vector of float)
+0:10 texture (global lowp 4-component vector of float, operation at mediump)
0:10 'sampler' (uniform lowp sampler2D)
0:10 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
0:9 false case
@@ -50,7 +50,7 @@
0:9 true case
0:10 move second child to first child (temp highp 4-component vector of float)
0:10 'color' (temp highp 4-component vector of float)
-0:10 texture (global lowp 4-component vector of float)
+0:10 texture (global lowp 4-component vector of float, operation at mediump)
0:10 'sampler' (uniform lowp sampler2D)
0:10 'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float PointCoord)
0:9 false case
diff --git a/Test/baseResults/preprocessor.simple.vert.out b/Test/baseResults/preprocessor.simple.vert.out
index 8737bc8..8cbabda 100644
--- a/Test/baseResults/preprocessor.simple.vert.out
+++ b/Test/baseResults/preprocessor.simple.vert.out
@@ -19,5 +19,12 @@
gl_Position = vec4(1);
gl_Position = vec4(1, 2);
gl_Position = vec4(fn(3));
+ []. ++ --
+ + - * % / - ! ~
+ << >> < > <= >=
+ == !=
+ & ^ | && ^^ || ? :
+ += -= *= /= %= <<= >>= &= |= ^=
+ 1.2 2E10 5u - 5 lf
}
diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out
index 464a279..848839c 100644
--- a/Test/baseResults/specExamples.frag.out
+++ b/Test/baseResults/specExamples.frag.out
@@ -2,7 +2,7 @@
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:6: '=' : cannot convert from 'const uint' to 'global int'
ERROR: 0:20: '' : numeric literal too big
-ERROR: 0:21: '' : hexidecimal literal too big
+ERROR: 0:21: '' : hexadecimal literal too big
ERROR: 0:37: 'view' : redefinition
ERROR: 0:63: 'invariant' : can only apply to an output
ERROR: 0:68: 'lightPosition' : redefinition
diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out
new file mode 100755
index 0000000..6b92206
--- /dev/null
+++ b/Test/baseResults/spv.swizzleInversion.frag.out
@@ -0,0 +1,81 @@
+spv.swizzleInversion.frag
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 46
+
+ Capability Shader
+ Capability InterpolationFunction
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 12 37
+ ExecutionMode 4 OriginUpperLeft
+ Source GLSL 450
+ Name 4 "main"
+ Name 9 "v43"
+ Name 12 "in4"
+ Name 17 "v42"
+ Name 23 "v44"
+ Name 29 "v41"
+ Name 35 "v33"
+ Name 37 "in3"
+ Name 40 "v32"
+ Name 43 "v31"
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 3
+ 8: TypePointer Function 7(fvec3)
+ 10: TypeVector 6(float) 4
+ 11: TypePointer Input 10(fvec4)
+ 12(in4): 11(ptr) Variable Input
+ 15: TypeVector 6(float) 2
+ 16: TypePointer Function 15(fvec2)
+ 18: TypeInt 32 1
+ 19: 18(int) Constant 1
+ 22: TypePointer Function 10(fvec4)
+ 24: 6(float) Constant 1073741824
+ 25: 15(fvec2) ConstantComposite 24 24
+ 28: TypePointer Function 6(float)
+ 30: TypeInt 32 0
+ 31: 30(int) Constant 1
+ 32: TypePointer Input 6(float)
+ 36: TypePointer Input 7(fvec3)
+ 37(in3): 36(ptr) Variable Input
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(v43): 8(ptr) Variable Function
+ 17(v42): 16(ptr) Variable Function
+ 23(v44): 22(ptr) Variable Function
+ 29(v41): 28(ptr) Variable Function
+ 35(v33): 8(ptr) Variable Function
+ 40(v32): 16(ptr) Variable Function
+ 43(v31): 28(ptr) Variable Function
+ 13: 10(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 12(in4)
+ 14: 7(fvec3) VectorShuffle 13 13 3 2 0
+ Store 9(v43) 14
+ 20: 10(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 12(in4) 19
+ 21: 15(fvec2) VectorShuffle 20 20 2 0
+ Store 17(v42) 21
+ 26: 10(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 12(in4) 25
+ 27: 10(fvec4) VectorShuffle 26 26 2 1 0 3
+ Store 23(v44) 27
+ 33: 32(ptr) AccessChain 12(in4) 31
+ 34: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33 25
+ Store 29(v41) 34
+ 38: 7(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 37(in3)
+ 39: 7(fvec3) VectorShuffle 38 38 1 2 0
+ Store 35(v33) 39
+ 41: 7(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 37(in3) 19
+ 42: 15(fvec2) VectorShuffle 41 41 2 0
+ Store 40(v32) 42
+ 44: 32(ptr) AccessChain 12(in4) 31
+ 45: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 44 25
+ Store 43(v31) 45
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/tokenLength.vert.out b/Test/baseResults/tokenLength.vert.out
index 26dabf0..11bdd4b 100644
--- a/Test/baseResults/tokenLength.vert.out
+++ b/Test/baseResults/tokenLength.vert.out
@@ -2,10 +2,10 @@
ERROR: 0:9: '' : numeric literal too big
ERROR: 0:10: '' : numeric literal too big
ERROR: 0:13: '' : octal literal too big
-ERROR: 0:14: '' : hexidecimal literal too big
+ERROR: 0:14: '' : hexadecimal literal too big
ERROR: 0:23: '' : float literal too long
ERROR: 0:32: '' : name too long
-ERROR: 0:33: '' : hexidecimal literal too big
+ERROR: 0:33: '' : hexadecimal literal too big
ERROR: 0:34: '' : numeric literal too long
ERROR: 0:34: '' : octal literal too big
ERROR: 0:35: '' : numeric literal too long
diff --git a/Test/baseResults/uint.frag.out b/Test/baseResults/uint.frag.out
index dbe9578..1ee2825 100644
--- a/Test/baseResults/uint.frag.out
+++ b/Test/baseResults/uint.frag.out
@@ -113,7 +113,7 @@
0:55 true case
0:56 move second child to first child (temp mediump 4-component vector of uint)
0:56 'c' (out mediump 4-component vector of uint)
-0:56 texture (global lowp 4-component vector of uint)
+0:56 texture (global lowp 4-component vector of uint, operation at highp)
0:56 'usampler' (uniform lowp usampler2D)
0:56 'tc' (smooth in highp 2-component vector of float)
0:57 Test condition and select (temp void)
@@ -124,7 +124,7 @@
0:57 true case
0:58 move second child to first child (temp mediump 4-component vector of uint)
0:58 'c' (out mediump 4-component vector of uint)
-0:58 texture (global lowp 4-component vector of uint)
+0:58 texture (global lowp 4-component vector of uint, operation at highp)
0:58 'usampler' (uniform lowp usampler2D)
0:58 add (temp highp 2-component vector of float)
0:58 'tc' (smooth in highp 2-component vector of float)
@@ -139,7 +139,7 @@
0:59 true case
0:60 move second child to first child (temp mediump 4-component vector of uint)
0:60 'c' (out mediump 4-component vector of uint)
-0:60 texture (global lowp 4-component vector of uint)
+0:60 texture (global lowp 4-component vector of uint, operation at highp)
0:60 'usampler' (uniform lowp usampler2D)
0:60 subtract (temp highp 2-component vector of float)
0:60 'tc' (smooth in highp 2-component vector of float)
@@ -412,7 +412,7 @@
0:55 true case
0:56 move second child to first child (temp mediump 4-component vector of uint)
0:56 'c' (out mediump 4-component vector of uint)
-0:56 texture (global lowp 4-component vector of uint)
+0:56 texture (global lowp 4-component vector of uint, operation at highp)
0:56 'usampler' (uniform lowp usampler2D)
0:56 'tc' (smooth in highp 2-component vector of float)
0:57 Test condition and select (temp void)
@@ -423,7 +423,7 @@
0:57 true case
0:58 move second child to first child (temp mediump 4-component vector of uint)
0:58 'c' (out mediump 4-component vector of uint)
-0:58 texture (global lowp 4-component vector of uint)
+0:58 texture (global lowp 4-component vector of uint, operation at highp)
0:58 'usampler' (uniform lowp usampler2D)
0:58 add (temp highp 2-component vector of float)
0:58 'tc' (smooth in highp 2-component vector of float)
@@ -438,7 +438,7 @@
0:59 true case
0:60 move second child to first child (temp mediump 4-component vector of uint)
0:60 'c' (out mediump 4-component vector of uint)
-0:60 texture (global lowp 4-component vector of uint)
+0:60 texture (global lowp 4-component vector of uint, operation at highp)
0:60 'usampler' (uniform lowp usampler2D)
0:60 subtract (temp highp 2-component vector of float)
0:60 'tc' (smooth in highp 2-component vector of float)
diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out
index fe8b045..0132759 100644
--- a/Test/baseResults/vulkan.frag.out
+++ b/Test/baseResults/vulkan.frag.out
@@ -33,7 +33,12 @@
ERROR: 0:69: 'non-opaque uniforms outside a block' : not allowed when using GLSL for Vulkan
ERROR: 0:73: 'texture' : no matching overloaded function found
ERROR: 0:74: 'imageStore' : no matching overloaded function found
-ERROR: 33 compilation errors. No code generated.
+ERROR: 0:91: 'call argument' : sampler constructor must appear at point of use
+ERROR: 0:92: 'call argument' : sampler constructor must appear at point of use
+ERROR: 0:93: ',' : sampler constructor must appear at point of use
+ERROR: 0:94: ':' : wrong operand types: no operation ':' exists that takes a left-hand operand of type 'temp sampler2D' and a right operand of type 'temp sampler2D' (or there is no acceptable conversion)
+ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use
+ERROR: 38 compilation errors. No code generated.
diff --git a/Test/cppBad.vert b/Test/cppBad.vert
new file mode 100644
index 0000000..49600f9
--- /dev/null
+++ b/Test/cppBad.vert
@@ -0,0 +1,5 @@
+#define m#0#
+#if m
+
+#define n()
+int n"
\ No newline at end of file
diff --git a/Test/hlsl.buffer.frag b/Test/hlsl.buffer.frag
new file mode 100644
index 0000000..e01e4fc
--- /dev/null
+++ b/Test/hlsl.buffer.frag
@@ -0,0 +1,28 @@
+cbuffer {
+ float4 v1;
+};
+
+tbuffer {
+ float4 v2;
+};
+
+cbuffer cbufName : register(b2) {
+ float4 v3;
+ int i3 : packoffset(c1.y);
+};
+
+tbuffer tbufName : register(b8) {
+ float4 v4 : packoffset(c1);
+ int i4 : packoffset(c3);
+ float f1 : packoffset(c3.w);
+ float f3 : packoffset(c4.x);
+ float f4 : packoffset(c4.y);
+ float f5 : packoffset(c4.z);
+ float f6 : packoffset(c);
+ float f7;
+};
+
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ return input + v1 + v2 + v3 + v4;
+}
diff --git a/Test/hlsl.calculatelod.dx10.frag b/Test/hlsl.calculatelod.dx10.frag
new file mode 100644
index 0000000..0fb7607
--- /dev/null
+++ b/Test/hlsl.calculatelod.dx10.frag
@@ -0,0 +1,44 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1DArray g_tTex1df4a : register(t1);
+
+uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // LOD queries do not pass array level in coordinate.
+ float txval10 = g_tTex1df4a . CalculateLevelOfDetail(g_sSamp, 0.1);
+ float txval11 = g_tTex1di4a . CalculateLevelOfDetail(g_sSamp, 0.2);
+ float txval12 = g_tTex1du4a . CalculateLevelOfDetail(g_sSamp, 0.3);
+
+ float txval20 = g_tTex2df4a . CalculateLevelOfDetail(g_sSamp, float2(0.1, 0.2));
+ float txval21 = g_tTex2di4a . CalculateLevelOfDetail(g_sSamp, float2(0.3, 0.4));
+ float txval22 = g_tTex2du4a . CalculateLevelOfDetail(g_sSamp, float2(0.5, 0.6));
+
+ float txval40 = g_tTexcdf4a . CalculateLevelOfDetail(g_sSamp, float3(0.1, 0.2, 0.3));
+ float txval41 = g_tTexcdi4a . CalculateLevelOfDetail(g_sSamp, float3(0.4, 0.5, 0.6));
+ float txval42 = g_tTexcdu4a . CalculateLevelOfDetail(g_sSamp, float3(0.7, 0.8, 0.9));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.calculatelodunclamped.dx10.frag b/Test/hlsl.calculatelodunclamped.dx10.frag
new file mode 100644
index 0000000..4c79aed
--- /dev/null
+++ b/Test/hlsl.calculatelodunclamped.dx10.frag
@@ -0,0 +1,44 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1DArray g_tTex1df4a : register(t1);
+
+uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // LOD queries do not pass array level in coordinate.
+ float txval10 = g_tTex1df4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.1);
+ float txval11 = g_tTex1di4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.2);
+ float txval12 = g_tTex1du4a . CalculateLevelOfDetailUnclamped(g_sSamp, 0.3);
+
+ float txval20 = g_tTex2df4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.1, 0.2));
+ float txval21 = g_tTex2di4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.3, 0.4));
+ float txval22 = g_tTex2du4a . CalculateLevelOfDetailUnclamped(g_sSamp, float2(0.5, 0.6));
+
+ float txval40 = g_tTexcdf4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.1, 0.2, 0.3));
+ float txval41 = g_tTexcdi4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.4, 0.5, 0.6));
+ float txval42 = g_tTexcdu4a . CalculateLevelOfDetailUnclamped(g_sSamp, float3(0.7, 0.8, 0.9));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.conditional.frag b/Test/hlsl.conditional.frag
new file mode 100644
index 0000000..128c593
--- /dev/null
+++ b/Test/hlsl.conditional.frag
@@ -0,0 +1,16 @@
+float4 PixelShaderFunction(float4 input) : COLOR0
+{
+ int a = 1 < 2 ? 3 < 4 ? 5 : 6 : 7;
+ int b = 1 < 2 ? 3 > 4 ? 5 : 6 : 7;
+ int c = 1 > 2 ? 3 > 4 ? 5 : 6 : 7;
+ int d = 1 > 2 ? 3 < 4 ? 5 : 6 : 7;
+ float4 ret = a * input +
+ b * input +
+ c * input +
+ d * input;
+ int e;
+ e = a = b ? c = d : 10, b = a ? d = c : 11;
+ float4 f;
+ f = ret.x < input.y ? c * input : d * input;
+ return e * ret + f;
+}
diff --git a/Test/hlsl.constructexpr.frag b/Test/hlsl.constructexpr.frag
new file mode 100644
index 0000000..7048f62
--- /dev/null
+++ b/Test/hlsl.constructexpr.frag
@@ -0,0 +1,17 @@
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+PS_OUTPUT main()
+{
+ // Evaluates to a sequence: 3, 4, 5, 6, 7, 8, and a float2(9,10), float2(11,12) sequence
+ (int(3));
+ (int(3) + int(1));
+ (int(3) + int(1) + int(1));
+ (((int(6))));
+ (int(7.0));
+ ((int((2)) ? 8 : 8));
+ (float2(9, 10), float2(11, 12));
+
+ PS_OUTPUT ps_output;
+ ps_output.color = 1.0;
+ return ps_output;
+}
diff --git a/Test/hlsl.float4.frag b/Test/hlsl.float4.frag
index df87122..5ae70db 100644
--- a/Test/hlsl.float4.frag
+++ b/Test/hlsl.float4.frag
@@ -2,8 +2,8 @@
bool ff1 : SV_IsFrontFace;
float4 ff2 : packoffset(c0.y);
-float4 ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ;
-float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) <int bambam=30;> ;
+float4 ff3 : packoffset(c0.y) : register(ps_5_0, s0) ;
+float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s1) <int bambam=30;> ;
float4 ShaderFunction(float4 input) : COLOR0
{
diff --git a/Test/hlsl.gather.array.dx10.frag b/Test/hlsl.gather.array.dx10.frag
new file mode 100644
index 0000000..788c333
--- /dev/null
+++ b/Test/hlsl.gather.array.dx10.frag
@@ -0,0 +1,43 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1DArray g_tTex1df4a : register(t1);
+
+uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // No 1D gathers
+
+ float4 txval20 = g_tTex2df4a . Gather(g_sSamp, float3(0.1, 0.2, 0.3));
+ int4 txval21 = g_tTex2di4a . Gather(g_sSamp, float3(0.3, 0.4, 0.5));
+ uint4 txval22 = g_tTex2du4a . Gather(g_sSamp, float3(0.5, 0.6, 0.7));
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4a . Gather(g_sSamp, float4(0.1, 0.2, 0.3, 0.4));
+ int4 txval41 = g_tTexcdi4a . Gather(g_sSamp, float4(0.4, 0.5, 0.6, 0.7));
+ uint4 txval42 = g_tTexcdu4a . Gather(g_sSamp, float4(0.7, 0.8, 0.9, 1.0));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gather.basic.dx10.frag b/Test/hlsl.gather.basic.dx10.frag
new file mode 100644
index 0000000..be0cd31
--- /dev/null
+++ b/Test/hlsl.gather.basic.dx10.frag
@@ -0,0 +1,48 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // no 1D gathers
+
+ float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2));
+ int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4));
+ uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6));
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3));
+ int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6));
+ uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gather.basic.dx10.vert b/Test/hlsl.gather.basic.dx10.vert
new file mode 100644
index 0000000..4996f18
--- /dev/null
+++ b/Test/hlsl.gather.basic.dx10.vert
@@ -0,0 +1,46 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct VS_OUTPUT
+{
+ float4 Pos : SV_Position;
+};
+
+VS_OUTPUT main()
+{
+ VS_OUTPUT vsout;
+
+ // no 1D gathers
+
+ float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2));
+ int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4));
+ uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6));
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3));
+ int4 txval41 = g_tTexcdi4 . Gather(g_sSamp, float3(0.4, 0.5, 0.6));
+ uint4 txval42 = g_tTexcdu4 . Gather(g_sSamp, float3(0.7, 0.8, 0.9));
+
+ vsout.Pos = float4(0,0,0,0);
+
+ return vsout;
+}
diff --git a/Test/hlsl.gather.offset.dx10.frag b/Test/hlsl.gather.offset.dx10.frag
new file mode 100644
index 0000000..4d095c0
--- /dev/null
+++ b/Test/hlsl.gather.offset.dx10.frag
@@ -0,0 +1,44 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // no 1D Gathers
+
+ float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float2(0.1, 0.2), int2(1,0));
+ int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float2(0.3, 0.4), int2(1,1));
+ uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float2(0.5, 0.6), int2(1,-1));
+
+ // no 3D gathers
+ // No Cube offset gathers
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gather.offsetarray.dx10.frag b/Test/hlsl.gather.offsetarray.dx10.frag
new file mode 100644
index 0000000..5cc9252
--- /dev/null
+++ b/Test/hlsl.gather.offsetarray.dx10.frag
@@ -0,0 +1,36 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1DArray g_tTex1df4a : register(t1);
+
+uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
+Texture1DArray <int4> g_tTex1di4;
+Texture1DArray <uint4> g_tTex1du4;
+
+Texture2DArray <float4> g_tTex2df4;
+Texture2DArray <int4> g_tTex2di4;
+Texture2DArray <uint4> g_tTex2du4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // No 1D gathers
+
+ float4 txval20 = g_tTex2df4 . Gather(g_sSamp, float3(0.1, 0.2, 0.3), int2(1,0));
+ int4 txval21 = g_tTex2di4 . Gather(g_sSamp, float3(0.3, 0.4, 0.4), int2(1,1));
+ uint4 txval22 = g_tTex2du4 . Gather(g_sSamp, float3(0.5, 0.6, 0.7), int2(1,-1));
+
+ // No 3D gathers
+ // No Cube offset gathers
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gatherRGBA.array.dx10.frag b/Test/hlsl.gatherRGBA.array.dx10.frag
new file mode 100644
index 0000000..279b6d6
--- /dev/null
+++ b/Test/hlsl.gatherRGBA.array.dx10.frag
@@ -0,0 +1,71 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // no 1D gathers
+
+ float4 txval00 = g_tTex2df4a . GatherRed(g_sSamp, c3);
+ int4 txval01 = g_tTex2di4a . GatherRed(g_sSamp, c3);
+ uint4 txval02 = g_tTex2du4a . GatherRed(g_sSamp, c3);
+
+ float4 txval10 = g_tTex2df4a . GatherGreen(g_sSamp, c3);
+ int4 txval11 = g_tTex2di4a . GatherGreen(g_sSamp, c3);
+ uint4 txval12 = g_tTex2du4a . GatherGreen(g_sSamp, c3);
+
+ float4 txval20 = g_tTex2df4a . GatherBlue(g_sSamp, c3);
+ int4 txval21 = g_tTex2di4a . GatherBlue(g_sSamp, c3);
+ uint4 txval22 = g_tTex2du4a . GatherBlue(g_sSamp, c3);
+
+ float4 txval30 = g_tTex2df4a . GatherAlpha(g_sSamp, c3);
+ int4 txval31 = g_tTex2di4a . GatherAlpha(g_sSamp, c3);
+ uint4 txval32 = g_tTex2du4a . GatherAlpha(g_sSamp, c3);
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4a . GatherRed(g_sSamp, c4);
+ int4 txval41 = g_tTexcdi4a . GatherRed(g_sSamp, c4);
+ uint4 txval42 = g_tTexcdu4a . GatherRed(g_sSamp, c4);
+
+ float4 txval50 = g_tTexcdf4a . GatherGreen(g_sSamp, c4);
+ int4 txval51 = g_tTexcdi4a . GatherGreen(g_sSamp, c4);
+ uint4 txval52 = g_tTexcdu4a . GatherGreen(g_sSamp, c4);
+
+ float4 txval60 = g_tTexcdf4a . GatherBlue(g_sSamp, c4);
+ int4 txval61 = g_tTexcdi4a . GatherBlue(g_sSamp, c4);
+ uint4 txval62 = g_tTexcdu4a . GatherBlue(g_sSamp, c4);
+
+ float4 txval70 = g_tTexcdf4a . GatherAlpha(g_sSamp, c4);
+ int4 txval71 = g_tTexcdi4a . GatherAlpha(g_sSamp, c4);
+ uint4 txval72 = g_tTexcdu4a . GatherAlpha(g_sSamp, c4);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gatherRGBA.basic.dx10.frag b/Test/hlsl.gatherRGBA.basic.dx10.frag
new file mode 100644
index 0000000..17fae19
--- /dev/null
+++ b/Test/hlsl.gatherRGBA.basic.dx10.frag
@@ -0,0 +1,77 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // no 1D gathers
+
+ float4 txval00 = g_tTex2df4 . GatherRed(g_sSamp, c2);
+ int4 txval01 = g_tTex2di4 . GatherRed(g_sSamp, c2);
+ uint4 txval02 = g_tTex2du4 . GatherRed(g_sSamp, c2);
+
+ float4 txval10 = g_tTex2df4 . GatherGreen(g_sSamp, c2);
+ int4 txval11 = g_tTex2di4 . GatherGreen(g_sSamp, c2);
+ uint4 txval12 = g_tTex2du4 . GatherGreen(g_sSamp, c2);
+
+ float4 txval20 = g_tTex2df4 . GatherBlue(g_sSamp, c2);
+ int4 txval21 = g_tTex2di4 . GatherBlue(g_sSamp, c2);
+ uint4 txval22 = g_tTex2du4 . GatherBlue(g_sSamp, c2);
+
+ float4 txval30 = g_tTex2df4 . GatherAlpha(g_sSamp, c2);
+ int4 txval31 = g_tTex2di4 . GatherAlpha(g_sSamp, c2);
+ uint4 txval32 = g_tTex2du4 . GatherAlpha(g_sSamp, c2);
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4 . GatherRed(g_sSamp, c3);
+ int4 txval41 = g_tTexcdi4 . GatherRed(g_sSamp, c3);
+ uint4 txval42 = g_tTexcdu4 . GatherRed(g_sSamp, c3);
+
+ float4 txval50 = g_tTexcdf4 . GatherGreen(g_sSamp, c3);
+ int4 txval51 = g_tTexcdi4 . GatherGreen(g_sSamp, c3);
+ uint4 txval52 = g_tTexcdu4 . GatherGreen(g_sSamp, c3);
+
+ float4 txval60 = g_tTexcdf4 . GatherBlue(g_sSamp, c3);
+ int4 txval61 = g_tTexcdi4 . GatherBlue(g_sSamp, c3);
+ uint4 txval62 = g_tTexcdu4 . GatherBlue(g_sSamp, c3);
+
+ float4 txval70 = g_tTexcdf4 . GatherAlpha(g_sSamp, c3);
+ int4 txval71 = g_tTexcdi4 . GatherAlpha(g_sSamp, c3);
+ uint4 txval72 = g_tTexcdu4 . GatherAlpha(g_sSamp, c3);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gatherRGBA.offset.dx10.frag b/Test/hlsl.gatherRGBA.offset.dx10.frag
new file mode 100644
index 0000000..a8909b4
--- /dev/null
+++ b/Test/hlsl.gatherRGBA.offset.dx10.frag
@@ -0,0 +1,116 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ uint status;
+
+ // no 1D gathers
+
+ float4 txval001 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2);
+ int4 txval011 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2);
+ uint4 txval021 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2);
+
+ float4 txval004 = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
+ int4 txval014 = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
+ uint4 txval024 = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2);
+
+ // float4 txval00s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, status);
+ // int4 txval01s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, status);
+ // uint4 txval02s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, status);
+
+ // float4 txval004s = g_tTex2df4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
+ // int4 txval014s = g_tTex2di4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
+ // uint4 txval024s = g_tTex2du4 . GatherRed(g_sSamp, c2, o2, o2, o2, o2, status);
+
+ float4 txval101 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2);
+ int4 txval111 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2);
+ uint4 txval121 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2);
+
+ float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
+ int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
+ uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2);
+
+ // float4 txval10s = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, status);
+ // int4 txval11s = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, status);
+ // uint4 txval12s = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, status);
+
+ // float4 txval104 = g_tTex2df4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
+ // int4 txval114 = g_tTex2di4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
+ // uint4 txval124 = g_tTex2du4 . GatherGreen(g_sSamp, c2, o2, o2, o2, o2, status);
+
+ float4 txval201 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2);
+ int4 txval211 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2);
+ uint4 txval221 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2);
+
+ float4 txval204 = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
+ int4 txval214 = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
+ uint4 txval224 = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2);
+
+ // float4 txval204s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
+ // int4 txval214s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
+ // uint4 txval224s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, o2, o2, o2, status);
+
+ // float4 txval20s = g_tTex2df4 . GatherBlue(g_sSamp, c2, o2, status);
+ // int4 txval21s = g_tTex2di4 . GatherBlue(g_sSamp, c2, o2, status);
+ // uint4 txval22s = g_tTex2du4 . GatherBlue(g_sSamp, c2, o2, status);
+
+ float4 txval301 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2);
+ int4 txval311 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2);
+ uint4 txval321 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2);
+
+ float4 txval304 = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
+ int4 txval314 = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
+ uint4 txval324 = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2);
+
+ // float4 txval304s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
+ // int4 txval314s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
+ // uint4 txval324s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, o2, o2, o2, status);
+
+ // float4 txval30s = g_tTex2df4 . GatherAlpha(g_sSamp, c2, o2, status);
+ // int4 txval31s = g_tTex2di4 . GatherAlpha(g_sSamp, c2, o2, status);
+ // uint4 txval32s = g_tTex2du4 . GatherAlpha(g_sSamp, c2, o2, status);
+
+ // no 3D gathers with offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gatherRGBA.offsetarray.dx10.frag b/Test/hlsl.gatherRGBA.offsetarray.dx10.frag
new file mode 100644
index 0000000..ca32f56
--- /dev/null
+++ b/Test/hlsl.gatherRGBA.offsetarray.dx10.frag
@@ -0,0 +1,110 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ uint status;
+
+ // no 1D gathers
+
+ float4 txval001 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2);
+ int4 txval011 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2);
+ uint4 txval021 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2);
+
+ float4 txval004 = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
+ int4 txval014 = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
+ uint4 txval024 = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2);
+
+ // float4 txval00s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, status);
+ // int4 txval01s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, status);
+ // uint4 txval02s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, status);
+
+ // float4 txval004s = g_tTex2df4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
+ // int4 txval014s = g_tTex2di4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
+ // uint4 txval024s = g_tTex2du4a . GatherRed(g_sSamp, c3, o2, o2, o2, o2, status);
+
+ float4 txval101 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2);
+ int4 txval111 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2);
+ uint4 txval121 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2);
+
+ float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
+ int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
+ uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2);
+
+ // float4 txval10s = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, status);
+ // int4 txval11s = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, status);
+ // uint4 txval12s = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, status);
+
+ // float4 txval104 = g_tTex2df4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
+ // int4 txval114 = g_tTex2di4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
+ // uint4 txval124 = g_tTex2du4a . GatherGreen(g_sSamp, c3, o2, o2, o2, o2, status);
+
+ float4 txval201 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2);
+ int4 txval211 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2);
+ uint4 txval221 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2);
+
+ float4 txval204 = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
+ int4 txval214 = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
+ uint4 txval224 = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2);
+
+ // float4 txval204s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
+ // int4 txval214s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
+ // uint4 txval224s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, o2, o2, o2, status);
+
+ // float4 txval20s = g_tTex2df4a . GatherBlue(g_sSamp, c3, o2, status);
+ // int4 txval21s = g_tTex2di4a . GatherBlue(g_sSamp, c3, o2, status);
+ // uint4 txval22s = g_tTex2du4a . GatherBlue(g_sSamp, c3, o2, status);
+
+ float4 txval301 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2);
+ int4 txval311 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2);
+ uint4 txval321 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2);
+
+ float4 txval304 = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
+ int4 txval314 = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
+ uint4 txval324 = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2);
+
+ // float4 txval304s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
+ // int4 txval314s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
+ // uint4 txval324s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, o2, o2, o2, status);
+
+ // float4 txval30s = g_tTex2df4a . GatherAlpha(g_sSamp, c3, o2, status);
+ // int4 txval31s = g_tTex2di4a . GatherAlpha(g_sSamp, c3, o2, status);
+ // uint4 txval32s = g_tTex2du4a . GatherAlpha(g_sSamp, c3, o2, status);
+
+ // no 3D gathers with offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gathercmpRGBA.array.dx10.frag b/Test/hlsl.gathercmpRGBA.array.dx10.frag
new file mode 100644
index 0000000..4ed7f4b
--- /dev/null
+++ b/Test/hlsl.gathercmpRGBA.array.dx10.frag
@@ -0,0 +1,70 @@
+SamplerComparisonState g_sSampCmp : register(s0);
+
+uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // no 1D gathers
+
+ float4 txval00 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, .75);
+ int4 txval01 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, .75);
+ uint4 txval02 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, .75);
+
+ float4 txval10 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, .75);
+ int4 txval11 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, .75);
+ uint4 txval12 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, .75);
+
+ float4 txval20 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, .75);
+ int4 txval21 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, .75);
+ uint4 txval22 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, .75);
+
+ float4 txval30 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
+ int4 txval31 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
+ uint4 txval32 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, .75);
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4a . GatherCmpRed(g_sSampCmp, c4, .75);
+ int4 txval41 = g_tTexcdi4a . GatherCmpRed(g_sSampCmp, c4, .75);
+ uint4 txval42 = g_tTexcdu4a . GatherCmpRed(g_sSampCmp, c4, .75);
+
+ float4 txval50 = g_tTexcdf4a . GatherCmpGreen(g_sSampCmp, c4, .75);
+ int4 txval51 = g_tTexcdi4a . GatherCmpGreen(g_sSampCmp, c4, .75);
+ uint4 txval52 = g_tTexcdu4a . GatherCmpGreen(g_sSampCmp, c4, .75);
+
+ float4 txval60 = g_tTexcdf4a . GatherCmpBlue(g_sSampCmp, c4, .75);
+ int4 txval61 = g_tTexcdi4a . GatherCmpBlue(g_sSampCmp, c4, .75);
+ uint4 txval62 = g_tTexcdu4a . GatherCmpBlue(g_sSampCmp, c4, .75);
+
+ float4 txval70 = g_tTexcdf4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
+ int4 txval71 = g_tTexcdi4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
+ uint4 txval72 = g_tTexcdu4a . GatherCmpAlpha(g_sSampCmp, c4, .75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gathercmpRGBA.basic.dx10.frag b/Test/hlsl.gathercmpRGBA.basic.dx10.frag
new file mode 100644
index 0000000..9dc1631
--- /dev/null
+++ b/Test/hlsl.gathercmpRGBA.basic.dx10.frag
@@ -0,0 +1,76 @@
+SamplerComparisonState g_sSampCmp : register(s0);
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // no 1D gathers
+
+ float4 txval00 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
+ int4 txval01 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
+ uint4 txval02 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75);
+
+ float4 txval10 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
+ int4 txval11 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
+ uint4 txval12 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75);
+
+ float4 txval20 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
+ int4 txval21 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
+ uint4 txval22 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75);
+
+ float4 txval30 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
+ int4 txval31 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
+ uint4 txval32 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75);
+
+ // no 3D gathers
+
+ float4 txval40 = g_tTexcdf4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
+ int4 txval41 = g_tTexcdi4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
+ uint4 txval42 = g_tTexcdu4 . GatherCmpRed(g_sSampCmp, c3, 0.75);
+
+ float4 txval50 = g_tTexcdf4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
+ int4 txval51 = g_tTexcdi4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
+ uint4 txval52 = g_tTexcdu4 . GatherCmpGreen(g_sSampCmp, c3, 0.75);
+
+ float4 txval60 = g_tTexcdf4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
+ int4 txval61 = g_tTexcdi4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
+ uint4 txval62 = g_tTexcdu4 . GatherCmpBlue(g_sSampCmp, c3, 0.75);
+
+ float4 txval70 = g_tTexcdf4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
+ int4 txval71 = g_tTexcdi4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
+ uint4 txval72 = g_tTexcdu4 . GatherCmpAlpha(g_sSampCmp, c3, 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gathercmpRGBA.offset.dx10.frag b/Test/hlsl.gathercmpRGBA.offset.dx10.frag
new file mode 100644
index 0000000..3a6fbb7
--- /dev/null
+++ b/Test/hlsl.gathercmpRGBA.offset.dx10.frag
@@ -0,0 +1,115 @@
+SamplerComparisonState g_sSampCmp : register(s0);
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ uint status;
+
+ // no 1D gathers
+
+ float4 txval001 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
+ int4 txval011 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
+ uint4 txval021 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2);
+
+ float4 txval004 = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ int4 txval014 = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ uint4 txval024 = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+
+ // float4 txval00s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
+ // int4 txval01s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
+ // uint4 txval02s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, status);
+
+ // float4 txval004s = g_tTex2df4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // int4 txval014s = g_tTex2di4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval024s = g_tTex2du4 . GatherCmpRed(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+
+ float4 txval101 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
+ int4 txval111 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
+ uint4 txval121 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2);
+
+ float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+
+ // float4 txval10s = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
+ // int4 txval11s = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
+ // uint4 txval12s = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, status);
+
+ // float4 txval104 = g_tTex2df4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // int4 txval114 = g_tTex2di4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval124 = g_tTex2du4 . GatherCmpGreen(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+
+ float4 txval201 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
+ int4 txval211 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
+ uint4 txval221 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2);
+
+ float4 txval204 = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ int4 txval214 = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ uint4 txval224 = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+
+ // float4 txval204s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // int4 txval214s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval224s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+
+ // float4 txval20s = g_tTex2df4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
+ // int4 txval21s = g_tTex2di4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
+ // uint4 txval22s = g_tTex2du4 . GatherCmpBlue(g_sSampCmp, c2, 0.75, o2, status);
+
+ float4 txval301 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
+ int4 txval311 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
+ uint4 txval321 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2);
+
+ float4 txval304 = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ int4 txval314 = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+ uint4 txval324 = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2);
+
+ // float4 txval304s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // int4 txval314s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval324s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, o2, o2, o2, status);
+
+ // float4 txval30s = g_tTex2df4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
+ // int4 txval31s = g_tTex2di4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
+ // uint4 txval32s = g_tTex2du4 . GatherCmpAlpha(g_sSampCmp, c2, 0.75, o2, status);
+
+ // no 3D gathers with offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag b/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag
new file mode 100644
index 0000000..11131bc
--- /dev/null
+++ b/Test/hlsl.gathercmpRGBA.offsetarray.dx10.frag
@@ -0,0 +1,109 @@
+SamplerComparisonState g_sSampCmp : register(s0);
+
+uniform Texture1DArray <float4> g_tTex1df4a : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform float c1;
+uniform float2 c2;
+uniform float3 c3;
+uniform float4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ uint status;
+
+ // no 1D gathers
+
+ float4 txval001 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
+ int4 txval011 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
+ uint4 txval021 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2);
+
+ float4 txval004 = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ int4 txval014 = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ uint4 txval024 = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+
+ // float4 txval00s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
+ // int4 txval01s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
+ // uint4 txval02s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, status);
+
+ // float4 txval004s = g_tTex2df4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // int4 txval014s = g_tTex2di4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval024s = g_tTex2du4a . GatherCmpRed(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+
+ float4 txval101 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
+ int4 txval111 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
+ uint4 txval121 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2);
+
+ float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+
+ // float4 txval10s = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
+ // int4 txval11s = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
+ // uint4 txval12s = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, status);
+
+ // float4 txval104 = g_tTex2df4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // int4 txval114 = g_tTex2di4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval124 = g_tTex2du4a . GatherCmpGreen(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+
+ float4 txval201 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
+ int4 txval211 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
+ uint4 txval221 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2);
+
+ float4 txval204 = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ int4 txval214 = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ uint4 txval224 = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+
+ // float4 txval204s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // int4 txval214s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval224s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+
+ // float4 txval20s = g_tTex2df4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
+ // int4 txval21s = g_tTex2di4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
+ // uint4 txval22s = g_tTex2du4a . GatherCmpBlue(g_sSampCmp, c3, 0.75, o2, status);
+
+ float4 txval301 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
+ int4 txval311 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
+ uint4 txval321 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2);
+
+ float4 txval304 = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ int4 txval314 = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+ uint4 txval324 = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2);
+
+ // float4 txval304s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // int4 txval314s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+ // uint4 txval324s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, o2, o2, o2, status);
+
+ // float4 txval30s = g_tTex2df4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
+ // int4 txval31s = g_tTex2di4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
+ // uint4 txval32s = g_tTex2du4a . GatherCmpAlpha(g_sSampCmp, c3, 0.75, o2, status);
+
+ // no 3D gathers with offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.getdimensions.dx10.frag b/Test/hlsl.getdimensions.dx10.frag
index 1adc5e4..bd9cc3b 100644
--- a/Test/hlsl.getdimensions.dx10.frag
+++ b/Test/hlsl.getdimensions.dx10.frag
@@ -28,6 +28,14 @@
TextureCubeArray <int4> g_tTexcdi4a;
TextureCubeArray <uint4> g_tTexcdu4a;
+Texture2DMS <float4> g_tTex2dmsf4;
+Texture2DMS <int4> g_tTex2dmsi4;
+Texture2DMS <uint4> g_tTex2dmsu4;
+
+Texture2DMSArray <float4> g_tTex2dmsf4a;
+Texture2DMSArray <int4> g_tTex2dmsi4a;
+Texture2DMSArray <uint4> g_tTex2dmsu4a;
+
struct PS_OUTPUT
{
float4 Color : SV_Target0;
@@ -137,6 +145,23 @@
g_tTexcdu4a . GetDimensions(WidthU, HeightU, ElementsU);
g_tTexcdu4a . GetDimensions(6, WidthU, HeightU, ElementsU, NumberOfLevelsU);
+ // 2DMS, float tx, uint params
+ g_tTex2dmsf4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU);
+
+ // 2DMS, int tx, uint params
+ g_tTex2dmsi4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU);
+
+ // 2DMS, uint tx, uint params
+ g_tTex2dmsu4 . GetDimensions(WidthU, HeightU, NumberOfSamplesU);
+
+ // 2DMSArray, float tx, uint params
+ g_tTex2dmsf4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU);
+
+ // 2DMSArray, int tx, uint params
+ g_tTex2dmsi4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU);
+
+ // 2DMSArray, uint tx, uint params
+ g_tTex2dmsu4a . GetDimensions(WidthU, HeightU, ElementsU, NumberOfSamplesU);
// TODO: ***************************************************
// Change this to 1 to enable float overloads when the HLSL
@@ -228,6 +253,24 @@
// Cubearray, uint, float params
g_tTexcdu4a . GetDimensions(WidthF, HeightF, ElementsF);
g_tTexcdu4a . GetDimensions(6, WidthF, HeightF, ElementsF, NumberOfLevelsF);
+
+ // 2DMS, float tx, uint params
+ g_tTex2dmsf4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF);
+
+ // 2DMS, int tx, uint params
+ g_tTex2dmsi4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF);
+
+ // 2DMS, uint tx, uint params
+ g_tTex2dmsu4 . GetDimensions(WidthF, HeightF, NumberOfSamplesF);
+
+ // 2DMSArray, float tx, uint params
+ g_tTex2dmsf4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF);
+
+ // 2DMSArray, int tx, uint params
+ g_tTex2dmsi4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF);
+
+ // 2DMSArray, uint tx, uint params
+ g_tTex2dmsu4a . GetDimensions(WidthF, HeightF, ElementsF, NumberOfSamplesF);
#endif // OVERLOAD_FIX
psout.Color = 1.0;
diff --git a/Test/hlsl.getsampleposition.dx10.frag b/Test/hlsl.getsampleposition.dx10.frag
new file mode 100644
index 0000000..a7a93b3
--- /dev/null
+++ b/Test/hlsl.getsampleposition.dx10.frag
@@ -0,0 +1,23 @@
+SamplerState g_sSamp : register(s0);
+
+Texture2DMS <float4> g_tTex2dmsf4;
+Texture2DMSArray <float4> g_tTex2dmsf4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ float2 r00 = g_tTex2dmsf4.GetSamplePosition(1);
+ float2 r01 = g_tTex2dmsf4a.GetSamplePosition(2);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.init.frag b/Test/hlsl.init.frag
index 5acf55d..c233d12 100644
--- a/Test/hlsl.init.frag
+++ b/Test/hlsl.init.frag
@@ -4,6 +4,18 @@
float a3, b3 = 0.3;
float a4, b4 = 0.4, c4;
float a5 = 0.5, b5, c5 = 1.5;
+
+struct Single1 { int f; };
+Single1 single1 = { 10 };
+
+struct Single2 { uint2 v; };
+Single2 single2 = { { 1, 2 } };
+
+struct Single3 { Single1 s1; };
+Single3 single3 = { { 3 } };
+
+struct Single4 { Single2 s1; };
+Single4 single4 = { { { 4u, 5u } } };
float4 ShaderFunction(float4 input) : COLOR0
{
diff --git a/Test/hlsl.init2.frag b/Test/hlsl.init2.frag
new file mode 100644
index 0000000..789f1a0
--- /dev/null
+++ b/Test/hlsl.init2.frag
@@ -0,0 +1,32 @@
+
+void Test1()
+{
+ struct mystruct { float2 a; };
+ mystruct test1 = {
+ { 1, 2, }, // test trailing commas in list
+ };
+
+ mystruct test2 = {
+ float2(3, 4),
+ };
+
+ // mystruct test3 = {
+ // { { 5, 6, } }, // TODO: test unneeded levels
+ // };
+
+ float test4 = { 7, } ; // test scalar initialization
+
+ struct mystruct2 { float a; float b; float c; };
+ mystruct2 test5 = { {8,}, {9,}, {10}, };
+}
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+PS_OUTPUT main()
+{
+ Test1();
+
+ PS_OUTPUT ps_output;
+ ps_output.color = 1.0;
+ return ps_output;
+}
diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag
index dd417a1..b55c242 100644
--- a/Test/hlsl.intrinsics.frag
+++ b/Test/hlsl.intrinsics.frag
@@ -223,6 +223,7 @@
bool3 r041 = isnan(inF0);
float3 r042 = ldexp(inF0, inF1);
float3 r039a = lerp(inF0, inF1, inF2);
+ float3 r039b = lerp(inF0, inF1, 0.3); // test vec,vec,scalar lerp
float r043 = length(inF0);
float3 r044 = log(inF0);
float3 r045 = log10(inF0);
diff --git a/Test/hlsl.load.2dms.dx10.frag b/Test/hlsl.load.2dms.dx10.frag
new file mode 100644
index 0000000..29974f5
--- /dev/null
+++ b/Test/hlsl.load.2dms.dx10.frag
@@ -0,0 +1,56 @@
+SamplerState g_sSamp : register(s0);
+
+Texture2DMS <float4> g_tTex2dmsf4;
+Texture2DMS <int4> g_tTex2dmsi4;
+Texture2DMS <uint4> g_tTex2dmsu4;
+
+Texture2DMSArray <float4> g_tTex2dmsf4a;
+Texture2DMSArray <int4> g_tTex2dmsi4a;
+Texture2DMSArray <uint4> g_tTex2dmsu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 2DMS, no offset
+ g_tTex2dmsf4.Load(c2, 3);
+ g_tTex2dmsi4.Load(c2, 3);
+ g_tTex2dmsu4.Load(c2, 3);
+
+ // 2DMS, offset
+ g_tTex2dmsf4.Load(c2, 3, o2);
+ g_tTex2dmsi4.Load(c2, 3, o2);
+ g_tTex2dmsu4.Load(c2, 3, o2);
+
+ // 2DMSArray, no offset
+ g_tTex2dmsf4a.Load(c3, 3);
+ g_tTex2dmsi4a.Load(c3, 3);
+ g_tTex2dmsu4a.Load(c3, 3);
+
+ // 2DMSArray, offset
+ g_tTex2dmsf4a.Load(c3, 3, o2);
+ g_tTex2dmsi4a.Load(c3, 3, o2);
+ g_tTex2dmsu4a.Load(c3, 3, o2);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
+
diff --git a/Test/hlsl.load.array.dx10.frag b/Test/hlsl.load.array.dx10.frag
new file mode 100644
index 0000000..253de3e
--- /dev/null
+++ b/Test/hlsl.load.array.dx10.frag
@@ -0,0 +1,71 @@
+SamplerState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1DArray
+ g_tTex1df4a.Load(c3);
+ g_tTex1di4a.Load(c3);
+ g_tTex1du4a.Load(c3);
+
+ // 2DArray
+ g_tTex2df4a.Load(c4);
+ g_tTex2di4a.Load(c4);
+ g_tTex2du4a.Load(c4);
+
+ // Offset has no Cube or CubeArray forms
+
+ // TODO:
+ // Load, SampleIndex
+ // Load, SampleIndex, Offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.load.basic.dx10.frag b/Test/hlsl.load.basic.dx10.frag
new file mode 100644
index 0000000..abb594e
--- /dev/null
+++ b/Test/hlsl.load.basic.dx10.frag
@@ -0,0 +1,76 @@
+SamplerState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1D
+ g_tTex1df4.Load(c2);
+ g_tTex1di4.Load(c2);
+ g_tTex1du4.Load(c2);
+
+ // 2D
+ g_tTex2df4.Load(c3);
+ g_tTex2di4.Load(c3);
+ g_tTex2du4.Load(c3);
+
+ // 3D
+ g_tTex3df4.Load(c4);
+ g_tTex3di4.Load(c4);
+ g_tTex3du4.Load(c4);
+
+ // Offset has no Cube or CubeArray forms
+
+ // TODO:
+ // Load, SampleIndex
+ // Load, SampleIndex, Offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.load.basic.dx10.vert b/Test/hlsl.load.basic.dx10.vert
new file mode 100644
index 0000000..750b984
--- /dev/null
+++ b/Test/hlsl.load.basic.dx10.vert
@@ -0,0 +1,70 @@
+SamplerState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct VS_OUTPUT
+{
+ float4 Pos : SV_Position;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+VS_OUTPUT main()
+{
+ VS_OUTPUT vsout;
+
+ // 1D
+ g_tTex1df4.Load(c2);
+ g_tTex1di4.Load(c2);
+ g_tTex1du4.Load(c2);
+
+ // 2D
+ g_tTex2df4.Load(c3);
+ g_tTex2di4.Load(c3);
+ g_tTex2du4.Load(c3);
+
+ // 3D
+ g_tTex3df4.Load(c4);
+ g_tTex3di4.Load(c4);
+ g_tTex3du4.Load(c4);
+
+ // Offset has no Cube or CubeArray forms
+
+ vsout.Pos = float4(0,0,0,0);
+
+ return vsout;
+}
diff --git a/Test/hlsl.load.buffer.dx10.frag b/Test/hlsl.load.buffer.dx10.frag
new file mode 100644
index 0000000..60a61df
--- /dev/null
+++ b/Test/hlsl.load.buffer.dx10.frag
@@ -0,0 +1,38 @@
+uniform Buffer <float4> g_tTexbf4_test : register(t0);
+
+Buffer g_tTexbf4; // default is float4
+Buffer <int4> g_tTexbi4;
+Buffer <uint4> g_tTexbu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // Buffer
+ float4 r00 = g_tTexbf4.Load(c1);
+ int4 r01 = g_tTexbi4.Load(c1);
+ uint4 r02 = g_tTexbu4.Load(c1);
+
+ // TODO: other types that can be put in sampler buffers, like float2x2, and float3.
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.load.offset.dx10.frag b/Test/hlsl.load.offset.dx10.frag
new file mode 100644
index 0000000..bc946ee
--- /dev/null
+++ b/Test/hlsl.load.offset.dx10.frag
@@ -0,0 +1,76 @@
+SamplerState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1D
+ g_tTex1df4.Load(c2, o1);
+ g_tTex1di4.Load(c2, o1);
+ g_tTex1du4.Load(c2, o1);
+
+ // 2D
+ g_tTex2df4.Load(c3, o2);
+ g_tTex2di4.Load(c3, o2);
+ g_tTex2du4.Load(c3, o2);
+
+ // 3D
+ g_tTex3df4.Load(c4, o3);
+ g_tTex3di4.Load(c4, o3);
+ g_tTex3du4.Load(c4, o3);
+
+ // Offset has no Cube or CubeArray forms
+
+ // TODO:
+ // Load, SampleIndex
+ // Load, SampleIndex, Offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.load.offsetarray.dx10.frag b/Test/hlsl.load.offsetarray.dx10.frag
new file mode 100644
index 0000000..12b6a9e
--- /dev/null
+++ b/Test/hlsl.load.offsetarray.dx10.frag
@@ -0,0 +1,69 @@
+SamplerState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+uniform int c1;
+uniform int2 c2;
+uniform int3 c3;
+uniform int4 c4;
+
+uniform int o1;
+uniform int2 o2;
+uniform int3 o3;
+uniform int4 o4;
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1DArray
+ g_tTex1df4a.Load(c3, o1);
+ g_tTex1di4a.Load(c3, o1);
+ g_tTex1du4a.Load(c3, o1);
+
+ // 2DArray
+ g_tTex2df4a.Load(c4, o2);
+ g_tTex2di4a.Load(c4, o2);
+ g_tTex2du4a.Load(c4, o2);
+
+ // TODO:
+ // Load, SampleIndex
+ // Load, SampleIndex, Offset
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.numericsuffixes.frag b/Test/hlsl.numericsuffixes.frag
new file mode 100644
index 0000000..60b2572
--- /dev/null
+++ b/Test/hlsl.numericsuffixes.frag
@@ -0,0 +1,20 @@
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+PS_OUTPUT main()
+{
+ // Test numeric suffixes
+ float r00 = 1.0f; // float
+ uint r01 = 1u; // lower uint
+ uint r02 = 2U; // upper uint
+ uint r03 = 0xabcu; // lower hex uint
+ uint r04 = 0xABCU; // upper hex uint (upper 0X is not accepted)
+ int r05 = 5l; // lower long int
+ int r06 = 6L; // upper long int
+ int r07 = 071; // octal
+ uint r08 = 072u; // unsigned octal
+
+ PS_OUTPUT ps_output;
+ ps_output.color = r07; // gets 71 octal = 57 decimal
+ return ps_output;
+}
diff --git a/Test/hlsl.pp.line.frag b/Test/hlsl.pp.line.frag
new file mode 100644
index 0000000..6f0273d
--- /dev/null
+++ b/Test/hlsl.pp.line.frag
@@ -0,0 +1,24 @@
+
+#line 1
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+#line 2
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+#line 123 "SomeFile.frag"
+
+ int thisLineIs = __LINE__; // gets 124
+
+ psout.Color = float4(thisLineIs, 0, 0, 1);
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.precedence.frag b/Test/hlsl.precedence.frag
index eae0435..6ed7173 100644
--- a/Test/hlsl.precedence.frag
+++ b/Test/hlsl.precedence.frag
@@ -5,5 +5,5 @@
float4 a4
) : COLOR0
{
- return a1 + a2 * a3 + a4;
+ return a1 + a2 * a3 + a4 + float4(a1.rgb * a2.rgb, a3.a);
}
diff --git a/Test/hlsl.samplecmp.array.dx10.frag b/Test/hlsl.samplecmp.array.dx10.frag
new file mode 100644
index 0000000..f0e0a3d
--- /dev/null
+++ b/Test/hlsl.samplecmp.array.dx10.frag
@@ -0,0 +1,60 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1DArray
+ float r10 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r12 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r14 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
+
+ // 2DArray
+ float r30 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r32 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r34 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+
+ // CubeArray
+ float r60 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+ float r62 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+ float r64 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmp.basic.dx10.frag b/Test/hlsl.samplecmp.basic.dx10.frag
new file mode 100644
index 0000000..cb73e14
--- /dev/null
+++ b/Test/hlsl.samplecmp.basic.dx10.frag
@@ -0,0 +1,61 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1D
+ float r00 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75);
+ float r02 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75);
+ float r04 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75);
+
+ // 2D
+ float r20 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r22 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r24 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75);
+
+ // *** There's no SampleCmp on 3D textures
+
+ float r50 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r52 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r54 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmp.offset.dx10.frag b/Test/hlsl.samplecmp.offset.dx10.frag
new file mode 100644
index 0000000..444dac8
--- /dev/null
+++ b/Test/hlsl.samplecmp.offset.dx10.frag
@@ -0,0 +1,66 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1D
+ float r01 = g_tTex1df4 . SampleCmp(g_sSamp, 0.1, 0.75, 2);
+ float r03 = g_tTex1di4 . SampleCmp(g_sSamp, 0.1, 0.75, 2);
+ float r05 = g_tTex1du4 . SampleCmp(g_sSamp, 0.1, 0.75, 2);
+
+ // 2D
+ float r21 = g_tTex2df4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
+ float r23 = g_tTex2di4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
+ float r25 = g_tTex2du4 . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
+
+ // *** There's no SampleCmp on 3D textures
+
+ // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
+ // claims offset is supported for cube textures, but FXC does not accept it, and that does
+ // not match other methods, so it may be a documentation bug. Those lines are commented
+ // out below.
+ // Cube
+ // float r51 = g_tTexcdf4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4));
+ // float r53 = g_tTexcdi4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4));
+ // float r55 = g_tTexcdu4 . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(2,3,4));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmp.offsetarray.dx10.frag b/Test/hlsl.samplecmp.offsetarray.dx10.frag
new file mode 100644
index 0000000..319d5cd
--- /dev/null
+++ b/Test/hlsl.samplecmp.offsetarray.dx10.frag
@@ -0,0 +1,67 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1DArray
+ float r11 = g_tTex1df4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2);
+ float r13 = g_tTex1di4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2);
+ float r15 = g_tTex1du4a . SampleCmp(g_sSamp, float2(0.1, 0.2), 0.75, 2);
+
+ // 2DArray
+ float r31 = g_tTex2df4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+ float r33 = g_tTex2di4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+ float r35 = g_tTex2du4a . SampleCmp(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+
+ // *** There's no SampleCmp on 3D textures
+
+ // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
+ // claims offset is supported for cube textures, but FXC does not accept it, and that does
+ // not match other methods, so it may be a documentation bug. Those lines are commented
+ // out below.
+
+ // CubeArray
+ // float r61 = g_tTexcdf4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
+ // float r63 = g_tTexcdi4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
+ // float r65 = g_tTexcdu4a . SampleCmp(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmplevelzero.array.dx10.frag b/Test/hlsl.samplecmplevelzero.array.dx10.frag
new file mode 100644
index 0000000..41b6a79
--- /dev/null
+++ b/Test/hlsl.samplecmplevelzero.array.dx10.frag
@@ -0,0 +1,60 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1DArray
+ float r10 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r12 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r14 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
+
+ // 2DArray
+ float r30 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r32 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r34 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+
+ // CubeArray
+ float r60 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+ float r62 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+ float r64 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmplevelzero.basic.dx10.frag b/Test/hlsl.samplecmplevelzero.basic.dx10.frag
new file mode 100644
index 0000000..841530a
--- /dev/null
+++ b/Test/hlsl.samplecmplevelzero.basic.dx10.frag
@@ -0,0 +1,61 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1D
+ float r00 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75);
+ float r02 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75);
+ float r04 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75);
+
+ // 2D
+ float r20 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r22 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
+ float r24 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75);
+
+ // *** There's no SampleCmpLevelZero on 3D textures
+
+ float r50 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r52 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ float r54 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmplevelzero.offset.dx10.frag b/Test/hlsl.samplecmplevelzero.offset.dx10.frag
new file mode 100644
index 0000000..290774e
--- /dev/null
+++ b/Test/hlsl.samplecmplevelzero.offset.dx10.frag
@@ -0,0 +1,66 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1D
+ float r01 = g_tTex1df4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2);
+ float r03 = g_tTex1di4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2);
+ float r05 = g_tTex1du4 . SampleCmpLevelZero(g_sSamp, 0.1, 0.75, 2);
+
+ // 2D
+ float r21 = g_tTex2df4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
+ float r23 = g_tTex2di4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
+ float r25 = g_tTex2du4 . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, int2(2,3));
+
+ // *** There's no SampleCmpLevelZero on 3D textures
+
+ // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
+ // claims offset is supported for cube textures, but FXC does not accept it, and that does
+ // not match other methods, so it may be a documentation bug. Those lines are commented
+ // out below.
+ // Cube
+ // float r51 = g_tTexcdf4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+ // float r53 = g_tTexcdi4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+ // float r55 = g_tTexcdu4 . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag b/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag
new file mode 100644
index 0000000..b57502e
--- /dev/null
+++ b/Test/hlsl.samplecmplevelzero.offsetarray.dx10.frag
@@ -0,0 +1,67 @@
+SamplerComparisonState g_sSamp : register(s0);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ // 1DArray
+ float r11 = g_tTex1df4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2);
+ float r13 = g_tTex1di4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2);
+ float r15 = g_tTex1du4a . SampleCmpLevelZero(g_sSamp, float2(0.1, 0.2), 0.75, 2);
+
+ // 2DArray
+ float r31 = g_tTex2df4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+ float r33 = g_tTex2di4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+ float r35 = g_tTex2du4a . SampleCmpLevelZero(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(2,3));
+
+ // *** There's no SampleCmpLevelZero on 3D textures
+
+ // This page: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509696(v=vs.85).aspx
+ // claims offset is supported for cube textures, but FXC does not accept it, and that does
+ // not match other methods, so it may be a documentation bug. Those lines are commented
+ // out below.
+
+ // CubeArray
+ // float r61 = g_tTexcdf4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
+ // float r63 = g_tTexcdi4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
+ // float r65 = g_tTexcdu4a . SampleCmpLevelZero(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75, int3(2,3,4));
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplelevel.array.dx10.frag b/Test/hlsl.samplelevel.array.dx10.frag
new file mode 100644
index 0000000..c52aeb2
--- /dev/null
+++ b/Test/hlsl.samplelevel.array.dx10.frag
@@ -0,0 +1,43 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1DArray g_tTex1df4a : register(t1);
+
+uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
+Texture1DArray <int4> g_tTex1di4a;
+Texture1DArray <uint4> g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4> g_tTex2di4a;
+Texture2DArray <uint4> g_tTex2du4a;
+
+TextureCubeArray <float4> g_tTexcdf4a;
+TextureCubeArray <int4> g_tTexcdi4a;
+TextureCubeArray <uint4> g_tTexcdu4a;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ float4 txval10 = g_tTex1df4a . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
+ int4 txval11 = g_tTex1di4a . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75);
+ uint4 txval12 = g_tTex1du4a . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75);
+
+ float4 txval20 = g_tTex2df4a . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ int4 txval21 = g_tTex2di4a . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75);
+ uint4 txval22 = g_tTex2du4a . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75);
+
+ float4 txval40 = g_tTexcdf4a . SampleLevel(g_sSamp, float4(0.1, 0.2, 0.3, 0.4), 0.75);
+ int4 txval41 = g_tTexcdi4a . SampleLevel(g_sSamp, float4(0.4, 0.5, 0.6, 0.7), 0.75);
+ uint4 txval42 = g_tTexcdu4a . SampleLevel(g_sSamp, float4(0.7, 0.8, 0.9, 1.0), 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplelevel.basic.dx10.frag b/Test/hlsl.samplelevel.basic.dx10.frag
new file mode 100644
index 0000000..fb363ae
--- /dev/null
+++ b/Test/hlsl.samplelevel.basic.dx10.frag
@@ -0,0 +1,52 @@
+SamplerState g_sSamp : register(s0);
+uniform sampler2D g_sSamp2d;
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75);
+ int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75);
+ uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75);
+
+ float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
+ int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75);
+ uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75);
+
+ float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75);
+ uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75);
+
+ float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75);
+ uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75);
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplelevel.basic.dx10.vert b/Test/hlsl.samplelevel.basic.dx10.vert
new file mode 100644
index 0000000..03febcf
--- /dev/null
+++ b/Test/hlsl.samplelevel.basic.dx10.vert
@@ -0,0 +1,49 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct VS_OUTPUT
+{
+ float4 Pos : SV_Position;
+};
+
+VS_OUTPUT main()
+{
+ VS_OUTPUT vsout;
+
+ float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75);
+ int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75);
+ uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75);
+
+ float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75);
+ int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75);
+ uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75);
+
+ float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75);
+ uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75);
+
+ float4 txval40 = g_tTexcdf4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75);
+ int4 txval41 = g_tTexcdi4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75);
+ uint4 txval42 = g_tTexcdu4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75);
+
+ vsout.Pos = float4(0,0,0,0);
+
+ return vsout;
+}
diff --git a/Test/hlsl.samplelevel.offset.dx10.frag b/Test/hlsl.samplelevel.offset.dx10.frag
new file mode 100644
index 0000000..1490611
--- /dev/null
+++ b/Test/hlsl.samplelevel.offset.dx10.frag
@@ -0,0 +1,49 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1D g_tTex1df4a : register(t1);
+
+uniform Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4> g_tTex1di4;
+Texture1D <uint4> g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4> g_tTex2di4;
+Texture2D <uint4> g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4> g_tTex3di4;
+Texture3D <uint4> g_tTex3du4;
+
+TextureCube <float4> g_tTexcdf4;
+TextureCube <int4> g_tTexcdi4;
+TextureCube <uint4> g_tTexcdu4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, 0.1, 0.75, 1);
+ int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, 0.2, 0.75, 1);
+ uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, 0.3, 0.75, 1);
+
+ float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, int2(1,0));
+ int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, int2(1,1));
+ uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float2(0.5, 0.6), 0.75, int2(1,-1));
+
+ float4 txval30 = g_tTex3df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int3(1,0,1));
+ int4 txval31 = g_tTex3di4 . SampleLevel(g_sSamp, float3(0.4, 0.5, 0.6), 0.75, int3(1,1,1));
+ uint4 txval32 = g_tTex3du4 . SampleLevel(g_sSamp, float3(0.7, 0.8, 0.9), 0.75, int3(1,0,-1));
+
+ // There are no offset forms of cube textures, so we do not test them.
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.samplelevel.offsetarray.dx10.frag b/Test/hlsl.samplelevel.offsetarray.dx10.frag
new file mode 100644
index 0000000..5c7bd71
--- /dev/null
+++ b/Test/hlsl.samplelevel.offsetarray.dx10.frag
@@ -0,0 +1,37 @@
+SamplerState g_sSamp : register(s0);
+
+Texture1DArray g_tTex1df4a : register(t1);
+
+uniform Texture1DArray <float4> g_tTex1df4 : register(t0);
+Texture1DArray <int4> g_tTex1di4;
+Texture1DArray <uint4> g_tTex1du4;
+
+Texture2DArray <float4> g_tTex2df4;
+Texture2DArray <int4> g_tTex2di4;
+Texture2DArray <uint4> g_tTex2du4;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+ float Depth : SV_Depth;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+
+ float4 txval10 = g_tTex1df4 . SampleLevel(g_sSamp, float2(0.1, 0.2), 0.75, 0);
+ int4 txval11 = g_tTex1di4 . SampleLevel(g_sSamp, float2(0.2, 0.3), 0.75, 1);
+ uint4 txval12 = g_tTex1du4 . SampleLevel(g_sSamp, float2(0.3, 0.4), 0.75, 2);
+
+ float4 txval20 = g_tTex2df4 . SampleLevel(g_sSamp, float3(0.1, 0.2, 0.3), 0.75, int2(0,0));
+ int4 txval21 = g_tTex2di4 . SampleLevel(g_sSamp, float3(0.3, 0.4, 0.5), 0.75, int2(0,0));
+ uint4 txval22 = g_tTex2du4 . SampleLevel(g_sSamp, float3(0.5, 0.6, 0.7), 0.75, int2(0,1));
+
+ // No offset array forms for 3D or cube
+
+ psout.Color = 1.0;
+ psout.Depth = 1.0;
+
+ return psout;
+}
diff --git a/Test/hlsl.semicolons.frag b/Test/hlsl.semicolons.frag
new file mode 100644
index 0000000..28fdedd
--- /dev/null
+++ b/Test/hlsl.semicolons.frag
@@ -0,0 +1,19 @@
+
+void MyFunc() { }
+
+;;;
+;
+; ; ; // HLSL allows stray global scope semicolons.
+
+void MyFunc2() {;;;};
+
+struct PS_OUTPUT { float4 color : SV_Target0; };;;;;
+
+;PS_OUTPUT main()
+{
+ PS_OUTPUT ps_output;;;
+ ;
+ ps_output.color = 1.0;
+ return ps_output;
+};
+
diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag
new file mode 100644
index 0000000..1e6dec6
--- /dev/null
+++ b/Test/hlsl.shapeConv.frag
@@ -0,0 +1,13 @@
+float4 PixelShaderFunction(float4 input, float f) : COLOR0
+{
+ float4 v;
+ v = 1;
+ v = 2.0;
+ v = f;
+ float3 u;
+ u = float(1);
+ u = float(2.0);
+ u = float(f);
+
+ return input;
+}
diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag
index 25c803d..c76f334 100644
--- a/Test/hlsl.struct.frag
+++ b/Test/hlsl.struct.frag
@@ -23,10 +23,13 @@
sample centroid float2 d;
bool ff1 : SV_IsFrontFace;
bool ff2 : packoffset(c0.y);
- bool ff3 : packoffset(c0.y) : register(ps_5_0, s[0]) ;
- float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s[0]) <int bambam=30;> ;
+ bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ;
+ float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) <int bambam=30;> ;
} s4;
+float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]);
+float3 ff6 : packoffset(c2.y) : register(s3[5]);
+
float4 PixelShaderFunction(float4 input) : COLOR0
{
struct FS {
diff --git a/Test/preprocessor.simple.vert b/Test/preprocessor.simple.vert
index f4749f2..3522271 100644
--- a/Test/preprocessor.simple.vert
+++ b/Test/preprocessor.simple.vert
@@ -19,4 +19,11 @@
gl_Position = vec4(Z);
gl_Position = vec4(F);
gl_Position = vec4(fn(3));
+ [] . ++ --
+ + - * % / - ! ~
+ << >> < > <= >=
+ == !=
+ & ^ | && ^^ || ? :
+ += -= *= /= %= <<= >>= &= |= ^=
+ 1.2 2E10 5u -5lf
}
diff --git a/Test/spv.swizzleInversion.frag b/Test/spv.swizzleInversion.frag
new file mode 100644
index 0000000..9dca62f
--- /dev/null
+++ b/Test/spv.swizzleInversion.frag
@@ -0,0 +1,16 @@
+#version 450
+
+in vec4 in4;
+in vec3 in3;
+
+void main()
+{
+ vec3 v43 = interpolateAtCentroid(in4.wzx);
+ vec2 v42 = interpolateAtSample(in4.zx, 1);
+ vec4 v44 = interpolateAtOffset(in4.zyxw, vec2(2.0));
+ float v41 = interpolateAtOffset(in4.y, vec2(2.0));
+
+ vec3 v33 = interpolateAtCentroid(in3.yzx);
+ vec2 v32 = interpolateAtSample(in3.zx, 1);
+ float v31 = interpolateAtOffset(in4.y, vec2(2.0));
+}
diff --git a/Test/vulkan.frag b/Test/vulkan.frag
index 0148507..fd9106c 100644
--- a/Test/vulkan.frag
+++ b/Test/vulkan.frag
@@ -72,4 +72,24 @@
{
texture(t2d, vec2(1.0)); // ERROR, need a sampler, not a pure texture
imageStore(t2d, ivec2(4, 5), vec4(1.2)); // ERROR, need an image, not a pure texture
-}
\ No newline at end of file
+}
+
+precision highp float;
+
+layout(location=0) in vec2 vTexCoord;
+layout(location=0) out vec4 FragColor;
+
+vec4 userTexture(mediump sampler2D samp, vec2 coord)
+{
+ return texture(samp, coord);
+}
+
+bool cond;
+
+void callUserTexture()
+{
+ userTexture(sampler2D(t2d,s), vTexCoord); // ERROR, not point of use
+ userTexture((sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use
+ userTexture((sampler2D(t2d,s), sampler2D(t2d,s)), vTexCoord); // ERROR, not point of use
+ userTexture(cond ? sampler2D(t2d,s) : sampler2D(t2d,s), vTexCoord); // ERROR, no ?:, not point of use
+}
diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h
index 2c27577..7e12c55 100644
--- a/glslang/Include/BaseTypes.h
+++ b/glslang/Include/BaseTypes.h
@@ -186,6 +186,15 @@
EbvSamplePosition,
EbvSampleMask,
EbvHelperInvocation,
+#ifdef AMD_EXTENSIONS
+ EbvBaryCoordNoPersp,
+ EbvBaryCoordNoPerspCentroid,
+ EbvBaryCoordNoPerspSample,
+ EbvBaryCoordSmooth,
+ EbvBaryCoordSmoothCentroid,
+ EbvBaryCoordSmoothSample,
+ EbvBaryCoordPullModel,
+#endif
EbvLast
};
@@ -286,6 +295,15 @@
case EbvSamplePosition: return "SamplePosition";
case EbvSampleMask: return "SampleMaskIn";
case EbvHelperInvocation: return "HelperInvocation";
+#ifdef AMD_EXTENSIONS
+ case EbvBaryCoordNoPersp: return "BaryCoordNoPersp";
+ case EbvBaryCoordNoPerspCentroid: return "BaryCoordNoPerspCentroid";
+ case EbvBaryCoordNoPerspSample: return "BaryCoordNoPerspSample";
+ case EbvBaryCoordSmooth: return "BaryCoordSmooth";
+ case EbvBaryCoordSmoothCentroid: return "BaryCoordSmoothCentroid";
+ case EbvBaryCoordSmoothSample: return "BaryCoordSmoothSample";
+ case EbvBaryCoordPullModel: return "BaryCoordPullModel";
+#endif
default: return "unknown built-in variable";
}
}
diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h
index efb78d4..4c04ae3 100644
--- a/glslang/Include/Common.h
+++ b/glslang/Include/Common.h
@@ -197,20 +197,25 @@
//
// Create a TString object from an integer.
//
+#if defined _MSC_VER || defined MINGW_HAS_SECURE_API
inline const TString String(const int i, const int base = 10)
{
char text[16]; // 32 bit ints are at most 10 digits in base 10
+ _itoa_s(i, text, sizeof(text), base);
+ return text;
+}
+#else
+inline const TString String(const int i, const int /*base*/ = 10)
+{
+ char text[16]; // 32 bit ints are at most 10 digits in base 10
- #if defined _MSC_VER || defined MINGW_HAS_SECURE_API
- _itoa_s(i, text, sizeof(text), base);
- #else
- // we assume base 10 for all cases
- snprintf(text, sizeof(text), "%d", i);
- #endif
+ // we assume base 10 for all cases
+ snprintf(text, sizeof(text), "%d", i);
return text;
}
-
+#endif
+
struct TSourceLoc {
void init() { name = nullptr; string = 0; line = 0; column = 0; }
// Returns the name if it exists. Otherwise, returns the string number.
diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index 39a9fff..1ea9f25 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -86,6 +86,7 @@
bool isTexture() const { return !sampler && !image; }
bool isShadow() const { return shadow; }
bool isArrayed() const { return arrayed; }
+ bool isMultiSample() const { return ms; }
void clear()
{
@@ -405,6 +406,9 @@
smooth = false;
flat = false;
nopersp = false;
+#ifdef AMD_EXTENSIONS
+ explicitInterp = false;
+#endif
patch = false;
sample = false;
coherent = false;
@@ -438,6 +442,9 @@
bool smooth : 1;
bool flat : 1;
bool nopersp : 1;
+#ifdef AMD_EXTENSIONS
+ bool explicitInterp : 1;
+#endif
bool patch : 1;
bool sample : 1;
bool coherent : 1;
@@ -453,7 +460,11 @@
}
bool isInterpolation() const
{
+#ifdef AMD_EXTENSIONS
+ return flat || smooth || nopersp || explicitInterp;
+#else
return flat || smooth || nopersp;
+#endif
}
bool isAuxiliary() const
{
@@ -1518,6 +1529,10 @@
p += snprintf(p, end - p, "flat ");
if (qualifier.nopersp)
p += snprintf(p, end - p, "noperspective ");
+#ifdef AMD_EXTENSIONS
+ if (qualifier.explicitInterp)
+ p += snprintf(p, end - p, "__explicitInterpAMD ");
+#endif
if (qualifier.patch)
p += snprintf(p, end - p, "patch ");
if (qualifier.sample)
diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h
index a74b96e..5166e3d 100644
--- a/glslang/Include/intermediate.h
+++ b/glslang/Include/intermediate.h
@@ -246,6 +246,12 @@
EOpReflect,
EOpRefract,
+#ifdef AMD_EXTENSIONS
+ EOpMin3,
+ EOpMax3,
+ EOpMid3,
+#endif
+
EOpDPdx, // Fragment only
EOpDPdy, // Fragment only
EOpFwidth, // Fragment only
@@ -260,6 +266,10 @@
EOpInterpolateAtSample, // Fragment only
EOpInterpolateAtOffset, // Fragment only
+#ifdef AMD_EXTENSIONS
+ EOpInterpolateAtVertex,
+#endif
+
EOpMatrixTimesMatrix,
EOpOuterProduct,
EOpDeterminant,
@@ -291,6 +301,23 @@
EOpAllInvocations,
EOpAllInvocationsEqual,
+#ifdef AMD_EXTENSIONS
+ EOpMinInvocations,
+ EOpMaxInvocations,
+ EOpAddInvocations,
+ EOpMinInvocationsNonUniform,
+ EOpMaxInvocationsNonUniform,
+ EOpAddInvocationsNonUniform,
+ EOpSwizzleInvocations,
+ EOpSwizzleInvocationsMasked,
+ EOpWriteInvocation,
+ EOpMbcnt,
+
+ EOpCubeFaceIndex,
+ EOpCubeFaceCoord,
+ EOpTime,
+#endif
+
EOpAtomicAdd,
EOpAtomicMin,
EOpAtomicMax,
@@ -434,6 +461,9 @@
EOpTextureQueryLod,
EOpTextureQueryLevels,
EOpTextureQuerySamples,
+
+ EOpSamplingGuardBegin,
+
EOpTexture,
EOpTextureProj,
EOpTextureLod,
@@ -476,7 +506,7 @@
EOpSparseTextureGradOffsetClamp,
EOpSparseTextureGuardEnd,
-
+ EOpSamplingGuardEnd,
EOpTextureGuardEnd,
//
@@ -538,6 +568,17 @@
EOpMethodGather, // ...
EOpMethodCalculateLevelOfDetail, // ...
EOpMethodCalculateLevelOfDetailUnclamped, // ...
+
+ // SM5 texture methods
+ EOpMethodGatherRed, // These are covered under the above EOpMethodSample comment about
+ EOpMethodGatherGreen, // translation to existing AST opcodes. They exist temporarily
+ EOpMethodGatherBlue, // because HLSL arguments are slightly different.
+ EOpMethodGatherAlpha, // ...
+ EOpMethodGatherCmp, // ...
+ EOpMethodGatherCmpRed, // ...
+ EOpMethodGatherCmpGreen, // ...
+ EOpMethodGatherCmpBlue, // ...
+ EOpMethodGatherCmpAlpha, // ...
};
class TIntermTraverser;
@@ -772,11 +813,27 @@
virtual bool promote() { return true; }
bool modifiesState() const;
bool isConstructor() const;
- bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; }
- bool isImage() const { return op > EOpImageGuardBegin && op < EOpImageGuardEnd; }
+ bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; }
+ bool isSampling() const { return op > EOpSamplingGuardBegin && op < EOpSamplingGuardEnd; }
+ bool isImage() const { return op > EOpImageGuardBegin && op < EOpImageGuardEnd; }
bool isSparseTexture() const { return op > EOpSparseTextureGuardBegin && op < EOpSparseTextureGuardEnd; }
bool isSparseImage() const { return op == EOpSparseImageLoad; }
+ void setOperationPrecision(TPrecisionQualifier p) { operationPrecision = p; }
+ TPrecisionQualifier getOperationPrecision() const { return operationPrecision != EpqNone ?
+ operationPrecision :
+ type.getQualifier().precision; }
+ TString getCompleteString() const
+ {
+ TString cs = type.getCompleteString();
+ if (getOperationPrecision() != type.getQualifier().precision) {
+ cs += ", operation at ";
+ cs += GetPrecisionQualifierString(getOperationPrecision());
+ }
+
+ return cs;
+ }
+
// Crack the op into the individual dimensions of texturing operation.
void crackTexture(TSampler sampler, TCrackedTextureOp& cracked) const
{
@@ -908,9 +965,15 @@
}
protected:
- TIntermOperator(TOperator o) : TIntermTyped(EbtFloat), op(o) {}
- TIntermOperator(TOperator o, TType& t) : TIntermTyped(t), op(o) {}
+ TIntermOperator(TOperator o) : TIntermTyped(EbtFloat), op(o), operationPrecision(EpqNone) {}
+ TIntermOperator(TOperator o, TType& t) : TIntermTyped(t), op(o), operationPrecision(EpqNone) {}
TOperator op;
+ // The result precision is in the inherited TType, and is usually meant to be both
+ // the operation precision and the result precision. However, some more complex things,
+ // like built-in function calls, distinguish between the two, in which case non-EqpNone
+ // 'operationPrecision' overrides the result precision as far as operation precision
+ // is concerned.
+ TPrecisionQualifier operationPrecision;
};
//
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index e338849..bcaf087 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.947"
-#define GLSLANG_DATE "15-Feb-2016"
+#define GLSLANG_REVISION "SPIRV99.1383"
+#define GLSLANG_DATE "04-Aug-2016"
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index 871e788..0323c1b 100644
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -801,10 +801,85 @@
"bvec3 notEqual(u64vec3, u64vec3);"
"bvec4 notEqual(u64vec4, u64vec4);"
+#ifdef AMD_EXTENSIONS
+ "int findLSB(int64_t);"
+ "ivec2 findLSB(i64vec2);"
+ "ivec3 findLSB(i64vec3);"
+ "ivec4 findLSB(i64vec4);"
+
+ "int findLSB(uint64_t);"
+ "ivec2 findLSB(u64vec2);"
+ "ivec3 findLSB(u64vec3);"
+ "ivec4 findLSB(u64vec4);"
+
+ "int findMSB(int64_t);"
+ "ivec2 findMSB(i64vec2);"
+ "ivec3 findMSB(i64vec3);"
+ "ivec4 findMSB(i64vec4);"
+
+ "int findMSB(uint64_t);"
+ "ivec2 findMSB(u64vec2);"
+ "ivec3 findMSB(u64vec3);"
+ "ivec4 findMSB(u64vec4);"
+#endif
"\n"
);
}
+#ifdef AMD_EXTENSIONS
+ // GL_AMD_shader_trinary_minmax
+ if (profile != EEsProfile && version >= 430) {
+ commonBuiltins.append(
+ "float min3(float, float, float);"
+ "vec2 min3(vec2, vec2, vec2);"
+ "vec3 min3(vec3, vec3, vec3);"
+ "vec4 min3(vec4, vec4, vec4);"
+
+ "int min3(int, int, int);"
+ "ivec2 min3(ivec2, ivec2, ivec2);"
+ "ivec3 min3(ivec3, ivec3, ivec3);"
+ "ivec4 min3(ivec4, ivec4, ivec4);"
+
+ "uint min3(uint, uint, uint);"
+ "uvec2 min3(uvec2, uvec2, uvec2);"
+ "uvec3 min3(uvec3, uvec3, uvec3);"
+ "uvec4 min3(uvec4, uvec4, uvec4);"
+
+ "float max3(float, float, float);"
+ "vec2 max3(vec2, vec2, vec2);"
+ "vec3 max3(vec3, vec3, vec3);"
+ "vec4 max3(vec4, vec4, vec4);"
+
+ "int max3(int, int, int);"
+ "ivec2 max3(ivec2, ivec2, ivec2);"
+ "ivec3 max3(ivec3, ivec3, ivec3);"
+ "ivec4 max3(ivec4, ivec4, ivec4);"
+
+ "uint max3(uint, uint, uint);"
+ "uvec2 max3(uvec2, uvec2, uvec2);"
+ "uvec3 max3(uvec3, uvec3, uvec3);"
+ "uvec4 max3(uvec4, uvec4, uvec4);"
+
+ "float mid3(float, float, float);"
+ "vec2 mid3(vec2, vec2, vec2);"
+ "vec3 mid3(vec3, vec3, vec3);"
+ "vec4 mid3(vec4, vec4, vec4);"
+
+ "int mid3(int, int, int);"
+ "ivec2 mid3(ivec2, ivec2, ivec2);"
+ "ivec3 mid3(ivec3, ivec3, ivec3);"
+ "ivec4 mid3(ivec4, ivec4, ivec4);"
+
+ "uint mid3(uint, uint, uint);"
+ "uvec2 mid3(uvec2, uvec2, uvec2);"
+ "uvec3 mid3(uvec3, uvec3, uvec3);"
+ "uvec4 mid3(uvec4, uvec4, uvec4);"
+
+ "\n"
+ );
+ }
+#endif
+
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 430)) {
commonBuiltins.append(
@@ -859,25 +934,25 @@
if ((profile == EEsProfile && version >= 300) ||
(profile != EEsProfile && version >= 330)) {
commonBuiltins.append(
- "highp int floatBitsToInt(highp float value);"
- "highp ivec2 floatBitsToInt(highp vec2 value);"
- "highp ivec3 floatBitsToInt(highp vec3 value);"
- "highp ivec4 floatBitsToInt(highp vec4 value);"
-
- "highp uint floatBitsToUint(highp float value);"
- "highp uvec2 floatBitsToUint(highp vec2 value);"
- "highp uvec3 floatBitsToUint(highp vec3 value);"
- "highp uvec4 floatBitsToUint(highp vec4 value);"
+ "int floatBitsToInt(highp float value);"
+ "ivec2 floatBitsToInt(highp vec2 value);"
+ "ivec3 floatBitsToInt(highp vec3 value);"
+ "ivec4 floatBitsToInt(highp vec4 value);"
- "highp float intBitsToFloat(highp int value);"
- "highp vec2 intBitsToFloat(highp ivec2 value);"
- "highp vec3 intBitsToFloat(highp ivec3 value);"
- "highp vec4 intBitsToFloat(highp ivec4 value);"
+ "uint floatBitsToUint(highp float value);"
+ "uvec2 floatBitsToUint(highp vec2 value);"
+ "uvec3 floatBitsToUint(highp vec3 value);"
+ "uvec4 floatBitsToUint(highp vec4 value);"
- "highp float uintBitsToFloat(highp uint value);"
- "highp vec2 uintBitsToFloat(highp uvec2 value);"
- "highp vec3 uintBitsToFloat(highp uvec3 value);"
- "highp vec4 uintBitsToFloat(highp uvec4 value);"
+ "float intBitsToFloat(highp int value);"
+ "vec2 intBitsToFloat(highp ivec2 value);"
+ "vec3 intBitsToFloat(highp ivec3 value);"
+ "vec4 intBitsToFloat(highp ivec4 value);"
+
+ "float uintBitsToFloat(highp uint value);"
+ "vec2 uintBitsToFloat(highp uvec2 value);"
+ "vec3 uintBitsToFloat(highp uvec3 value);"
+ "vec4 uintBitsToFloat(highp uvec4 value);"
"\n");
}
@@ -905,15 +980,15 @@
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 400)) {
commonBuiltins.append(
- "highp float frexp(highp float, out highp int);"
- "highp vec2 frexp(highp vec2, out highp ivec2);"
- "highp vec3 frexp(highp vec3, out highp ivec3);"
- "highp vec4 frexp(highp vec4, out highp ivec4);"
+ "float frexp(highp float, out highp int);"
+ "vec2 frexp(highp vec2, out highp ivec2);"
+ "vec3 frexp(highp vec3, out highp ivec3);"
+ "vec4 frexp(highp vec4, out highp ivec4);"
- "highp float ldexp(highp float, highp int);"
- "highp vec2 ldexp(highp vec2, highp ivec2);"
- "highp vec3 ldexp(highp vec3, highp ivec3);"
- "highp vec4 ldexp(highp vec4, highp ivec4);"
+ "float ldexp(highp float, highp int);"
+ "vec2 ldexp(highp vec2, highp ivec2);"
+ "vec3 ldexp(highp vec3, highp ivec3);"
+ "vec4 ldexp(highp vec4, highp ivec4);"
"\n");
}
@@ -940,7 +1015,7 @@
(profile != EEsProfile && version >= 400)) {
commonBuiltins.append(
"highp uint packUnorm2x16(vec2);"
- "highp vec2 unpackUnorm2x16(highp uint);"
+ "vec2 unpackUnorm2x16(highp uint);"
"\n");
}
@@ -949,18 +1024,37 @@
commonBuiltins.append(
"highp uint packSnorm2x16(vec2);"
" vec2 unpackSnorm2x16(highp uint);"
- "highp uint packHalf2x16(mediump vec2);"
- " vec2 unpackHalf2x16(highp uint);"
+ "highp uint packHalf2x16(vec2);"
+ "\n");
+ }
+
+ if (profile == EEsProfile && version >= 300) {
+ commonBuiltins.append(
+ "mediump vec2 unpackHalf2x16(highp uint);"
+ "\n");
+ } else if (profile != EEsProfile && version >= 420) {
+ commonBuiltins.append(
+ " vec2 unpackHalf2x16(highp uint);"
"\n");
}
if ((profile == EEsProfile && version >= 310) ||
(profile != EEsProfile && version >= 400)) {
commonBuiltins.append(
- "highp uint packSnorm4x8 (mediump vec4);"
- " vec4 unpackSnorm4x8(highp uint);"
- "highp uint packUnorm4x8 (mediump vec4);"
- " vec4 unpackUnorm4x8(highp uint);"
+ "highp uint packSnorm4x8(vec4);"
+ "highp uint packUnorm4x8(vec4);"
+ "\n");
+ }
+
+ if (profile == EEsProfile && version >= 310) {
+ commonBuiltins.append(
+ "mediump vec4 unpackSnorm4x8(highp uint);"
+ "mediump vec4 unpackUnorm4x8(highp uint);"
+ "\n");
+ } else if (profile != EEsProfile && version >= 400) {
+ commonBuiltins.append(
+ "vec4 unpackSnorm4x8(highp uint);"
+ "vec4 unpackUnorm4x8(highp uint);"
"\n");
}
@@ -1297,6 +1391,11 @@
"uvec3 bitfieldInsert(uvec3 base, uvec3, int, int);"
"uvec4 bitfieldInsert(uvec4 base, uvec4, int, int);"
+ "\n");
+ }
+
+ if (profile != EEsProfile && version >= 400) {
+ commonBuiltins.append(
" int findLSB( int);"
"ivec2 findLSB(ivec2);"
"ivec3 findLSB(ivec3);"
@@ -1308,95 +1407,23 @@
"ivec4 findLSB(uvec4);"
"\n");
- }
-
- if (profile != EEsProfile && version >= 400) {
+ } else if (profile == EEsProfile && version >= 310) {
commonBuiltins.append(
- " uint uaddCarry( uint, uint, out uint carry);"
- "uvec2 uaddCarry(uvec2, uvec2, out uvec2 carry);"
- "uvec3 uaddCarry(uvec3, uvec3, out uvec3 carry);"
- "uvec4 uaddCarry(uvec4, uvec4, out uvec4 carry);"
+ "lowp int findLSB( int);"
+ "lowp ivec2 findLSB(ivec2);"
+ "lowp ivec3 findLSB(ivec3);"
+ "lowp ivec4 findLSB(ivec4);"
- " uint usubBorrow( uint, uint, out uint borrow);"
- "uvec2 usubBorrow(uvec2, uvec2, out uvec2 borrow);"
- "uvec3 usubBorrow(uvec3, uvec3, out uvec3 borrow);"
- "uvec4 usubBorrow(uvec4, uvec4, out uvec4 borrow);"
-
- "void umulExtended( uint, uint, out uint, out uint lsb);"
- "void umulExtended(uvec2, uvec2, out uvec2, out uvec2 lsb);"
- "void umulExtended(uvec3, uvec3, out uvec3, out uvec3 lsb);"
- "void umulExtended(uvec4, uvec4, out uvec4, out uvec4 lsb);"
-
- "void imulExtended( int, int, out int, out int lsb);"
- "void imulExtended(ivec2, ivec2, out ivec2, out ivec2 lsb);"
- "void imulExtended(ivec3, ivec3, out ivec3, out ivec3 lsb);"
- "void imulExtended(ivec4, ivec4, out ivec4, out ivec4 lsb);"
-
- " int bitfieldReverse( int);"
- "ivec2 bitfieldReverse(ivec2);"
- "ivec3 bitfieldReverse(ivec3);"
- "ivec4 bitfieldReverse(ivec4);"
-
- " uint bitfieldReverse( uint);"
- "uvec2 bitfieldReverse(uvec2);"
- "uvec3 bitfieldReverse(uvec3);"
- "uvec4 bitfieldReverse(uvec4);"
-
- " int bitCount( int);"
- "ivec2 bitCount(ivec2);"
- "ivec3 bitCount(ivec3);"
- "ivec4 bitCount(ivec4);"
-
- " int bitCount( uint);"
- "ivec2 bitCount(uvec2);"
- "ivec3 bitCount(uvec3);"
- "ivec4 bitCount(uvec4);"
-
- " int findMSB( int);"
- "ivec2 findMSB(ivec2);"
- "ivec3 findMSB(ivec3);"
- "ivec4 findMSB(ivec4);"
-
- " int findMSB( uint);"
- "ivec2 findMSB(uvec2);"
- "ivec3 findMSB(uvec3);"
- "ivec4 findMSB(uvec4);"
+ "lowp int findLSB( uint);"
+ "lowp ivec2 findLSB(uvec2);"
+ "lowp ivec3 findLSB(uvec3);"
+ "lowp ivec4 findLSB(uvec4);"
"\n");
}
- if (profile == EEsProfile && version >= 310) {
+ if (profile != EEsProfile && version >= 400) {
commonBuiltins.append(
- "highp uint uaddCarry(highp uint, highp uint, out lowp uint carry);"
- "highp uvec2 uaddCarry(highp uvec2, highp uvec2, out lowp uvec2 carry);"
- "highp uvec3 uaddCarry(highp uvec3, highp uvec3, out lowp uvec3 carry);"
- "highp uvec4 uaddCarry(highp uvec4, highp uvec4, out lowp uvec4 carry);"
-
- "highp uint usubBorrow(highp uint, highp uint, out lowp uint borrow);"
- "highp uvec2 usubBorrow(highp uvec2, highp uvec2, out lowp uvec2 borrow);"
- "highp uvec3 usubBorrow(highp uvec3, highp uvec3, out lowp uvec3 borrow);"
- "highp uvec4 usubBorrow(highp uvec4, highp uvec4, out lowp uvec4 borrow);"
-
- "void umulExtended(highp uint, highp uint, highp out uint, out highp uint lsb);"
- "void umulExtended(highp uvec2, highp uvec2, highp out uvec2, out highp uvec2 lsb);"
- "void umulExtended(highp uvec3, highp uvec3, highp out uvec3, out highp uvec3 lsb);"
- "void umulExtended(highp uvec4, highp uvec4, highp out uvec4, out highp uvec4 lsb);"
-
- "void imulExtended(highp int, highp int, highp out int, out highp int lsb);"
- "void imulExtended(highp ivec2, highp ivec2, highp out ivec2, out highp ivec2 lsb);"
- "void imulExtended(highp ivec3, highp ivec3, highp out ivec3, out highp ivec3 lsb);"
- "void imulExtended(highp ivec4, highp ivec4, highp out ivec4, out highp ivec4 lsb);"
-
- "highp int bitfieldReverse(highp int);"
- "highp ivec2 bitfieldReverse(highp ivec2);"
- "highp ivec3 bitfieldReverse(highp ivec3);"
- "highp ivec4 bitfieldReverse(highp ivec4);"
-
- "highp uint bitfieldReverse(highp uint);"
- "highp uvec2 bitfieldReverse(highp uvec2);"
- "highp uvec3 bitfieldReverse(highp uvec3);"
- "highp uvec4 bitfieldReverse(highp uvec4);"
-
" int bitCount( int);"
"ivec2 bitCount(ivec2);"
"ivec3 bitCount(ivec3);"
@@ -1416,6 +1443,67 @@
"ivec2 findMSB(highp uvec2);"
"ivec3 findMSB(highp uvec3);"
"ivec4 findMSB(highp uvec4);"
+
+ "\n");
+ }
+
+ if ((profile == EEsProfile && version >= 310) ||
+ (profile != EEsProfile && version >= 400)) {
+ commonBuiltins.append(
+ " uint uaddCarry(highp uint, highp uint, out lowp uint carry);"
+ "uvec2 uaddCarry(highp uvec2, highp uvec2, out lowp uvec2 carry);"
+ "uvec3 uaddCarry(highp uvec3, highp uvec3, out lowp uvec3 carry);"
+ "uvec4 uaddCarry(highp uvec4, highp uvec4, out lowp uvec4 carry);"
+
+ " uint usubBorrow(highp uint, highp uint, out lowp uint borrow);"
+ "uvec2 usubBorrow(highp uvec2, highp uvec2, out lowp uvec2 borrow);"
+ "uvec3 usubBorrow(highp uvec3, highp uvec3, out lowp uvec3 borrow);"
+ "uvec4 usubBorrow(highp uvec4, highp uvec4, out lowp uvec4 borrow);"
+
+ "void umulExtended(highp uint, highp uint, highp out uint, out highp uint lsb);"
+ "void umulExtended(highp uvec2, highp uvec2, highp out uvec2, out highp uvec2 lsb);"
+ "void umulExtended(highp uvec3, highp uvec3, highp out uvec3, out highp uvec3 lsb);"
+ "void umulExtended(highp uvec4, highp uvec4, highp out uvec4, out highp uvec4 lsb);"
+
+ "void imulExtended(highp int, highp int, highp out int, out highp int lsb);"
+ "void imulExtended(highp ivec2, highp ivec2, highp out ivec2, out highp ivec2 lsb);"
+ "void imulExtended(highp ivec3, highp ivec3, highp out ivec3, out highp ivec3 lsb);"
+ "void imulExtended(highp ivec4, highp ivec4, highp out ivec4, out highp ivec4 lsb);"
+
+ " int bitfieldReverse(highp int);"
+ "ivec2 bitfieldReverse(highp ivec2);"
+ "ivec3 bitfieldReverse(highp ivec3);"
+ "ivec4 bitfieldReverse(highp ivec4);"
+
+ " uint bitfieldReverse(highp uint);"
+ "uvec2 bitfieldReverse(highp uvec2);"
+ "uvec3 bitfieldReverse(highp uvec3);"
+ "uvec4 bitfieldReverse(highp uvec4);"
+
+ "\n");
+ }
+
+ if (profile == EEsProfile && version >= 310) {
+ commonBuiltins.append(
+ "lowp int bitCount( int);"
+ "lowp ivec2 bitCount(ivec2);"
+ "lowp ivec3 bitCount(ivec3);"
+ "lowp ivec4 bitCount(ivec4);"
+
+ "lowp int bitCount( uint);"
+ "lowp ivec2 bitCount(uvec2);"
+ "lowp ivec3 bitCount(uvec3);"
+ "lowp ivec4 bitCount(uvec4);"
+
+ "lowp int findMSB(highp int);"
+ "lowp ivec2 findMSB(highp ivec2);"
+ "lowp ivec3 findMSB(highp ivec3);"
+ "lowp ivec4 findMSB(highp ivec4);"
+
+ "lowp int findMSB(highp uint);"
+ "lowp ivec2 findMSB(highp uvec2);"
+ "lowp ivec3 findMSB(highp uvec3);"
+ "lowp ivec4 findMSB(highp uvec4);"
"\n");
}
@@ -1468,6 +1556,161 @@
"\n");
}
+#ifdef AMD_EXTENSIONS
+ // GL_AMD_shader_ballot
+ if (profile != EEsProfile && version >= 450) {
+ commonBuiltins.append(
+ "float minInvocationsAMD(float);"
+ "vec2 minInvocationsAMD(vec2);"
+ "vec3 minInvocationsAMD(vec3);"
+ "vec4 minInvocationsAMD(vec4);"
+
+ "int minInvocationsAMD(int);"
+ "ivec2 minInvocationsAMD(ivec2);"
+ "ivec3 minInvocationsAMD(ivec3);"
+ "ivec4 minInvocationsAMD(ivec4);"
+
+ "uint minInvocationsAMD(uint);"
+ "uvec2 minInvocationsAMD(uvec2);"
+ "uvec3 minInvocationsAMD(uvec3);"
+ "uvec4 minInvocationsAMD(uvec4);"
+
+ "float maxInvocationsAMD(float);"
+ "vec2 maxInvocationsAMD(vec2);"
+ "vec3 maxInvocationsAMD(vec3);"
+ "vec4 maxInvocationsAMD(vec4);"
+
+ "int maxInvocationsAMD(int);"
+ "ivec2 maxInvocationsAMD(ivec2);"
+ "ivec3 maxInvocationsAMD(ivec3);"
+ "ivec4 maxInvocationsAMD(ivec4);"
+
+ "uint maxInvocationsAMD(uint);"
+ "uvec2 maxInvocationsAMD(uvec2);"
+ "uvec3 maxInvocationsAMD(uvec3);"
+ "uvec4 maxInvocationsAMD(uvec4);"
+
+ "float addInvocationsAMD(float);"
+ "vec2 addInvocationsAMD(vec2);"
+ "vec3 addInvocationsAMD(vec3);"
+ "vec4 addInvocationsAMD(vec4);"
+
+ "int addInvocationsAMD(int);"
+ "ivec2 addInvocationsAMD(ivec2);"
+ "ivec3 addInvocationsAMD(ivec3);"
+ "ivec4 addInvocationsAMD(ivec4);"
+
+ "uint addInvocationsAMD(uint);"
+ "uvec2 addInvocationsAMD(uvec2);"
+ "uvec3 addInvocationsAMD(uvec3);"
+ "uvec4 addInvocationsAMD(uvec4);"
+
+ "float minInvocationsNonUniformAMD(float);"
+ "vec2 minInvocationsNonUniformAMD(vec2);"
+ "vec3 minInvocationsNonUniformAMD(vec3);"
+ "vec4 minInvocationsNonUniformAMD(vec4);"
+
+ "int minInvocationsNonUniformAMD(int);"
+ "ivec2 minInvocationsNonUniformAMD(ivec2);"
+ "ivec3 minInvocationsNonUniformAMD(ivec3);"
+ "ivec4 minInvocationsNonUniformAMD(ivec4);"
+
+ "uint minInvocationsNonUniformAMD(uint);"
+ "uvec2 minInvocationsNonUniformAMD(uvec2);"
+ "uvec3 minInvocationsNonUniformAMD(uvec3);"
+ "uvec4 minInvocationsNonUniformAMD(uvec4);"
+
+ "float maxInvocationsNonUniformAMD(float);"
+ "vec2 maxInvocationsNonUniformAMD(vec2);"
+ "vec3 maxInvocationsNonUniformAMD(vec3);"
+ "vec4 maxInvocationsNonUniformAMD(vec4);"
+
+ "int maxInvocationsNonUniformAMD(int);"
+ "ivec2 maxInvocationsNonUniformAMD(ivec2);"
+ "ivec3 maxInvocationsNonUniformAMD(ivec3);"
+ "ivec4 maxInvocationsNonUniformAMD(ivec4);"
+
+ "uint maxInvocationsNonUniformAMD(uint);"
+ "uvec2 maxInvocationsNonUniformAMD(uvec2);"
+ "uvec3 maxInvocationsNonUniformAMD(uvec3);"
+ "uvec4 maxInvocationsNonUniformAMD(uvec4);"
+
+ "float addInvocationsNonUniformAMD(float);"
+ "vec2 addInvocationsNonUniformAMD(vec2);"
+ "vec3 addInvocationsNonUniformAMD(vec3);"
+ "vec4 addInvocationsNonUniformAMD(vec4);"
+
+ "int addInvocationsNonUniformAMD(int);"
+ "ivec2 addInvocationsNonUniformAMD(ivec2);"
+ "ivec3 addInvocationsNonUniformAMD(ivec3);"
+ "ivec4 addInvocationsNonUniformAMD(ivec4);"
+
+ "uint addInvocationsNonUniformAMD(uint);"
+ "uvec2 addInvocationsNonUniformAMD(uvec2);"
+ "uvec3 addInvocationsNonUniformAMD(uvec3);"
+ "uvec4 addInvocationsNonUniformAMD(uvec4);"
+
+ "float swizzleInvocationsAMD(float, uvec4);"
+ "vec2 swizzleInvocationsAMD(vec2, uvec4);"
+ "vec3 swizzleInvocationsAMD(vec3, uvec4);"
+ "vec4 swizzleInvocationsAMD(vec4, uvec4);"
+
+ "int swizzleInvocationsAMD(int, uvec4);"
+ "ivec2 swizzleInvocationsAMD(ivec2, uvec4);"
+ "ivec3 swizzleInvocationsAMD(ivec3, uvec4);"
+ "ivec4 swizzleInvocationsAMD(ivec4, uvec4);"
+
+ "uint swizzleInvocationsAMD(uint, uvec4);"
+ "uvec2 swizzleInvocationsAMD(uvec2, uvec4);"
+ "uvec3 swizzleInvocationsAMD(uvec3, uvec4);"
+ "uvec4 swizzleInvocationsAMD(uvec4, uvec4);"
+
+ "float swizzleInvocationsMaskedAMD(float, uvec3);"
+ "vec2 swizzleInvocationsMaskedAMD(vec2, uvec3);"
+ "vec3 swizzleInvocationsMaskedAMD(vec3, uvec3);"
+ "vec4 swizzleInvocationsMaskedAMD(vec4, uvec3);"
+
+ "int swizzleInvocationsMaskedAMD(int, uvec3);"
+ "ivec2 swizzleInvocationsMaskedAMD(ivec2, uvec3);"
+ "ivec3 swizzleInvocationsMaskedAMD(ivec3, uvec3);"
+ "ivec4 swizzleInvocationsMaskedAMD(ivec4, uvec3);"
+
+ "uint swizzleInvocationsMaskedAMD(uint, uvec3);"
+ "uvec2 swizzleInvocationsMaskedAMD(uvec2, uvec3);"
+ "uvec3 swizzleInvocationsMaskedAMD(uvec3, uvec3);"
+ "uvec4 swizzleInvocationsMaskedAMD(uvec4, uvec3);"
+
+ "float writeInvocationAMD(float, float, uint);"
+ "vec2 writeInvocationAMD(vec2, vec2, uint);"
+ "vec3 writeInvocationAMD(vec3, vec3, uint);"
+ "vec4 writeInvocationAMD(vec4, vec4, uint);"
+
+ "int writeInvocationAMD(int, int, uint);"
+ "ivec2 writeInvocationAMD(ivec2, ivec2, uint);"
+ "ivec3 writeInvocationAMD(ivec3, ivec3, uint);"
+ "ivec4 writeInvocationAMD(ivec4, ivec4, uint);"
+
+ "uint writeInvocationAMD(uint, uint, uint);"
+ "uvec2 writeInvocationAMD(uvec2, uvec2, uint);"
+ "uvec3 writeInvocationAMD(uvec3, uvec3, uint);"
+ "uvec4 writeInvocationAMD(uvec4, uvec4, uint);"
+
+ "uint mbcntAMD(uint64_t);"
+
+ "\n");
+ }
+
+ // GL_AMD_gcn_shader
+ if (profile != EEsProfile && version >= 450) {
+ commonBuiltins.append(
+ "float cubeFaceIndexAMD(vec3);"
+ "vec2 cubeFaceCoordAMD(vec3);"
+ "uint64_t timeAMD();"
+
+ "\n");
+ }
+#endif
+
//============================================================================
//
// Prototypes for built-in functions seen by vertex shaders only.
@@ -1713,6 +1956,29 @@
"\n");
}
+#ifdef AMD_EXTENSIONS
+ // GL_AMD_shader_explicit_vertex_parameter
+ if (profile != EEsProfile && version >= 450) {
+ stageBuiltins[EShLangFragment].append(
+ "float interpolateAtVertexAMD(float, uint);"
+ "vec2 interpolateAtVertexAMD(vec2, uint);"
+ "vec3 interpolateAtVertexAMD(vec3, uint);"
+ "vec4 interpolateAtVertexAMD(vec4, uint);"
+
+ "int interpolateAtVertexAMD(int, uint);"
+ "ivec2 interpolateAtVertexAMD(ivec2, uint);"
+ "ivec3 interpolateAtVertexAMD(ivec3, uint);"
+ "ivec4 interpolateAtVertexAMD(ivec4, uint);"
+
+ "uint interpolateAtVertexAMD(uint, uint);"
+ "uvec2 interpolateAtVertexAMD(uvec2, uint);"
+ "uvec3 interpolateAtVertexAMD(uvec3, uint);"
+ "uvec4 interpolateAtVertexAMD(uvec4, uint);"
+
+ "\n");
+ }
+#endif
+
//============================================================================
//
// Standard Uniforms
@@ -2332,6 +2598,19 @@
"in float gl_CullDistance[];"
"bool gl_HelperInvocation;" // needs qualifier fixed later
);
+
+#ifdef AMD_EXTENSIONS
+ if (version >= 450)
+ stageBuiltins[EShLangFragment].append(
+ "in vec2 gl_BaryCoordNoPerspAMD;"
+ "in vec2 gl_BaryCoordNoPerspCentroidAMD;"
+ "in vec2 gl_BaryCoordNoPerspSampleAMD;"
+ "in vec2 gl_BaryCoordSmoothAMD;"
+ "in vec2 gl_BaryCoordSmoothCentroidAMD;"
+ "in vec2 gl_BaryCoordSmoothSampleAMD;"
+ "in vec3 gl_BaryCoordPullModelAMD;"
+ );
+#endif
} else {
// ES profile
@@ -3460,6 +3739,14 @@
s.append(builtInConstant);
}
+#ifdef AMD_EXTENSIONS
+ // GL_AMD_gcn_shader
+ if (profile != EEsProfile && version >= 450) {
+ snprintf(builtInConstant, maxSize, "const int gl_SIMDGroupSizeAMD = 64;");
+ s.append(builtInConstant);
+ }
+#endif
+
s.append("\n");
}
@@ -3588,6 +3875,33 @@
symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote);
}
+#ifdef AMD_EXTENSIONS
+ if (profile != EEsProfile) {
+ symbolTable.setFunctionExtensions("minInvocationsAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("maxInvocationsAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("addInvocationsAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("minInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("maxInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("addInvocationsNonUniformAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("swizzleInvocationsAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("swizzleInvocationsWithPatternAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("writeInvocationAMD", 1, &E_GL_AMD_shader_ballot);
+ symbolTable.setFunctionExtensions("mbcntAMD", 1, &E_GL_AMD_shader_ballot);
+ }
+
+ if (profile != EEsProfile) {
+ symbolTable.setFunctionExtensions("min3", 1, &E_GL_AMD_shader_trinary_minmax);
+ symbolTable.setFunctionExtensions("max3", 1, &E_GL_AMD_shader_trinary_minmax);
+ symbolTable.setFunctionExtensions("mid3", 1, &E_GL_AMD_shader_trinary_minmax);
+ }
+
+ if (profile != EEsProfile) {
+ symbolTable.setFunctionExtensions("cubeFaceIndexAMD", 1, &E_GL_AMD_gcn_shader);
+ symbolTable.setFunctionExtensions("cubeFaceCoordAMD", 1, &E_GL_AMD_gcn_shader);
+ symbolTable.setFunctionExtensions("timeAMD", 1, &E_GL_AMD_gcn_shader);
+ }
+#endif
+
// Compatibility variables, vertex only
if (spvVersion.spv == 0) {
BuiltInVariable("gl_Color", EbvColor, symbolTable);
@@ -3872,6 +4186,29 @@
symbolTable.setFunctionExtensions("textureGradOffsetClampARB", 1, &E_GL_ARB_sparse_texture_clamp);
}
+#ifdef AMD_EXTENSIONS
+ // E_GL_AMD_shader_explicit_vertex_parameter
+ if (profile != EEsProfile) {
+ symbolTable.setVariableExtensions("gl_BaryCoordNoPerspAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+ symbolTable.setVariableExtensions("gl_BaryCoordNoPerspCentroidAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+ symbolTable.setVariableExtensions("gl_BaryCoordNoPerspSampleAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+ symbolTable.setVariableExtensions("gl_BaryCoordSmoothAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+ symbolTable.setVariableExtensions("gl_BaryCoordSmoothCentroidAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+ symbolTable.setVariableExtensions("gl_BaryCoordSmoothSampleAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+ symbolTable.setVariableExtensions("gl_BaryCoordPullModelAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+
+ symbolTable.setFunctionExtensions("interpolateAtVertexAMD", 1, &E_GL_AMD_shader_explicit_vertex_parameter);
+
+ BuiltInVariable("gl_BaryCoordNoPerspAMD", EbvBaryCoordNoPersp, symbolTable);
+ BuiltInVariable("gl_BaryCoordNoPerspCentroidAMD", EbvBaryCoordNoPerspCentroid, symbolTable);
+ BuiltInVariable("gl_BaryCoordNoPerspSampleAMD", EbvBaryCoordNoPerspSample, symbolTable);
+ BuiltInVariable("gl_BaryCoordSmoothAMD", EbvBaryCoordSmooth, symbolTable);
+ BuiltInVariable("gl_BaryCoordSmoothCentroidAMD", EbvBaryCoordSmoothCentroid, symbolTable);
+ BuiltInVariable("gl_BaryCoordSmoothSampleAMD", EbvBaryCoordSmoothSample, symbolTable);
+ BuiltInVariable("gl_BaryCoordPullModelAMD", EbvBaryCoordPullModel, symbolTable);
+ }
+#endif
+
symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth);
if (profile == EEsProfile) {
@@ -4205,6 +4542,27 @@
symbolTable.relateToOperator("anyInvocationARB", EOpAnyInvocation);
symbolTable.relateToOperator("allInvocationsARB", EOpAllInvocations);
symbolTable.relateToOperator("allInvocationsEqualARB", EOpAllInvocationsEqual);
+
+#ifdef AMD_EXTENSIONS
+ symbolTable.relateToOperator("minInvocationsAMD", EOpMinInvocations);
+ symbolTable.relateToOperator("maxInvocationsAMD", EOpMaxInvocations);
+ symbolTable.relateToOperator("addInvocationsAMD", EOpAddInvocations);
+ symbolTable.relateToOperator("minInvocationsNonUniformAMD", EOpMinInvocationsNonUniform);
+ symbolTable.relateToOperator("maxInvocationsNonUniformAMD", EOpMaxInvocationsNonUniform);
+ symbolTable.relateToOperator("addInvocationsNonUniformAMD", EOpAddInvocationsNonUniform);
+ symbolTable.relateToOperator("swizzleInvocationsAMD", EOpSwizzleInvocations);
+ symbolTable.relateToOperator("swizzleInvocationsMaskedAMD", EOpSwizzleInvocationsMasked);
+ symbolTable.relateToOperator("writeInvocationAMD", EOpWriteInvocation);
+ symbolTable.relateToOperator("mbcntAMD", EOpMbcnt);
+
+ symbolTable.relateToOperator("min3", EOpMin3);
+ symbolTable.relateToOperator("max3", EOpMax3);
+ symbolTable.relateToOperator("mid3", EOpMid3);
+
+ symbolTable.relateToOperator("cubeFaceIndexAMD", EOpCubeFaceIndex);
+ symbolTable.relateToOperator("cubeFaceCoordAMD", EOpCubeFaceCoord);
+ symbolTable.relateToOperator("timeAMD", EOpTime);
+#endif
}
}
@@ -4238,7 +4596,12 @@
symbolTable.relateToOperator("interpolateAtCentroid", EOpInterpolateAtCentroid);
symbolTable.relateToOperator("interpolateAtSample", EOpInterpolateAtSample);
symbolTable.relateToOperator("interpolateAtOffset", EOpInterpolateAtOffset);
+
+#ifdef AMD_EXTENSIONS
+ if (profile != EEsProfile)
+ symbolTable.relateToOperator("interpolateAtVertexAMD", EOpInterpolateAtVertex);
break;
+#endif
case EShLangCompute:
symbolTable.relateToOperator("memoryBarrierShared", EOpMemoryBarrierShared);
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index 02681ac..be828e9 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -98,6 +98,8 @@
//
// Returns the added node.
//
+// Returns nullptr if the working conversions and promotions could not be found.
+//
TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc)
{
// No operations work on blocks
@@ -161,29 +163,38 @@
//
// Returns the added node.
//
+// Returns nullptr if the 'right' type could not be converted to match the 'left' type,
+// or the resulting operation cannot be properly promoted.
+//
TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc)
{
// No block assignment
if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock)
- return 0;
+ return nullptr;
//
// Like adding binary math, except the conversion can only go
// from right to left.
//
+
+ // convert base types, nullptr return means not possible
+ right = addConversion(op, left->getType(), right);
+ if (right == nullptr)
+ return nullptr;
+
+ // convert shape
+ right = addShapeConversion(op, left->getType(), right);
+
+ // build the node
TIntermBinary* node = new TIntermBinary(op);
if (loc.line == 0)
loc = left->getLoc();
node->setLoc(loc);
-
- TIntermTyped* child = addConversion(op, left->getType(), right);
- if (child == 0)
- return 0;
-
node->setLeft(left);
- node->setRight(child);
+ node->setRight(right);
+
if (! node->promote())
- return 0;
+ return nullptr;
node->updatePrecision();
@@ -330,35 +341,11 @@
node->setOperand(child);
node->setType(returnType);
- // propagate precision up from child
- if (profile == EEsProfile && returnType.getQualifier().precision == EpqNone && returnType.getBasicType() != EbtBool)
- node->getQualifier().precision = child->getQualifier().precision;
-
- // propagate precision down to child
- if (node->getQualifier().precision != EpqNone)
- child->propagatePrecision(node->getQualifier().precision);
-
return node;
} else {
// setAggregateOperater() calls fold() for constant folding
TIntermTyped* node = setAggregateOperator(childNode, op, returnType, loc);
- // if not folded, we'll still have an aggregate node to propagate precision with
- if (node->getAsAggregate()) {
- TPrecisionQualifier correctPrecision = returnType.getQualifier().precision;
- if (correctPrecision == EpqNone && profile == EEsProfile) {
- // find the maximum precision from the arguments, for the built-in's return precision
- TIntermSequence& sequence = node->getAsAggregate()->getSequence();
- for (unsigned int arg = 0; arg < sequence.size(); ++arg)
- correctPrecision = std::max(correctPrecision, sequence[arg]->getAsTyped()->getQualifier().precision);
- }
-
- // Propagate precision through this node and its children. That algorithm stops
- // when a precision is found, so start by clearing this subroot precision
- node->getQualifier().precision = EpqNone;
- node->propagatePrecision(correctPrecision);
- }
-
return node;
}
}
@@ -414,6 +401,9 @@
// Returns a node representing the conversion, which could be the same
// node passed in if no conversion was needed.
//
+// Generally, this is focused on basic type conversion, not shape conversion.
+// See addShapeConversion().
+//
// Return 0 if a conversion can't be done.
//
TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const
@@ -681,6 +671,50 @@
return newNode;
}
+// Convert the node's shape of type for the given type, as allowed by the
+// operation involved: 'op'.
+//
+// Generally, the AST represents allowed GLSL shapes, so this isn't needed
+// for GLSL. Bad shapes are caught in conversion or promotion.
+//
+// Return 'node' if no conversion was done. Promotion handles final shape
+// checking.
+//
+TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, TIntermTyped* node)
+{
+ // some source languages don't do this
+ switch (source) {
+ case EShSourceHlsl:
+ break;
+ case EShSourceGlsl:
+ default:
+ return node;
+ }
+
+ // some operations don't do this
+ switch (op) {
+ case EOpAssign:
+ break;
+ default:
+ return node;
+ }
+
+ // structures and arrays don't change shape, either to or from
+ if (node->getType().isStruct() || node->getType().isArray() ||
+ type.isStruct() || type.isArray())
+ return node;
+
+ // The new node that handles the conversion
+ TIntermTyped* conversionNode = node;
+ TOperator constructorOp = mapTypeToConstructorOp(type);
+
+ // scalar -> smeared -> vector
+ if (type.isVector() && node->getType().isScalar())
+ return setAggregateOperator(node, constructorOp, type, node->getLoc());
+
+ return node;
+}
+
//
// See if the 'from' type is allowed to be implicitly converted to the
// 'to' type. This is not about vector/array/struct, only about basic type.
@@ -752,6 +786,150 @@
}
//
+// Given a type, find what operation would fully construct it.
+//
+TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const
+{
+ TOperator op = EOpNull;
+
+ switch (type.getBasicType()) {
+ case EbtStruct:
+ op = EOpConstructStruct;
+ break;
+ case EbtSampler:
+ if (type.getSampler().combined)
+ op = EOpConstructTextureSampler;
+ break;
+ case EbtFloat:
+ if (type.isMatrix()) {
+ switch (type.getMatrixCols()) {
+ case 2:
+ switch (type.getMatrixRows()) {
+ case 2: op = EOpConstructMat2x2; break;
+ case 3: op = EOpConstructMat2x3; break;
+ case 4: op = EOpConstructMat2x4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case 3:
+ switch (type.getMatrixRows()) {
+ case 2: op = EOpConstructMat3x2; break;
+ case 3: op = EOpConstructMat3x3; break;
+ case 4: op = EOpConstructMat3x4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case 4:
+ switch (type.getMatrixRows()) {
+ case 2: op = EOpConstructMat4x2; break;
+ case 3: op = EOpConstructMat4x3; break;
+ case 4: op = EOpConstructMat4x4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ default: break; // some compilers want this
+ }
+ } else {
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructFloat; break;
+ case 2: op = EOpConstructVec2; break;
+ case 3: op = EOpConstructVec3; break;
+ case 4: op = EOpConstructVec4; break;
+ default: break; // some compilers want this
+ }
+ }
+ break;
+ case EbtDouble:
+ if (type.getMatrixCols()) {
+ switch (type.getMatrixCols()) {
+ case 2:
+ switch (type.getMatrixRows()) {
+ case 2: op = EOpConstructDMat2x2; break;
+ case 3: op = EOpConstructDMat2x3; break;
+ case 4: op = EOpConstructDMat2x4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case 3:
+ switch (type.getMatrixRows()) {
+ case 2: op = EOpConstructDMat3x2; break;
+ case 3: op = EOpConstructDMat3x3; break;
+ case 4: op = EOpConstructDMat3x4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case 4:
+ switch (type.getMatrixRows()) {
+ case 2: op = EOpConstructDMat4x2; break;
+ case 3: op = EOpConstructDMat4x3; break;
+ case 4: op = EOpConstructDMat4x4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ }
+ } else {
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructDouble; break;
+ case 2: op = EOpConstructDVec2; break;
+ case 3: op = EOpConstructDVec3; break;
+ case 4: op = EOpConstructDVec4; break;
+ default: break; // some compilers want this
+ }
+ }
+ break;
+ case EbtInt:
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructInt; break;
+ case 2: op = EOpConstructIVec2; break;
+ case 3: op = EOpConstructIVec3; break;
+ case 4: op = EOpConstructIVec4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case EbtUint:
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructUint; break;
+ case 2: op = EOpConstructUVec2; break;
+ case 3: op = EOpConstructUVec3; break;
+ case 4: op = EOpConstructUVec4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case EbtInt64:
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructInt64; break;
+ case 2: op = EOpConstructI64Vec2; break;
+ case 3: op = EOpConstructI64Vec3; break;
+ case 4: op = EOpConstructI64Vec4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case EbtUint64:
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructUint64; break;
+ case 2: op = EOpConstructU64Vec2; break;
+ case 3: op = EOpConstructU64Vec3; break;
+ case 4: op = EOpConstructU64Vec4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ case EbtBool:
+ switch(type.getVectorSize()) {
+ case 1: op = EOpConstructBool; break;
+ case 2: op = EOpConstructBVec2; break;
+ case 3: op = EOpConstructBVec3; break;
+ case 4: op = EOpConstructBVec4; break;
+ default: break; // some compilers want this
+ }
+ break;
+ default:
+ break;
+ }
+
+ return op;
+}
+
+//
// Safe way to combine two nodes into an aggregate. Works with null pointers,
// a node that's not a aggregate yet, etc.
//
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index 0c20cf8..398de1b 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -850,7 +850,7 @@
// Swizzle operations propagate specialization-constantness
if (base->getQualifier().isSpecConstant())
type.getQualifier().makeSpecConstant();
- return addConstructor(loc, base, type, mapTypeToConstructorOp(type));
+ return addConstructor(loc, base, type);
}
}
@@ -1078,21 +1078,20 @@
{
TIntermTyped* result = nullptr;
- TOperator op = function->getBuiltInOp();
- if (op == EOpArrayLength)
+ if (function->getBuiltInOp() == EOpArrayLength)
result = handleLengthMethod(loc, function, arguments);
- else if (op != EOpNull) {
+ else if (function->getBuiltInOp() != EOpNull) {
//
// Then this should be a constructor.
// Don't go through the symbol table for constructors.
// Their parameters will be verified algorithmically.
//
TType type(EbtVoid); // use this to get the type back
- if (! constructorError(loc, arguments, *function, op, type)) {
+ if (! constructorError(loc, arguments, *function, function->getBuiltInOp(), type)) {
//
// It's a constructor, of type 'type'.
//
- result = addConstructor(loc, arguments, type, op);
+ result = addConstructor(loc, arguments, type);
if (result == nullptr)
error(loc, "cannot construct with these arguments", type.getCompleteString().c_str(), "");
}
@@ -1149,18 +1148,9 @@
addInputArgumentConversions(*fnCandidate, arguments); // arguments may be modified if it's just a single argument node
}
- op = fnCandidate->getBuiltInOp();
- if (builtIn && op != EOpNull) {
+ if (builtIn && fnCandidate->getBuiltInOp() != EOpNull) {
// A function call mapped to a built-in operation.
- checkLocation(loc, op);
- result = intermediate.addBuiltInFunctionCall(loc, op, fnCandidate->getParamCount() == 1, arguments, fnCandidate->getType());
- if (result == nullptr) {
- error(arguments->getLoc(), " wrong operand type", "Internal Error",
- "built in unary operator function. Type: %s",
- static_cast<TIntermTyped*>(arguments)->getCompleteString().c_str());
- } else if (result->getAsOperator()) {
- builtInOpCheck(loc, *fnCandidate, *result->getAsOperator());
- }
+ result = handleBuiltInFunctionCall(loc, *arguments, *fnCandidate);
} else {
// This is a function call not mapped to built-in operator.
// It could still be a built-in function, but only if PureOperatorBuiltins == false.
@@ -1181,6 +1171,8 @@
if (builtIn)
nonOpBuiltInCheck(loc, *fnCandidate, *call);
+ else
+ userFunctionCallCheck(loc, *call);
}
// Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore.
@@ -1205,6 +1197,118 @@
return result;
}
+TIntermTyped* TParseContext::handleBuiltInFunctionCall(TSourceLoc loc, TIntermNode& arguments,
+ const TFunction& function)
+{
+ checkLocation(loc, function.getBuiltInOp());
+ TIntermTyped *result = intermediate.addBuiltInFunctionCall(loc, function.getBuiltInOp(),
+ function.getParamCount() == 1,
+ &arguments, function.getType());
+ computeBuiltinPrecisions(*result, function);
+ if (result == nullptr) {
+ error(arguments.getLoc(), " wrong operand type", "Internal Error",
+ "built in unary operator function. Type: %s",
+ static_cast<TIntermTyped*>(&arguments)->getCompleteString().c_str());
+ } else if (result->getAsOperator())
+ builtInOpCheck(loc, function, *result->getAsOperator());
+
+ return result;
+}
+
+// "The operation of a built-in function can have a different precision
+// qualification than the precision qualification of the resulting value.
+// These two precision qualifications are established as follows.
+//
+// The precision qualification of the operation of a built-in function is
+// based on the precision qualification of its input arguments and formal
+// parameters: When a formal parameter specifies a precision qualifier,
+// that is used, otherwise, the precision qualification of the calling
+// argument is used. The highest precision of these will be the precision
+// qualification of the operation of the built-in function. Generally,
+// this is applied across all arguments to a built-in function, with the
+// exceptions being:
+// - bitfieldExtract and bitfieldInsert ignore the 'offset' and 'bits'
+// arguments.
+// - interpolateAt* functions only look at the 'interpolant' argument.
+//
+// The precision qualification of the result of a built-in function is
+// determined in one of the following ways:
+//
+// - For the texture sampling, image load, and image store functions,
+// the precision of the return type matches the precision of the
+// sampler type
+//
+// Otherwise:
+//
+// - For prototypes that do not specify a resulting precision qualifier,
+// the precision will be the same as the precision of the operation.
+//
+// - For prototypes that do specify a resulting precision qualifier,
+// the specified precision qualifier is the precision qualification of
+// the result."
+//
+void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction& function)
+{
+ TPrecisionQualifier operationPrecision = EpqNone;
+ TPrecisionQualifier resultPrecision = EpqNone;
+
+ if (profile != EEsProfile)
+ return;
+
+ TIntermOperator* opNode = node.getAsOperator();
+ if (opNode == nullptr)
+ return;
+
+ if (TIntermUnary* unaryNode = node.getAsUnaryNode()) {
+ operationPrecision = std::max(function[0].type->getQualifier().precision,
+ unaryNode->getOperand()->getType().getQualifier().precision);
+ if (function.getType().getBasicType() != EbtBool)
+ resultPrecision = function.getType().getQualifier().precision == EpqNone ?
+ operationPrecision :
+ function.getType().getQualifier().precision;
+ } else if (TIntermAggregate* agg = node.getAsAggregate()) {
+ TIntermSequence& sequence = agg->getSequence();
+ int numArgs = (int)sequence.size();
+ switch (agg->getOp()) {
+ case EOpBitfieldExtract:
+ numArgs = 1;
+ break;
+ case EOpBitfieldInsert:
+ numArgs = 2;
+ break;
+ case EOpInterpolateAtCentroid:
+ case EOpInterpolateAtOffset:
+ case EOpInterpolateAtSample:
+ numArgs = 1;
+ break;
+ default:
+ break;
+ }
+ // find the maximum precision from the arguments and parameters
+ for (unsigned int arg = 0; arg < sequence.size(); ++arg) {
+ operationPrecision = std::max(operationPrecision, sequence[arg]->getAsTyped()->getQualifier().precision);
+ operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision);
+ }
+ // compute the result precision
+ if (agg->isSampling() || agg->getOp() == EOpImageLoad || agg->getOp() == EOpImageStore)
+ resultPrecision = sequence[0]->getAsTyped()->getQualifier().precision;
+ else if (function.getType().getBasicType() != EbtBool)
+ resultPrecision = function.getType().getQualifier().precision == EpqNone ?
+ operationPrecision :
+ function.getType().getQualifier().precision;
+ }
+
+ // Propagate precision through this node and its children. That algorithm stops
+ // when a precision is found, so start by clearing this subroot precision
+ opNode->getQualifier().precision = EpqNone;
+ if (operationPrecision != EpqNone) {
+ opNode->propagatePrecision(operationPrecision);
+ opNode->setOperationPrecision(operationPrecision);
+ }
+ // Now, set the result precision, which might not match
+ opNode->getQualifier().precision = resultPrecision;
+}
+
TIntermNode* TParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value)
{
functionReturnsValue = true;
@@ -1431,11 +1535,6 @@
}
const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr
- // built-in texturing functions get their return value precision from the precision of the sampler
- if (fnCandidate.getType().getQualifier().precision == EpqNone &&
- fnCandidate.getParamCount() > 0 && fnCandidate[0].type->getBasicType() == EbtSampler)
- callNode.getQualifier().precision = arg0->getQualifier().precision;
-
switch (callNode.getOp()) {
case EOpTextureGather:
case EOpTextureGatherOffset:
@@ -1567,11 +1666,6 @@
case EOpInterpolateAtCentroid:
case EOpInterpolateAtSample:
case EOpInterpolateAtOffset:
- // "For the interpolateAt* functions, the call will return a precision
- // qualification matching the precision of the 'interpolant' argument to
- // the function call."
- callNode.getQualifier().precision = arg0->getQualifier().precision;
-
// Make sure the first argument is an interpolant, or an array element of an interpolant
if (arg0->getType().getQualifier().storage != EvqVaryingIn) {
// It might still be an array element.
@@ -1724,6 +1818,26 @@
}
//
+// Do any extra checking for a user function call.
+//
+void TParseContext::userFunctionCallCheck(const TSourceLoc& loc, TIntermAggregate& callNode)
+{
+ TIntermSequence& arguments = callNode.getSequence();
+
+ for (int i = 0; i < (int)arguments.size(); ++i)
+ samplerConstructorLocationCheck(loc, "call argument", arguments[i]);
+}
+
+//
+// Emit an error if this is a sampler constructor
+//
+void TParseContext::samplerConstructorLocationCheck(const TSourceLoc& loc, const char* token, TIntermNode* node)
+{
+ if (node->getAsOperator() && node->getAsOperator()->getOp() == EOpConstructTextureSampler)
+ error(loc, "sampler constructor must appear at point of use", token, "");
+}
+
+//
// Handle seeing a built-in constructor in a grammar production.
//
TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPublicType& publicType)
@@ -1736,7 +1850,7 @@
profileRequires(loc, EEsProfile, 300, nullptr, "arrayed constructor");
}
- TOperator op = mapTypeToConstructorOp(type);
+ TOperator op = intermediate.mapTypeToConstructorOp(type);
if (op == EOpNull) {
error(loc, "cannot construct this type", type.getBasicString(), "");
@@ -1751,150 +1865,6 @@
}
//
-// Given a type, find what operation would fully construct it.
-//
-TOperator TParseContext::mapTypeToConstructorOp(const TType& type) const
-{
- TOperator op = EOpNull;
-
- switch (type.getBasicType()) {
- case EbtStruct:
- op = EOpConstructStruct;
- break;
- case EbtSampler:
- if (type.getSampler().combined)
- op = EOpConstructTextureSampler;
- break;
- case EbtFloat:
- if (type.isMatrix()) {
- switch (type.getMatrixCols()) {
- case 2:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructMat2x2; break;
- case 3: op = EOpConstructMat2x3; break;
- case 4: op = EOpConstructMat2x4; break;
- default: break; // some compilers want this
- }
- break;
- case 3:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructMat3x2; break;
- case 3: op = EOpConstructMat3x3; break;
- case 4: op = EOpConstructMat3x4; break;
- default: break; // some compilers want this
- }
- break;
- case 4:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructMat4x2; break;
- case 3: op = EOpConstructMat4x3; break;
- case 4: op = EOpConstructMat4x4; break;
- default: break; // some compilers want this
- }
- break;
- default: break; // some compilers want this
- }
- } else {
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructFloat; break;
- case 2: op = EOpConstructVec2; break;
- case 3: op = EOpConstructVec3; break;
- case 4: op = EOpConstructVec4; break;
- default: break; // some compilers want this
- }
- }
- break;
- case EbtDouble:
- if (type.getMatrixCols()) {
- switch (type.getMatrixCols()) {
- case 2:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructDMat2x2; break;
- case 3: op = EOpConstructDMat2x3; break;
- case 4: op = EOpConstructDMat2x4; break;
- default: break; // some compilers want this
- }
- break;
- case 3:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructDMat3x2; break;
- case 3: op = EOpConstructDMat3x3; break;
- case 4: op = EOpConstructDMat3x4; break;
- default: break; // some compilers want this
- }
- break;
- case 4:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructDMat4x2; break;
- case 3: op = EOpConstructDMat4x3; break;
- case 4: op = EOpConstructDMat4x4; break;
- default: break; // some compilers want this
- }
- break;
- }
- } else {
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructDouble; break;
- case 2: op = EOpConstructDVec2; break;
- case 3: op = EOpConstructDVec3; break;
- case 4: op = EOpConstructDVec4; break;
- default: break; // some compilers want this
- }
- }
- break;
- case EbtInt:
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructInt; break;
- case 2: op = EOpConstructIVec2; break;
- case 3: op = EOpConstructIVec3; break;
- case 4: op = EOpConstructIVec4; break;
- default: break; // some compilers want this
- }
- break;
- case EbtUint:
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructUint; break;
- case 2: op = EOpConstructUVec2; break;
- case 3: op = EOpConstructUVec3; break;
- case 4: op = EOpConstructUVec4; break;
- default: break; // some compilers want this
- }
- break;
- case EbtInt64:
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructInt64; break;
- case 2: op = EOpConstructI64Vec2; break;
- case 3: op = EOpConstructI64Vec3; break;
- case 4: op = EOpConstructI64Vec4; break;
- default: break; // some compilers want this
- }
- break;
- case EbtUint64:
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructUint64; break;
- case 2: op = EOpConstructU64Vec2; break;
- case 3: op = EOpConstructU64Vec3; break;
- case 4: op = EOpConstructU64Vec4; break;
- default: break; // some compilers want this
- }
- break;
- case EbtBool:
- switch(type.getVectorSize()) {
- case 1: op = EOpConstructBool; break;
- case 2: op = EOpConstructBVec2; break;
- case 3: op = EOpConstructBVec3; break;
- case 4: op = EOpConstructBVec4; break;
- default: break; // some compilers want this
- }
- break;
- default:
- break;
- }
-
- return op;
-}
-
-//
// Same error message for all places assignments don't work.
//
void TParseContext::assignError(const TSourceLoc& loc, const char* op, TString left, TString right)
@@ -2119,6 +2089,10 @@
TIntermSymbol* symNode = node->getAsSymbolNode();
if (symNode && symNode->getQualifier().writeonly)
error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str());
+#ifdef AMD_EXTENSIONS
+ else if (symNode && symNode->getQualifier().explicitInterp)
+ error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str());
+#endif
}
//
@@ -2665,7 +2639,11 @@
publicType.basicType == EbtDouble)
profileRequires(loc, EEsProfile, 300, nullptr, "shader input/output");
- if (! qualifier.flat) {
+#ifdef AMD_EXTENSIONS
+ if (! qualifier.flat && ! qualifier.explicitInterp) {
+#else
+ if (!qualifier.flat) {
+#endif
if (publicType.basicType == EbtInt || publicType.basicType == EbtUint ||
publicType.basicType == EbtInt64 || publicType.basicType == EbtUint64 ||
publicType.basicType == EbtDouble ||
@@ -2802,7 +2780,11 @@
// Multiple interpolation qualifiers (mostly done later by 'individual qualifiers')
if (src.isInterpolation() && dst.isInterpolation())
+#ifdef AMD_EXTENSIONS
+ error(loc, "can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD)", "", "");
+#else
error(loc, "can only have one interpolation qualifier (flat, smooth, noperspective)", "", "");
+#endif
// Ordering
if (! force && ((profile != EEsProfile && version < 420) ||
@@ -2858,6 +2840,9 @@
MERGE_SINGLETON(smooth);
MERGE_SINGLETON(flat);
MERGE_SINGLETON(nopersp);
+#ifdef AMD_EXTENSIONS
+ MERGE_SINGLETON(explicitInterp);
+#endif
MERGE_SINGLETON(patch);
MERGE_SINGLETON(sample);
MERGE_SINGLETON(coherent);
@@ -4460,12 +4445,17 @@
}
if (qualifier.hasComponent()) {
// "It is a compile-time error if this sequence of components gets larger than 3."
- if (qualifier.layoutComponent + type.getVectorSize() > 4)
+ if (qualifier.layoutComponent + type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1) > 4)
error(loc, "type overflows the available 4 components", "component", "");
// "It is a compile-time error to apply the component qualifier to a matrix, a structure, a block, or an array containing any of these."
if (type.isMatrix() || type.getBasicType() == EbtBlock || type.getBasicType() == EbtStruct)
error(loc, "cannot apply to a matrix, structure, or block", "component", "");
+
+ // " It is a compile-time error to use component 1 or 3 as the beginning of a double or dvec2."
+ if (type.getBasicType() == EbtDouble)
+ if (qualifier.layoutComponent & 1)
+ error(loc, "doubles cannot start on an odd-numbered component", "component", "");
}
switch (qualifier.storage) {
@@ -4524,8 +4514,13 @@
error(loc, "requires block, or sampler/image, or atomic-counter type", "binding", "");
if (type.getBasicType() == EbtSampler) {
int lastBinding = qualifier.layoutBinding;
- if (type.isArray())
- lastBinding += type.getCumulativeArraySize();
+ if (type.isArray()) {
+ if (type.isImplicitlySizedArray()) {
+ lastBinding += 1;
+ warn(loc, "assuming array size of one for compile-time checking of binding numbers for implicitly-sized array", "[]", "");
+ } else
+ lastBinding += type.getCumulativeArraySize();
+ }
if (lastBinding >= resources.maxCombinedTextureImageUnits)
error(loc, "sampler binding not less than gl_MaxCombinedTextureImageUnits", "binding", type.isArray() ? "(using array)" : "");
}
@@ -5232,7 +5227,7 @@
return nullptr;
}
- return addConstructor(loc, initList, arrayType, mapTypeToConstructorOp(arrayType));
+ return addConstructor(loc, initList, arrayType);
} else if (type.isStruct()) {
if (type.getStruct()->size() != initList->getSequence().size()) {
error(loc, "wrong number of structure members", "initializer list", "");
@@ -5264,8 +5259,14 @@
return nullptr;
}
- // now that the subtree is processed, process this node
- return addConstructor(loc, initList, type, mapTypeToConstructorOp(type));
+ // Now that the subtree is processed, process this node as if the
+ // initializer list is a set of arguments to a constructor.
+ TIntermNode* emulatedConstructorArguments;
+ if (initList->getSequence().size() == 1)
+ emulatedConstructorArguments = initList->getSequence()[0];
+ else
+ emulatedConstructorArguments = initList;
+ return addConstructor(loc, emulatedConstructorArguments, type);
}
//
@@ -5274,13 +5275,14 @@
//
// Returns nullptr for an error or the constructed node (aggregate or typed) for no error.
//
-TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type, TOperator op)
+TIntermTyped* TParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type)
{
if (node == nullptr || node->getAsTyped() == nullptr)
return nullptr;
rValueErrorCheck(loc, "constructor", node->getAsTyped());
TIntermAggregate* aggrNode = node->getAsAggregate();
+ TOperator op = intermediate.mapTypeToConstructorOp(type);
// Combined texture-sampler constructors are completely semantic checked
// in constructorTextureSamplerError()
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index 2f5e095..544c3d3 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -197,6 +197,8 @@
TFunction* handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype);
TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&);
TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*);
+ TIntermTyped* handleBuiltInFunctionCall(TSourceLoc, TIntermNode& arguments, const TFunction& function);
+ void computeBuiltinPrecisions(TIntermTyped&, const TFunction&);
TIntermNode* handleReturnValue(const TSourceLoc&, TIntermTyped*);
void checkLocation(const TSourceLoc&, TOperator);
TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*);
@@ -204,6 +206,8 @@
TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const;
void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&);
void nonOpBuiltInCheck(const TSourceLoc&, const TFunction&, TIntermAggregate&);
+ void userFunctionCallCheck(const TSourceLoc&, TIntermAggregate&);
+ void samplerConstructorLocationCheck(const TSourceLoc&, const char* token, TIntermNode*);
TFunction* handleConstructorCall(const TSourceLoc&, const TPublicType&);
bool parseVectorFields(const TSourceLoc&, const TString&, int vecSize, TVectorFields&);
@@ -276,7 +280,7 @@
const TFunction* findFunction400(const TSourceLoc& loc, const TFunction& call, bool& builtIn);
void declareTypeDefaults(const TSourceLoc&, const TPublicType&);
TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TPublicType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0);
- TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&, TOperator);
+ TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&);
TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&);
TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset);
void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0);
@@ -302,7 +306,6 @@
void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration);
TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
- TOperator mapTypeToConstructorOp(const TType&) const;
void finalErrorCheck();
void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken,
const char* szExtraInfoFormat, TPrefixType prefix,
diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp
index b8cb869..e297e34 100644
--- a/glslang/MachineIndependent/Scan.cpp
+++ b/glslang/MachineIndependent/Scan.cpp
@@ -55,7 +55,7 @@
// Required to avoid missing prototype warnings for some compilers
int yylex(YYSTYPE*, glslang::TParseContext&);
-
+
namespace glslang {
// read past any white space
@@ -553,6 +553,9 @@
(*KeywordMap)["noperspective"] = NOPERSPECTIVE;
(*KeywordMap)["smooth"] = SMOOTH;
(*KeywordMap)["flat"] = FLAT;
+#ifdef AMD_EXTENSIONS
+ (*KeywordMap)["__explicitInterpAMD"] = __EXPLICITINTERPAMD;
+#endif
(*KeywordMap)["centroid"] = CENTROID;
(*KeywordMap)["precise"] = PRECISE;
(*KeywordMap)["invariant"] = INVARIANT;
@@ -561,7 +564,7 @@
(*KeywordMap)["superp"] = SUPERP;
ReservedSet = new std::unordered_set<const char*, str_hash, str_eq>;
-
+
ReservedSet->insert("common");
ReservedSet->insert("partition");
ReservedSet->insert("active");
@@ -609,13 +612,15 @@
ReservedSet = nullptr;
}
+// Called by yylex to get the next token.
+// Returning 0 implies end of input.
int TScanContext::tokenize(TPpContext* pp, TParserToken& token)
{
do {
parserToken = &token;
TPpToken ppToken;
tokenText = pp->tokenize(&ppToken);
- if (tokenText == nullptr)
+ if (tokenText == nullptr || tokenText[0] == 0)
return 0;
loc = ppToken.loc;
@@ -675,7 +680,7 @@
case PpAtomDecrement: return DEC_OP;
case PpAtomIncrement: return INC_OP;
-
+
case PpAtomConstInt: parserToken->sType.lex.i = ppToken.ival; return INTCONSTANT;
case PpAtomConstUint: parserToken->sType.lex.i = ppToken.ival; return UINTCONSTANT;
case PpAtomConstInt64: parserToken->sType.lex.i64 = ppToken.i64val; return INT64CONSTANT;
@@ -847,7 +852,7 @@
case MAT3X4:
case MAT4X2:
case MAT4X3:
- case MAT4X4:
+ case MAT4X4:
return matNxM();
case DMAT2:
@@ -973,7 +978,7 @@
case USAMPLER2DARRAY:
afterType = true;
return nonreservedKeyword(300, 130);
-
+
case ISAMPLER2DRECT:
case USAMPLER2DRECT:
afterType = true;
@@ -991,7 +996,7 @@
if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
return keyword;
return es30ReservedFromGLSL(140);
-
+
case SAMPLER2DMS:
case ISAMPLER2DMS:
case USAMPLER2DMS:
@@ -1110,13 +1115,21 @@
case NOPERSPECTIVE:
return es30ReservedFromGLSL(130);
-
+
case SMOOTH:
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
(parseContext.profile != EEsProfile && parseContext.version < 130))
return identifierOrType();
return keyword;
+#ifdef AMD_EXTENSIONS
+ case __EXPLICITINTERPAMD:
+ if (parseContext.profile != EEsProfile && parseContext.version >= 450 &&
+ parseContext.extensionTurnedOn(E_GL_AMD_shader_explicit_vertex_parameter))
+ return keyword;
+ return identifierOrType();
+#endif
+
case FLAT:
if (parseContext.profile == EEsProfile && parseContext.version < 300)
reservedWord();
@@ -1161,7 +1174,7 @@
bool reserved = parseContext.profile == EEsProfile || parseContext.version >= 130;
return identifierOrReserved(reserved);
}
-
+
default:
parseContext.infoSink.info.message(EPrefixInternalError, "Unknown glslang keyword", loc);
return 0;
diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp
index e46118a..52d205d 100644
--- a/glslang/MachineIndependent/Versions.cpp
+++ b/glslang/MachineIndependent/Versions.cpp
@@ -187,6 +187,13 @@
extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhDisable;
extensionBehavior[E_GL_GOOGLE_include_directive] = EBhDisable;
+#ifdef AMD_EXTENSIONS
+ extensionBehavior[E_GL_AMD_shader_ballot] = EBhDisable;
+ extensionBehavior[E_GL_AMD_shader_trinary_minmax] = EBhDisable;
+ extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable;
+ extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable;
+#endif
+
// AEP
extensionBehavior[E_GL_ANDROID_extension_pack_es31a] = EBhDisable;
extensionBehavior[E_GL_KHR_blend_equation_advanced] = EBhDisable;
@@ -286,6 +293,13 @@
"#define GL_ARB_sparse_texture_clamp 1\n"
// "#define GL_ARB_cull_distance 1\n" // present for 4.5, but need extension control over block members
"#define GL_EXT_shader_non_constant_global_initializers 1\n"
+
+#ifdef AMD_EXTENSIONS
+ "#define GL_AMD_shader_ballot 1\n"
+ "#define GL_AMD_shader_trinary_minmax 1\n"
+ "#define GL_AMD_shader_explicit_vertex_parameter 1\n"
+ "#define GL_AMD_gcn_shader 1\n"
+#endif
;
}
diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h
index 19d101d..6fd08b0 100644
--- a/glslang/MachineIndependent/Versions.h
+++ b/glslang/MachineIndependent/Versions.h
@@ -135,6 +135,13 @@
const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp_style_line_directive";
const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive";
+#ifdef AMD_EXTENSIONS
+const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot";
+const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax";
+const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter";
+const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader";
+#endif
+
// AEP
const char* const E_GL_ANDROID_extension_pack_es31a = "GL_ANDROID_extension_pack_es31a";
const char* const E_GL_KHR_blend_equation_advanced = "GL_KHR_blend_equation_advanced";
diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y
index 2cd1cc6..72bad94 100644
--- a/glslang/MachineIndependent/glslang.y
+++ b/glslang/MachineIndependent/glslang.y
@@ -126,7 +126,7 @@
%token <lex> UNIFORM PATCH SAMPLE BUFFER SHARED
%token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY
%token <lex> DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4
-%token <lex> NOPERSPECTIVE FLAT SMOOTH LAYOUT
+%token <lex> NOPERSPECTIVE FLAT SMOOTH LAYOUT __EXPLICITINTERPAMD
%token <lex> MAT2X2 MAT2X3 MAT2X4
%token <lex> MAT3X2 MAT3X3 MAT3X4
@@ -691,6 +691,7 @@
$$ = $1;
}
| expression COMMA assignment_expression {
+ parseContext.samplerConstructorLocationCheck($2.loc, ",", $3);
$$ = parseContext.intermediate.addComma($1, $3, $2.loc);
if ($$ == 0) {
parseContext.binaryOpError($2.loc, ",", $1->getCompleteString(), $3->getCompleteString());
@@ -1050,6 +1051,15 @@
$$.init($1.loc);
$$.qualifier.nopersp = true;
}
+ | __EXPLICITINTERPAMD {
+#ifdef AMD_EXTENSIONS
+ parseContext.globalCheck($1.loc, "__explicitInterpAMD");
+ parseContext.profileRequires($1.loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
+ parseContext.profileRequires($1.loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
+ $$.init($1.loc);
+ $$.qualifier.explicitInterp = true;
+#endif
+ }
;
layout_qualifier
diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp
index c8664f9..0d1dc43 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp
+++ b/glslang/MachineIndependent/glslang_tab.cpp
@@ -189,206 +189,207 @@
FLAT = 322,
SMOOTH = 323,
LAYOUT = 324,
- MAT2X2 = 325,
- MAT2X3 = 326,
- MAT2X4 = 327,
- MAT3X2 = 328,
- MAT3X3 = 329,
- MAT3X4 = 330,
- MAT4X2 = 331,
- MAT4X3 = 332,
- MAT4X4 = 333,
- DMAT2X2 = 334,
- DMAT2X3 = 335,
- DMAT2X4 = 336,
- DMAT3X2 = 337,
- DMAT3X3 = 338,
- DMAT3X4 = 339,
- DMAT4X2 = 340,
- DMAT4X3 = 341,
- DMAT4X4 = 342,
- ATOMIC_UINT = 343,
- SAMPLER1D = 344,
- SAMPLER2D = 345,
- SAMPLER3D = 346,
- SAMPLERCUBE = 347,
- SAMPLER1DSHADOW = 348,
- SAMPLER2DSHADOW = 349,
- SAMPLERCUBESHADOW = 350,
- SAMPLER1DARRAY = 351,
- SAMPLER2DARRAY = 352,
- SAMPLER1DARRAYSHADOW = 353,
- SAMPLER2DARRAYSHADOW = 354,
- ISAMPLER1D = 355,
- ISAMPLER2D = 356,
- ISAMPLER3D = 357,
- ISAMPLERCUBE = 358,
- ISAMPLER1DARRAY = 359,
- ISAMPLER2DARRAY = 360,
- USAMPLER1D = 361,
- USAMPLER2D = 362,
- USAMPLER3D = 363,
- USAMPLERCUBE = 364,
- USAMPLER1DARRAY = 365,
- USAMPLER2DARRAY = 366,
- SAMPLER2DRECT = 367,
- SAMPLER2DRECTSHADOW = 368,
- ISAMPLER2DRECT = 369,
- USAMPLER2DRECT = 370,
- SAMPLERBUFFER = 371,
- ISAMPLERBUFFER = 372,
- USAMPLERBUFFER = 373,
- SAMPLERCUBEARRAY = 374,
- SAMPLERCUBEARRAYSHADOW = 375,
- ISAMPLERCUBEARRAY = 376,
- USAMPLERCUBEARRAY = 377,
- SAMPLER2DMS = 378,
- ISAMPLER2DMS = 379,
- USAMPLER2DMS = 380,
- SAMPLER2DMSARRAY = 381,
- ISAMPLER2DMSARRAY = 382,
- USAMPLER2DMSARRAY = 383,
- SAMPLEREXTERNALOES = 384,
- SAMPLER = 385,
- SAMPLERSHADOW = 386,
- TEXTURE1D = 387,
- TEXTURE2D = 388,
- TEXTURE3D = 389,
- TEXTURECUBE = 390,
- TEXTURE1DARRAY = 391,
- TEXTURE2DARRAY = 392,
- ITEXTURE1D = 393,
- ITEXTURE2D = 394,
- ITEXTURE3D = 395,
- ITEXTURECUBE = 396,
- ITEXTURE1DARRAY = 397,
- ITEXTURE2DARRAY = 398,
- UTEXTURE1D = 399,
- UTEXTURE2D = 400,
- UTEXTURE3D = 401,
- UTEXTURECUBE = 402,
- UTEXTURE1DARRAY = 403,
- UTEXTURE2DARRAY = 404,
- TEXTURE2DRECT = 405,
- ITEXTURE2DRECT = 406,
- UTEXTURE2DRECT = 407,
- TEXTUREBUFFER = 408,
- ITEXTUREBUFFER = 409,
- UTEXTUREBUFFER = 410,
- TEXTURECUBEARRAY = 411,
- ITEXTURECUBEARRAY = 412,
- UTEXTURECUBEARRAY = 413,
- TEXTURE2DMS = 414,
- ITEXTURE2DMS = 415,
- UTEXTURE2DMS = 416,
- TEXTURE2DMSARRAY = 417,
- ITEXTURE2DMSARRAY = 418,
- UTEXTURE2DMSARRAY = 419,
- SUBPASSINPUT = 420,
- SUBPASSINPUTMS = 421,
- ISUBPASSINPUT = 422,
- ISUBPASSINPUTMS = 423,
- USUBPASSINPUT = 424,
- USUBPASSINPUTMS = 425,
- IMAGE1D = 426,
- IIMAGE1D = 427,
- UIMAGE1D = 428,
- IMAGE2D = 429,
- IIMAGE2D = 430,
- UIMAGE2D = 431,
- IMAGE3D = 432,
- IIMAGE3D = 433,
- UIMAGE3D = 434,
- IMAGE2DRECT = 435,
- IIMAGE2DRECT = 436,
- UIMAGE2DRECT = 437,
- IMAGECUBE = 438,
- IIMAGECUBE = 439,
- UIMAGECUBE = 440,
- IMAGEBUFFER = 441,
- IIMAGEBUFFER = 442,
- UIMAGEBUFFER = 443,
- IMAGE1DARRAY = 444,
- IIMAGE1DARRAY = 445,
- UIMAGE1DARRAY = 446,
- IMAGE2DARRAY = 447,
- IIMAGE2DARRAY = 448,
- UIMAGE2DARRAY = 449,
- IMAGECUBEARRAY = 450,
- IIMAGECUBEARRAY = 451,
- UIMAGECUBEARRAY = 452,
- IMAGE2DMS = 453,
- IIMAGE2DMS = 454,
- UIMAGE2DMS = 455,
- IMAGE2DMSARRAY = 456,
- IIMAGE2DMSARRAY = 457,
- UIMAGE2DMSARRAY = 458,
- STRUCT = 459,
- VOID = 460,
- WHILE = 461,
- IDENTIFIER = 462,
- TYPE_NAME = 463,
- FLOATCONSTANT = 464,
- DOUBLECONSTANT = 465,
- INTCONSTANT = 466,
- UINTCONSTANT = 467,
- INT64CONSTANT = 468,
- UINT64CONSTANT = 469,
- BOOLCONSTANT = 470,
- LEFT_OP = 471,
- RIGHT_OP = 472,
- INC_OP = 473,
- DEC_OP = 474,
- LE_OP = 475,
- GE_OP = 476,
- EQ_OP = 477,
- NE_OP = 478,
- AND_OP = 479,
- OR_OP = 480,
- XOR_OP = 481,
- MUL_ASSIGN = 482,
- DIV_ASSIGN = 483,
- ADD_ASSIGN = 484,
- MOD_ASSIGN = 485,
- LEFT_ASSIGN = 486,
- RIGHT_ASSIGN = 487,
- AND_ASSIGN = 488,
- XOR_ASSIGN = 489,
- OR_ASSIGN = 490,
- SUB_ASSIGN = 491,
- LEFT_PAREN = 492,
- RIGHT_PAREN = 493,
- LEFT_BRACKET = 494,
- RIGHT_BRACKET = 495,
- LEFT_BRACE = 496,
- RIGHT_BRACE = 497,
- DOT = 498,
- COMMA = 499,
- COLON = 500,
- EQUAL = 501,
- SEMICOLON = 502,
- BANG = 503,
- DASH = 504,
- TILDE = 505,
- PLUS = 506,
- STAR = 507,
- SLASH = 508,
- PERCENT = 509,
- LEFT_ANGLE = 510,
- RIGHT_ANGLE = 511,
- VERTICAL_BAR = 512,
- CARET = 513,
- AMPERSAND = 514,
- QUESTION = 515,
- INVARIANT = 516,
- PRECISE = 517,
- HIGH_PRECISION = 518,
- MEDIUM_PRECISION = 519,
- LOW_PRECISION = 520,
- PRECISION = 521,
- PACKED = 522,
- RESOURCE = 523,
- SUPERP = 524
+ __EXPLICITINTERPAMD = 325,
+ MAT2X2 = 326,
+ MAT2X3 = 327,
+ MAT2X4 = 328,
+ MAT3X2 = 329,
+ MAT3X3 = 330,
+ MAT3X4 = 331,
+ MAT4X2 = 332,
+ MAT4X3 = 333,
+ MAT4X4 = 334,
+ DMAT2X2 = 335,
+ DMAT2X3 = 336,
+ DMAT2X4 = 337,
+ DMAT3X2 = 338,
+ DMAT3X3 = 339,
+ DMAT3X4 = 340,
+ DMAT4X2 = 341,
+ DMAT4X3 = 342,
+ DMAT4X4 = 343,
+ ATOMIC_UINT = 344,
+ SAMPLER1D = 345,
+ SAMPLER2D = 346,
+ SAMPLER3D = 347,
+ SAMPLERCUBE = 348,
+ SAMPLER1DSHADOW = 349,
+ SAMPLER2DSHADOW = 350,
+ SAMPLERCUBESHADOW = 351,
+ SAMPLER1DARRAY = 352,
+ SAMPLER2DARRAY = 353,
+ SAMPLER1DARRAYSHADOW = 354,
+ SAMPLER2DARRAYSHADOW = 355,
+ ISAMPLER1D = 356,
+ ISAMPLER2D = 357,
+ ISAMPLER3D = 358,
+ ISAMPLERCUBE = 359,
+ ISAMPLER1DARRAY = 360,
+ ISAMPLER2DARRAY = 361,
+ USAMPLER1D = 362,
+ USAMPLER2D = 363,
+ USAMPLER3D = 364,
+ USAMPLERCUBE = 365,
+ USAMPLER1DARRAY = 366,
+ USAMPLER2DARRAY = 367,
+ SAMPLER2DRECT = 368,
+ SAMPLER2DRECTSHADOW = 369,
+ ISAMPLER2DRECT = 370,
+ USAMPLER2DRECT = 371,
+ SAMPLERBUFFER = 372,
+ ISAMPLERBUFFER = 373,
+ USAMPLERBUFFER = 374,
+ SAMPLERCUBEARRAY = 375,
+ SAMPLERCUBEARRAYSHADOW = 376,
+ ISAMPLERCUBEARRAY = 377,
+ USAMPLERCUBEARRAY = 378,
+ SAMPLER2DMS = 379,
+ ISAMPLER2DMS = 380,
+ USAMPLER2DMS = 381,
+ SAMPLER2DMSARRAY = 382,
+ ISAMPLER2DMSARRAY = 383,
+ USAMPLER2DMSARRAY = 384,
+ SAMPLEREXTERNALOES = 385,
+ SAMPLER = 386,
+ SAMPLERSHADOW = 387,
+ TEXTURE1D = 388,
+ TEXTURE2D = 389,
+ TEXTURE3D = 390,
+ TEXTURECUBE = 391,
+ TEXTURE1DARRAY = 392,
+ TEXTURE2DARRAY = 393,
+ ITEXTURE1D = 394,
+ ITEXTURE2D = 395,
+ ITEXTURE3D = 396,
+ ITEXTURECUBE = 397,
+ ITEXTURE1DARRAY = 398,
+ ITEXTURE2DARRAY = 399,
+ UTEXTURE1D = 400,
+ UTEXTURE2D = 401,
+ UTEXTURE3D = 402,
+ UTEXTURECUBE = 403,
+ UTEXTURE1DARRAY = 404,
+ UTEXTURE2DARRAY = 405,
+ TEXTURE2DRECT = 406,
+ ITEXTURE2DRECT = 407,
+ UTEXTURE2DRECT = 408,
+ TEXTUREBUFFER = 409,
+ ITEXTUREBUFFER = 410,
+ UTEXTUREBUFFER = 411,
+ TEXTURECUBEARRAY = 412,
+ ITEXTURECUBEARRAY = 413,
+ UTEXTURECUBEARRAY = 414,
+ TEXTURE2DMS = 415,
+ ITEXTURE2DMS = 416,
+ UTEXTURE2DMS = 417,
+ TEXTURE2DMSARRAY = 418,
+ ITEXTURE2DMSARRAY = 419,
+ UTEXTURE2DMSARRAY = 420,
+ SUBPASSINPUT = 421,
+ SUBPASSINPUTMS = 422,
+ ISUBPASSINPUT = 423,
+ ISUBPASSINPUTMS = 424,
+ USUBPASSINPUT = 425,
+ USUBPASSINPUTMS = 426,
+ IMAGE1D = 427,
+ IIMAGE1D = 428,
+ UIMAGE1D = 429,
+ IMAGE2D = 430,
+ IIMAGE2D = 431,
+ UIMAGE2D = 432,
+ IMAGE3D = 433,
+ IIMAGE3D = 434,
+ UIMAGE3D = 435,
+ IMAGE2DRECT = 436,
+ IIMAGE2DRECT = 437,
+ UIMAGE2DRECT = 438,
+ IMAGECUBE = 439,
+ IIMAGECUBE = 440,
+ UIMAGECUBE = 441,
+ IMAGEBUFFER = 442,
+ IIMAGEBUFFER = 443,
+ UIMAGEBUFFER = 444,
+ IMAGE1DARRAY = 445,
+ IIMAGE1DARRAY = 446,
+ UIMAGE1DARRAY = 447,
+ IMAGE2DARRAY = 448,
+ IIMAGE2DARRAY = 449,
+ UIMAGE2DARRAY = 450,
+ IMAGECUBEARRAY = 451,
+ IIMAGECUBEARRAY = 452,
+ UIMAGECUBEARRAY = 453,
+ IMAGE2DMS = 454,
+ IIMAGE2DMS = 455,
+ UIMAGE2DMS = 456,
+ IMAGE2DMSARRAY = 457,
+ IIMAGE2DMSARRAY = 458,
+ UIMAGE2DMSARRAY = 459,
+ STRUCT = 460,
+ VOID = 461,
+ WHILE = 462,
+ IDENTIFIER = 463,
+ TYPE_NAME = 464,
+ FLOATCONSTANT = 465,
+ DOUBLECONSTANT = 466,
+ INTCONSTANT = 467,
+ UINTCONSTANT = 468,
+ INT64CONSTANT = 469,
+ UINT64CONSTANT = 470,
+ BOOLCONSTANT = 471,
+ LEFT_OP = 472,
+ RIGHT_OP = 473,
+ INC_OP = 474,
+ DEC_OP = 475,
+ LE_OP = 476,
+ GE_OP = 477,
+ EQ_OP = 478,
+ NE_OP = 479,
+ AND_OP = 480,
+ OR_OP = 481,
+ XOR_OP = 482,
+ MUL_ASSIGN = 483,
+ DIV_ASSIGN = 484,
+ ADD_ASSIGN = 485,
+ MOD_ASSIGN = 486,
+ LEFT_ASSIGN = 487,
+ RIGHT_ASSIGN = 488,
+ AND_ASSIGN = 489,
+ XOR_ASSIGN = 490,
+ OR_ASSIGN = 491,
+ SUB_ASSIGN = 492,
+ LEFT_PAREN = 493,
+ RIGHT_PAREN = 494,
+ LEFT_BRACKET = 495,
+ RIGHT_BRACKET = 496,
+ LEFT_BRACE = 497,
+ RIGHT_BRACE = 498,
+ DOT = 499,
+ COMMA = 500,
+ COLON = 501,
+ EQUAL = 502,
+ SEMICOLON = 503,
+ BANG = 504,
+ DASH = 505,
+ TILDE = 506,
+ PLUS = 507,
+ STAR = 508,
+ SLASH = 509,
+ PERCENT = 510,
+ LEFT_ANGLE = 511,
+ RIGHT_ANGLE = 512,
+ VERTICAL_BAR = 513,
+ CARET = 514,
+ AMPERSAND = 515,
+ QUESTION = 516,
+ INVARIANT = 517,
+ PRECISE = 518,
+ HIGH_PRECISION = 519,
+ MEDIUM_PRECISION = 520,
+ LOW_PRECISION = 521,
+ PRECISION = 522,
+ PACKED = 523,
+ RESOURCE = 524,
+ SUPERP = 525
};
#endif
@@ -431,7 +432,7 @@
};
} interm;
-#line 435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */
+#line 436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */
};
typedef union YYSTYPE YYSTYPE;
@@ -462,7 +463,7 @@
extern int yylex(YYSTYPE*, TParseContext&);
-#line 466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */
+#line 467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */
#ifdef short
# undef short
@@ -702,23 +703,23 @@
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 248
+#define YYFINAL 249
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 5943
+#define YYLAST 5966
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 270
+#define YYNTOKENS 271
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 100
/* YYNRULES -- Number of rules. */
-#define YYNRULES 421
+#define YYNRULES 422
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 553
+#define YYNSTATES 554
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 524
+#define YYMAXUTOK 525
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -779,7 +780,7 @@
235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269
+ 265, 266, 267, 268, 269, 270
};
#if YYDEBUG
@@ -794,41 +795,41 @@
512, 517, 522, 530, 531, 539, 550, 551, 560, 561,
570, 571, 580, 581, 589, 590, 598, 599, 607, 608,
608, 626, 627, 642, 646, 650, 654, 659, 663, 667,
- 671, 675, 679, 683, 690, 693, 703, 710, 715, 720,
- 728, 732, 736, 740, 745, 750, 759, 759, 770, 774,
- 781, 788, 791, 798, 806, 826, 844, 859, 882, 893,
- 903, 913, 923, 932, 935, 939, 943, 948, 956, 961,
- 966, 971, 976, 985, 996, 1023, 1032, 1039, 1046, 1056,
- 1062, 1065, 1072, 1076, 1080, 1088, 1097, 1100, 1111, 1114,
- 1117, 1120, 1124, 1128, 1135, 1139, 1151, 1165, 1170, 1176,
- 1182, 1189, 1195, 1200, 1205, 1210, 1217, 1221, 1225, 1229,
- 1233, 1237, 1243, 1255, 1258, 1263, 1267, 1276, 1281, 1289,
- 1293, 1303, 1307, 1311, 1316, 1320, 1325, 1330, 1335, 1339,
- 1344, 1349, 1354, 1360, 1366, 1372, 1377, 1382, 1387, 1392,
- 1397, 1402, 1408, 1414, 1420, 1426, 1432, 1438, 1444, 1450,
- 1456, 1461, 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501,
- 1506, 1511, 1516, 1522, 1528, 1534, 1540, 1546, 1552, 1558,
- 1564, 1570, 1576, 1582, 1588, 1593, 1598, 1603, 1608, 1613,
- 1618, 1623, 1628, 1633, 1638, 1643, 1648, 1653, 1658, 1663,
- 1668, 1673, 1678, 1683, 1688, 1693, 1698, 1703, 1708, 1713,
- 1718, 1723, 1728, 1733, 1738, 1743, 1748, 1753, 1758, 1763,
- 1768, 1773, 1778, 1783, 1788, 1793, 1798, 1803, 1808, 1813,
- 1818, 1823, 1828, 1833, 1838, 1843, 1848, 1853, 1858, 1863,
- 1868, 1873, 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913,
- 1918, 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963,
- 1968, 1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013,
- 2018, 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063,
- 2068, 2073, 2078, 2083, 2088, 2093, 2098, 2103, 2108, 2113,
- 2118, 2123, 2128, 2133, 2139, 2145, 2151, 2157, 2163, 2169,
- 2175, 2180, 2196, 2202, 2208, 2217, 2217, 2228, 2228, 2238,
- 2241, 2254, 2272, 2296, 2300, 2306, 2311, 2322, 2325, 2331,
- 2340, 2343, 2349, 2353, 2354, 2360, 2361, 2362, 2363, 2364,
- 2365, 2366, 2370, 2371, 2375, 2371, 2387, 2388, 2392, 2392,
- 2399, 2399, 2413, 2416, 2424, 2432, 2443, 2444, 2448, 2455,
- 2459, 2467, 2471, 2484, 2484, 2504, 2507, 2513, 2525, 2537,
- 2537, 2552, 2552, 2568, 2568, 2589, 2592, 2598, 2601, 2607,
- 2611, 2618, 2623, 2628, 2635, 2638, 2647, 2651, 2658, 2661,
- 2667, 2667
+ 671, 675, 679, 683, 690, 693, 704, 711, 716, 721,
+ 729, 733, 737, 741, 746, 751, 760, 760, 771, 775,
+ 782, 789, 792, 799, 807, 827, 845, 860, 883, 894,
+ 904, 914, 924, 933, 936, 940, 944, 949, 957, 962,
+ 967, 972, 977, 986, 997, 1024, 1033, 1040, 1047, 1054,
+ 1066, 1072, 1075, 1082, 1086, 1090, 1098, 1107, 1110, 1121,
+ 1124, 1127, 1130, 1134, 1138, 1145, 1149, 1161, 1175, 1180,
+ 1186, 1192, 1199, 1205, 1210, 1215, 1220, 1227, 1231, 1235,
+ 1239, 1243, 1247, 1253, 1265, 1268, 1273, 1277, 1286, 1291,
+ 1299, 1303, 1313, 1317, 1321, 1326, 1330, 1335, 1340, 1345,
+ 1349, 1354, 1359, 1364, 1370, 1376, 1382, 1387, 1392, 1397,
+ 1402, 1407, 1412, 1418, 1424, 1430, 1436, 1442, 1448, 1454,
+ 1460, 1466, 1471, 1476, 1481, 1486, 1491, 1496, 1501, 1506,
+ 1511, 1516, 1521, 1526, 1532, 1538, 1544, 1550, 1556, 1562,
+ 1568, 1574, 1580, 1586, 1592, 1598, 1603, 1608, 1613, 1618,
+ 1623, 1628, 1633, 1638, 1643, 1648, 1653, 1658, 1663, 1668,
+ 1673, 1678, 1683, 1688, 1693, 1698, 1703, 1708, 1713, 1718,
+ 1723, 1728, 1733, 1738, 1743, 1748, 1753, 1758, 1763, 1768,
+ 1773, 1778, 1783, 1788, 1793, 1798, 1803, 1808, 1813, 1818,
+ 1823, 1828, 1833, 1838, 1843, 1848, 1853, 1858, 1863, 1868,
+ 1873, 1878, 1883, 1888, 1893, 1898, 1903, 1908, 1913, 1918,
+ 1923, 1928, 1933, 1938, 1943, 1948, 1953, 1958, 1963, 1968,
+ 1973, 1978, 1983, 1988, 1993, 1998, 2003, 2008, 2013, 2018,
+ 2023, 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063, 2068,
+ 2073, 2078, 2083, 2088, 2093, 2098, 2103, 2108, 2113, 2118,
+ 2123, 2128, 2133, 2138, 2143, 2149, 2155, 2161, 2167, 2173,
+ 2179, 2185, 2190, 2206, 2212, 2218, 2227, 2227, 2238, 2238,
+ 2248, 2251, 2264, 2282, 2306, 2310, 2316, 2321, 2332, 2335,
+ 2341, 2350, 2353, 2359, 2363, 2364, 2370, 2371, 2372, 2373,
+ 2374, 2375, 2376, 2380, 2381, 2385, 2381, 2397, 2398, 2402,
+ 2402, 2409, 2409, 2423, 2426, 2434, 2442, 2453, 2454, 2458,
+ 2465, 2469, 2477, 2481, 2494, 2494, 2514, 2517, 2523, 2535,
+ 2547, 2547, 2562, 2562, 2578, 2578, 2599, 2602, 2608, 2611,
+ 2617, 2621, 2628, 2633, 2638, 2645, 2648, 2657, 2661, 2668,
+ 2671, 2677, 2677
};
#endif
@@ -846,54 +847,55 @@
"MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", "UNIFORM", "PATCH",
"SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", "RESTRICT",
"READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3",
- "DMAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "MAT2X2", "MAT2X3",
- "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4",
- "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4",
- "DMAT4X2", "DMAT4X3", "DMAT4X4", "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D",
- "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", "SAMPLER2DSHADOW",
- "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", "SAMPLER2DARRAY",
- "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", "ISAMPLER1D",
- "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", "ISAMPLER1DARRAY",
- "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", "USAMPLER3D",
- "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", "SAMPLER2DRECT",
- "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
- "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLERCUBEARRAY",
- "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY",
- "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY",
- "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES",
- "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", "TEXTURE2D", "TEXTURE3D",
- "TEXTURECUBE", "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D",
- "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY",
- "ITEXTURE2DARRAY", "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D",
- "UTEXTURECUBE", "UTEXTURE1DARRAY", "UTEXTURE2DARRAY", "TEXTURE2DRECT",
- "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
- "UTEXTUREBUFFER", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
- "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
- "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
- "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT", "ISUBPASSINPUTMS",
- "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D", "IIMAGE1D", "UIMAGE1D",
- "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D", "IIMAGE3D", "UIMAGE3D",
- "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT", "IMAGECUBE", "IIMAGECUBE",
- "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER", "UIMAGEBUFFER",
- "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY", "IMAGE2DARRAY",
- "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY", "IIMAGECUBEARRAY",
- "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS", "UIMAGE2DMS",
- "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "STRUCT", "VOID",
- "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT",
- "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", "UINT64CONSTANT",
- "BOOLCONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
- "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
- "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
- "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN",
- "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE",
- "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG",
- "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE",
- "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND", "QUESTION",
- "INVARIANT", "PRECISE", "HIGH_PRECISION", "MEDIUM_PRECISION",
- "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "$accept",
- "variable_identifier", "primary_expression", "postfix_expression",
- "integer_expression", "function_call", "function_call_or_method",
- "function_call_generic", "function_call_header_no_parameters",
+ "DMAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT",
+ "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3",
+ "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
+ "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
+ "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
+ "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW",
+ "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW",
+ "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D",
+ "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D",
+ "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY",
+ "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW",
+ "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER",
+ "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
+ "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS",
+ "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
+ "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW",
+ "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY",
+ "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D",
+ "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D",
+ "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY",
+ "UTEXTURE2DARRAY", "TEXTURE2DRECT", "ITEXTURE2DRECT", "UTEXTURE2DRECT",
+ "TEXTUREBUFFER", "ITEXTUREBUFFER", "UTEXTUREBUFFER", "TEXTURECUBEARRAY",
+ "ITEXTURECUBEARRAY", "UTEXTURECUBEARRAY", "TEXTURE2DMS", "ITEXTURE2DMS",
+ "UTEXTURE2DMS", "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY",
+ "UTEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
+ "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "IMAGE1D",
+ "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
+ "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
+ "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
+ "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
+ "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
+ "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
+ "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
+ "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT",
+ "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT",
+ "UINT64CONSTANT", "BOOLCONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP",
+ "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP",
+ "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN",
+ "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN",
+ "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET",
+ "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON",
+ "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH",
+ "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET",
+ "AMPERSAND", "QUESTION", "INVARIANT", "PRECISE", "HIGH_PRECISION",
+ "MEDIUM_PRECISION", "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE",
+ "SUPERP", "$accept", "variable_identifier", "primary_expression",
+ "postfix_expression", "integer_expression", "function_call",
+ "function_call_or_method", "function_call_generic",
+ "function_call_header_no_parameters",
"function_call_header_with_parameters", "function_call_header",
"function_identifier", "unary_expression", "unary_operator",
"multiplicative_expression", "additive_expression", "shift_expression",
@@ -958,16 +960,17 @@
485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
- 515, 516, 517, 518, 519, 520, 521, 522, 523, 524
+ 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
+ 525
};
# endif
-#define YYPACT_NINF -496
+#define YYPACT_NINF -495
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-496)))
+ (!!((Yystate) == (-495)))
-#define YYTABLE_NINF -379
+#define YYTABLE_NINF -380
#define yytable_value_is_error(Yytable_value) \
0
@@ -976,62 +979,62 @@
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 2394, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -199, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -187, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -180, -496, -496, -496, -496, -496, -496, -496, -134,
- -496, -191, -181, -155, -131, 3871, -133, -496, -69, -496,
- -496, -496, -496, 2900, -496, -496, -496, -92, -496, -496,
- 546, -496, -496, -68, -45, -91, -496, 5735, -200, -496,
- -496, -85, -496, 3871, -496, -496, -496, 3871, -50, -49,
- -496, -209, -193, -496, -496, -496, 4323, -80, -496, -496,
- -496, -202, -496, -86, -171, -496, -496, 3871, -84, -496,
- -198, 810, -496, -496, -496, -496, -92, -214, -496, 4558,
- -176, -496, -46, -496, -127, -496, -496, -496, -496, -496,
- -496, -496, -496, 5271, 5271, 5271, -496, -496, -496, -496,
- -496, -496, -496, -175, -496, -496, -496, -73, -169, 5503,
- -71, -496, 5271, -118, -170, -195, -197, -90, -89, -87,
- -88, -57, -58, -208, -67, -496, 4804, -496, -36, 5271,
- -496, -45, 3871, 3871, -33, 3145, -496, -496, -496, -72,
- -70, -496, -61, -59, -66, 5039, -55, 5271, -62, -51,
- -54, -496, -496, -141, -496, -496, -125, -496, -181, -48,
- -496, -496, -496, -496, 1074, -496, -496, -496, -496, -496,
- -496, -80, 4558, -174, 4558, -496, -496, 4558, 3871, -496,
- -23, -496, -496, -496, -167, -496, -496, 5271, -20, -496,
- -496, 5271, -43, -496, -496, -496, 5271, 5271, 5271, 5271,
- 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271,
- 5271, 5271, 5271, 5271, 5271, -496, -496, -496, -44, -496,
- -496, -496, -496, 3387, -33, -92, -121, -496, -496, -496,
- -496, -496, 1338, -496, 5271, -496, -496, -120, 5271, -102,
- -496, -496, -496, 1338, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, 5271, 5271, -496, -496, -496,
- -496, 4558, -496, -105, -496, 3629, -496, -496, -42, -52,
- -496, -496, -496, -496, -496, -118, -118, -170, -170, -195,
- -195, -195, -195, -197, -197, -90, -89, -87, -88, -57,
- -58, 5271, -496, -496, -119, -80, -33, -496, -16, 2130,
- -164, -496, -160, -496, 2637, 1338, -496, -496, -496, -496,
- 4077, -496, -496, -99, -496, -496, -40, -496, -496, 2637,
- -41, -496, -52, -8, 3871, -35, -38, -496, -496, 5271,
- 5271, -496, -39, -32, 191, -31, 1866, -496, -30, -34,
- 1602, -496, -496, -138, 5271, 1602, -41, -496, -496, 1338,
- 4558, -496, -496, -496, -29, -52, -496, -496, 1338, -27,
- -496, -496, -496
+ 2402, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -216, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -198, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -190, -495, -495, -495, -495, -495, -495, -495,
+ -127, -495, -189, -193, -158, -149, 3885, -207, -495, -98,
+ -495, -495, -495, -495, 2910, -495, -495, -495, -106, -495,
+ -495, 547, -495, -495, -62, -45, -90, -495, 5757, -217,
+ -495, -495, -86, -495, 3885, -495, -495, -495, 3885, -51,
+ -50, -495, -208, -155, -495, -495, -495, 4339, -81, -495,
+ -495, -495, -185, -495, -87, -157, -495, -495, 3885, -83,
+ -495, -204, 812, -495, -495, -495, -495, -106, -183, -495,
+ 4575, -162, -495, -47, -495, -119, -495, -495, -495, -495,
+ -495, -495, -495, -495, 5291, 5291, 5291, -495, -495, -495,
+ -495, -495, -495, -495, -195, -495, -495, -495, -77, -150,
+ 5524, -72, -495, 5291, -111, -144, -167, -194, -147, -93,
+ -91, -89, -55, -56, -213, -69, -495, 4822, -495, -36,
+ 5291, -495, -45, 3885, 3885, -34, 3156, -495, -495, -495,
+ -73, -71, -495, -60, -59, -66, 5058, -54, 5291, -70,
+ -49, -58, -495, -495, -163, -495, -495, -118, -495, -193,
+ -46, -495, -495, -495, -495, 1077, -495, -495, -495, -495,
+ -495, -495, -81, 4575, -161, 4575, -495, -495, 4575, 3885,
+ -495, -25, -495, -495, -495, -145, -495, -495, 5291, -21,
+ -495, -495, 5291, -48, -495, -495, -495, 5291, 5291, 5291,
+ 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291,
+ 5291, 5291, 5291, 5291, 5291, 5291, -495, -495, -495, -44,
+ -495, -495, -495, -495, 3399, -34, -106, -117, -495, -495,
+ -495, -495, -495, 1342, -495, 5291, -495, -495, -113, 5291,
+ -154, -495, -495, -495, 1342, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, 5291, 5291, -495, -495,
+ -495, -495, 4575, -495, -92, -495, 3642, -495, -495, -43,
+ -57, -495, -495, -495, -495, -495, -111, -111, -144, -144,
+ -167, -167, -167, -167, -194, -194, -147, -93, -91, -89,
+ -55, -56, 5291, -495, -495, -112, -81, -34, -495, -14,
+ 2137, -136, -495, -134, -495, 2646, 1342, -495, -495, -495,
+ -495, 4092, -495, -495, -131, -495, -495, -42, -495, -495,
+ 2646, -39, -495, -57, -9, 3885, -35, -38, -495, -495,
+ 5291, 5291, -495, -41, -31, 184, -32, 1872, -495, -30,
+ -29, 1607, -495, -495, -132, 5291, 1607, -39, -495, -495,
+ 1342, 4575, -495, -495, -495, -37, -57, -495, -495, 1342,
+ -27, -495, -495, -495
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1039,92 +1042,92 @@
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 0, 145, 146, 144, 178, 172, 173, 174, 175, 176,
- 177, 161, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 179, 180, 181,
- 200, 201, 202, 150, 148, 149, 147, 153, 151, 152,
- 154, 155, 156, 157, 158, 159, 160, 182, 183, 184,
- 212, 213, 214, 128, 127, 126, 0, 203, 204, 205,
- 206, 207, 208, 209, 210, 211, 215, 216, 217, 218,
+ 0, 146, 147, 145, 179, 173, 174, 175, 176, 177,
+ 178, 162, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 180, 181, 182,
+ 201, 202, 203, 151, 149, 150, 148, 154, 152, 153,
+ 155, 156, 157, 158, 159, 160, 161, 183, 184, 185,
+ 213, 214, 215, 128, 127, 126, 0, 129, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
- 229, 230, 231, 232, 233, 234, 235, 238, 239, 240,
- 241, 242, 243, 245, 246, 247, 248, 249, 250, 252,
- 253, 254, 255, 256, 257, 258, 236, 237, 244, 251,
- 259, 260, 261, 262, 263, 264, 333, 265, 266, 267,
- 268, 269, 270, 271, 272, 274, 275, 276, 277, 278,
- 279, 281, 282, 283, 284, 285, 286, 288, 289, 290,
- 291, 292, 293, 273, 280, 287, 294, 295, 296, 297,
- 298, 299, 334, 335, 336, 337, 338, 339, 300, 301,
+ 229, 230, 231, 232, 233, 234, 235, 236, 239, 240,
+ 241, 242, 243, 244, 246, 247, 248, 249, 250, 251,
+ 253, 254, 255, 256, 257, 258, 259, 237, 238, 245,
+ 252, 260, 261, 262, 263, 264, 265, 334, 266, 267,
+ 268, 269, 270, 271, 272, 273, 275, 276, 277, 278,
+ 279, 280, 282, 283, 284, 285, 286, 287, 289, 290,
+ 291, 292, 293, 294, 274, 281, 288, 295, 296, 297,
+ 298, 299, 300, 335, 336, 337, 338, 339, 340, 301,
302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 0, 171, 341, 125, 135, 342, 343, 344, 0,
- 419, 0, 420, 0, 102, 101, 0, 113, 118, 142,
- 141, 139, 143, 0, 136, 138, 123, 165, 140, 340,
- 0, 416, 418, 0, 0, 0, 347, 0, 0, 90,
- 87, 0, 100, 0, 109, 103, 111, 0, 112, 0,
- 88, 119, 0, 93, 137, 124, 0, 166, 1, 417,
- 163, 0, 134, 132, 0, 130, 345, 0, 0, 91,
- 0, 0, 421, 104, 108, 110, 106, 114, 105, 0,
- 120, 96, 0, 94, 0, 2, 8, 9, 4, 5,
- 6, 7, 10, 0, 0, 0, 167, 36, 35, 37,
- 34, 3, 12, 30, 14, 19, 20, 0, 0, 24,
- 0, 38, 0, 42, 45, 48, 53, 56, 58, 60,
- 62, 64, 66, 68, 0, 28, 0, 162, 0, 0,
- 129, 0, 0, 0, 0, 0, 349, 89, 92, 0,
- 0, 401, 0, 0, 0, 0, 0, 0, 0, 0,
- 373, 382, 386, 38, 71, 84, 0, 362, 0, 123,
- 365, 384, 364, 363, 0, 366, 367, 368, 369, 370,
- 371, 107, 0, 115, 0, 357, 122, 0, 0, 98,
- 0, 95, 31, 32, 0, 16, 17, 0, 0, 22,
- 21, 0, 171, 25, 27, 33, 0, 0, 0, 0,
+ 332, 333, 0, 172, 342, 125, 136, 343, 344, 345,
+ 0, 420, 0, 421, 0, 102, 101, 0, 113, 118,
+ 143, 142, 140, 144, 0, 137, 139, 123, 166, 141,
+ 341, 0, 417, 419, 0, 0, 0, 348, 0, 0,
+ 90, 87, 0, 100, 0, 109, 103, 111, 0, 112,
+ 0, 88, 119, 0, 93, 138, 124, 0, 167, 1,
+ 418, 164, 0, 135, 133, 0, 131, 346, 0, 0,
+ 91, 0, 0, 422, 104, 108, 110, 106, 114, 105,
+ 0, 120, 96, 0, 94, 0, 2, 8, 9, 4,
+ 5, 6, 7, 10, 0, 0, 0, 168, 36, 35,
+ 37, 34, 3, 12, 30, 14, 19, 20, 0, 0,
+ 24, 0, 38, 0, 42, 45, 48, 53, 56, 58,
+ 60, 62, 64, 66, 68, 0, 28, 0, 163, 0,
+ 0, 130, 0, 0, 0, 0, 0, 350, 89, 92,
+ 0, 0, 402, 0, 0, 0, 0, 0, 0, 0,
+ 0, 374, 383, 387, 38, 71, 84, 0, 363, 0,
+ 123, 366, 385, 365, 364, 0, 367, 368, 369, 370,
+ 371, 372, 107, 0, 115, 0, 358, 122, 0, 0,
+ 98, 0, 95, 31, 32, 0, 16, 17, 0, 0,
+ 22, 21, 0, 172, 25, 27, 33, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 69, 168, 169, 0, 164,
- 86, 133, 131, 0, 0, 355, 0, 353, 348, 350,
- 412, 411, 0, 403, 0, 415, 413, 0, 0, 0,
- 398, 399, 372, 0, 74, 75, 77, 76, 79, 80,
- 81, 82, 83, 78, 73, 0, 0, 387, 383, 385,
- 117, 0, 360, 0, 121, 0, 99, 11, 0, 18,
- 15, 26, 39, 40, 41, 44, 43, 46, 47, 51,
- 52, 49, 50, 54, 55, 57, 59, 61, 63, 65,
- 67, 0, 170, 346, 0, 356, 0, 351, 0, 0,
- 0, 414, 0, 397, 0, 374, 72, 85, 116, 358,
- 0, 97, 13, 0, 352, 354, 0, 406, 405, 408,
- 380, 393, 391, 0, 0, 0, 0, 359, 361, 0,
- 0, 407, 0, 0, 390, 0, 0, 388, 0, 0,
- 0, 375, 70, 0, 409, 0, 380, 379, 381, 395,
- 0, 377, 400, 376, 0, 410, 404, 389, 396, 0,
- 392, 402, 394
+ 0, 0, 0, 0, 0, 0, 69, 169, 170, 0,
+ 165, 86, 134, 132, 0, 0, 356, 0, 354, 349,
+ 351, 413, 412, 0, 404, 0, 416, 414, 0, 0,
+ 0, 399, 400, 373, 0, 74, 75, 77, 76, 79,
+ 80, 81, 82, 83, 78, 73, 0, 0, 388, 384,
+ 386, 117, 0, 361, 0, 121, 0, 99, 11, 0,
+ 18, 15, 26, 39, 40, 41, 44, 43, 46, 47,
+ 51, 52, 49, 50, 54, 55, 57, 59, 61, 63,
+ 65, 67, 0, 171, 347, 0, 357, 0, 352, 0,
+ 0, 0, 415, 0, 398, 0, 375, 72, 85, 116,
+ 359, 0, 97, 13, 0, 353, 355, 0, 407, 406,
+ 409, 381, 394, 392, 0, 0, 0, 0, 360, 362,
+ 0, 0, 408, 0, 0, 391, 0, 0, 389, 0,
+ 0, 0, 376, 70, 0, 410, 0, 381, 380, 382,
+ 396, 0, 378, 401, 377, 0, 411, 405, 390, 397,
+ 0, 393, 403, 395
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -496, -496, -496, -496, -496, -496, -496, -496, -496, -496,
- -496, -496, -53, -496, -237, -288, -286, -243, -183, -179,
- -184, -177, -168, -185, -496, -234, -496, -266, -496, -280,
- -496, 4, -496, -496, -496, 6, -496, -496, -496, -15,
- -10, -9, -496, -496, -475, -496, -496, -496, -496, -83,
- -496, -204, -211, -496, -496, 0, -221, -496, 33, -496,
- -496, -496, -308, -314, -178, -247, -349, -496, -248, -346,
- -495, -283, -496, -496, -292, -291, -496, -496, 13, -423,
- -242, -496, -496, -263, -496, -496, -496, -496, -496, -496,
- -496, -496, -496, -496, -496, -496, -496, 28, -496, -496
+ -495, -495, -495, -495, -495, -495, -495, -495, -495, -495,
+ -495, -495, -53, -495, -271, -252, -272, -244, -187, -184,
+ -182, -181, -179, -186, -495, -237, -495, -266, -495, -280,
+ -495, 3, -495, -495, -495, 5, -495, -495, -495, -15,
+ -7, -5, -495, -495, -475, -495, -495, -495, -495, -85,
+ -495, -205, -212, -495, -495, 0, -221, -495, 29, -495,
+ -495, -495, -308, -310, -176, -251, -351, -495, -250, -348,
+ -494, -284, -495, -495, -293, -292, -495, -495, 12, -423,
+ -243, -495, -495, -264, -495, -495, -495, -495, -495, -495,
+ -495, -495, -495, -495, -495, -495, -495, 27, -495, -495
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 291, 292, 293, 458, 294, 295, 296, 297, 298,
- 299, 300, 343, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 344, 481, 345, 445, 346,
- 411, 347, 201, 368, 274, 348, 203, 204, 205, 234,
- 235, 236, 206, 207, 208, 209, 210, 211, 254, 255,
- 212, 213, 214, 215, 251, 315, 247, 217, 218, 219,
- 322, 257, 325, 326, 416, 417, 366, 453, 350, 351,
- 352, 353, 433, 516, 542, 524, 525, 526, 543, 354,
- 355, 356, 527, 515, 357, 528, 549, 358, 359, 494,
- 422, 489, 509, 522, 523, 360, 220, 221, 222, 231
+ -1, 292, 293, 294, 459, 295, 296, 297, 298, 299,
+ 300, 301, 344, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 345, 482, 346, 446, 347,
+ 412, 348, 202, 369, 275, 349, 204, 205, 206, 235,
+ 236, 237, 207, 208, 209, 210, 211, 212, 255, 256,
+ 213, 214, 215, 216, 252, 316, 248, 218, 219, 220,
+ 323, 258, 326, 327, 417, 418, 367, 454, 351, 352,
+ 353, 354, 434, 517, 543, 525, 526, 527, 544, 355,
+ 356, 357, 528, 516, 358, 529, 550, 359, 360, 495,
+ 423, 490, 510, 523, 524, 361, 221, 222, 223, 232
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1132,169 +1135,90 @@
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 216, 237, 244, 365, 200, 374, 202, 260, 449, 252,
- 495, 419, 314, 450, 413, 452, 228, 404, 454, 513,
- 270, 391, 392, 393, 394, 246, 244, 225, 268, 237,
- 246, 538, 362, 383, 513, 541, 317, 269, 223, 246,
- 541, 316, 318, 375, 376, 361, 363, 259, 271, 328,
- 224, 272, 405, 323, 273, 427, 229, 429, 395, 396,
- 455, 226, -29, 316, 377, 316, 230, 320, 378, 380,
- 367, 457, 451, 321, 510, 381, 488, 446, 511, 389,
- 446, 390, 408, 232, 446, 410, 434, 435, 436, 437,
- 438, 439, 440, 441, 442, 443, 365, 459, 365, 419,
- 544, 365, 498, 467, 468, 444, 446, 469, 470, 471,
- 472, 239, 244, 233, 240, 461, 548, 370, 323, 446,
- 371, 323, 447, 486, 446, 486, 487, 491, 504, 196,
- 197, 198, 397, 398, 386, 387, 388, 499, 241, 500,
- 250, 419, 446, 493, 490, 446, 519, 246, 492, 449,
- 256, 518, 465, 466, 473, 474, 261, 266, 267, 316,
- 319, 369, 253, 327, 323, 379, 384, 402, 403, 401,
- 399, 400, 409, 406, 415, 420, 423, 421, 424, 496,
- 497, 425, 428, 430, 456, 365, 431, 460, 432, -28,
- 506, 550, 446, 301, 485, -23, 482, 520, 502, 529,
- -378, 503, 449, 530, 531, 238, 535, 536, 534, 323,
- 340, 539, 540, 245, 512, 552, 475, 477, 551, 480,
- 216, 476, 264, 263, 200, 478, 202, 258, 265, 512,
- 372, 373, 227, 238, 365, 479, 484, 238, 412, 505,
- 533, 507, 537, 546, 262, 547, 521, 508, 249, 385,
- 0, 323, 0, 532, 545, 0, 0, 324, 0, 0,
- 0, 349, 0, 301, 0, 0, 301, 0, 0, 0,
- 0, 0, 0, 0, 365, 0, 0, 0, 0, 0,
+ 217, 238, 245, 201, 366, 203, 375, 450, 261, 253,
+ 315, 496, 451, 405, 453, 414, 420, 455, 226, 229,
+ 514, 271, 224, 247, 376, 377, 245, 394, 395, 238,
+ 269, 260, 247, 539, 384, 514, 317, 542, 240, 270,
+ 225, 241, 542, -29, 329, 378, 362, 364, 406, 379,
+ 392, 393, 227, 324, 318, 231, 428, 247, 430, 230,
+ 319, 456, 396, 397, 363, 435, 436, 437, 438, 439,
+ 440, 441, 442, 443, 444, 489, 398, 399, 317, 317,
+ 409, 233, 321, 411, 445, 368, 452, 272, 322, 381,
+ 273, 447, 494, 274, 458, 382, 234, 366, 460, 366,
+ 447, 499, 366, 511, 420, 512, 390, 545, 391, 447,
+ 242, 447, 245, 447, 447, 520, 462, 549, 324, 466,
+ 467, 324, 470, 471, 472, 473, 371, 447, 487, 372,
+ 448, 488, 447, 487, 247, 492, 505, 197, 198, 199,
+ 468, 469, 387, 388, 389, 491, 420, 251, 450, 493,
+ 519, 500, 257, 501, 474, 475, 262, 267, 268, 317,
+ 320, 370, 380, 254, 324, 328, 385, 400, 401, 402,
+ 403, 404, 407, 410, 416, 421, 431, 422, 424, 425,
+ 497, 498, 426, 457, 429, 433, 366, 461, 447, 432,
+ 551, -23, -28, 507, 302, 486, 521, 483, 503, 530,
+ 537, 450, 504, -379, 531, 532, 239, 535, 536, 324,
+ 341, 552, 540, 476, 246, 513, 553, 477, 541, 481,
+ 478, 217, 479, 265, 201, 480, 203, 264, 259, 228,
+ 513, 373, 374, 266, 239, 366, 506, 413, 239, 485,
+ 508, 534, 538, 547, 263, 548, 522, 509, 250, 0,
+ 386, 324, 0, 0, 533, 546, 0, 0, 325, 0,
+ 0, 0, 350, 0, 302, 0, 0, 302, 0, 0,
+ 0, 0, 0, 0, 0, 366, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 514, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 244, 0, 514, 0, 0, 0, 0,
+ 515, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 245, 0, 515, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 324, 414, 0, 324, 0, 0, 0, 0,
- 0, 0, 0, 462, 463, 464, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 0, 0, 349, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 324, 0,
+ 0, 0, 0, 325, 415, 0, 325, 0, 0, 0,
+ 0, 0, 0, 0, 463, 464, 465, 302, 302, 302,
+ 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
+ 302, 302, 302, 0, 0, 350, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 325,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 324, 0, 0, 0, 0, 0, 0,
- 0, 0, 349, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 349, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 325, 0, 0, 0, 0, 0,
+ 0, 0, 0, 350, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 350, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 324, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 325, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 349,
- 0, 0, 0, 0, 349, 349, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 349,
- 0, 0, 0, 0, 245, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 349, 0, 0, 0,
- 349, 0, 0, 0, 0, 349, 0, 0, 0, 349,
- 0, 0, 0, 0, 0, 0, 248, 0, 349, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 0, 0, 193, 0, 0, 0, 0, 0,
+ 350, 0, 0, 0, 0, 350, 350, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 350, 0, 0, 0, 0, 246, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 350, 0, 0,
+ 0, 350, 0, 0, 0, 0, 350, 0, 0, 0,
+ 350, 0, 0, 0, 0, 0, 0, 249, 0, 350,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 0, 0, 194, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 194, 195, 196,
- 197, 198, 199, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 329, 330, 331, 0, 332, 333, 334,
- 335, 336, 337, 338, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 339, 275, 193, 276,
- 277, 278, 279, 280, 281, 282, 0, 0, 283, 284,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 285, 0, 0,
- 0, 340, 341, 0, 0, 0, 0, 342, 287, 288,
- 289, 290, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 194, 195, 196, 197, 198, 199, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 329, 330, 331,
- 0, 332, 333, 334, 335, 336, 337, 338, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 339, 275, 193, 276, 277, 278, 279, 280, 281, 282,
- 0, 0, 283, 284, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 285, 0, 0, 0, 340, 448, 0, 0, 0,
- 0, 342, 287, 288, 289, 290, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 194, 195, 196, 197, 198,
- 199, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 10, 329, 330, 331, 0, 332, 333, 334, 335, 336,
- 337, 338, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 339, 275, 193, 276, 277, 278,
- 279, 280, 281, 282, 0, 0, 283, 284, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 285, 0, 0, 0, 340,
- 0, 0, 0, 0, 0, 342, 287, 288, 289, 290,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 194,
- 195, 196, 197, 198, 199, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 329, 330, 331, 0, 332,
- 333, 334, 335, 336, 337, 338, 11, 12, 13, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
+ 196, 197, 198, 199, 200, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
@@ -1312,15 +1236,172 @@
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 339, 275,
- 193, 276, 277, 278, 279, 280, 281, 282, 0, 0,
- 283, 284, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 285,
- 0, 0, 0, 261, 0, 0, 0, 0, 0, 342,
- 287, 288, 289, 290, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 194, 195, 196, 197, 198, 199, 1,
- 2, 3, 4, 5, 6, 7, 8, 9, 10, 329,
- 330, 331, 0, 332, 333, 334, 335, 336, 337, 338,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 340,
+ 276, 194, 277, 278, 279, 280, 281, 282, 283, 0,
+ 0, 284, 285, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 286, 0, 0, 0, 341, 342, 0, 0, 0, 0,
+ 343, 288, 289, 290, 291, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 195, 196, 197, 198, 199, 200,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 340, 276, 194, 277, 278, 279,
+ 280, 281, 282, 283, 0, 0, 284, 285, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 286, 0, 0, 0, 341,
+ 449, 0, 0, 0, 0, 343, 288, 289, 290, 291,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
+ 196, 197, 198, 199, 200, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 340,
+ 276, 194, 277, 278, 279, 280, 281, 282, 283, 0,
+ 0, 284, 285, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 286, 0, 0, 0, 341, 0, 0, 0, 0, 0,
+ 343, 288, 289, 290, 291, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 195, 196, 197, 198, 199, 200,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 330, 331, 332, 0, 333, 334, 335, 336, 337, 338,
+ 339, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 340, 276, 194, 277, 278, 279,
+ 280, 281, 282, 283, 0, 0, 284, 285, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 286, 0, 0, 0, 262,
+ 0, 0, 0, 0, 0, 343, 288, 289, 290, 291,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
+ 196, 197, 198, 199, 200, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 330, 331, 332, 0, 333,
+ 334, 335, 336, 337, 338, 339, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 340,
+ 276, 194, 277, 278, 279, 280, 281, 282, 283, 0,
+ 0, 284, 285, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 286, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 343, 288, 289, 290, 291, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 195, 196, 197, 198, 199, 200,
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 0, 276, 194, 277, 278, 279,
+ 280, 281, 282, 283, 0, 0, 284, 285, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 286, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 343, 288, 289, 290, 291,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
+ 196, 197, 198, 199, 200, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 0,
+ 0, 194, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 0,
+ 0, 0, 0, 0, 195, 196, 197, 198, 199, 200,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -1339,12 +1420,12 @@
161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 339, 275, 193, 276, 277, 278, 279, 280,
- 281, 282, 0, 0, 283, 284, 0, 0, 0, 0,
+ 191, 192, 193, 0, 276, 194, 277, 278, 279, 280,
+ 281, 282, 283, 0, 0, 284, 285, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 285, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 342, 287, 288, 289, 290, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 194, 195, 196,
+ 0, 0, 0, 0, 286, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 288, 289, 290, 291, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 195, 196,
197, 198, 199, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
@@ -1365,139 +1446,38 @@
157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 0, 275, 193, 276,
- 277, 278, 279, 280, 281, 282, 0, 0, 283, 284,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 285, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 342, 287, 288,
- 289, 290, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 194, 195, 196, 197, 198, 199, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 0, 0, 193, 0, 0, 0, 0, 0, 0, 0,
+ 187, 188, 189, 190, 191, 192, 193, 0, 243, 194,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 0, 0, 0, 0, 0, 194, 195, 196, 197, 198,
- 199, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 0, 275, 193, 276, 277, 278, 279,
- 280, 281, 282, 0, 0, 283, 284, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 285, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 287, 288, 289, 290, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 194, 195,
- 196, 197, 198, 1, 2, 3, 4, 5, 6, 7,
- 8, 9, 10, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 0, 242, 193, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 244, 1,
+ 2, 3, 4, 5, 6, 7, 8, 9, 10, 0,
+ 0, 0, 195, 196, 197, 198, 199, 0, 0, 0,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
+ 191, 192, 193, 0, 0, 194, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 243, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 0, 0,
- 0, 194, 195, 196, 197, 198, 0, 0, 0, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 0, 0, 193, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 418, 0, 0,
- 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
- 0, 0, 0, 0, 0, 0, 194, 195, 196, 197,
- 198, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 0, 0, 193, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 483,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 419,
0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 0, 0, 0, 0, 0, 0, 194, 195,
- 196, 197, 198, 11, 12, 13, 14, 15, 16, 17,
+ 9, 10, 0, 0, 0, 0, 0, 0, 195, 196,
+ 197, 198, 199, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
@@ -1515,359 +1495,39 @@
158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 0, 0, 193, 0, 0,
+ 188, 189, 190, 191, 192, 193, 0, 0, 194, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 501, 0, 0, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 0, 0, 0, 0, 0, 0,
- 194, 195, 196, 197, 198, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 0, 0, 193,
- 0, 0, 0, 4, 5, 6, 7, 8, 9, 10,
+ 0, 0, 484, 0, 0, 1, 2, 3, 4, 5,
+ 6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
+ 0, 195, 196, 197, 198, 199, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 0,
+ 0, 194, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 194, 195, 196, 197, 198, 47, 48, 49,
- 50, 51, 52, 0, 0, 0, 0, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 0, 275, 193, 276, 277, 278, 279,
- 280, 281, 282, 0, 0, 283, 284, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 285, 0, 0, 0, 364, 517,
- 0, 0, 0, 0, 0, 287, 288, 289, 290, 4,
- 5, 6, 7, 8, 9, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 47, 48, 49, 50, 51, 52, 0,
- 0, 0, 0, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191, 192, 0,
- 275, 193, 276, 277, 278, 279, 280, 281, 282, 0,
- 0, 283, 284, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 285, 0, 0, 286, 4, 5, 6, 7, 8, 9,
- 10, 287, 288, 289, 290, 0, 0, 0, 0, 0,
- 0, 0, 0, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 48,
- 49, 50, 51, 52, 0, 0, 0, 0, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 0, 275, 193, 276, 277, 278,
- 279, 280, 281, 282, 0, 0, 283, 284, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 285, 0, 0, 0, 364,
- 0, 0, 0, 0, 0, 0, 287, 288, 289, 290,
- 4, 5, 6, 7, 8, 9, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
- 0, 0, 0, 0, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 0, 275, 193, 276, 277, 278, 279, 280, 281, 282,
- 0, 0, 283, 284, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 285, 0, 0, 407, 4, 5, 6, 7, 8,
- 9, 10, 287, 288, 289, 290, 0, 0, 0, 0,
- 0, 0, 0, 0, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,
- 48, 49, 50, 51, 52, 0, 0, 0, 0, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
- 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
- 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 0, 275, 193, 276, 277,
- 278, 279, 280, 281, 282, 0, 0, 283, 284, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 285, 4, 5, 6,
- 7, 8, 9, 10, 0, 0, 426, 287, 288, 289,
- 290, 0, 0, 0, 0, 0, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 48, 49, 50, 51, 52, 0, 0, 0,
- 0, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 0, 275, 193,
- 276, 277, 278, 279, 280, 281, 282, 0, 0, 283,
- 284, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 285, 4,
- 5, 6, 7, 8, 9, 10, 0, 0, 0, 287,
- 288, 289, 290, 0, 0, 0, 0, 0, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 47, 48, 49, 50, 51, 52, 0,
- 0, 0, 0, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191, 382, 0,
- 275, 193, 276, 277, 278, 279, 280, 281, 282, 0,
- 0, 283, 284, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 285, 4, 5, 6, 7, 8, 9, 10, 0, 0,
- 0, 287, 288, 289, 290, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 502, 0, 0, 1, 2,
+ 3, 4, 5, 6, 7, 8, 9, 10, 0, 0,
+ 0, 0, 0, 0, 195, 196, 197, 198, 199, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 47, 48, 49, 50, 51,
- 52, 0, 0, 0, 0, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 0, 0, 193
-};
-
-static const yytype_int16 yycheck[] =
-{
- 0, 205, 213, 269, 0, 285, 0, 228, 354, 54,
- 433, 325, 246, 362, 322, 364, 207, 225, 367, 494,
- 241, 216, 217, 220, 221, 239, 237, 207, 237, 233,
- 239, 526, 246, 299, 509, 530, 238, 246, 237, 239,
- 535, 239, 244, 218, 219, 266, 267, 247, 241, 247,
- 237, 244, 260, 257, 247, 335, 247, 337, 255, 256,
- 368, 241, 237, 239, 239, 239, 247, 238, 243, 238,
- 246, 238, 246, 244, 238, 244, 422, 244, 238, 249,
- 244, 251, 316, 238, 244, 319, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 362, 377, 364, 413,
- 238, 367, 451, 391, 392, 246, 244, 393, 394, 395,
- 396, 244, 323, 244, 247, 381, 539, 244, 322, 244,
- 247, 325, 247, 244, 244, 244, 247, 247, 247, 263,
- 264, 265, 222, 223, 252, 253, 254, 242, 207, 244,
- 208, 455, 244, 245, 424, 244, 245, 239, 428, 495,
- 241, 500, 389, 390, 397, 398, 241, 207, 207, 239,
- 246, 207, 207, 247, 368, 238, 237, 224, 226, 257,
- 259, 258, 208, 240, 207, 247, 237, 247, 237, 445,
- 446, 247, 237, 245, 207, 451, 237, 207, 242, 237,
- 206, 540, 244, 246, 415, 238, 240, 237, 240, 207,
- 241, 481, 548, 238, 242, 205, 238, 16, 247, 413,
- 241, 241, 246, 213, 494, 242, 399, 401, 247, 404,
- 220, 400, 237, 233, 220, 402, 220, 227, 237, 509,
- 283, 284, 199, 233, 500, 403, 414, 237, 321, 486,
- 520, 489, 525, 535, 231, 536, 509, 489, 220, 302,
- -1, 455, -1, 519, 534, -1, -1, 257, -1, -1,
- -1, 261, -1, 316, -1, -1, 319, -1, -1, -1,
- -1, -1, -1, -1, 540, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 494, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 514, -1, 509, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 322, 323, -1, 325, -1, -1, -1, -1,
- -1, -1, -1, 386, 387, 388, 389, 390, 391, 392,
- 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
- 403, 404, -1, -1, 354, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 368, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 413, -1, -1, -1, -1, -1, -1,
- -1, -1, 422, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 433, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 455, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 489,
- -1, -1, -1, -1, 494, 495, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 509,
- -1, -1, -1, -1, 514, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 526, -1, -1, -1,
- 530, -1, -1, -1, -1, 535, -1, -1, -1, 539,
- -1, -1, -1, -1, -1, -1, 0, -1, 548, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, -1, -1, 208, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
- 264, 265, 266, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, -1, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, -1, -1, 218, 219,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 237, -1, -1,
- -1, 241, 242, -1, -1, -1, -1, 247, 248, 249,
- 250, 251, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 261, 262, 263, 264, 265, 266, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
- 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- -1, -1, 218, 219, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 237, -1, -1, -1, 241, 242, -1, -1, -1,
- -1, 247, 248, 249, 250, 251, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 261, 262, 263, 264, 265,
- 266, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, -1, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
@@ -1884,14 +1544,280 @@
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, -1, -1, 218, 219, -1, -1,
+ 192, 193, 0, 0, 194, 0, 0, 0, 4, 5,
+ 6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 195, 196, 197,
+ 198, 199, 47, 48, 49, 50, 51, 52, 0, 0,
+ 0, 0, 0, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 0,
+ 276, 194, 277, 278, 279, 280, 281, 282, 283, 0,
+ 0, 284, 285, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 286, 0, 0, 0, 365, 518, 0, 0, 0, 0,
+ 0, 288, 289, 290, 291, 4, 5, 6, 7, 8,
+ 9, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 47,
+ 48, 49, 50, 51, 52, 0, 0, 0, 0, 0,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 0, 276, 194, 277,
+ 278, 279, 280, 281, 282, 283, 0, 0, 284, 285,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 286, 0, 0,
+ 287, 4, 5, 6, 7, 8, 9, 10, 288, 289,
+ 290, 291, 0, 0, 0, 0, 0, 0, 0, 0,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 47, 48, 49, 50, 51,
+ 52, 0, 0, 0, 0, 0, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 0, 276, 194, 277, 278, 279, 280, 281,
+ 282, 283, 0, 0, 284, 285, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 286, 0, 0, 0, 365, 0, 0,
+ 0, 0, 0, 0, 288, 289, 290, 291, 4, 5,
+ 6, 7, 8, 9, 10, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 47, 48, 49, 50, 51, 52, 0, 0,
+ 0, 0, 0, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+ 185, 186, 187, 188, 189, 190, 191, 192, 193, 0,
+ 276, 194, 277, 278, 279, 280, 281, 282, 283, 0,
+ 0, 284, 285, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 286, 0, 0, 408, 4, 5, 6, 7, 8, 9,
+ 10, 288, 289, 290, 291, 0, 0, 0, 0, 0,
+ 0, 0, 0, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 48,
+ 49, 50, 51, 52, 0, 0, 0, 0, 0, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 190, 191, 192, 193, 0, 276, 194, 277, 278,
+ 279, 280, 281, 282, 283, 0, 0, 284, 285, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 286, 4, 5, 6,
+ 7, 8, 9, 10, 0, 0, 427, 288, 289, 290,
+ 291, 0, 0, 0, 0, 0, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 47, 48, 49, 50, 51, 52, 0, 0, 0,
+ 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 0, 276,
+ 194, 277, 278, 279, 280, 281, 282, 283, 0, 0,
+ 284, 285, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 286,
+ 4, 5, 6, 7, 8, 9, 10, 0, 0, 0,
+ 288, 289, 290, 291, 0, 0, 0, 0, 0, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 47, 48, 49, 50, 51, 52,
+ 0, 0, 0, 0, 0, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 383, 0, 276, 194, 277, 278, 279, 280, 281, 282,
+ 283, 0, 0, 284, 285, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 286, 4, 5, 6, 7, 8, 9, 10,
+ 0, 0, 0, 288, 289, 290, 291, 0, 0, 0,
+ 0, 0, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 47, 48, 49,
+ 50, 51, 52, 0, 0, 0, 0, 0, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 0, 0, 194
+};
+
+static const yytype_int16 yycheck[] =
+{
+ 0, 206, 214, 0, 270, 0, 286, 355, 229, 54,
+ 247, 434, 363, 226, 365, 323, 326, 368, 208, 208,
+ 495, 242, 238, 240, 219, 220, 238, 221, 222, 234,
+ 238, 248, 240, 527, 300, 510, 240, 531, 245, 247,
+ 238, 248, 536, 238, 248, 240, 267, 268, 261, 244,
+ 217, 218, 242, 258, 239, 248, 336, 240, 338, 248,
+ 245, 369, 256, 257, 247, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 423, 223, 224, 240, 240,
+ 317, 239, 239, 320, 247, 247, 247, 242, 245, 239,
+ 245, 245, 246, 248, 239, 245, 245, 363, 378, 365,
+ 245, 452, 368, 239, 414, 239, 250, 239, 252, 245,
+ 208, 245, 324, 245, 245, 246, 382, 540, 323, 390,
+ 391, 326, 394, 395, 396, 397, 245, 245, 245, 248,
+ 248, 248, 245, 245, 240, 248, 248, 264, 265, 266,
+ 392, 393, 253, 254, 255, 425, 456, 209, 496, 429,
+ 501, 243, 242, 245, 398, 399, 242, 208, 208, 240,
+ 247, 208, 239, 208, 369, 248, 238, 260, 259, 258,
+ 225, 227, 241, 209, 208, 248, 246, 248, 238, 238,
+ 446, 447, 248, 208, 238, 243, 452, 208, 245, 238,
+ 541, 239, 238, 207, 247, 416, 238, 241, 241, 208,
+ 16, 549, 482, 242, 239, 243, 206, 248, 239, 414,
+ 242, 248, 242, 400, 214, 495, 243, 401, 247, 405,
+ 402, 221, 403, 238, 221, 404, 221, 234, 228, 200,
+ 510, 284, 285, 238, 234, 501, 487, 322, 238, 415,
+ 490, 521, 526, 536, 232, 537, 510, 490, 221, -1,
+ 303, 456, -1, -1, 520, 535, -1, -1, 258, -1,
+ -1, -1, 262, -1, 317, -1, -1, 320, -1, -1,
+ -1, -1, -1, -1, -1, 541, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 237, -1, -1, -1, 241,
- -1, -1, -1, -1, -1, 247, 248, 249, 250, 251,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
- 262, 263, 264, 265, 266, 3, 4, 5, 6, 7,
+ 495, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 515, -1, 510, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 323, 324, -1, 326, -1, -1, -1,
+ -1, -1, -1, -1, 387, 388, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
+ 403, 404, 405, -1, -1, 355, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 369,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 414, -1, -1, -1, -1, -1,
+ -1, -1, -1, 423, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 434, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 456, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 490, -1, -1, -1, -1, 495, 496, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 510, -1, -1, -1, -1, 515, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 527, -1, -1,
+ -1, 531, -1, -1, -1, -1, 536, -1, -1, -1,
+ 540, -1, -1, -1, -1, -1, -1, 0, -1, 549,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, -1, -1, 209, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 262,
+ 263, 264, 265, 266, 267, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, -1, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -1912,14 +1838,171 @@
178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, -1, -1,
- 218, 219, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 237,
- -1, -1, -1, 241, -1, -1, -1, -1, -1, 247,
- 248, 249, 250, 251, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 261, 262, 263, 264, 265, 266, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, -1, 17, 18, 19, 20, 21, 22, 23,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, -1,
+ -1, 219, 220, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 238, -1, -1, -1, 242, 243, -1, -1, -1, -1,
+ 248, 249, 250, 251, 252, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, -1, -1, 219, 220, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 238, -1, -1, -1, 242,
+ 243, -1, -1, -1, -1, 248, 249, 250, 251, 252,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 262,
+ 263, 264, 265, 266, 267, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, -1, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, -1,
+ -1, 219, 220, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 238, -1, -1, -1, 242, -1, -1, -1, -1, -1,
+ 248, 249, 250, 251, 252, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, -1, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, -1, -1, 219, 220, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 238, -1, -1, -1, 242,
+ -1, -1, -1, -1, -1, 248, 249, 250, 251, 252,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 262,
+ 263, 264, 265, 266, 267, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 14, 15, -1, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, -1,
+ -1, 219, 220, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 238, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 248, 249, 250, 251, 252, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, -1, 208, 209, 210, 211, 212,
+ 213, 214, 215, 216, -1, -1, 219, 220, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 238, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 248, 249, 250, 251, 252,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 262,
+ 263, 264, 265, 266, 267, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, -1,
+ -1, 209, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
+ -1, -1, -1, -1, 262, 263, 264, 265, 266, 267,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
@@ -1938,12 +2021,12 @@
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
- 214, 215, -1, -1, 218, 219, -1, -1, -1, -1,
+ 204, 205, 206, -1, 208, 209, 210, 211, 212, 213,
+ 214, 215, 216, -1, -1, 219, 220, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 237, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 247, 248, 249, 250, 251, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
+ -1, -1, -1, -1, 238, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 249, 250, 251, 252, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 262, 263,
264, 265, 266, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 24, 25, 26, 27, 28, 29,
@@ -1964,90 +2047,86 @@
170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, -1, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, -1, -1, 218, 219,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 237, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 247, 248, 249,
- 250, 251, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 261, 262, 263, 264, 265, 266, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
- -1, -1, 208, -1, -1, -1, -1, -1, -1, -1,
+ 200, 201, 202, 203, 204, 205, 206, -1, 208, 209,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, -1, -1, -1, 261, 262, 263, 264, 265,
- 266, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, -1, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, -1, -1, 218, 219, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 248, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
+ -1, -1, 262, 263, 264, 265, 266, -1, -1, -1,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
+ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
+ 204, 205, 206, -1, -1, 209, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 237, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 248, 249, 250, 251, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 261, 262,
- 263, 264, 265, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
- 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
- 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
- 200, 201, 202, 203, 204, 205, -1, 207, 208, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 243,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, 262, 263,
+ 264, 265, 266, 24, 25, 26, 27, 28, 29, 30,
+ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
+ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+ 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+ 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
+ 201, 202, 203, 204, 205, 206, -1, -1, 209, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 247, 3, 4,
+ -1, -1, 243, -1, -1, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, 262, 263, 264, 265, 266, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, -1,
+ -1, 209, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 243, -1, -1, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
- -1, 261, 262, 263, 264, 265, -1, -1, -1, 24,
+ -1, -1, -1, -1, 262, 263, 264, 265, 266, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
@@ -2066,182 +2145,38 @@
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, -1, -1, 208, -1, -1, -1, -1, -1, -1,
+ 205, 206, -1, -1, 209, -1, -1, -1, 6, 7,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 262, 263, 264,
+ 265, 266, 60, 61, 62, 63, 64, 65, -1, -1,
+ -1, -1, -1, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, -1,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, -1,
+ -1, 219, 220, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 242, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, -1, -1, -1, -1, 261, 262, 263, 264,
- 265, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, -1, -1, 208, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 242,
- -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, -1, -1, -1, -1, -1, -1, 261, 262,
- 263, 264, 265, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
- 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
- 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, -1, -1, 208, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 242, -1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
- 261, 262, 263, 264, 265, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, -1, -1, 208,
- -1, -1, -1, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 261, 262, 263, 264, 265, 60, 61, 62,
- 63, 64, 65, -1, -1, -1, -1, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, -1, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, -1, -1, 218, 219, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 237, -1, -1, -1, 241, 242,
- -1, -1, -1, -1, -1, 248, 249, 250, 251, 6,
- 7, 8, 9, 10, 11, 12, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 60, 61, 62, 63, 64, 65, -1,
- -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, -1,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, -1,
- -1, 218, 219, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 237, -1, -1, 240, 6, 7, 8, 9, 10, 11,
- 12, 248, 249, 250, 251, -1, -1, -1, -1, -1,
- -1, -1, -1, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
- 62, 63, 64, 65, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 204, 205, -1, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, -1, -1, 218, 219, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 237, -1, -1, -1, 241,
- -1, -1, -1, -1, -1, -1, 248, 249, 250, 251,
- 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 60, 61, 62, 63, 64, 65,
- -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
- 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
- 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
- -1, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- -1, -1, 218, 219, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 237, -1, -1, 240, 6, 7, 8, 9, 10,
- 11, 12, 248, 249, 250, 251, -1, -1, -1, -1,
+ 238, -1, -1, -1, 242, 243, -1, -1, -1, -1,
+ -1, 249, 250, 251, 252, 6, 7, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 60,
- 61, 62, 63, 64, 65, -1, -1, -1, -1, 70,
+ 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
@@ -2255,63 +2190,17 @@
171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 204, 205, -1, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, -1, -1, 218, 219, -1,
+ 201, 202, 203, 204, 205, 206, -1, 208, 209, 210,
+ 211, 212, 213, 214, 215, 216, -1, -1, 219, 220,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 237, 6, 7, 8,
- 9, 10, 11, 12, -1, -1, 247, 248, 249, 250,
- 251, -1, -1, -1, -1, -1, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 60, 61, 62, 63, 64, 65, -1, -1, -1,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
- 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, -1, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, -1, -1, 218,
- 219, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 237, 6,
- 7, 8, 9, 10, 11, 12, -1, -1, -1, 248,
- 249, 250, 251, -1, -1, -1, -1, -1, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 60, 61, 62, 63, 64, 65, -1,
- -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
- 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
- 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 201, 202, 203, 204, 205, -1,
- 207, 208, 209, 210, 211, 212, 213, 214, 215, -1,
- -1, 218, 219, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 237, 6, 7, 8, 9, 10, 11, 12, -1, -1,
- -1, 248, 249, 250, 251, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 238, -1, -1,
+ 241, 6, 7, 8, 9, 10, 11, 12, 249, 250,
+ 251, 252, -1, -1, -1, -1, -1, -1, -1, -1,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 60, 61, 62, 63, 64,
- 65, -1, -1, -1, -1, 70, 71, 72, 73, 74,
+ 65, -1, -1, -1, -1, -1, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
@@ -2325,7 +2214,125 @@
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, -1, -1, 208
+ 205, 206, -1, 208, 209, 210, 211, 212, 213, 214,
+ 215, 216, -1, -1, 219, 220, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 238, -1, -1, -1, 242, -1, -1,
+ -1, -1, -1, -1, 249, 250, 251, 252, 6, 7,
+ 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 60, 61, 62, 63, 64, 65, -1, -1,
+ -1, -1, -1, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
+ 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
+ 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
+ 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 201, 202, 203, 204, 205, 206, -1,
+ 208, 209, 210, 211, 212, 213, 214, 215, 216, -1,
+ -1, 219, 220, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 238, -1, -1, 241, 6, 7, 8, 9, 10, 11,
+ 12, 249, 250, 251, 252, -1, -1, -1, -1, -1,
+ -1, -1, -1, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 60, 61,
+ 62, 63, 64, 65, -1, -1, -1, -1, -1, 71,
+ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
+ 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
+ 202, 203, 204, 205, 206, -1, 208, 209, 210, 211,
+ 212, 213, 214, 215, 216, -1, -1, 219, 220, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 238, 6, 7, 8,
+ 9, 10, 11, 12, -1, -1, 248, 249, 250, 251,
+ 252, -1, -1, -1, -1, -1, 25, 26, 27, 28,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 39, 40, 41, 42, 43, 44, 45, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 60, 61, 62, 63, 64, 65, -1, -1, -1,
+ -1, -1, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
+ 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, -1, 208,
+ 209, 210, 211, 212, 213, 214, 215, 216, -1, -1,
+ 219, 220, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 238,
+ 6, 7, 8, 9, 10, 11, 12, -1, -1, -1,
+ 249, 250, 251, 252, -1, -1, -1, -1, -1, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 60, 61, 62, 63, 64, 65,
+ -1, -1, -1, -1, -1, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
+ 206, -1, 208, 209, 210, 211, 212, 213, 214, 215,
+ 216, -1, -1, 219, 220, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 238, 6, 7, 8, 9, 10, 11, 12,
+ -1, -1, -1, 249, 250, 251, 252, -1, -1, -1,
+ -1, -1, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 60, 61, 62,
+ 63, 64, 65, -1, -1, -1, -1, -1, 71, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
+ 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
+ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, -1, -1, 209
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2351,91 +2358,91 @@
173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 208, 261, 262, 263, 264, 265, 266,
- 301, 302, 305, 306, 307, 308, 312, 313, 314, 315,
- 316, 317, 320, 321, 322, 323, 325, 327, 328, 329,
- 366, 367, 368, 237, 237, 207, 241, 328, 207, 247,
- 247, 369, 238, 244, 309, 310, 311, 321, 325, 244,
- 247, 207, 207, 247, 322, 325, 239, 326, 0, 367,
- 208, 324, 54, 207, 318, 319, 241, 331, 325, 247,
- 326, 241, 348, 310, 309, 311, 207, 207, 237, 246,
- 326, 241, 244, 247, 304, 207, 209, 210, 211, 212,
- 213, 214, 215, 218, 219, 237, 240, 248, 249, 250,
- 251, 271, 272, 273, 275, 276, 277, 278, 279, 280,
+ 203, 204, 205, 206, 209, 262, 263, 264, 265, 266,
+ 267, 302, 303, 306, 307, 308, 309, 313, 314, 315,
+ 316, 317, 318, 321, 322, 323, 324, 326, 328, 329,
+ 330, 367, 368, 369, 238, 238, 208, 242, 329, 208,
+ 248, 248, 370, 239, 245, 310, 311, 312, 322, 326,
+ 245, 248, 208, 208, 248, 323, 326, 240, 327, 0,
+ 368, 209, 325, 54, 208, 319, 320, 242, 332, 326,
+ 248, 327, 242, 349, 311, 310, 312, 208, 208, 238,
+ 247, 327, 242, 245, 248, 305, 208, 210, 211, 212,
+ 213, 214, 215, 216, 219, 220, 238, 241, 249, 250,
+ 251, 252, 272, 273, 274, 276, 277, 278, 279, 280,
281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 325, 239, 238, 244, 246,
- 238, 244, 330, 321, 325, 332, 333, 247, 247, 13,
- 14, 15, 17, 18, 19, 20, 21, 22, 23, 206,
- 241, 242, 247, 282, 295, 297, 299, 301, 305, 325,
- 338, 339, 340, 341, 349, 350, 351, 354, 357, 358,
- 365, 326, 246, 326, 241, 297, 336, 246, 303, 207,
- 244, 247, 282, 282, 299, 218, 219, 239, 243, 238,
- 238, 244, 205, 297, 237, 282, 252, 253, 254, 249,
- 251, 216, 217, 220, 221, 255, 256, 222, 223, 259,
- 258, 257, 224, 226, 225, 260, 240, 240, 295, 208,
- 295, 300, 319, 332, 325, 207, 334, 335, 242, 333,
- 247, 247, 360, 237, 237, 247, 247, 299, 237, 299,
- 245, 237, 242, 342, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 246, 298, 244, 247, 242, 339,
- 336, 246, 336, 337, 336, 332, 207, 238, 274, 299,
- 207, 297, 282, 282, 282, 284, 284, 285, 285, 286,
- 286, 286, 286, 287, 287, 288, 289, 290, 291, 292,
- 293, 296, 240, 242, 334, 326, 244, 247, 339, 361,
- 299, 247, 299, 245, 359, 349, 297, 297, 336, 242,
- 244, 242, 240, 299, 247, 335, 206, 338, 350, 362,
- 238, 238, 299, 314, 321, 353, 343, 242, 336, 245,
- 237, 353, 363, 364, 345, 346, 347, 352, 355, 207,
- 238, 242, 297, 299, 247, 238, 16, 341, 340, 241,
- 246, 340, 344, 348, 238, 299, 344, 345, 349, 356,
- 336, 247, 242
+ 291, 292, 293, 294, 295, 296, 326, 240, 239, 245,
+ 247, 239, 245, 331, 322, 326, 333, 334, 248, 248,
+ 13, 14, 15, 17, 18, 19, 20, 21, 22, 23,
+ 207, 242, 243, 248, 283, 296, 298, 300, 302, 306,
+ 326, 339, 340, 341, 342, 350, 351, 352, 355, 358,
+ 359, 366, 327, 247, 327, 242, 298, 337, 247, 304,
+ 208, 245, 248, 283, 283, 300, 219, 220, 240, 244,
+ 239, 239, 245, 206, 298, 238, 283, 253, 254, 255,
+ 250, 252, 217, 218, 221, 222, 256, 257, 223, 224,
+ 260, 259, 258, 225, 227, 226, 261, 241, 241, 296,
+ 209, 296, 301, 320, 333, 326, 208, 335, 336, 243,
+ 334, 248, 248, 361, 238, 238, 248, 248, 300, 238,
+ 300, 246, 238, 243, 343, 228, 229, 230, 231, 232,
+ 233, 234, 235, 236, 237, 247, 299, 245, 248, 243,
+ 340, 337, 247, 337, 338, 337, 333, 208, 239, 275,
+ 300, 208, 298, 283, 283, 283, 285, 285, 286, 286,
+ 287, 287, 287, 287, 288, 288, 289, 290, 291, 292,
+ 293, 294, 297, 241, 243, 335, 327, 245, 248, 340,
+ 362, 300, 248, 300, 246, 360, 350, 298, 298, 337,
+ 243, 245, 243, 241, 300, 248, 336, 207, 339, 351,
+ 363, 239, 239, 300, 315, 322, 354, 344, 243, 337,
+ 246, 238, 354, 364, 365, 346, 347, 348, 353, 356,
+ 208, 239, 243, 298, 300, 248, 239, 16, 342, 341,
+ 242, 247, 341, 345, 349, 239, 300, 345, 346, 350,
+ 357, 337, 248, 243
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 270, 271, 272, 272, 272, 272, 272, 272, 272,
- 272, 272, 273, 273, 273, 273, 273, 273, 274, 275,
- 276, 277, 277, 278, 278, 279, 279, 280, 281, 281,
- 282, 282, 282, 282, 283, 283, 283, 283, 284, 284,
- 284, 284, 285, 285, 285, 286, 286, 286, 287, 287,
- 287, 287, 287, 288, 288, 288, 289, 289, 290, 290,
- 291, 291, 292, 292, 293, 293, 294, 294, 295, 296,
- 295, 297, 297, 298, 298, 298, 298, 298, 298, 298,
- 298, 298, 298, 298, 299, 299, 300, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 303, 302, 304, 304,
- 305, 306, 306, 307, 307, 308, 309, 309, 310, 310,
- 310, 310, 311, 312, 312, 312, 312, 312, 313, 313,
- 313, 313, 313, 314, 314, 315, 316, 316, 316, 317,
- 318, 318, 319, 319, 319, 320, 321, 321, 322, 322,
- 322, 322, 322, 322, 323, 323, 323, 323, 323, 323,
- 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
- 323, 323, 323, 324, 324, 325, 325, 326, 326, 326,
- 326, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 327, 327,
- 327, 327, 328, 328, 328, 330, 329, 331, 329, 332,
- 332, 333, 333, 334, 334, 335, 335, 336, 336, 336,
- 337, 337, 338, 339, 339, 340, 340, 340, 340, 340,
- 340, 340, 341, 342, 343, 341, 344, 344, 346, 345,
- 347, 345, 348, 348, 349, 349, 350, 350, 351, 352,
- 352, 353, 353, 355, 354, 356, 356, 357, 357, 359,
- 358, 360, 358, 361, 358, 362, 362, 363, 363, 364,
- 364, 365, 365, 365, 365, 365, 366, 366, 367, 367,
- 369, 368
+ 0, 271, 272, 273, 273, 273, 273, 273, 273, 273,
+ 273, 273, 274, 274, 274, 274, 274, 274, 275, 276,
+ 277, 278, 278, 279, 279, 280, 280, 281, 282, 282,
+ 283, 283, 283, 283, 284, 284, 284, 284, 285, 285,
+ 285, 285, 286, 286, 286, 287, 287, 287, 288, 288,
+ 288, 288, 288, 289, 289, 289, 290, 290, 291, 291,
+ 292, 292, 293, 293, 294, 294, 295, 295, 296, 297,
+ 296, 298, 298, 299, 299, 299, 299, 299, 299, 299,
+ 299, 299, 299, 299, 300, 300, 301, 302, 302, 302,
+ 302, 302, 302, 302, 302, 302, 304, 303, 305, 305,
+ 306, 307, 307, 308, 308, 309, 310, 310, 311, 311,
+ 311, 311, 312, 313, 313, 313, 313, 313, 314, 314,
+ 314, 314, 314, 315, 315, 316, 317, 317, 317, 317,
+ 318, 319, 319, 320, 320, 320, 321, 322, 322, 323,
+ 323, 323, 323, 323, 323, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 325, 325, 326, 326, 327, 327,
+ 327, 327, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 329, 329, 329, 331, 330, 332, 330,
+ 333, 333, 334, 334, 335, 335, 336, 336, 337, 337,
+ 337, 338, 338, 339, 340, 340, 341, 341, 341, 341,
+ 341, 341, 341, 342, 343, 344, 342, 345, 345, 347,
+ 346, 348, 346, 349, 349, 350, 350, 351, 351, 352,
+ 353, 353, 354, 354, 356, 355, 357, 357, 358, 358,
+ 360, 359, 361, 359, 362, 359, 363, 363, 364, 364,
+ 365, 365, 366, 366, 366, 366, 366, 367, 367, 368,
+ 368, 370, 369
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -2453,12 +2460,12 @@
2, 3, 4, 2, 3, 4, 0, 6, 2, 3,
2, 1, 1, 2, 3, 3, 2, 3, 2, 1,
2, 1, 1, 1, 3, 4, 6, 5, 1, 2,
- 3, 5, 4, 1, 2, 1, 1, 1, 1, 4,
- 1, 3, 1, 3, 1, 1, 1, 2, 1, 1,
+ 3, 5, 4, 1, 2, 1, 1, 1, 1, 1,
+ 4, 1, 3, 1, 3, 1, 1, 1, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 4, 1, 3, 1, 2, 2, 3, 3,
- 4, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 4, 1, 3, 1, 2, 2, 3,
+ 3, 4, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -2475,15 +2482,15 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 6, 0, 5, 1,
- 2, 3, 4, 1, 3, 1, 2, 1, 3, 4,
- 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 0, 0, 5, 1, 1, 0, 2,
- 0, 2, 2, 3, 1, 2, 1, 2, 5, 3,
- 1, 1, 4, 0, 8, 0, 1, 3, 2, 0,
- 6, 0, 8, 0, 7, 1, 1, 1, 0, 2,
- 3, 2, 2, 2, 3, 2, 1, 2, 1, 1,
- 0, 3
+ 1, 1, 1, 1, 1, 1, 0, 6, 0, 5,
+ 1, 2, 3, 4, 1, 3, 1, 2, 1, 3,
+ 4, 1, 3, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 0, 0, 5, 1, 1, 0,
+ 2, 0, 2, 2, 3, 1, 2, 1, 2, 5,
+ 3, 1, 1, 4, 0, 8, 0, 1, 3, 2,
+ 0, 6, 0, 8, 0, 7, 1, 1, 1, 0,
+ 2, 3, 2, 2, 2, 3, 2, 1, 2, 1,
+ 1, 0, 3
};
@@ -3170,7 +3177,7 @@
{
(yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
}
-#line 3174 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 3:
@@ -3178,7 +3185,7 @@
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 3182 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 4:
@@ -3186,7 +3193,7 @@
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
}
-#line 3190 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 5:
@@ -3195,7 +3202,7 @@
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
}
-#line 3199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 6:
@@ -3204,7 +3211,7 @@
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
}
-#line 3208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 7:
@@ -3213,7 +3220,7 @@
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
}
-#line 3217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 8:
@@ -3221,7 +3228,7 @@
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
}
-#line 3225 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 9:
@@ -3230,7 +3237,7 @@
parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
}
-#line 3234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 10:
@@ -3238,7 +3245,7 @@
{
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
}
-#line 3242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 11:
@@ -3248,7 +3255,7 @@
if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
-#line 3252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 12:
@@ -3256,7 +3263,7 @@
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 3260 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 13:
@@ -3264,7 +3271,7 @@
{
(yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
}
-#line 3268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 14:
@@ -3272,7 +3279,7 @@
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 3276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 15:
@@ -3280,7 +3287,7 @@
{
(yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
}
-#line 3284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 16:
@@ -3290,7 +3297,7 @@
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
}
-#line 3294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 17:
@@ -3300,7 +3307,7 @@
parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
}
-#line 3304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 18:
@@ -3309,7 +3316,7 @@
parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 3313 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 19:
@@ -3318,7 +3325,7 @@
(yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
delete (yyvsp[0].interm).function;
}
-#line 3322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 20:
@@ -3326,7 +3333,7 @@
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 3330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 21:
@@ -3335,7 +3342,7 @@
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 3339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 22:
@@ -3344,7 +3351,7 @@
(yyval.interm) = (yyvsp[-1].interm);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 3348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 23:
@@ -3352,7 +3359,7 @@
{
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 3356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 24:
@@ -3360,7 +3367,7 @@
{
(yyval.interm) = (yyvsp[0].interm);
}
-#line 3364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 25:
@@ -3372,7 +3379,7 @@
(yyval.interm).function = (yyvsp[-1].interm).function;
(yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
}
-#line 3376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 26:
@@ -3384,7 +3391,7 @@
(yyval.interm).function = (yyvsp[-2].interm).function;
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
}
-#line 3388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 27:
@@ -3392,7 +3399,7 @@
{
(yyval.interm) = (yyvsp[-1].interm);
}
-#line 3396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 28:
@@ -3402,7 +3409,7 @@
(yyval.interm).intermNode = 0;
(yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
}
-#line 3406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 29:
@@ -3434,7 +3441,7 @@
(yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull);
}
}
-#line 3438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 30:
@@ -3445,7 +3452,7 @@
if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
}
-#line 3449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 31:
@@ -3454,7 +3461,7 @@
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
}
-#line 3458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 32:
@@ -3463,7 +3470,7 @@
parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
}
-#line 3467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 33:
@@ -3484,38 +3491,38 @@
(yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
}
}
-#line 3488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 34:
#line 447 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
-#line 3494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 35:
#line 448 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
-#line 3500 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 36:
#line 449 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
-#line 3506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 37:
#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
-#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 38:
#line 456 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 39:
@@ -3525,7 +3532,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 40:
@@ -3535,7 +3542,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 41:
@@ -3546,13 +3553,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3550 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 42:
#line 476 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 43:
@@ -3562,7 +3569,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 44:
@@ -3572,13 +3579,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 45:
#line 490 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3582 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 46:
@@ -3589,7 +3596,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3593 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 47:
@@ -3600,13 +3607,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3604 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 48:
#line 506 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 49:
@@ -3616,7 +3623,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3620 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 50:
@@ -3626,7 +3633,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3630 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 51:
@@ -3636,7 +3643,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3640 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 52:
@@ -3646,13 +3653,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 53:
#line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 54:
@@ -3665,7 +3672,7 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 55:
@@ -3678,13 +3685,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 56:
#line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 57:
@@ -3695,13 +3702,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 58:
#line 560 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 59:
@@ -3712,13 +3719,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 60:
#line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 61:
@@ -3729,13 +3736,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 3733 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 62:
#line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 63:
@@ -3745,13 +3752,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 64:
#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3755 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 65:
@@ -3761,13 +3768,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 66:
#line 598 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3771 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 67:
@@ -3777,13 +3784,13 @@
if ((yyval.interm.intermTypedNode) == 0)
(yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
}
-#line 3781 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 68:
#line 607 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 69:
@@ -3791,7 +3798,7 @@
{
++parseContext.controlFlowNestingLevel;
}
-#line 3795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 70:
@@ -3808,13 +3815,13 @@
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 3812 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 71:
#line 626 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
-#line 3818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 72:
@@ -3831,7 +3838,7 @@
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
}
-#line 3835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 73:
@@ -3840,7 +3847,7 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAssign;
}
-#line 3844 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 74:
@@ -3849,7 +3856,7 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpMulAssign;
}
-#line 3853 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 75:
@@ -3858,7 +3865,7 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpDivAssign;
}
-#line 3862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 76:
@@ -3868,7 +3875,7 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpModAssign;
}
-#line 3872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 77:
@@ -3877,7 +3884,7 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpAddAssign;
}
-#line 3881 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 78:
@@ -3886,7 +3893,7 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).op = EOpSubAssign;
}
-#line 3890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 79:
@@ -3895,7 +3902,7 @@
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
}
-#line 3899 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 80:
@@ -3904,7 +3911,7 @@
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
}
-#line 3908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 81:
@@ -3913,7 +3920,7 @@
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
}
-#line 3917 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 82:
@@ -3922,7 +3929,7 @@
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
}
-#line 3926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 83:
@@ -3931,7 +3938,7 @@
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
(yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
}
-#line 3935 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 84:
@@ -3939,52 +3946,53 @@
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 3943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 85:
#line 693 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
(yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
if ((yyval.interm.intermTypedNode) == 0) {
parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
}
-#line 3955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 86:
-#line 703 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 704 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 3964 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 87:
-#line 710 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 711 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
(yyval.interm.intermNode) = 0;
// TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
}
-#line 3974 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 88:
-#line 715 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 716 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
(yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
}
-#line 3984 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 3992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 89:
-#line 720 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 721 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
@@ -3993,75 +4001,75 @@
parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
(yyval.interm.intermNode) = 0;
}
-#line 3997 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 90:
-#line 728 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 729 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
(yyval.interm.intermNode) = 0;
}
-#line 4006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 91:
-#line 732 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 733 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 4015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 92:
-#line 736 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 737 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
(yyval.interm.intermNode) = 0;
}
-#line 4024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 93:
-#line 740 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 741 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
(yyval.interm.intermNode) = 0;
}
-#line 4034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 94:
-#line 745 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 746 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
(yyval.interm.intermNode) = 0;
}
-#line 4044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 95:
-#line 750 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
(yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
(yyval.interm.intermNode) = 0;
}
-#line 4055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 96:
-#line 759 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
-#line 4061 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 97:
-#line 759 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
--parseContext.structNestingLevel;
parseContext.blockName = (yyvsp[-4].lex).string;
@@ -4071,54 +4079,54 @@
(yyval.interm).loc = (yyvsp[-5].interm.type).loc;
(yyval.interm).typeList = (yyvsp[-1].interm.typeList);
}
-#line 4075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 98:
-#line 770 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 771 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.identifierList) = new TIdentifierList;
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 4084 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 99:
-#line 774 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 775 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
(yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
}
-#line 4093 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 100:
-#line 781 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 782 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).function = (yyvsp[-1].interm.function);
(yyval.interm).loc = (yyvsp[0].lex).loc;
}
-#line 4102 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 101:
-#line 788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.function) = (yyvsp[0].interm.function);
- }
#line 4110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 102:
-#line 791 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 101:
+#line 789 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.function) = (yyvsp[0].interm.function);
}
#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
+ case 102:
+#line 792 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.function) = (yyvsp[0].interm.function);
+ }
+#line 4126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
case 103:
-#line 798 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 799 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// Add the parameter
(yyval.interm.function) = (yyvsp[-1].interm.function);
@@ -4127,11 +4135,11 @@
else
delete (yyvsp[0].interm).param.type;
}
-#line 4131 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 104:
-#line 806 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 807 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
//
// Only first parameter of one-parameter functions can be void
@@ -4149,11 +4157,11 @@
(yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
}
}
-#line 4153 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 105:
-#line 826 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 827 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
@@ -4168,11 +4176,11 @@
function = new TFunction((yyvsp[-1].lex).string, type);
(yyval.interm.function) = function;
}
-#line 4172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 106:
-#line 844 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 845 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-1].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -4188,11 +4196,11 @@
(yyval.interm).loc = (yyvsp[0].lex).loc;
(yyval.interm).param = param;
}
-#line 4192 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 107:
-#line 859 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 860 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -4210,11 +4218,11 @@
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).param = param;
}
-#line 4214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 108:
-#line 882 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 883 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[0].interm);
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
@@ -4226,11 +4234,11 @@
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
}
-#line 4230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 109:
-#line 893 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 894 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[0].interm);
@@ -4238,11 +4246,11 @@
parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
}
-#line 4242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 110:
-#line 903 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 904 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[0].interm);
if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
@@ -4253,11 +4261,11 @@
parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
}
-#line 4257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 111:
-#line 913 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 914 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[0].interm);
@@ -4265,118 +4273,118 @@
parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
}
-#line 4269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 112:
-#line 923 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 924 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
(yyval.interm).param = param;
if ((yyvsp[0].interm.type).arraySizes)
parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
}
-#line 4280 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 113:
-#line 932 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm) = (yyvsp[0].interm);
- }
#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
+ case 113:
+#line 933 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm) = (yyvsp[0].interm);
+ }
+#line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
case 114:
-#line 935 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 936 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[-2].interm);
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
}
-#line 4297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 115:
-#line 939 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 940 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[-3].interm);
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
}
-#line 4306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 116:
-#line 943 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 944 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[-5].interm).type;
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
}
-#line 4316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 117:
-#line 948 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 949 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[-4].interm).type;
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
}
-#line 4326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 118:
-#line 956 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 957 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[0].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
}
-#line 4336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 119:
-#line 961 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[-1].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
}
-#line 4346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 120:
-#line 966 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 967 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[-2].interm.type);
(yyval.interm).intermNode = 0;
parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
}
-#line 4356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 121:
-#line 971 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 972 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[-4].interm.type);
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
}
-#line 4366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 122:
-#line 976 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 977 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).type = (yyvsp[-3].interm.type);
TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
(yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
}
-#line 4376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 123:
-#line 985 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 986 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[0].interm.type);
@@ -4388,11 +4396,11 @@
parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
}
-#line 4392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 124:
-#line 996 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 997 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
@@ -4417,22 +4425,22 @@
(parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
(yyval.interm.type).qualifier.smooth = true;
}
-#line 4421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 125:
-#line 1023 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.invariant = true;
}
-#line 4432 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 126:
-#line 1032 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1033 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
@@ -4440,11 +4448,11 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.smooth = true;
}
-#line 4444 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 127:
-#line 1039 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
@@ -4452,11 +4460,11 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.flat = true;
}
-#line 4456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 128:
-#line 1046 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1047 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective");
@@ -4464,84 +4472,98 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.nopersp = true;
}
-#line 4468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 129:
-#line 1056 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type) = (yyvsp[-1].interm.type);
- }
#line 4476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 130:
-#line 1062 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 129:
+#line 1054 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- (yyval.interm.type) = (yyvsp[0].interm.type);
+#ifdef AMD_EXTENSIONS
+ parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
+ parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
+ parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
+ (yyval.interm.type).init((yyvsp[0].lex).loc);
+ (yyval.interm.type).qualifier.explicitInterp = true;
+#endif
}
-#line 4484 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 130:
+#line 1066 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type) = (yyvsp[-1].interm.type);
+ }
+#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 131:
-#line 1065 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type) = (yyvsp[0].interm.type);
+ }
+#line 4506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 132:
+#line 1075 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[-2].interm.type);
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
}
-#line 4494 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 132:
-#line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 133:
+#line 1082 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
}
-#line 4503 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 133:
-#line 1076 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 134:
+#line 1086 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[-2].lex).loc);
parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
}
-#line 4512 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 134:
-#line 1080 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 135:
+#line 1090 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ // because "shared" is both an identifier and a keyword
(yyval.interm.type).init((yyvsp[0].lex).loc);
TString strShared("shared");
parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
}
-#line 4522 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 135:
-#line 1088 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 136:
+#line 1098 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.noContraction = true;
}
-#line 4533 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 136:
-#line 1097 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4541 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 137:
-#line 1100 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1107 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type) = (yyvsp[0].interm.type);
+ }
+#line 4563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 138:
+#line 1110 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[-1].interm.type);
if ((yyval.interm.type).basicType == EbtVoid)
@@ -4550,71 +4572,71 @@
(yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
}
-#line 4554 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 138:
-#line 1111 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type) = (yyvsp[0].interm.type);
- }
-#line 4562 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 139:
-#line 1114 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 4570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 140:
-#line 1117 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 4578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 141:
-#line 1120 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- // allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 4587 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 142:
-#line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1130 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 4596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 143:
-#line 1128 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1134 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// allow inheritance of storage qualifier from block declaration
(yyval.interm.type) = (yyvsp[0].interm.type);
}
-#line 4605 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 144:
-#line 1135 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1138 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ // allow inheritance of storage qualifier from block declaration
+ (yyval.interm.type) = (yyvsp[0].interm.type);
+ }
+#line 4627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 145:
+#line 1145 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
}
-#line 4614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 145:
-#line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 146:
+#line 1149 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
@@ -4627,11 +4649,11 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 4631 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4653 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 146:
-#line 1151 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 147:
+#line 1161 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
@@ -4646,43 +4668,43 @@
else
(yyval.interm.type).qualifier.storage = EvqVaryingIn;
}
-#line 4650 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4672 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 147:
-#line 1165 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 148:
+#line 1175 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqInOut;
}
-#line 4660 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 148:
-#line 1170 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 149:
+#line 1180 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "in");
(yyval.interm.type).init((yyvsp[0].lex).loc);
// whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
(yyval.interm.type).qualifier.storage = EvqIn;
}
-#line 4671 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4693 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 149:
-#line 1176 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 150:
+#line 1186 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "out");
(yyval.interm.type).init((yyvsp[0].lex).loc);
// whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
(yyval.interm.type).qualifier.storage = EvqOut;
}
-#line 4682 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4704 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 150:
-#line 1182 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 151:
+#line 1192 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
@@ -4690,52 +4712,52 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.centroid = true;
}
-#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 151:
-#line 1189 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 152:
+#line 1199 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.patch = true;
}
-#line 4705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4727 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 152:
-#line 1195 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 153:
+#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.sample = true;
}
-#line 4715 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 153:
-#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 154:
+#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqUniform;
}
-#line 4725 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 154:
-#line 1205 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 155:
+#line 1215 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqBuffer;
}
-#line 4735 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 155:
-#line 1210 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 156:
+#line 1220 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
@@ -4743,67 +4765,67 @@
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqShared;
}
-#line 4747 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 156:
-#line 1217 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 157:
+#line 1227 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.coherent = true;
}
-#line 4756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 157:
-#line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 158:
+#line 1231 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.volatil = true;
}
-#line 4765 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4787 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 158:
-#line 1225 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 159:
+#line 1235 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.restrict = true;
}
-#line 4774 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 159:
-#line 1229 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 160:
+#line 1239 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.readonly = true;
}
-#line 4783 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4805 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 160:
-#line 1233 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 161:
+#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.writeonly = true;
}
-#line 4792 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4814 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 161:
-#line 1237 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 162:
+#line 1247 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
(yyval.interm.type).init((yyvsp[0].lex).loc);
(yyval.interm.type).qualifier.storage = EvqUniform;
}
-#line 4803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 162:
-#line 1243 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 163:
+#line 1253 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
@@ -4813,56 +4835,56 @@
// 1) make sure each identifier is a type declared earlier with SUBROUTINE
// 2) save all of the identifiers for future comparison with the declared function
}
-#line 4817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 163:
-#line 1255 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- // TODO: 4.0 functionality: subroutine type to list
- }
-#line 4825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 164:
-#line 1258 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1265 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
+ // TODO: 4.0 functionality: subroutine type to list
}
-#line 4832 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4847 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 165:
-#line 1263 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1268 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ }
+#line 4854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 166:
+#line 1273 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[0].interm.type);
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
}
-#line 4841 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4863 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 166:
-#line 1267 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 167:
+#line 1277 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0);
(yyval.interm.type) = (yyvsp[-1].interm.type);
(yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
(yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
}
-#line 4852 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4874 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 167:
-#line 1276 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 168:
+#line 1286 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).loc = (yyvsp[-1].lex).loc;
(yyval.interm).arraySizes = new TArraySizes;
(yyval.interm).arraySizes->addInnerSize();
}
-#line 4862 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 168:
-#line 1281 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 169:
+#line 1291 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm).loc = (yyvsp[-2].lex).loc;
(yyval.interm).arraySizes = new TArraySizes;
@@ -4871,20 +4893,20 @@
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 169:
-#line 1289 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 170:
+#line 1299 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[-2].interm);
(yyval.interm).arraySizes->addInnerSize();
}
-#line 4884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 170:
-#line 1293 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 171:
+#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm) = (yyvsp[-3].interm);
@@ -4892,1738 +4914,1738 @@
parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size);
(yyval.interm).arraySizes->addInnerSize(size);
}
-#line 4896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 171:
-#line 1303 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 172:
+#line 1313 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtVoid;
}
-#line 4905 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4927 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 172:
-#line 1307 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 173:
+#line 1317 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
}
-#line 4914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 173:
-#line 1311 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 174:
+#line 1321 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
}
-#line 4924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 174:
-#line 1316 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 175:
+#line 1326 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
}
-#line 4933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4955 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 175:
-#line 1320 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 176:
+#line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
}
-#line 4943 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4965 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 176:
-#line 1325 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 177:
+#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
}
-#line 4953 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4975 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 177:
-#line 1330 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 178:
+#line 1340 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
}
-#line 4963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4985 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 178:
-#line 1335 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 179:
+#line 1345 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
}
-#line 4972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 179:
-#line 1339 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setVector(2);
- }
-#line 4982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 4994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 180:
-#line 1344 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setVector(3);
- }
-#line 4992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 181:
#line 1349 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setVector(4);
+ (yyval.interm.type).setVector(2);
}
-#line 5002 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5004 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 181:
+#line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtFloat;
+ (yyval.interm.type).setVector(3);
+ }
+#line 5014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 182:
-#line 1354 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1359 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtDouble;
- (yyval.interm.type).setVector(2);
- }
-#line 5013 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 183:
-#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtDouble;
- (yyval.interm.type).setVector(3);
+ (yyval.interm.type).basicType = EbtFloat;
+ (yyval.interm.type).setVector(4);
}
#line 5024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
+ case 183:
+#line 1364 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtDouble;
+ (yyval.interm.type).setVector(2);
+ }
+#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
case 184:
-#line 1366 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1370 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtDouble;
+ (yyval.interm.type).setVector(3);
+ }
+#line 5046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 185:
+#line 1376 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setVector(4);
}
-#line 5035 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 185:
-#line 1372 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtBool;
- (yyval.interm.type).setVector(2);
- }
-#line 5045 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5057 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 186:
-#line 1377 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtBool;
- (yyval.interm.type).setVector(3);
- }
-#line 5055 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 187:
#line 1382 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtBool;
- (yyval.interm.type).setVector(4);
+ (yyval.interm.type).setVector(2);
}
-#line 5065 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 188:
+ case 187:
#line 1387 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt;
- (yyval.interm.type).setVector(2);
+ (yyval.interm.type).basicType = EbtBool;
+ (yyval.interm.type).setVector(3);
}
-#line 5075 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5077 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 189:
+ case 188:
#line 1392 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt;
- (yyval.interm.type).setVector(3);
+ (yyval.interm.type).basicType = EbtBool;
+ (yyval.interm.type).setVector(4);
}
-#line 5085 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5087 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 190:
+ case 189:
#line 1397 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt;
- (yyval.interm.type).setVector(4);
+ (yyval.interm.type).setVector(2);
}
-#line 5095 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5097 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 190:
+#line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtInt;
+ (yyval.interm.type).setVector(3);
+ }
+#line 5107 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 191:
-#line 1402 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1407 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt64;
- (yyval.interm.type).setVector(2);
- }
-#line 5106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 192:
-#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtInt64;
- (yyval.interm.type).setVector(3);
+ (yyval.interm.type).basicType = EbtInt;
+ (yyval.interm.type).setVector(4);
}
#line 5117 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
+ case 192:
+#line 1412 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtInt64;
+ (yyval.interm.type).setVector(2);
+ }
+#line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
case 193:
-#line 1414 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1418 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtInt64;
+ (yyval.interm.type).setVector(3);
+ }
+#line 5139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 194:
+#line 1424 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtInt64;
(yyval.interm.type).setVector(4);
}
-#line 5128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 194:
-#line 1420 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 195:
+#line 1430 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint;
(yyval.interm.type).setVector(2);
}
-#line 5139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 195:
-#line 1426 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtUint;
- (yyval.interm.type).setVector(3);
- }
-#line 5150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 196:
-#line 1432 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtUint;
- (yyval.interm.type).setVector(4);
- }
#line 5161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
+ case 196:
+#line 1436 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtUint;
+ (yyval.interm.type).setVector(3);
+ }
+#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
case 197:
-#line 1438 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1442 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtUint;
+ (yyval.interm.type).setVector(4);
+ }
+#line 5183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 198:
+#line 1448 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(2);
}
-#line 5172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 198:
-#line 1444 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 199:
+#line 1454 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(3);
}
-#line 5183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 199:
-#line 1450 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 200:
+#line 1460 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtUint64;
(yyval.interm.type).setVector(4);
}
-#line 5194 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 200:
-#line 1456 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 2);
- }
-#line 5204 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 201:
-#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
- (yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(3, 3);
- }
-#line 5214 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 202:
#line 1466 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(4, 4);
+ (yyval.interm.type).setMatrix(2, 2);
}
-#line 5224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 203:
+ case 202:
#line 1471 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 2);
+ (yyval.interm.type).setMatrix(3, 3);
}
-#line 5234 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 204:
+ case 203:
#line 1476 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 3);
+ (yyval.interm.type).setMatrix(4, 4);
}
-#line 5244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 205:
+ case 204:
#line 1481 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
- (yyval.interm.type).setMatrix(2, 4);
+ (yyval.interm.type).setMatrix(2, 2);
}
-#line 5254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 205:
+#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtFloat;
+ (yyval.interm.type).setMatrix(2, 3);
+ }
+#line 5266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 206:
-#line 1486 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 1491 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
+ (yyval.interm.type).basicType = EbtFloat;
+ (yyval.interm.type).setMatrix(2, 4);
+ }
+#line 5276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 207:
+#line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 5264 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 207:
-#line 1491 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 208:
+#line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 5274 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 208:
-#line 1496 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 209:
+#line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 5284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 209:
-#line 1501 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 210:
+#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 5294 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 210:
-#line 1506 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 211:
+#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 5304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 211:
-#line 1511 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 212:
+#line 1521 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtFloat;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 5314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 212:
-#line 1516 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 213:
+#line 1526 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 5325 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 213:
-#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 214:
+#line 1532 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 5336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 214:
-#line 1528 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 215:
+#line 1538 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 5347 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 215:
-#line 1534 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 216:
+#line 1544 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 2);
}
-#line 5358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 216:
-#line 1540 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 217:
+#line 1550 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 3);
}
-#line 5369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 217:
-#line 1546 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 218:
+#line 1556 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(2, 4);
}
-#line 5380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 218:
-#line 1552 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 219:
+#line 1562 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 2);
}
-#line 5391 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 219:
-#line 1558 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 220:
+#line 1568 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 3);
}
-#line 5402 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 220:
-#line 1564 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 221:
+#line 1574 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(3, 4);
}
-#line 5413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 221:
-#line 1570 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 222:
+#line 1580 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 2);
}
-#line 5424 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 222:
-#line 1576 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 223:
+#line 1586 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 3);
}
-#line 5435 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5457 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 223:
-#line 1582 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 224:
+#line 1592 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtDouble;
(yyval.interm.type).setMatrix(4, 4);
}
-#line 5446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 224:
-#line 1588 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 225:
+#line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtAtomicUint;
}
-#line 5456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 225:
-#line 1593 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 226:
+#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D);
}
-#line 5466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 226:
-#line 1598 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 227:
+#line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
}
-#line 5476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 227:
-#line 1603 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 228:
+#line 1613 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd3D);
}
-#line 5486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 228:
-#line 1608 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 229:
+#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube);
}
-#line 5496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 229:
-#line 1613 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 230:
+#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
}
-#line 5506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 230:
-#line 1618 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 231:
+#line 1628 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
}
-#line 5516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 231:
-#line 1623 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 232:
+#line 1633 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
}
-#line 5526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 232:
-#line 1628 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 233:
+#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
}
-#line 5536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 233:
-#line 1633 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 234:
+#line 1643 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
}
-#line 5546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5568 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 234:
-#line 1638 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 235:
+#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
}
-#line 5556 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5578 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 235:
-#line 1643 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 236:
+#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
}
-#line 5566 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5588 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 236:
-#line 1648 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 237:
+#line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
}
-#line 5576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5598 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 237:
-#line 1653 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 238:
+#line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
}
-#line 5586 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5608 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 238:
-#line 1658 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 239:
+#line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D);
}
-#line 5596 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5618 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 239:
-#line 1663 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 240:
+#line 1673 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D);
}
-#line 5606 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 240:
-#line 1668 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 241:
+#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd3D);
}
-#line 5616 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5638 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 241:
-#line 1673 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 242:
+#line 1683 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube);
}
-#line 5626 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5648 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 242:
-#line 1678 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 243:
+#line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
}
-#line 5636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5658 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 243:
-#line 1683 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 244:
+#line 1693 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
}
-#line 5646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5668 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 244:
-#line 1688 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 245:
+#line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
}
-#line 5656 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5678 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 245:
-#line 1693 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 246:
+#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D);
}
-#line 5666 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5688 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 246:
-#line 1698 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 247:
+#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D);
}
-#line 5676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5698 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 247:
-#line 1703 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 248:
+#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd3D);
}
-#line 5686 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5708 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 248:
-#line 1708 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 249:
+#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube);
}
-#line 5696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 249:
-#line 1713 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 250:
+#line 1723 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
}
-#line 5706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 250:
-#line 1718 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 251:
+#line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
}
-#line 5716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 251:
-#line 1723 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 252:
+#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
}
-#line 5726 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 252:
-#line 1728 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 253:
+#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect);
}
-#line 5736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 253:
-#line 1733 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 254:
+#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
}
-#line 5746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5768 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 254:
-#line 1738 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 255:
+#line 1748 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdRect);
}
-#line 5756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 255:
-#line 1743 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 256:
+#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdRect);
}
-#line 5766 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 256:
-#line 1748 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 257:
+#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
}
-#line 5776 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5798 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 257:
-#line 1753 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 258:
+#line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
}
-#line 5786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 258:
-#line 1758 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 259:
+#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
}
-#line 5796 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5818 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 259:
-#line 1763 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 260:
+#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
}
-#line 5806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5828 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 260:
-#line 1768 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 261:
+#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
}
-#line 5816 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5838 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 261:
-#line 1773 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 262:
+#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
}
-#line 5826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 262:
-#line 1778 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 263:
+#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
}
-#line 5836 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5858 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 263:
-#line 1783 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 264:
+#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
}
-#line 5846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5868 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 264:
-#line 1788 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 265:
+#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
}
-#line 5856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 265:
-#line 1793 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 266:
+#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(false);
}
-#line 5866 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 266:
-#line 1798 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 267:
+#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setPureSampler(true);
}
-#line 5876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 267:
-#line 1803 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 268:
+#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
}
-#line 5886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 268:
-#line 1808 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 269:
+#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
}
-#line 5896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 269:
-#line 1813 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 270:
+#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
}
-#line 5906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 270:
-#line 1818 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 271:
+#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
}
-#line 5916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 271:
-#line 1823 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 272:
+#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
}
-#line 5926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 272:
-#line 1828 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 273:
+#line 1838 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
}
-#line 5936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 273:
-#line 1833 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 274:
+#line 1843 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
}
-#line 5946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5968 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 274:
-#line 1838 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 275:
+#line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
}
-#line 5956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 275:
-#line 1843 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 276:
+#line 1853 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
}
-#line 5966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 276:
-#line 1848 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 277:
+#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
}
-#line 5976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 5998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 277:
-#line 1853 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 278:
+#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
}
-#line 5986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 278:
-#line 1858 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 279:
+#line 1868 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
}
-#line 5996 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6018 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 279:
-#line 1863 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 280:
+#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
}
-#line 6006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6028 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 280:
-#line 1868 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 281:
+#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
}
-#line 6016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 281:
-#line 1873 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 282:
+#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
}
-#line 6026 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6048 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 282:
-#line 1878 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 283:
+#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
}
-#line 6036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 283:
-#line 1883 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 284:
+#line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
}
-#line 6046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 284:
-#line 1888 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 285:
+#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
}
-#line 6056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 285:
-#line 1893 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 286:
+#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
}
-#line 6066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 286:
-#line 1898 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 287:
+#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
}
-#line 6076 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 287:
-#line 1903 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 288:
+#line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
}
-#line 6086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 288:
-#line 1908 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 289:
+#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
}
-#line 6096 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 289:
-#line 1913 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 290:
+#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
}
-#line 6106 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 290:
-#line 1918 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 291:
+#line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
}
-#line 6116 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6138 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 291:
-#line 1923 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 292:
+#line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
}
-#line 6126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6148 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 292:
-#line 1928 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 293:
+#line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
}
-#line 6136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 293:
-#line 1933 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 294:
+#line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
}
-#line 6146 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6168 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 294:
-#line 1938 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 295:
+#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
}
-#line 6156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 295:
-#line 1943 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 296:
+#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
}
-#line 6166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 296:
-#line 1948 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 297:
+#line 1958 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
}
-#line 6176 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6198 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 297:
-#line 1953 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 298:
+#line 1963 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
}
-#line 6186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6208 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 298:
-#line 1958 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 299:
+#line 1968 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
}
-#line 6196 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6218 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 299:
-#line 1963 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 300:
+#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
}
-#line 6206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6228 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 300:
-#line 1968 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 301:
+#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
}
-#line 6216 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 301:
-#line 1973 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 302:
+#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
}
-#line 6226 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 302:
-#line 1978 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 303:
+#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
}
-#line 6236 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6258 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 303:
-#line 1983 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 304:
+#line 1993 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
}
-#line 6246 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 304:
-#line 1988 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 305:
+#line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
}
-#line 6256 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6278 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 305:
-#line 1993 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 306:
+#line 2003 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
}
-#line 6266 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 306:
-#line 1998 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 307:
+#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
}
-#line 6276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 307:
-#line 2003 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 308:
+#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
}
-#line 6286 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 308:
-#line 2008 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 309:
+#line 2018 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
}
-#line 6296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6318 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 309:
-#line 2013 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 310:
+#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
}
-#line 6306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 310:
-#line 2018 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 311:
+#line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
}
-#line 6316 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6338 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 311:
-#line 2023 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 312:
+#line 2033 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
}
-#line 6326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 312:
-#line 2028 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 313:
+#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
}
-#line 6336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 313:
-#line 2033 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 314:
+#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
}
-#line 6346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 314:
-#line 2038 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 315:
+#line 2048 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
}
-#line 6356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 315:
-#line 2043 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 316:
+#line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
}
-#line 6366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 316:
-#line 2048 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 317:
+#line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
}
-#line 6376 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6398 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 317:
-#line 2053 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 318:
+#line 2063 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
}
-#line 6386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6408 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 318:
-#line 2058 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 319:
+#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
}
-#line 6396 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 319:
-#line 2063 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 320:
+#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
}
-#line 6406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6428 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 320:
-#line 2068 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 321:
+#line 2078 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
}
-#line 6416 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 321:
-#line 2073 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 322:
+#line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
}
-#line 6426 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6448 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 322:
-#line 2078 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 323:
+#line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
}
-#line 6436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 323:
-#line 2083 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 324:
+#line 2093 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
}
-#line 6446 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6468 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 324:
-#line 2088 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 325:
+#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
}
-#line 6456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6478 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 325:
-#line 2093 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 326:
+#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
}
-#line 6466 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6488 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 326:
-#line 2098 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 327:
+#line 2108 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
}
-#line 6476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 327:
-#line 2103 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 328:
+#line 2113 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
}
-#line 6486 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6508 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 328:
-#line 2108 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 329:
+#line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
}
-#line 6496 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6518 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 329:
-#line 2113 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 330:
+#line 2123 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
}
-#line 6506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6528 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 330:
-#line 2118 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 331:
+#line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
}
-#line 6516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6538 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 331:
-#line 2123 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 332:
+#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
}
-#line 6526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6548 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 332:
-#line 2128 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 333:
+#line 2138 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
}
-#line 6536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 333:
-#line 2133 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 334:
+#line 2143 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ // GL_OES_EGL_image_external
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.set(EbtFloat, Esd2D);
(yyval.interm.type).sampler.external = true;
}
-#line 6547 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 334:
-#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 335:
+#line 2149 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat);
}
-#line 6558 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 335:
-#line 2145 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 336:
+#line 2155 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtFloat, true);
}
-#line 6569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 336:
-#line 2151 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 337:
+#line 2161 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt);
}
-#line 6580 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 337:
-#line 2157 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 338:
+#line 2167 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtInt, true);
}
-#line 6591 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 338:
-#line 2163 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 339:
+#line 2173 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint);
}
-#line 6602 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6624 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 339:
-#line 2169 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 340:
+#line 2179 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
(yyval.interm.type).basicType = EbtSampler;
(yyval.interm.type).sampler.setSubpass(EbtUint, true);
}
-#line 6613 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6635 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 340:
-#line 2175 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 341:
+#line 2185 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.type) = (yyvsp[0].interm.type);
(yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
}
-#line 6623 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6645 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 341:
-#line 2180 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 342:
+#line 2190 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
//
// This is for user defined type names. The lexical phase looked up the
@@ -6637,50 +6659,50 @@
} else
parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
}
-#line 6641 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 342:
-#line 2196 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 343:
+#line 2206 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
if (parseContext.profile == EEsProfile)
(yyval.interm.type).qualifier.precision = EpqHigh;
}
-#line 6652 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 343:
-#line 2202 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 344:
+#line 2212 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
if (parseContext.profile == EEsProfile)
(yyval.interm.type).qualifier.precision = EpqMedium;
}
-#line 6663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6685 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 344:
-#line 2208 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 345:
+#line 2218 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
(yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
if (parseContext.profile == EEsProfile)
(yyval.interm.type).qualifier.precision = EpqLow;
}
-#line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 345:
-#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
-#line 6680 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 346:
-#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
+#line 6702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 347:
+#line 2227 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
@@ -6692,17 +6714,17 @@
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 6696 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 347:
-#line 2228 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
-#line 6702 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6718 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 348:
-#line 2228 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
+#line 6724 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 349:
+#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
(yyval.interm.type).init((yyvsp[-4].lex).loc);
@@ -6710,19 +6732,19 @@
(yyval.interm.type).userDef = structure;
--parseContext.structNestingLevel;
}
-#line 6714 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 349:
-#line 2238 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
- }
-#line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6736 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 350:
-#line 2241 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2248 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
+ }
+#line 6744 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 351:
+#line 2251 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
@@ -6733,11 +6755,11 @@
(yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
}
}
-#line 6737 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 351:
-#line 2254 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 352:
+#line 2264 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.type).arraySizes) {
parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
@@ -6756,11 +6778,11 @@
(*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type));
}
}
-#line 6760 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6782 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 352:
-#line 2272 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 353:
+#line 2282 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier);
if ((yyvsp[-2].interm.type).arraySizes) {
@@ -6782,38 +6804,38 @@
(*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type));
}
}
-#line 6786 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6808 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 353:
-#line 2296 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 354:
+#line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeList) = new TTypeList;
(yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
}
-#line 6795 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 354:
-#line 2300 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
- }
-#line 6803 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6817 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 355:
-#line 2306 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2310 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
+ }
+#line 6825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 356:
+#line 2316 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.typeLine).type = new TType(EbtVoid);
(yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
}
-#line 6813 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6835 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 356:
-#line 2311 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 357:
+#line 2321 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0);
@@ -6822,219 +6844,219 @@
(yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
(yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes);
}
-#line 6826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 357:
-#line 2322 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
- }
-#line 6834 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 358:
-#line 2325 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2332 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
+ }
+#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 359:
+#line 2335 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
}
-#line 6845 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6867 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 359:
-#line 2331 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 360:
+#line 2341 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
const char* initFeature = "{ } style initializers";
parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
(yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
}
-#line 6856 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 360:
-#line 2340 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
- }
-#line 6864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 361:
-#line 2343 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
- }
-#line 6872 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 362:
-#line 2349 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
#line 6878 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 363:
+ case 361:
+#line 2350 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
+ }
+#line 6886 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 362:
#line 2353 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
+ }
+#line 6894 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 363:
+#line 2359 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6900 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 364:
-#line 2354 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6890 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 365:
-#line 2360 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6896 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6912 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 366:
-#line 2361 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6902 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6918 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 367:
-#line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6908 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 368:
-#line 2363 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6914 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6930 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 369:
-#line 2364 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6920 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6936 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 370:
-#line 2365 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6926 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 371:
-#line 2366 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6932 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6948 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 372:
-#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { (yyval.interm.intermNode) = 0; }
-#line 6938 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 2376 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 6954 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 373:
-#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2380 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = 0; }
+#line 6960 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 374:
+#line 2381 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
}
-#line 6947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 374:
-#line 2375 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 375:
+#line 2385 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
}
-#line 6956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 375:
-#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 376:
+#line 2389 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
(yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
}
-#line 6966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 376:
-#line 2387 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6988 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 377:
-#line 2388 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2397 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
-#line 6978 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 6994 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 378:
-#line 2392 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- ++parseContext.controlFlowNestingLevel;
- }
-#line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 2398 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
+#line 7000 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 379:
-#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2402 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ ++parseContext.controlFlowNestingLevel;
+ }
+#line 7008 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 380:
+#line 2405 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 6995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7017 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 380:
-#line 2399 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 381:
+#line 2409 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.push();
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 7005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7027 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 381:
-#line 2404 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 382:
+#line 2414 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 7016 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 382:
-#line 2413 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermNode) = 0;
- }
-#line 7024 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7038 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 383:
-#line 2416 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2423 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermNode) = 0;
+ }
+#line 7046 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 384:
+#line 2426 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
(yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
(yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
}
-#line 7034 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7056 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 384:
-#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 385:
+#line 2434 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
@@ -7043,11 +7065,11 @@
(yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
}
}
-#line 7047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 385:
-#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 386:
+#line 2442 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
(yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
@@ -7056,59 +7078,59 @@
} else
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
}
-#line 7060 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 386:
-#line 2443 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { (yyval.interm.intermNode) = 0; }
-#line 7066 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7082 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 387:
-#line 2444 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
-#line 7072 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 2453 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = 0; }
+#line 7088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 388:
-#line 2448 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2454 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
+#line 7094 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 389:
+#line 2458 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
(yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
}
-#line 7081 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7103 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 389:
-#line 2455 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 390:
+#line 2465 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
}
-#line 7090 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7112 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 390:
-#line 2459 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 391:
+#line 2469 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 7099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7121 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 391:
-#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 392:
+#line 2477 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
}
-#line 7108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7130 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 392:
-#line 2471 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 393:
+#line 2481 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
@@ -7119,11 +7141,11 @@
else
(yyval.interm.intermTypedNode) = 0;
}
-#line 7123 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7145 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 393:
-#line 2484 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 394:
+#line 2494 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// start new switch sequence on the switch stack
++parseContext.controlFlowNestingLevel;
@@ -7132,11 +7154,11 @@
parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
parseContext.symbolTable.push();
}
-#line 7136 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 394:
-#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 395:
+#line 2502 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
delete parseContext.switchSequenceStack.back();
@@ -7146,27 +7168,27 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 7150 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 395:
-#line 2504 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermNode) = 0;
- }
-#line 7158 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7172 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 396:
-#line 2507 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2514 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ (yyval.interm.intermNode) = 0;
}
-#line 7166 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 397:
-#line 2513 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2517 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ }
+#line 7188 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 398:
+#line 2523 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -7179,11 +7201,11 @@
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
}
}
-#line 7183 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7205 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 398:
-#line 2525 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 399:
+#line 2535 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = 0;
if (parseContext.switchLevel.size() == 0)
@@ -7193,11 +7215,11 @@
else
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
}
-#line 7197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 399:
-#line 2537 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 400:
+#line 2547 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
@@ -7206,11 +7228,11 @@
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 7210 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 400:
-#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 401:
+#line 2555 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
@@ -7218,21 +7240,21 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 7222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7244 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 401:
-#line 2552 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 402:
+#line 2562 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 7232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7254 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 402:
-#line 2557 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 403:
+#line 2567 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (! parseContext.limits.whileLoops)
parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
@@ -7244,22 +7266,22 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 7248 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7270 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 403:
-#line 2568 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 404:
+#line 2578 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.push();
++parseContext.loopNestingLevel;
++parseContext.statementNestingLevel;
++parseContext.controlFlowNestingLevel;
}
-#line 7259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7281 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 404:
-#line 2574 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 405:
+#line 2584 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
(yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
@@ -7272,81 +7294,81 @@
--parseContext.statementNestingLevel;
--parseContext.controlFlowNestingLevel;
}
-#line 7276 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 405:
-#line 2589 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 7284 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7298 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 406:
-#line 2592 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2599 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 7292 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7306 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 407:
-#line 2598 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2602 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 7300 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 408:
-#line 2601 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2608 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
- (yyval.interm.intermTypedNode) = 0;
+ (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
}
-#line 7308 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7322 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 409:
-#line 2607 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermTypedNode) = 0;
+ }
+#line 7330 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 410:
+#line 2617 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = 0;
}
-#line 7317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 410:
-#line 2611 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 411:
+#line 2621 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
(yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
}
-#line 7326 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 411:
-#line 2618 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 412:
+#line 2628 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (parseContext.loopNestingLevel <= 0)
parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
}
-#line 7336 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 412:
-#line 2623 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 413:
+#line 2633 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
}
-#line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7368 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 413:
-#line 2628 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 414:
+#line 2638 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
@@ -7354,71 +7376,71 @@
if (parseContext.inMain)
parseContext.postMainReturn = true;
}
-#line 7358 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 414:
-#line 2635 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
- }
-#line 7366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7380 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 415:
-#line 2638 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2645 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
+ }
+#line 7388 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 416:
+#line 2648 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
(yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
}
-#line 7375 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7397 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 416:
-#line 2647 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 417:
+#line 2657 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
-#line 7384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7406 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 417:
-#line 2651 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 418:
+#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
}
-#line 7393 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
- break;
-
- case 418:
-#line 2658 "MachineIndependent/glslang.y" /* yacc.c:1646 */
- {
- (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
- }
-#line 7401 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7415 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 419:
-#line 2661 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2668 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
}
-#line 7409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7423 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
case 420:
-#line 2667 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+#line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ {
+ (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
+ }
+#line 7431 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+ break;
+
+ case 421:
+#line 2677 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
(yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
(yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
}
-#line 7418 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
- case 421:
-#line 2671 "MachineIndependent/glslang.y" /* yacc.c:1646 */
+ case 422:
+#line 2681 "MachineIndependent/glslang.y" /* yacc.c:1646 */
{
// May be best done as post process phase on intermediate code
if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
@@ -7434,11 +7456,11 @@
(yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
(yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable);
}
-#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7460 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
break;
-#line 7442 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
+#line 7464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -7666,5 +7688,5 @@
#endif
return yyresult;
}
-#line 2688 "MachineIndependent/glslang.y" /* yacc.c:1906 */
+#line 2698 "MachineIndependent/glslang.y" /* yacc.c:1906 */
diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h
index e7d8fae..2d8276a 100644
--- a/glslang/MachineIndependent/glslang_tab.cpp.h
+++ b/glslang/MachineIndependent/glslang_tab.cpp.h
@@ -112,206 +112,207 @@
FLAT = 322,
SMOOTH = 323,
LAYOUT = 324,
- MAT2X2 = 325,
- MAT2X3 = 326,
- MAT2X4 = 327,
- MAT3X2 = 328,
- MAT3X3 = 329,
- MAT3X4 = 330,
- MAT4X2 = 331,
- MAT4X3 = 332,
- MAT4X4 = 333,
- DMAT2X2 = 334,
- DMAT2X3 = 335,
- DMAT2X4 = 336,
- DMAT3X2 = 337,
- DMAT3X3 = 338,
- DMAT3X4 = 339,
- DMAT4X2 = 340,
- DMAT4X3 = 341,
- DMAT4X4 = 342,
- ATOMIC_UINT = 343,
- SAMPLER1D = 344,
- SAMPLER2D = 345,
- SAMPLER3D = 346,
- SAMPLERCUBE = 347,
- SAMPLER1DSHADOW = 348,
- SAMPLER2DSHADOW = 349,
- SAMPLERCUBESHADOW = 350,
- SAMPLER1DARRAY = 351,
- SAMPLER2DARRAY = 352,
- SAMPLER1DARRAYSHADOW = 353,
- SAMPLER2DARRAYSHADOW = 354,
- ISAMPLER1D = 355,
- ISAMPLER2D = 356,
- ISAMPLER3D = 357,
- ISAMPLERCUBE = 358,
- ISAMPLER1DARRAY = 359,
- ISAMPLER2DARRAY = 360,
- USAMPLER1D = 361,
- USAMPLER2D = 362,
- USAMPLER3D = 363,
- USAMPLERCUBE = 364,
- USAMPLER1DARRAY = 365,
- USAMPLER2DARRAY = 366,
- SAMPLER2DRECT = 367,
- SAMPLER2DRECTSHADOW = 368,
- ISAMPLER2DRECT = 369,
- USAMPLER2DRECT = 370,
- SAMPLERBUFFER = 371,
- ISAMPLERBUFFER = 372,
- USAMPLERBUFFER = 373,
- SAMPLERCUBEARRAY = 374,
- SAMPLERCUBEARRAYSHADOW = 375,
- ISAMPLERCUBEARRAY = 376,
- USAMPLERCUBEARRAY = 377,
- SAMPLER2DMS = 378,
- ISAMPLER2DMS = 379,
- USAMPLER2DMS = 380,
- SAMPLER2DMSARRAY = 381,
- ISAMPLER2DMSARRAY = 382,
- USAMPLER2DMSARRAY = 383,
- SAMPLEREXTERNALOES = 384,
- SAMPLER = 385,
- SAMPLERSHADOW = 386,
- TEXTURE1D = 387,
- TEXTURE2D = 388,
- TEXTURE3D = 389,
- TEXTURECUBE = 390,
- TEXTURE1DARRAY = 391,
- TEXTURE2DARRAY = 392,
- ITEXTURE1D = 393,
- ITEXTURE2D = 394,
- ITEXTURE3D = 395,
- ITEXTURECUBE = 396,
- ITEXTURE1DARRAY = 397,
- ITEXTURE2DARRAY = 398,
- UTEXTURE1D = 399,
- UTEXTURE2D = 400,
- UTEXTURE3D = 401,
- UTEXTURECUBE = 402,
- UTEXTURE1DARRAY = 403,
- UTEXTURE2DARRAY = 404,
- TEXTURE2DRECT = 405,
- ITEXTURE2DRECT = 406,
- UTEXTURE2DRECT = 407,
- TEXTUREBUFFER = 408,
- ITEXTUREBUFFER = 409,
- UTEXTUREBUFFER = 410,
- TEXTURECUBEARRAY = 411,
- ITEXTURECUBEARRAY = 412,
- UTEXTURECUBEARRAY = 413,
- TEXTURE2DMS = 414,
- ITEXTURE2DMS = 415,
- UTEXTURE2DMS = 416,
- TEXTURE2DMSARRAY = 417,
- ITEXTURE2DMSARRAY = 418,
- UTEXTURE2DMSARRAY = 419,
- SUBPASSINPUT = 420,
- SUBPASSINPUTMS = 421,
- ISUBPASSINPUT = 422,
- ISUBPASSINPUTMS = 423,
- USUBPASSINPUT = 424,
- USUBPASSINPUTMS = 425,
- IMAGE1D = 426,
- IIMAGE1D = 427,
- UIMAGE1D = 428,
- IMAGE2D = 429,
- IIMAGE2D = 430,
- UIMAGE2D = 431,
- IMAGE3D = 432,
- IIMAGE3D = 433,
- UIMAGE3D = 434,
- IMAGE2DRECT = 435,
- IIMAGE2DRECT = 436,
- UIMAGE2DRECT = 437,
- IMAGECUBE = 438,
- IIMAGECUBE = 439,
- UIMAGECUBE = 440,
- IMAGEBUFFER = 441,
- IIMAGEBUFFER = 442,
- UIMAGEBUFFER = 443,
- IMAGE1DARRAY = 444,
- IIMAGE1DARRAY = 445,
- UIMAGE1DARRAY = 446,
- IMAGE2DARRAY = 447,
- IIMAGE2DARRAY = 448,
- UIMAGE2DARRAY = 449,
- IMAGECUBEARRAY = 450,
- IIMAGECUBEARRAY = 451,
- UIMAGECUBEARRAY = 452,
- IMAGE2DMS = 453,
- IIMAGE2DMS = 454,
- UIMAGE2DMS = 455,
- IMAGE2DMSARRAY = 456,
- IIMAGE2DMSARRAY = 457,
- UIMAGE2DMSARRAY = 458,
- STRUCT = 459,
- VOID = 460,
- WHILE = 461,
- IDENTIFIER = 462,
- TYPE_NAME = 463,
- FLOATCONSTANT = 464,
- DOUBLECONSTANT = 465,
- INTCONSTANT = 466,
- UINTCONSTANT = 467,
- INT64CONSTANT = 468,
- UINT64CONSTANT = 469,
- BOOLCONSTANT = 470,
- LEFT_OP = 471,
- RIGHT_OP = 472,
- INC_OP = 473,
- DEC_OP = 474,
- LE_OP = 475,
- GE_OP = 476,
- EQ_OP = 477,
- NE_OP = 478,
- AND_OP = 479,
- OR_OP = 480,
- XOR_OP = 481,
- MUL_ASSIGN = 482,
- DIV_ASSIGN = 483,
- ADD_ASSIGN = 484,
- MOD_ASSIGN = 485,
- LEFT_ASSIGN = 486,
- RIGHT_ASSIGN = 487,
- AND_ASSIGN = 488,
- XOR_ASSIGN = 489,
- OR_ASSIGN = 490,
- SUB_ASSIGN = 491,
- LEFT_PAREN = 492,
- RIGHT_PAREN = 493,
- LEFT_BRACKET = 494,
- RIGHT_BRACKET = 495,
- LEFT_BRACE = 496,
- RIGHT_BRACE = 497,
- DOT = 498,
- COMMA = 499,
- COLON = 500,
- EQUAL = 501,
- SEMICOLON = 502,
- BANG = 503,
- DASH = 504,
- TILDE = 505,
- PLUS = 506,
- STAR = 507,
- SLASH = 508,
- PERCENT = 509,
- LEFT_ANGLE = 510,
- RIGHT_ANGLE = 511,
- VERTICAL_BAR = 512,
- CARET = 513,
- AMPERSAND = 514,
- QUESTION = 515,
- INVARIANT = 516,
- PRECISE = 517,
- HIGH_PRECISION = 518,
- MEDIUM_PRECISION = 519,
- LOW_PRECISION = 520,
- PRECISION = 521,
- PACKED = 522,
- RESOURCE = 523,
- SUPERP = 524
+ __EXPLICITINTERPAMD = 325,
+ MAT2X2 = 326,
+ MAT2X3 = 327,
+ MAT2X4 = 328,
+ MAT3X2 = 329,
+ MAT3X3 = 330,
+ MAT3X4 = 331,
+ MAT4X2 = 332,
+ MAT4X3 = 333,
+ MAT4X4 = 334,
+ DMAT2X2 = 335,
+ DMAT2X3 = 336,
+ DMAT2X4 = 337,
+ DMAT3X2 = 338,
+ DMAT3X3 = 339,
+ DMAT3X4 = 340,
+ DMAT4X2 = 341,
+ DMAT4X3 = 342,
+ DMAT4X4 = 343,
+ ATOMIC_UINT = 344,
+ SAMPLER1D = 345,
+ SAMPLER2D = 346,
+ SAMPLER3D = 347,
+ SAMPLERCUBE = 348,
+ SAMPLER1DSHADOW = 349,
+ SAMPLER2DSHADOW = 350,
+ SAMPLERCUBESHADOW = 351,
+ SAMPLER1DARRAY = 352,
+ SAMPLER2DARRAY = 353,
+ SAMPLER1DARRAYSHADOW = 354,
+ SAMPLER2DARRAYSHADOW = 355,
+ ISAMPLER1D = 356,
+ ISAMPLER2D = 357,
+ ISAMPLER3D = 358,
+ ISAMPLERCUBE = 359,
+ ISAMPLER1DARRAY = 360,
+ ISAMPLER2DARRAY = 361,
+ USAMPLER1D = 362,
+ USAMPLER2D = 363,
+ USAMPLER3D = 364,
+ USAMPLERCUBE = 365,
+ USAMPLER1DARRAY = 366,
+ USAMPLER2DARRAY = 367,
+ SAMPLER2DRECT = 368,
+ SAMPLER2DRECTSHADOW = 369,
+ ISAMPLER2DRECT = 370,
+ USAMPLER2DRECT = 371,
+ SAMPLERBUFFER = 372,
+ ISAMPLERBUFFER = 373,
+ USAMPLERBUFFER = 374,
+ SAMPLERCUBEARRAY = 375,
+ SAMPLERCUBEARRAYSHADOW = 376,
+ ISAMPLERCUBEARRAY = 377,
+ USAMPLERCUBEARRAY = 378,
+ SAMPLER2DMS = 379,
+ ISAMPLER2DMS = 380,
+ USAMPLER2DMS = 381,
+ SAMPLER2DMSARRAY = 382,
+ ISAMPLER2DMSARRAY = 383,
+ USAMPLER2DMSARRAY = 384,
+ SAMPLEREXTERNALOES = 385,
+ SAMPLER = 386,
+ SAMPLERSHADOW = 387,
+ TEXTURE1D = 388,
+ TEXTURE2D = 389,
+ TEXTURE3D = 390,
+ TEXTURECUBE = 391,
+ TEXTURE1DARRAY = 392,
+ TEXTURE2DARRAY = 393,
+ ITEXTURE1D = 394,
+ ITEXTURE2D = 395,
+ ITEXTURE3D = 396,
+ ITEXTURECUBE = 397,
+ ITEXTURE1DARRAY = 398,
+ ITEXTURE2DARRAY = 399,
+ UTEXTURE1D = 400,
+ UTEXTURE2D = 401,
+ UTEXTURE3D = 402,
+ UTEXTURECUBE = 403,
+ UTEXTURE1DARRAY = 404,
+ UTEXTURE2DARRAY = 405,
+ TEXTURE2DRECT = 406,
+ ITEXTURE2DRECT = 407,
+ UTEXTURE2DRECT = 408,
+ TEXTUREBUFFER = 409,
+ ITEXTUREBUFFER = 410,
+ UTEXTUREBUFFER = 411,
+ TEXTURECUBEARRAY = 412,
+ ITEXTURECUBEARRAY = 413,
+ UTEXTURECUBEARRAY = 414,
+ TEXTURE2DMS = 415,
+ ITEXTURE2DMS = 416,
+ UTEXTURE2DMS = 417,
+ TEXTURE2DMSARRAY = 418,
+ ITEXTURE2DMSARRAY = 419,
+ UTEXTURE2DMSARRAY = 420,
+ SUBPASSINPUT = 421,
+ SUBPASSINPUTMS = 422,
+ ISUBPASSINPUT = 423,
+ ISUBPASSINPUTMS = 424,
+ USUBPASSINPUT = 425,
+ USUBPASSINPUTMS = 426,
+ IMAGE1D = 427,
+ IIMAGE1D = 428,
+ UIMAGE1D = 429,
+ IMAGE2D = 430,
+ IIMAGE2D = 431,
+ UIMAGE2D = 432,
+ IMAGE3D = 433,
+ IIMAGE3D = 434,
+ UIMAGE3D = 435,
+ IMAGE2DRECT = 436,
+ IIMAGE2DRECT = 437,
+ UIMAGE2DRECT = 438,
+ IMAGECUBE = 439,
+ IIMAGECUBE = 440,
+ UIMAGECUBE = 441,
+ IMAGEBUFFER = 442,
+ IIMAGEBUFFER = 443,
+ UIMAGEBUFFER = 444,
+ IMAGE1DARRAY = 445,
+ IIMAGE1DARRAY = 446,
+ UIMAGE1DARRAY = 447,
+ IMAGE2DARRAY = 448,
+ IIMAGE2DARRAY = 449,
+ UIMAGE2DARRAY = 450,
+ IMAGECUBEARRAY = 451,
+ IIMAGECUBEARRAY = 452,
+ UIMAGECUBEARRAY = 453,
+ IMAGE2DMS = 454,
+ IIMAGE2DMS = 455,
+ UIMAGE2DMS = 456,
+ IMAGE2DMSARRAY = 457,
+ IIMAGE2DMSARRAY = 458,
+ UIMAGE2DMSARRAY = 459,
+ STRUCT = 460,
+ VOID = 461,
+ WHILE = 462,
+ IDENTIFIER = 463,
+ TYPE_NAME = 464,
+ FLOATCONSTANT = 465,
+ DOUBLECONSTANT = 466,
+ INTCONSTANT = 467,
+ UINTCONSTANT = 468,
+ INT64CONSTANT = 469,
+ UINT64CONSTANT = 470,
+ BOOLCONSTANT = 471,
+ LEFT_OP = 472,
+ RIGHT_OP = 473,
+ INC_OP = 474,
+ DEC_OP = 475,
+ LE_OP = 476,
+ GE_OP = 477,
+ EQ_OP = 478,
+ NE_OP = 479,
+ AND_OP = 480,
+ OR_OP = 481,
+ XOR_OP = 482,
+ MUL_ASSIGN = 483,
+ DIV_ASSIGN = 484,
+ ADD_ASSIGN = 485,
+ MOD_ASSIGN = 486,
+ LEFT_ASSIGN = 487,
+ RIGHT_ASSIGN = 488,
+ AND_ASSIGN = 489,
+ XOR_ASSIGN = 490,
+ OR_ASSIGN = 491,
+ SUB_ASSIGN = 492,
+ LEFT_PAREN = 493,
+ RIGHT_PAREN = 494,
+ LEFT_BRACKET = 495,
+ RIGHT_BRACKET = 496,
+ LEFT_BRACE = 497,
+ RIGHT_BRACE = 498,
+ DOT = 499,
+ COMMA = 500,
+ COLON = 501,
+ EQUAL = 502,
+ SEMICOLON = 503,
+ BANG = 504,
+ DASH = 505,
+ TILDE = 506,
+ PLUS = 507,
+ STAR = 508,
+ SLASH = 509,
+ PERCENT = 510,
+ LEFT_ANGLE = 511,
+ RIGHT_ANGLE = 512,
+ VERTICAL_BAR = 513,
+ CARET = 514,
+ AMPERSAND = 515,
+ QUESTION = 516,
+ INVARIANT = 517,
+ PRECISE = 518,
+ HIGH_PRECISION = 519,
+ MEDIUM_PRECISION = 520,
+ LOW_PRECISION = 521,
+ PRECISION = 522,
+ PACKED = 523,
+ RESOURCE = 524,
+ SUPERP = 525
};
#endif
@@ -354,7 +355,7 @@
};
} interm;
-#line 358 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
+#line 359 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */
};
typedef union YYSTYPE YYSTYPE;
diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp
index 03519bc..893f42b 100644
--- a/glslang/MachineIndependent/intermOut.cpp
+++ b/glslang/MachineIndependent/intermOut.cpp
@@ -355,6 +355,7 @@
case EOpBallot: out.debug << "ballot"; break;
case EOpReadFirstInvocation: out.debug << "readFirstInvocation"; break;
+
case EOpAnyInvocation: out.debug << "anyInvocation"; break;
case EOpAllInvocations: out.debug << "allInvocations"; break;
case EOpAllInvocationsEqual: out.debug << "allInvocationsEqual"; break;
@@ -365,6 +366,19 @@
case EOpRcp: out.debug << "rcp"; break;
case EOpSaturate: out.debug << "saturate"; break;
+#ifdef AMD_EXTENSIONS
+ case EOpMinInvocations: out.debug << "minInvocations"; break;
+ case EOpMaxInvocations: out.debug << "maxInvocations"; break;
+ case EOpAddInvocations: out.debug << "addInvocations"; break;
+ case EOpMinInvocationsNonUniform: out.debug << "minInvocationsNonUniform"; break;
+ case EOpMaxInvocationsNonUniform: out.debug << "maxInvocationsNonUniform"; break;
+ case EOpAddInvocationsNonUniform: out.debug << "addInvocationsNonUniform"; break;
+ case EOpMbcnt: out.debug << "mbcnt"; break;
+
+ case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break;
+ case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break;
+#endif
+
default: out.debug.message(EPrefixError, "Bad unary op");
}
@@ -482,6 +496,18 @@
case EOpReadInvocation: out.debug << "readInvocation"; break;
+#ifdef AMD_EXTENSIONS
+ case EOpSwizzleInvocations: out.debug << "swizzleInvocations"; break;
+ case EOpSwizzleInvocationsMasked: out.debug << "swizzleInvocationsMasked"; break;
+ case EOpWriteInvocation: out.debug << "writeInvocation"; break;
+
+ case EOpMin3: out.debug << "min3"; break;
+ case EOpMax3: out.debug << "max3"; break;
+ case EOpMid3: out.debug << "mid3"; break;
+
+ case EOpTime: out.debug << "time"; break;
+#endif
+
case EOpAtomicAdd: out.debug << "AtomicAdd"; break;
case EOpAtomicMin: out.debug << "AtomicMin"; break;
case EOpAtomicMax: out.debug << "AtomicMax"; break;
@@ -539,6 +565,9 @@
case EOpInterpolateAtSample: out.debug << "interpolateAtSample"; break;
case EOpInterpolateAtOffset: out.debug << "interpolateAtOffset"; break;
+#ifdef AMD_EXTENSIONS
+ case EOpInterpolateAtVertex: out.debug << "interpolateAtVertex"; break;
+#endif
case EOpSinCos: out.debug << "sincos"; break;
case EOpGenMul: out.debug << "mul"; break;
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index 1cda57d..0bc1d91 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -651,7 +651,7 @@
int size;
if (qualifier.isUniformOrBuffer()) {
- if (type.isArray())
+ if (type.isExplicitlySizedArray())
size = type.getCumulativeArraySize();
else
size = 1;
@@ -664,12 +664,19 @@
size = computeTypeLocationSize(type);
}
+ // locations...
TRange locationRange(qualifier.layoutLocation, qualifier.layoutLocation + size - 1);
+
+ // components in this location slot...
TRange componentRange(0, 3);
- if (qualifier.hasComponent()) {
- componentRange.start = qualifier.layoutComponent;
- componentRange.last = componentRange.start + type.getVectorSize() - 1;
+ if (qualifier.hasComponent() || type.getVectorSize() > 0) {
+ int consumedComponents = type.getVectorSize() * (type.getBasicType() == EbtDouble ? 2 : 1);
+ if (qualifier.hasComponent())
+ componentRange.start = qualifier.layoutComponent;
+ componentRange.last = componentRange.start + consumedComponents - 1;
}
+
+ // both...
TIoRange range(locationRange, componentRange, type.getBasicType(), qualifier.hasIndex() ? qualifier.layoutIndex : 0);
// check for collisions, except for vertex inputs on desktop
@@ -940,7 +947,7 @@
// components each, according to rule (4).
//
// 6. If the member is an array of S column-major matrices with C columns and
- // R rows, the matrix is stored identically to a row of S C column vectors
+ // R rows, the matrix is stored identically to a row of S X C column vectors
// with R components each, according to rule (4).
//
// 7. If the member is a row-major matrix with C columns and R rows, the matrix
@@ -948,7 +955,7 @@
// according to rule (4).
//
// 8. If the member is an array of S row-major matrices with C columns and R
- // rows, the matrix is stored identically to a row of S R row vectors with C
+ // rows, the matrix is stored identically to a row of S X R row vectors with C
// components each, according to rule (4).
//
// 9. If the member is a structure, the base alignment of the structure is N , where
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index d855e72..7bd457d 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -1,5 +1,6 @@
//
//Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
+//Copyright (C) 2016 LunarG, Inc.
//All rights reserved.
//
//Redistribution and use in source and binary forms, with or without
@@ -47,6 +48,16 @@
namespace glslang {
struct TVectorFields {
+ TVectorFields() { }
+
+ TVectorFields(int c0, int c1, int c2, int c3) : num(4)
+ {
+ offsets[0] = c0;
+ offsets[1] = c1;
+ offsets[2] = c2;
+ offsets[3] = c3;
+ }
+
int offsets[4];
int num;
};
@@ -172,12 +183,14 @@
TIntermSymbol* addSymbol(const TVariable&, const TSourceLoc&);
TIntermSymbol* addSymbol(const TType&, const TSourceLoc&);
TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*) const;
+ TIntermTyped* addShapeConversion(TOperator, const TType&, TIntermTyped*);
TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc);
TIntermTyped* addAssign(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc);
TIntermTyped* addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc);
TIntermTyped* addUnaryMath(TOperator, TIntermTyped* child, TSourceLoc);
TIntermTyped* addBuiltInFunctionCall(const TSourceLoc& line, TOperator, bool unary, TIntermNode*, const TType& returnType);
bool canImplicitlyPromote(TBasicType from, TBasicType to) const;
+ TOperator mapTypeToConstructorOp(const TType&) const;
TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right);
TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&);
TIntermAggregate* makeAggregate(TIntermNode* node);
diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h
index c0c8945..dc51682 100755
--- a/glslang/MachineIndependent/parseVersions.h
+++ b/glslang/MachineIndependent/parseVersions.h
@@ -119,12 +119,12 @@
TIntermediate& intermediate; // helper for making and hooking up pieces of the parse tree
protected:
+ TMap<TString, TExtensionBehavior> extensionBehavior; // for each extension string, what its current behavior is set to
EShMessages messages; // errors/warnings/rule-sets
int numErrors; // number of compile-time errors encountered
TInputScanner* currentScanner;
private:
- TMap<TString, TExtensionBehavior> extensionBehavior; // for each extension string, what its current behavior is set to
explicit TParseVersions(const TParseVersions&);
TParseVersions& operator=(const TParseVersions&);
};
diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp
index 3509758..d771010 100644
--- a/glslang/MachineIndependent/preprocessor/Pp.cpp
+++ b/glslang/MachineIndependent/preprocessor/Pp.cpp
@@ -192,7 +192,7 @@
do {
int oldToken;
TPpToken oldPpToken;
- TPpToken newPpToken;
+ TPpToken newPpToken;
oldToken = ReadToken(symb->mac.body, &oldPpToken);
newToken = ReadToken(mac.body, &newPpToken);
if (oldToken != newToken || oldPpToken != newPpToken) {
@@ -250,7 +250,7 @@
if (token != '#') {
while (token != '\n' && token != EndOfInput)
token = scanToken(ppToken);
-
+
if (token == EndOfInput)
return token;
@@ -495,7 +495,7 @@
if (op < 0 || binop[op].precedence <= precedence)
break;
int leftSide = res;
-
+
// Setup short-circuiting, needed for ES, unless already in a short circuit.
// (Once in a short-circuit, can't turn off again, until that whole subexpression is done.
if (! shortCircuit) {
@@ -756,7 +756,7 @@
else
parseContext.handlePragma(loc, tokens);
- return token;
+ return token;
}
// #version: This is just for error checking: the version and profile are decided before preprocessing starts
@@ -980,7 +980,7 @@
if (token == EndOfInput)
mac->busy = 0;
-
+
return token;
}
@@ -1060,7 +1060,7 @@
if (sym->mac.args) {
token = scanToken(ppToken);
if (newLineOkay) {
- while (token == '\n')
+ while (token == '\n')
token = scanToken(ppToken);
}
if (token != '(') {
diff --git a/glslang/MachineIndependent/preprocessor/PpAtom.cpp b/glslang/MachineIndependent/preprocessor/PpAtom.cpp
index 763b6b4..7a59d48 100644
--- a/glslang/MachineIndependent/preprocessor/PpAtom.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpAtom.cpp
@@ -98,6 +98,32 @@
int val;
const char* str;
} tokens[] = {
+
+ { PpAtomAdd, "+=" },
+ { PpAtomSub, "-=" },
+ { PpAtomMul, "*=" },
+ { PpAtomDiv, "/=" },
+ { PpAtomMod, "%=" },
+ { PpAtomRight, ">>" },
+ { PpAtomLeft, "<<" },
+ { PpAtomAnd, "&&" },
+ { PpAtomOr, "||" },
+ { PpAtomXor, "^^" },
+
+ { PpAtomRightAssign, ">>=" },
+ { PpAtomLeftAssign, "<<=" },
+ { PpAtomAndAssign, "&=" },
+ { PpAtomOrAssign, "|=" },
+ { PpAtomXorAssign, "^=" },
+
+ { PpAtomEQ, "==" },
+ { PpAtomNE, "!=" },
+ { PpAtomGE, ">=" },
+ { PpAtomLE, "<=" },
+
+ { PpAtomDecrement, "--" },
+ { PpAtomIncrement, "++" },
+
{ PpAtomDefine, "define" },
{ PpAtomDefined, "defined" },
{ PpAtomUndef, "undef" },
@@ -121,8 +147,7 @@
{ PpAtomFileMacro, "__FILE__" },
{ PpAtomVersionMacro, "__VERSION__" },
- { PpAtomInclude, "include" },
-
+ { PpAtomInclude, "include" },
};
} // end anonymous namespace
diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp
index b3d1af6..5ce5a03 100644
--- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp
@@ -298,7 +298,7 @@
ppToken->name[len++] = (char)ch;
ch = getch();
if (ch == 'x' || ch == 'X') {
- // must be hexidecimal
+ // must be hexadecimal
bool isUnsigned = false;
bool isInt64 = false;
@@ -319,11 +319,11 @@
} else if (ch >= 'a' && ch <= 'f') {
ii = ch - 'a' + 10;
} else
- pp->parseContext.ppError(ppToken->loc, "bad digit in hexidecimal literal", "", "");
+ pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", "");
ival = (ival << 4) | ii;
} else {
if (! AlreadyComplained) {
- pp->parseContext.ppError(ppToken->loc, "hexidecimal literal too big", "", "");
+ pp->parseContext.ppError(ppToken->loc, "hexadecimal literal too big", "", "");
AlreadyComplained = 1;
}
ival = 0xffffffffffffffffull;
@@ -333,7 +333,7 @@
(ch >= 'A' && ch <= 'F') ||
(ch >= 'a' && ch <= 'f'));
} else {
- pp->parseContext.ppError(ppToken->loc, "bad digit in hexidecimal literal", "", "");
+ pp->parseContext.ppError(ppToken->loc, "bad digit in hexadecimal literal", "", "");
}
if (ch == 'u' || ch == 'U') {
if (len < MaxTokenLength)
@@ -405,7 +405,7 @@
}
if (ch == '.' || ch == 'e' || ch == 'f' || ch == 'E' || ch == 'F')
return pp->lFloatConst(len, ch, ppToken);
-
+
// wasn't a float, so must be octal...
if (nonOctal)
pp->parseContext.ppError(ppToken->loc, "octal literal digit too large", "", "");
@@ -447,7 +447,7 @@
break;
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
- // can't be hexidecimal or octal, is either decimal or floating point
+ // can't be hexadecimal or octal, is either decimal or floating point
do {
if (len < MaxTokenLength)
@@ -705,7 +705,7 @@
// Return 0 when no more tokens.
//
const char* TPpContext::tokenize(TPpToken* ppToken)
-{
+{
int token = '\n';
for(;;) {
diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp
index 7a1a244..61883c9 100644
--- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp
+++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp
@@ -180,14 +180,17 @@
ltoken += 128;
switch (ltoken) {
case '#':
- if (lReadByte(pTok) == '#') {
- parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)");
- parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)");
- parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", "");
- //return PpAtomPaste;
- return ReadToken(pTok, ppToken);
- } else
- lUnreadByte(pTok);
+ // Check for ##, unless the current # is the last character
+ if (pTok->current < pTok->data.size()) {
+ if (lReadByte(pTok) == '#') {
+ parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)");
+ parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)");
+ parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", "");
+ //return PpAtomPaste;
+ return ReadToken(pTok, ppToken);
+ } else
+ lUnreadByte(pTok);
+ }
break;
case PpAtomConstString:
case PpAtomIdentifier:
diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.h b/glslang/MachineIndependent/preprocessor/PpTokens.h
index 87f0eb1..fd4d407 100644
--- a/glslang/MachineIndependent/preprocessor/PpTokens.h
+++ b/glslang/MachineIndependent/preprocessor/PpTokens.h
@@ -125,7 +125,7 @@
PpAtomConstDouble,
PpAtomConstString,
- // Indentifiers
+ // Identifiers
PpAtomIdentifier,
// preprocessor "keywords"
diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp
index 123e086..8e583ea 100644
--- a/glslang/OSDependent/Unix/ossource.cpp
+++ b/glslang/OSDependent/Unix/ossource.cpp
@@ -170,16 +170,16 @@
void GetGlobalLock() { }
void ReleaseGlobalLock() { }
-void* OS_CreateThread(TThreadEntrypoint entry)
+void* OS_CreateThread(TThreadEntrypoint /*entry*/)
{
return 0;
}
-void OS_WaitForAllThreads(void* threads, int numThreads)
+void OS_WaitForAllThreads(void* /*threads*/, int /*numThreads*/)
{
}
-void OS_Sleep(int milliseconds)
+void OS_Sleep(int /*milliseconds*/)
{
}
diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp
index 6f4abef..7c31df0 100644
--- a/gtests/AST.FromFile.cpp
+++ b/gtests/AST.FromFile.cpp
@@ -78,6 +78,7 @@
"cppSimple.vert",
"cppIndent.vert",
"cppNest.vert",
+ "cppBad.vert",
"cppComplexExpr.vert",
"badChars.frag",
"pointCoord.frag",
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index c1bfcb9..0d99d1e 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -75,17 +75,33 @@
{"hlsl.array.frag", "PixelShaderFunction"},
{"hlsl.assoc.frag", "PixelShaderFunction"},
{"hlsl.attribute.frag", "PixelShaderFunction"},
+ {"hlsl.buffer.frag", "PixelShaderFunction"},
+ {"hlsl.calculatelod.dx10.frag", "main"},
+ {"hlsl.calculatelodunclamped.dx10.frag", "main"},
{"hlsl.cast.frag", "PixelShaderFunction"},
+ {"hlsl.conditional.frag", "PixelShaderFunction"},
+ {"hlsl.constructexpr.frag", "main"},
{"hlsl.discard.frag", "PixelShaderFunction"},
{"hlsl.doLoop.frag", "PixelShaderFunction"},
{"hlsl.float1.frag", "PixelShaderFunction"},
{"hlsl.float4.frag", "PixelShaderFunction"},
{"hlsl.forLoop.frag", "PixelShaderFunction"},
+ {"hlsl.gather.array.dx10.frag", "main"},
+ {"hlsl.gather.basic.dx10.frag", "main"},
+ {"hlsl.gather.basic.dx10.vert", "main"},
+ {"hlsl.gather.offset.dx10.frag", "main"},
+ {"hlsl.gather.offsetarray.dx10.frag", "main"},
+ {"hlsl.gatherRGBA.array.dx10.frag", "main"},
+ {"hlsl.gatherRGBA.basic.dx10.frag", "main"},
+ {"hlsl.gatherRGBA.offset.dx10.frag", "main"},
+ {"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"},
{"hlsl.getdimensions.dx10.frag", "main"},
{"hlsl.getdimensions.dx10.vert", "main"},
+ {"hlsl.getsampleposition.dx10.frag", "main"},
{"hlsl.if.frag", "PixelShaderFunction"},
{"hlsl.inoutquals.frag", "main"},
{"hlsl.init.frag", "ShaderFunction"},
+ {"hlsl.init2.frag", "main"},
{"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"},
{"hlsl.intrinsics.comp", "ComputeShaderFunction"},
{"hlsl.intrinsics.evalfns.frag", "main"},
@@ -96,6 +112,15 @@
{"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"},
{"hlsl.intrinsics.negative.frag", "PixelShaderFunction"},
{"hlsl.intrinsics.negative.vert", "VertexShaderFunction"},
+ {"hlsl.load.2dms.dx10.frag", "main"},
+ {"hlsl.load.array.dx10.frag", "main"},
+ {"hlsl.load.basic.dx10.frag", "main"},
+ {"hlsl.load.basic.dx10.vert", "main"},
+ {"hlsl.load.buffer.dx10.frag", "main"},
+ {"hlsl.load.offset.dx10.frag", "main"},
+ {"hlsl.load.offsetarray.dx10.frag", "main"},
+ {"hlsl.numericsuffixes.frag", "main"},
+ {"hlsl.pp.line.frag", "main"},
{"hlsl.sample.array.dx10.frag", "main"},
{"hlsl.sample.basic.dx10.frag", "main"},
{"hlsl.sample.offset.dx10.frag", "main"},
@@ -104,11 +129,26 @@
{"hlsl.samplebias.basic.dx10.frag", "main"},
{"hlsl.samplebias.offset.dx10.frag", "main"},
{"hlsl.samplebias.offsetarray.dx10.frag", "main"},
+ {"hlsl.samplecmp.array.dx10.frag", "main"},
+ {"hlsl.samplecmp.basic.dx10.frag", "main"},
+ {"hlsl.samplecmp.offset.dx10.frag", "main"},
+ {"hlsl.samplecmp.offsetarray.dx10.frag", "main"},
+ {"hlsl.samplecmplevelzero.array.dx10.frag", "main"},
+ {"hlsl.samplecmplevelzero.basic.dx10.frag", "main"},
+ {"hlsl.samplecmplevelzero.offset.dx10.frag", "main"},
+ {"hlsl.samplecmplevelzero.offsetarray.dx10.frag", "main"},
{"hlsl.samplegrad.array.dx10.frag", "main"},
{"hlsl.samplegrad.basic.dx10.frag", "main"},
{"hlsl.samplegrad.basic.dx10.vert", "main"},
{"hlsl.samplegrad.offset.dx10.frag", "main"},
{"hlsl.samplegrad.offsetarray.dx10.frag", "main"},
+ {"hlsl.samplelevel.array.dx10.frag", "main"},
+ {"hlsl.samplelevel.basic.dx10.frag", "main"},
+ {"hlsl.samplelevel.basic.dx10.vert", "main"},
+ {"hlsl.samplelevel.offset.dx10.frag", "main"},
+ {"hlsl.samplelevel.offsetarray.dx10.frag", "main"},
+ {"hlsl.semicolons.frag", "main"},
+ {"hlsl.shapeConv.frag", "main"},
{"hlsl.intrinsics.vert", "VertexShaderFunction"},
{"hlsl.matType.frag", "PixelShaderFunction"},
{"hlsl.max.frag", "PixelShaderFunction"},
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index dbe0507..a8f3dd8 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -184,6 +184,7 @@
"spv.structure.frag",
"spv.switch.frag",
"spv.swizzle.frag",
+ "spv.swizzleInversion.frag",
"spv.test.frag",
"spv.test.vert",
"spv.texture.frag",
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index 61fe8f5..64e8b9f 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -89,12 +89,17 @@
// compilationUnit
// : list of externalDeclaration
+// | SEMICOLONS
//
bool HlslGrammar::acceptCompilationUnit()
{
TIntermNode* unitNode = nullptr;
while (! peekTokenClass(EHTokNone)) {
+ // HLSL allows semicolons between global declarations, e.g, between functions.
+ if (acceptTokenClass(EHTokSemicolon))
+ continue;
+
// externalDeclaration
TIntermNode* declarationNode;
if (! acceptDeclaration(declarationNode))
@@ -337,6 +342,8 @@
if (typedefDecl)
parseContext.declareTypedef(idToken.loc, *idToken.string, type, arraySizes);
+ else if (type.getBasicType() == EbtBlock)
+ parseContext.declareBlock(idToken.loc, type, idToken.string);
else {
// Declare the variable and add any initializer code to the AST.
// The top-level node is always made into an aggregate, as that's
@@ -414,11 +421,19 @@
TQualifier qualifier;
qualifier.clear();
acceptQualifier(qualifier);
+ TSourceLoc loc = token.loc;
// type_specifier
if (! acceptType(type))
return false;
- type.getQualifier() = qualifier;
+ if (type.getBasicType() == EbtBlock) {
+ // the type was a block, which set some parts of the qualifier
+ parseContext.mergeQualifiers(loc, type.getQualifier(), qualifier, true);
+ // further, it can create an anonymous instance of the block
+ if (peekTokenClass(EHTokSemicolon))
+ parseContext.declareBlock(loc, type);
+ } else
+ type.getQualifier() = qualifier;
return true;
}
@@ -661,8 +676,11 @@
// read sampler type
const EHlslTokenClass samplerType = peek();
+ // TODO: for DX9
// TSamplerDim dim = EsdNone;
+ bool isShadow = false;
+
switch (samplerType) {
case EHTokSampler: break;
case EHTokSampler1d: /*dim = Esd1D*/; break;
@@ -670,7 +688,7 @@
case EHTokSampler3d: /*dim = Esd3D*/; break;
case EHTokSamplerCube: /*dim = EsdCube*/; break;
case EHTokSamplerState: break;
- case EHTokSamplerComparisonState: break;
+ case EHTokSamplerComparisonState: isShadow = true; break;
default:
return false; // not a sampler declaration
}
@@ -678,10 +696,9 @@
advanceToken(); // consume the sampler type keyword
TArraySizes* arraySizes = nullptr; // TODO: array
- bool shadow = false; // TODO: shadow
TSampler sampler;
- sampler.setPureSampler(shadow);
+ sampler.setPureSampler(isShadow);
type.shallowCopy(TType(sampler, EvqUniform, arraySizes));
@@ -742,6 +759,18 @@
return false;
}
+ // Buffers can handle small mats if they fit in 4 components
+ if (dim == EsdBuffer && txType.isMatrix()) {
+ if ((txType.getMatrixCols() * txType.getMatrixRows()) > 4) {
+ expected("components < 4 in matrix buffer type");
+ return false;
+ }
+
+ // TODO: except we don't handle it yet...
+ unimplemented("matrix type in buffer");
+ return false;
+ }
+
if (!txType.isScalar() && !txType.isVector()) {
expected("scalar or vector type");
return false;
@@ -777,7 +806,14 @@
const bool shadow = txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1);
TSampler sampler;
- sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms);
+
+ // Buffers are combined.
+ if (dim == EsdBuffer) {
+ sampler.set(txType.getBasicType(), dim, array);
+ } else {
+ // DX10 textures are separated. TODO: DX9.
+ sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms);
+ }
type.shallowCopy(TType(sampler, EvqUniform, arraySizes));
@@ -823,6 +859,8 @@
break;
case EHTokStruct:
+ case EHTokCBuffer:
+ case EHTokTBuffer:
return acceptStruct(type);
break;
@@ -1184,13 +1222,29 @@
}
// struct
-// : STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE
-// | STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE
+// : struct_type IDENTIFIER post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE
+// | struct_type post_decls LEFT_BRACE struct_declaration_list RIGHT_BRACE
+//
+// struct_type
+// : STRUCT
+// | CBUFFER
+// | TBUFFER
//
bool HlslGrammar::acceptStruct(TType& type)
{
+ // This qualifier.storage will tell us whether it's an AST block or
+ // just a struct.
+ TQualifier qualifier;
+ qualifier.clear();
+
+ // CBUFFER
+ if (acceptTokenClass(EHTokCBuffer))
+ qualifier.storage = EvqUniform;
+ // TBUFFER
+ else if (acceptTokenClass(EHTokTBuffer))
+ qualifier.storage = EvqBuffer;
// STRUCT
- if (! acceptTokenClass(EHTokStruct))
+ else if (! acceptTokenClass(EHTokStruct))
return false;
// IDENTIFIER
@@ -1200,6 +1254,9 @@
advanceToken();
}
+ // post_decls
+ acceptPostDecls(type);
+
// LEFT_BRACE
if (! acceptTokenClass(EHTokLeftBrace)) {
expected("{");
@@ -1220,11 +1277,15 @@
}
// create the user-defined type
- new(&type) TType(typeList, structName);
+ if (qualifier.storage == EvqTemporary)
+ new(&type) TType(typeList, structName);
+ else
+ new(&type) TType(typeList, structName, qualifier); // sets EbtBlock
- // If it was named, which means it can be reused later, add
- // it to the symbol table.
- if (structName.size() > 0) {
+ // If it was named, which means the type can be reused later, add
+ // it to the symbol table. (Unless it's a block, in which
+ // case the name is not a type.)
+ if (type.getBasicType() != EbtBlock && structName.size() > 0) {
TVariable* userTypeDef = new TVariable(&structName, type, true);
if (! parseContext.symbolTable.insert(*userTypeDef))
parseContext.error(token.loc, "redefinition", structName.c_str(), "struct");
@@ -1493,8 +1554,11 @@
node = intermediate.growAggregate(node, expr, loc);
// COMMA
- if (acceptTokenClass(EHTokComma))
+ if (acceptTokenClass(EHTokComma)) {
+ if (acceptTokenClass(EHTokRightBrace)) // allow trailing comma
+ return true;
continue;
+ }
// RIGHT_BRACE
if (acceptTokenClass(EHTokRightBrace))
@@ -1511,8 +1575,9 @@
// a op (b op (c op d))
//
// assigment_expression
-// : binary_expression op binary_expression op binary_expression ...
-// | initializer
+// : initializer
+// | conditional_expression
+// | conditional_expression assign_op conditional_expression assign_op conditional_expression ...
//
bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node)
{
@@ -1525,8 +1590,8 @@
return false;
}
- // binary_expression
- if (! acceptBinaryExpression(node, PlLogicalOr))
+ // conditional_expression
+ if (! acceptConditionalExpression(node))
return false;
// assignment operation?
@@ -1534,12 +1599,12 @@
if (assignOp == EOpNull)
return true;
- // assignment op
+ // assign_op
TSourceLoc loc = token.loc;
advanceToken();
- // binary_expression
- // But, done by recursing this function, which automatically
+ // conditional_expression assign_op conditional_expression ...
+ // Done by recursing this function, which automatically
// gets the right-to-left associativity.
TIntermTyped* rightNode = nullptr;
if (! acceptAssignmentExpression(rightNode)) {
@@ -1548,6 +1613,10 @@
}
node = intermediate.addAssign(assignOp, node, rightNode, loc);
+ if (node == nullptr) {
+ parseContext.error(loc, "could not create assignment", "", "");
+ return false;
+ }
if (! peekTokenClass(EHTokComma))
return true;
@@ -1555,6 +1624,46 @@
return true;
}
+// Accept a conditional expression, which associates right-to-left,
+// accomplished by the "true" expression calling down to lower
+// precedence levels than this level.
+//
+// conditional_expression
+// : binary_expression
+// | binary_expression QUESTION expression COLON assignment_expression
+//
+bool HlslGrammar::acceptConditionalExpression(TIntermTyped*& node)
+{
+ // binary_expression
+ if (! acceptBinaryExpression(node, PlLogicalOr))
+ return false;
+
+ if (! acceptTokenClass(EHTokQuestion))
+ return true;
+
+ TIntermTyped* trueNode = nullptr;
+ if (! acceptExpression(trueNode)) {
+ expected("expression after ?");
+ return false;
+ }
+ TSourceLoc loc = token.loc;
+
+ if (! acceptTokenClass(EHTokColon)) {
+ expected(":");
+ return false;
+ }
+
+ TIntermTyped* falseNode = nullptr;
+ if (! acceptAssignmentExpression(falseNode)) {
+ expected("expression after :");
+ return false;
+ }
+
+ node = intermediate.addSelection(node, trueNode, falseNode, loc);
+
+ return true;
+}
+
// Accept a binary expression, for binary operations that
// associate left-to-right. This is, it is implicit, for example
//
@@ -1574,12 +1683,12 @@
if (! acceptBinaryExpression(node, (PrecedenceLevel)(precedenceLevel + 1)))
return false;
- TOperator op = HlslOpMap::binary(peek());
- PrecedenceLevel tokenLevel = HlslOpMap::precedenceLevel(op);
- if (tokenLevel < precedenceLevel)
- return true;
-
do {
+ TOperator op = HlslOpMap::binary(peek());
+ PrecedenceLevel tokenLevel = HlslOpMap::precedenceLevel(op);
+ if (tokenLevel < precedenceLevel)
+ return true;
+
// ... op
TSourceLoc loc = token.loc;
advanceToken();
@@ -1592,9 +1701,10 @@
}
node = intermediate.addBinaryMath(op, node, rightNode, loc);
-
- if (! peekTokenClass(EHTokComma))
- return true;
+ if (node == nullptr) {
+ parseContext.error(loc, "Could not perform requested binary operation", "", "");
+ return false;
+ }
} while (true);
}
@@ -1616,27 +1726,29 @@
if (acceptTokenClass(EHTokLeftParen)) {
TType castType;
if (acceptType(castType)) {
- if (! acceptTokenClass(EHTokRightParen)) {
- expected(")");
- return false;
+ if (acceptTokenClass(EHTokRightParen)) {
+ // We've matched "(type)" now, get the expression to cast
+ TSourceLoc loc = token.loc;
+ if (! acceptUnaryExpression(node))
+ return false;
+
+ // Hook it up like a constructor
+ TFunction* constructorFunction = parseContext.handleConstructorCall(loc, castType);
+ if (constructorFunction == nullptr) {
+ expected("type that can be constructed");
+ return false;
+ }
+ TIntermTyped* arguments = nullptr;
+ parseContext.handleFunctionArgument(constructorFunction, arguments, node);
+ node = parseContext.handleFunctionCall(loc, constructorFunction, arguments);
+
+ return true;
+ } else {
+ // This could be a parenthesized constructor, ala (int(3)), and we just accepted
+ // the '(int' part. We must back up twice.
+ recedeToken();
+ recedeToken();
}
-
- // We've matched "(type)" now, get the expression to cast
- TSourceLoc loc = token.loc;
- if (! acceptUnaryExpression(node))
- return false;
-
- // Hook it up like a constructor
- TFunction* constructorFunction = parseContext.handleConstructorCall(loc, castType);
- if (constructorFunction == nullptr) {
- expected("type that can be constructed");
- return false;
- }
- TIntermTyped* arguments = nullptr;
- parseContext.handleFunctionArgument(constructorFunction, arguments, node);
- node = parseContext.handleFunctionCall(loc, constructorFunction, arguments);
-
- return true;
} else {
// This isn't a type cast, but it still started "(", so if it is a
// unary expression, it can only be a postfix_expression, so try that.
@@ -1879,6 +1991,9 @@
case EHTokIntConstant:
node = intermediate.addConstantUnion(token.i, token.loc, true);
break;
+ case EHTokUintConstant:
+ node = intermediate.addConstantUnion(token.u, token.loc, true);
+ break;
case EHTokFloatConstant:
node = intermediate.addConstantUnion(token.d, EbtFloat, token.loc, true);
break;
@@ -2416,10 +2531,10 @@
}
// post_decls
-// : COLON semantic // optional
-// COLON PACKOFFSET LEFT_PAREN ... RIGHT_PAREN // optional
-// COLON REGISTER // optional
-// annotations // optional
+// : COLON semantic // optional
+// COLON PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN // optional
+// COLON REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN // optional
+// annotations // optional
//
void HlslGrammar::acceptPostDecls(TType& type)
{
@@ -2428,38 +2543,71 @@
if (acceptTokenClass(EHTokColon)) {
HlslToken idToken;
if (acceptTokenClass(EHTokPackOffset)) {
+ // PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN
if (! acceptTokenClass(EHTokLeftParen)) {
expected("(");
return;
}
- acceptTokenClass(EHTokIdentifier);
- acceptTokenClass(EHTokDot);
- acceptTokenClass(EHTokIdentifier);
+ HlslToken locationToken;
+ if (! acceptIdentifier(locationToken)) {
+ expected("c[subcomponent][.component]");
+ return;
+ }
+ HlslToken componentToken;
+ if (acceptTokenClass(EHTokDot)) {
+ if (! acceptIdentifier(componentToken)) {
+ expected("component");
+ return;
+ }
+ }
if (! acceptTokenClass(EHTokRightParen)) {
expected(")");
break;
}
- // TODO: process the packoffset information
+ parseContext.handlePackOffset(locationToken.loc, type, *locationToken.string, componentToken.string);
} else if (! acceptIdentifier(idToken)) {
expected("semantic or packoffset or register");
return;
} else if (*idToken.string == "register") {
+ // REGISTER LEFT_PAREN [shader_profile,] Type#[subcomp]opt RIGHT_PAREN
if (! acceptTokenClass(EHTokLeftParen)) {
expected("(");
return;
}
- acceptTokenClass(EHTokIdentifier);
- acceptTokenClass(EHTokComma);
- acceptTokenClass(EHTokIdentifier);
- acceptTokenClass(EHTokLeftBracket);
- if (peekTokenClass(EHTokIntConstant))
+ HlslToken registerDesc; // for Type#
+ HlslToken profile;
+ if (! acceptIdentifier(registerDesc)) {
+ expected("register number description");
+ return;
+ }
+ if (acceptTokenClass(EHTokComma)) {
+ // Then we didn't really see the registerDesc yet, it was
+ // actually the profile. Adjust...
+ profile = registerDesc;
+ if (! acceptIdentifier(registerDesc)) {
+ expected("register number description");
+ return;
+ }
+ }
+ int subComponent = 0;
+ if (acceptTokenClass(EHTokLeftBracket)) {
+ // LEFT_BRACKET subcomponent RIGHT_BRACKET
+ if (! peekTokenClass(EHTokIntConstant)) {
+ expected("literal integer");
+ return;
+ }
+ subComponent = token.i;
advanceToken();
- acceptTokenClass(EHTokRightBracket);
+ if (! acceptTokenClass(EHTokRightBracket)) {
+ expected("]");
+ break;
+ }
+ }
if (! acceptTokenClass(EHTokRightParen)) {
expected(")");
break;
}
- // TODO: process the register information
+ parseContext.handleRegister(registerDesc.loc, type, profile.string, *registerDesc.string, subComponent);
} else {
// semantic, in idToken.string
parseContext.handleSemantic(type, *idToken.string);
diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h
index 9f224fe..c522df4 100755
--- a/hlsl/hlslGrammar.h
+++ b/hlsl/hlslGrammar.h
@@ -83,6 +83,7 @@
bool acceptExpression(TIntermTyped*&);
bool acceptInitializer(TIntermTyped*&);
bool acceptAssignmentExpression(TIntermTyped*&);
+ bool acceptConditionalExpression(TIntermTyped*&);
bool acceptBinaryExpression(TIntermTyped*&, PrecedenceLevel);
bool acceptUnaryExpression(TIntermTyped*&);
bool acceptPostfixExpression(TIntermTyped*&);
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index 25dd745..fc926d7 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -88,6 +88,14 @@
{
}
+void HlslParseContext::initializeExtensionBehavior()
+{
+ TParseContextBase::initializeExtensionBehavior();
+
+ // HLSL allows #line by default.
+ extensionBehavior[E_GL_GOOGLE_cpp_style_line_directive] = EBhEnable;
+}
+
void HlslParseContext::setLimits(const TBuiltInResource& r)
{
resources = r;
@@ -573,6 +581,15 @@
} else if (field == "CalculateLevelOfDetail" ||
field == "CalculateLevelOfDetailUnclamped" ||
field == "Gather" ||
+ field == "GatherRed" ||
+ field == "GatherGreen" ||
+ field == "GatherBlue" ||
+ field == "GatherAlpha" ||
+ field == "GatherCmp" ||
+ field == "GatherCmpRed" ||
+ field == "GatherCmpGreen" ||
+ field == "GatherCmpBlue" ||
+ field == "GatherCmpAlpha" ||
field == "GetDimensions" ||
field == "GetSamplePosition" ||
field == "Load" ||
@@ -616,7 +633,7 @@
return result;
else {
TType type(base->getBasicType(), EvqTemporary, fields.num);
- return addConstructor(loc, base, type, mapTypeToConstructorOp(type));
+ return addConstructor(loc, base, type);
}
}
@@ -626,7 +643,7 @@
if (fields.num == 1) {
TIntermTyped* index = intermediate.addConstantUnion(fields.offsets[0], loc);
result = intermediate.addIndex(EOpIndexDirect, base, index, loc);
- result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision));
+ result->setType(TType(base->getBasicType(), EvqTemporary));
} else {
TString vectorString = field;
TIntermTyped* index = intermediate.addSwizzle(fields, loc);
@@ -825,6 +842,7 @@
TSampler samplerType = argTex->getType().getSampler();
samplerType.combined = true;
+ samplerType.shadow = argSampler->getType().getSampler().shadow;
txcombine->setType(TType(samplerType, EvqTemporary));
txcombine->setLoc(loc);
@@ -980,7 +998,7 @@
const TSampler& texSampler = texType.getSampler();
const TSamplerDim dim = texSampler.dim;
- const int numArgs = argAggregate->getSequence().size();
+ const int numArgs = (int) argAggregate->getSequence().size();
int numDims = 0;
@@ -998,7 +1016,7 @@
++numDims;
// Establish whether we're querying mip levels
- const bool mipQuery = numArgs > (numDims + 1);
+ const bool mipQuery = (numArgs > (numDims + 1)) && (!texSampler.isMultiSample());
// AST assumes integer return. Will be converted to float if required.
TIntermAggregate* sizeQuery = new TIntermAggregate(EOpTextureQuerySize);
@@ -1054,6 +1072,19 @@
compoundStatement = intermediate.growAggregate(compoundStatement, compAssign);
}
+ // 2DMS formats query # samples, which needs a different query op
+ if (texSampler.isMultiSample()) {
+ TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped();
+
+ TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples);
+ samplesQuery->getSequence().push_back(argTex);
+ samplesQuery->setType(TType(EbtUint, EvqTemporary, 1));
+ samplesQuery->setLoc(loc);
+
+ TIntermTyped* compAssign = intermediate.addAssign(EOpAssign, outParam, samplesQuery, loc);
+ compoundStatement = intermediate.growAggregate(compoundStatement, compAssign);
+ }
+
compoundStatement->setOperator(EOpSequence);
compoundStatement->setLoc(loc);
compoundStatement->setType(TType(EbtVoid));
@@ -1063,6 +1094,351 @@
break;
}
+ case EOpMethodSampleCmp: // fall through...
+ case EOpMethodSampleCmpLevelZero:
+ {
+ TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
+ TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped();
+ TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped();
+ TIntermTyped* argCmpVal = argAggregate->getSequence()[3]->getAsTyped();
+ TIntermTyped* argOffset = nullptr;
+
+ // optional offset value
+ if (argAggregate->getSequence().size() > 4)
+ argOffset = argAggregate->getSequence()[4]->getAsTyped();
+
+ const int coordDimWithCmpVal = argCoord->getType().getVectorSize() + 1; // +1 for cmp
+
+ // AST wants comparison value as one of the texture coordinates
+ TOperator constructOp = EOpNull;
+ switch (coordDimWithCmpVal) {
+ // 1D can't happen: there's always at least 1 coordinate dimension + 1 cmp val
+ case 2: constructOp = EOpConstructVec2; break;
+ case 3: constructOp = EOpConstructVec3; break;
+ case 4: constructOp = EOpConstructVec4; break;
+ case 5: constructOp = EOpConstructVec4; break; // cubeArrayShadow, cmp value is separate arg.
+ default: assert(0); break;
+ }
+
+ TIntermAggregate* coordWithCmp = new TIntermAggregate(constructOp);
+ coordWithCmp->getSequence().push_back(argCoord);
+ if (coordDimWithCmpVal != 5) // cube array shadow is special.
+ coordWithCmp->getSequence().push_back(argCmpVal);
+ coordWithCmp->setLoc(loc);
+
+ TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture);
+ if (argOffset != nullptr)
+ textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLodOffset : EOpTextureOffset);
+
+ // Create combined sampler & texture op
+ TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
+ TIntermAggregate* txsample = new TIntermAggregate(textureOp);
+ txsample->getSequence().push_back(txcombine);
+ txsample->getSequence().push_back(coordWithCmp);
+
+ if (coordDimWithCmpVal == 5) // cube array shadow is special: cmp val follows coord.
+ txsample->getSequence().push_back(argCmpVal);
+
+ // the LevelZero form uses 0 as an explicit LOD
+ if (op == EOpMethodSampleCmpLevelZero)
+ txsample->getSequence().push_back(intermediate.addConstantUnion(0.0, EbtFloat, loc, true));
+
+ // Add offset if present
+ if (argOffset != nullptr)
+ txsample->getSequence().push_back(argOffset);
+
+ txsample->setType(node->getType());
+ txsample->setLoc(loc);
+ node = txsample;
+
+ break;
+ }
+
+ case EOpMethodLoad:
+ {
+ TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
+ TIntermTyped* argCoord = argAggregate->getSequence()[1]->getAsTyped();
+ TIntermTyped* argOffset = nullptr;
+ TIntermTyped* lodComponent = nullptr;
+ TIntermTyped* coordSwizzle = nullptr;
+
+ const bool isMS = argTex->getType().getSampler().isMultiSample();
+ const bool isBuffer = argTex->getType().getSampler().dim == EsdBuffer;
+ const TBasicType coordBaseType = argCoord->getType().getBasicType();
+
+ // Last component of coordinate is the mip level, for non-MS. we separate them here:
+ if (isMS || isBuffer) {
+ // MS and Buffer have no LOD
+ coordSwizzle = argCoord;
+ } else {
+ // Extract coordinate
+ TVectorFields coordFields(0,1,2,3);
+ coordFields.num = argCoord->getType().getVectorSize() - (isMS ? 0 : 1);
+ TIntermTyped* coordIdx = intermediate.addSwizzle(coordFields, loc);
+ coordSwizzle = intermediate.addIndex(EOpVectorSwizzle, argCoord, coordIdx, loc);
+ coordSwizzle->setType(TType(coordBaseType, EvqTemporary, coordFields.num));
+
+ // Extract LOD
+ TIntermTyped* lodIdx = intermediate.addConstantUnion(coordFields.num, loc, true);
+ lodComponent = intermediate.addIndex(EOpIndexDirect, argCoord, lodIdx, loc);
+ lodComponent->setType(TType(coordBaseType, EvqTemporary, 1));
+ }
+
+ const int numArgs = (int) argAggregate->getSequence().size();
+ const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4));
+
+ // Create texel fetch
+ const TOperator fetchOp = (hasOffset ? EOpTextureFetchOffset : EOpTextureFetch);
+ TIntermAggregate* txfetch = new TIntermAggregate(fetchOp);
+
+ // Build up the fetch
+ txfetch->getSequence().push_back(argTex);
+ txfetch->getSequence().push_back(coordSwizzle);
+
+ if (isMS) {
+ // add 2DMS sample index
+ TIntermTyped* argSampleIdx = argAggregate->getSequence()[2]->getAsTyped();
+ txfetch->getSequence().push_back(argSampleIdx);
+ } else if (isBuffer) {
+ // Nothing else to do for buffers.
+ } else {
+ // 2DMS and buffer have no LOD, but everything else does.
+ txfetch->getSequence().push_back(lodComponent);
+ }
+
+ // Obtain offset arg, if there is one.
+ if (hasOffset) {
+ const int offsetPos = (isMS ? 3 : 2);
+ argOffset = argAggregate->getSequence()[offsetPos]->getAsTyped();
+ txfetch->getSequence().push_back(argOffset);
+ }
+
+ txfetch->setType(node->getType());
+ txfetch->setLoc(loc);
+ node = txfetch;
+
+ break;
+ }
+
+ case EOpMethodSampleLevel:
+ {
+ TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
+ TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped();
+ TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped();
+ TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped();
+ TIntermTyped* argOffset = nullptr;
+
+ const int numArgs = (int) argAggregate->getSequence().size();
+
+ if (numArgs == 5) // offset, if present
+ argOffset = argAggregate->getSequence()[4]->getAsTyped();
+
+ const TOperator textureOp = (argOffset == nullptr ? EOpTextureLod : EOpTextureLodOffset);
+ TIntermAggregate* txsample = new TIntermAggregate(textureOp);
+
+ TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
+
+ txsample->getSequence().push_back(txcombine);
+ txsample->getSequence().push_back(argCoord);
+ txsample->getSequence().push_back(argLod);
+
+ if (argOffset != nullptr)
+ txsample->getSequence().push_back(argOffset);
+
+ txsample->setType(node->getType());
+ txsample->setLoc(loc);
+ node = txsample;
+
+ break;
+ }
+
+ case EOpMethodGather:
+ {
+ TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
+ TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped();
+ TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped();
+ TIntermTyped* argOffset = nullptr;
+
+ // Offset is optional
+ if (argAggregate->getSequence().size() > 3)
+ argOffset = argAggregate->getSequence()[3]->getAsTyped();
+
+ const TOperator textureOp = (argOffset == nullptr ? EOpTextureGather : EOpTextureGatherOffset);
+ TIntermAggregate* txgather = new TIntermAggregate(textureOp);
+
+ TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
+
+ txgather->getSequence().push_back(txcombine);
+ txgather->getSequence().push_back(argCoord);
+ // Offset if not given is implicitly channel 0 (red)
+
+ if (argOffset != nullptr)
+ txgather->getSequence().push_back(argOffset);
+
+ txgather->setType(node->getType());
+ txgather->setLoc(loc);
+ node = txgather;
+
+ break;
+ }
+
+ case EOpMethodGatherRed: // fall through...
+ case EOpMethodGatherGreen: // ...
+ case EOpMethodGatherBlue: // ...
+ case EOpMethodGatherAlpha: // ...
+ case EOpMethodGatherCmpRed: // ...
+ case EOpMethodGatherCmpGreen: // ...
+ case EOpMethodGatherCmpBlue: // ...
+ case EOpMethodGatherCmpAlpha: // ...
+ {
+ int channel = 0; // the channel we are gathering
+ int cmpValues = 0; // 1 if there is a compare value (handier than a bool below)
+
+ switch (op) {
+ case EOpMethodGatherCmpRed: cmpValues = 1; // fall through
+ case EOpMethodGatherRed: channel = 0; break;
+ case EOpMethodGatherCmpGreen: cmpValues = 1; // fall through
+ case EOpMethodGatherGreen: channel = 1; break;
+ case EOpMethodGatherCmpBlue: cmpValues = 1; // fall through
+ case EOpMethodGatherBlue: channel = 2; break;
+ case EOpMethodGatherCmpAlpha: cmpValues = 1; // fall through
+ case EOpMethodGatherAlpha: channel = 3; break;
+ default: assert(0); break;
+ }
+
+ // For now, we have nothing to map the component-wise comparison forms
+ // to, because neither GLSL nor SPIR-V has such an opcode. Issue an
+ // unimplemented error instead. Most of the machinery is here if that
+ // should ever become available.
+ if (cmpValues) {
+ error(loc, "unimplemented: component-level gather compare", "", "");
+ return;
+ }
+
+ int arg = 0;
+
+ TIntermTyped* argTex = argAggregate->getSequence()[arg++]->getAsTyped();
+ TIntermTyped* argSamp = argAggregate->getSequence()[arg++]->getAsTyped();
+ TIntermTyped* argCoord = argAggregate->getSequence()[arg++]->getAsTyped();
+ TIntermTyped* argOffset = nullptr;
+ TIntermTyped* argOffsets[4] = { nullptr, nullptr, nullptr, nullptr };
+ // TIntermTyped* argStatus = nullptr; // TODO: residency
+ TIntermTyped* argCmp = nullptr;
+
+ const TSamplerDim dim = argTex->getType().getSampler().dim;
+
+ const int argSize = argAggregate->getSequence().size();
+ bool hasStatus = (argSize == (5+cmpValues) || argSize == (8+cmpValues));
+ bool hasOffset1 = false;
+ bool hasOffset4 = false;
+
+ // Only 2D forms can have offsets. Discover if we have 0, 1 or 4 offsets.
+ if (dim == Esd2D) {
+ hasOffset1 = (argSize == (4+cmpValues) || argSize == (5+cmpValues));
+ hasOffset4 = (argSize == (7+cmpValues) || argSize == (8+cmpValues));
+ }
+
+ assert(!(hasOffset1 && hasOffset4));
+
+ TOperator textureOp = EOpTextureGather;
+
+ // Compare forms have compare value
+ if (cmpValues != 0)
+ argCmp = argOffset = argAggregate->getSequence()[arg++]->getAsTyped();
+
+ // Some forms have single offset
+ if (hasOffset1) {
+ textureOp = EOpTextureGatherOffset; // single offset form
+ argOffset = argAggregate->getSequence()[arg++]->getAsTyped();
+ }
+
+ // Some forms have 4 gather offsets
+ if (hasOffset4) {
+ textureOp = EOpTextureGatherOffsets; // note plural, for 4 offset form
+ for (int offsetNum = 0; offsetNum < 4; ++offsetNum)
+ argOffsets[offsetNum] = argAggregate->getSequence()[arg++]->getAsTyped();
+ }
+
+ // Residency status
+ if (hasStatus) {
+ // argStatus = argAggregate->getSequence()[arg++]->getAsTyped();
+ error(loc, "unimplemented: residency status", "", "");
+ return;
+ }
+
+ TIntermAggregate* txgather = new TIntermAggregate(textureOp);
+ TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
+
+ TIntermTyped* argChannel = intermediate.addConstantUnion(channel, loc, true);
+
+ txgather->getSequence().push_back(txcombine);
+ txgather->getSequence().push_back(argCoord);
+
+ // AST wants an array of 4 offsets, where HLSL has separate args. Here
+ // we construct an array from the separate args.
+ if (hasOffset4) {
+ TType arrayType(EbtInt, EvqTemporary, 2);
+ TArraySizes arraySizes;
+ arraySizes.addInnerSize(4);
+ arrayType.newArraySizes(arraySizes);
+
+ TIntermAggregate* initList = new TIntermAggregate(EOpNull);
+
+ for (int offsetNum = 0; offsetNum < 4; ++offsetNum)
+ initList->getSequence().push_back(argOffsets[offsetNum]);
+
+ argOffset = addConstructor(loc, initList, arrayType);
+ }
+
+ // Add comparison value if we have one
+ if (argTex->getType().getSampler().isShadow())
+ txgather->getSequence().push_back(argCmp);
+
+ // Add offset (either 1, or an array of 4) if we have one
+ if (argOffset != nullptr)
+ txgather->getSequence().push_back(argOffset);
+
+ txgather->getSequence().push_back(argChannel);
+
+ txgather->setType(node->getType());
+ txgather->setLoc(loc);
+ node = txgather;
+
+ break;
+ }
+
+ case EOpMethodCalculateLevelOfDetail:
+ case EOpMethodCalculateLevelOfDetailUnclamped:
+ {
+ TIntermTyped* argTex = argAggregate->getSequence()[0]->getAsTyped();
+ TIntermTyped* argSamp = argAggregate->getSequence()[1]->getAsTyped();
+ TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped();
+
+ TIntermAggregate* txquerylod = new TIntermAggregate(EOpTextureQueryLod);
+
+ TIntermAggregate* txcombine = handleSamplerTextureCombine(loc, argTex, argSamp);
+ txquerylod->getSequence().push_back(txcombine);
+ txquerylod->getSequence().push_back(argCoord);
+
+ TIntermTyped* lodComponent = intermediate.addConstantUnion(0, loc, true);
+ TIntermTyped* lodComponentIdx = intermediate.addIndex(EOpIndexDirect, txquerylod, lodComponent, loc);
+ lodComponentIdx->setType(TType(EbtFloat, EvqTemporary, 1));
+
+ node = lodComponentIdx;
+
+ // We cannot currently obtain the unclamped LOD
+ if (op == EOpMethodCalculateLevelOfDetailUnclamped)
+ error(loc, "unimplemented: CalculateLevelOfDetailUnclamped", "", "");
+
+ break;
+ }
+
+ case EOpMethodGetSamplePosition:
+ {
+ error(loc, "unimplemented: GetSamplePosition", "", "");
+ break;
+ }
+
default:
break; // most pass through unchanged
}
@@ -1443,7 +1819,7 @@
//
// It's a constructor, of type 'type'.
//
- result = addConstructor(loc, arguments, type, op);
+ result = addConstructor(loc, arguments, type);
if (result == nullptr)
error(loc, "cannot construct with these arguments", type.getCompleteString().c_str(), "");
}
@@ -1712,11 +2088,6 @@
}
const TIntermSequence& aggArgs = *argp; // only valid when unaryArg is nullptr
- // built-in texturing functions get their return value precision from the precision of the sampler
- if (fnCandidate.getType().getQualifier().precision == EpqNone &&
- fnCandidate.getParamCount() > 0 && fnCandidate[0].type->getBasicType() == EbtSampler)
- callNode.getQualifier().precision = arg0->getQualifier().precision;
-
switch (callNode.getOp()) {
case EOpTextureGather:
case EOpTextureGatherOffset:
@@ -1819,11 +2190,6 @@
case EOpInterpolateAtCentroid:
case EOpInterpolateAtSample:
case EOpInterpolateAtOffset:
- // "For the interpolateAt* functions, the call will return a precision
- // qualification matching the precision of the 'interpolant' argument to
- // the function call."
- callNode.getQualifier().precision = arg0->getQualifier().precision;
-
// Make sure the first argument is an interpolant, or an array element of an interpolant
if (arg0->getType().getQualifier().storage != EvqVaryingIn) {
// It might still be an array element.
@@ -1849,7 +2215,7 @@
//
TFunction* HlslParseContext::handleConstructorCall(const TSourceLoc& loc, const TType& type)
{
- TOperator op = mapTypeToConstructorOp(type);
+ TOperator op = intermediate.mapTypeToConstructorOp(type);
if (op == EOpNull) {
error(loc, "cannot construct this type", type.getBasicString(), "");
@@ -1894,129 +2260,85 @@
}
//
-// Given a type, find what operation would fully construct it.
+// Handle seeing something like "PACKOFFSET LEFT_PAREN c[Subcomponent][.component] RIGHT_PAREN"
//
-TOperator HlslParseContext::mapTypeToConstructorOp(const TType& type) const
+// 'location' has the "c[Subcomponent]" part.
+// 'component' points to the "component" part, or nullptr if not present.
+//
+void HlslParseContext::handlePackOffset(const TSourceLoc& loc, TType& type, const glslang::TString& location,
+ const glslang::TString* component)
{
- TOperator op = EOpNull;
-
- switch (type.getBasicType()) {
- case EbtStruct:
- op = EOpConstructStruct;
- break;
- case EbtSampler:
- if (type.getSampler().combined)
- op = EOpConstructTextureSampler;
- break;
- case EbtFloat:
- if (type.isMatrix()) {
- switch (type.getMatrixCols()) {
- case 2:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructMat2x2; break;
- case 3: op = EOpConstructMat2x3; break;
- case 4: op = EOpConstructMat2x4; break;
- default: break; // some compilers want this
- }
- break;
- case 3:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructMat3x2; break;
- case 3: op = EOpConstructMat3x3; break;
- case 4: op = EOpConstructMat3x4; break;
- default: break; // some compilers want this
- }
- break;
- case 4:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructMat4x2; break;
- case 3: op = EOpConstructMat4x3; break;
- case 4: op = EOpConstructMat4x4; break;
- default: break; // some compilers want this
- }
- break;
- default: break; // some compilers want this
- }
- } else {
- switch (type.getVectorSize()) {
- case 1: op = EOpConstructFloat; break;
- case 2: op = EOpConstructVec2; break;
- case 3: op = EOpConstructVec3; break;
- case 4: op = EOpConstructVec4; break;
- default: break; // some compilers want this
- }
- }
- break;
- case EbtDouble:
- if (type.getMatrixCols()) {
- switch (type.getMatrixCols()) {
- case 2:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructDMat2x2; break;
- case 3: op = EOpConstructDMat2x3; break;
- case 4: op = EOpConstructDMat2x4; break;
- default: break; // some compilers want this
- }
- break;
- case 3:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructDMat3x2; break;
- case 3: op = EOpConstructDMat3x3; break;
- case 4: op = EOpConstructDMat3x4; break;
- default: break; // some compilers want this
- }
- break;
- case 4:
- switch (type.getMatrixRows()) {
- case 2: op = EOpConstructDMat4x2; break;
- case 3: op = EOpConstructDMat4x3; break;
- case 4: op = EOpConstructDMat4x4; break;
- default: break; // some compilers want this
- }
- break;
- }
- } else {
- switch (type.getVectorSize()) {
- case 1: op = EOpConstructDouble; break;
- case 2: op = EOpConstructDVec2; break;
- case 3: op = EOpConstructDVec3; break;
- case 4: op = EOpConstructDVec4; break;
- default: break; // some compilers want this
- }
- }
- break;
- case EbtInt:
- switch (type.getVectorSize()) {
- case 1: op = EOpConstructInt; break;
- case 2: op = EOpConstructIVec2; break;
- case 3: op = EOpConstructIVec3; break;
- case 4: op = EOpConstructIVec4; break;
- default: break; // some compilers want this
- }
- break;
- case EbtUint:
- switch (type.getVectorSize()) {
- case 1: op = EOpConstructUint; break;
- case 2: op = EOpConstructUVec2; break;
- case 3: op = EOpConstructUVec3; break;
- case 4: op = EOpConstructUVec4; break;
- default: break; // some compilers want this
- }
- break;
- case EbtBool:
- switch (type.getVectorSize()) {
- case 1: op = EOpConstructBool; break;
- case 2: op = EOpConstructBVec2; break;
- case 3: op = EOpConstructBVec3; break;
- case 4: op = EOpConstructBVec4; break;
- default: break; // some compilers want this
- }
- break;
- default:
- break;
+ if (location.size() == 0 || location[0] != 'c') {
+ error(loc, "expected 'c'", "packoffset", "");
+ return;
+ }
+ if (location.size() == 1)
+ return;
+ if (! isdigit(location[1])) {
+ error(loc, "expected number after 'c'", "packoffset", "");
+ return;
}
- return op;
+ type.getQualifier().layoutOffset = 16 * atoi(location.substr(1, location.size()).c_str());
+ if (component != nullptr) {
+ int componentOffset = 0;
+ switch ((*component)[0]) {
+ case 'x': componentOffset = 0; break;
+ case 'y': componentOffset = 4; break;
+ case 'z': componentOffset = 8; break;
+ case 'w': componentOffset = 12; break;
+ default:
+ componentOffset = -1;
+ break;
+ }
+ if (componentOffset < 0 || component->size() > 1) {
+ error(loc, "expected {x, y, z, w} for component", "packoffset", "");
+ return;
+ }
+ type.getQualifier().layoutOffset += componentOffset;
+ }
+}
+
+//
+// Handle seeing something like "REGISTER LEFT_PAREN [shader_profile,] Type# RIGHT_PAREN"
+//
+// 'profile' points to the shader_profile part, or nullptr if not present.
+// 'desc' is the type# part.
+//
+void HlslParseContext::handleRegister(const TSourceLoc& loc, TType& type, const glslang::TString* profile,
+ const glslang::TString& desc,
+ int subComponent)
+{
+ if (profile != nullptr)
+ warn(loc, "ignoring shader_profile", "register", "");
+
+ if (desc.size() < 1) {
+ error(loc, "expected register type", "register", "");
+ return;
+ }
+
+ int regNumber = 0;
+ if (desc.size() > 1) {
+ if (isdigit(desc[1]))
+ regNumber = atoi(desc.substr(1, desc.size()).c_str());
+ else {
+ error(loc, "expected register number after register type", "register", "");
+ return;
+ }
+ }
+
+ // TODO: learn what all these really mean and how they interact with regNumber and subComponent
+ switch (desc[0]) {
+ case 'b':
+ case 't':
+ case 'c':
+ case 's':
+ type.getQualifier().layoutBinding = regNumber + subComponent;
+ break;
+ default:
+ warn(loc, "ignoring unrecognized register type", "register", "%c", desc[0]);
+ break;
+ }
}
//
@@ -2375,18 +2697,14 @@
if (dst.storage == EvqTemporary || dst.storage == EvqGlobal)
dst.storage = src.storage;
else if ((dst.storage == EvqIn && src.storage == EvqOut) ||
- (dst.storage == EvqOut && src.storage == EvqIn))
+ (dst.storage == EvqOut && src.storage == EvqIn))
dst.storage = EvqInOut;
else if ((dst.storage == EvqIn && src.storage == EvqConst) ||
- (dst.storage == EvqConst && src.storage == EvqIn))
+ (dst.storage == EvqConst && src.storage == EvqIn))
dst.storage = EvqConstReadOnly;
else if (src.storage != EvqTemporary && src.storage != EvqGlobal)
error(loc, "too many storage qualifiers", GetStorageQualifierString(src.storage), "");
- // Precision qualifiers
- if (dst.precision == EpqNone || (force && src.precision != EpqNone))
- dst.precision = src.precision;
-
// Layout qualifiers
mergeObjectLayoutQualifiers(dst, src, false);
@@ -3503,7 +3821,7 @@
return nullptr;
}
- return addConstructor(loc, initList, arrayType, mapTypeToConstructorOp(arrayType));
+ return addConstructor(loc, initList, arrayType);
} else if (type.isStruct()) {
if (type.getStruct()->size() != initList->getSequence().size()) {
error(loc, "wrong number of structure members", "initializer list", "");
@@ -3530,13 +3848,24 @@
error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString().c_str());
return nullptr;
}
- } else {
+ } else if (type.isScalar()) {
+ if ((int)initList->getSequence().size() != 1) {
+ error(loc, "scalar expected one element:", "initializer list", type.getCompleteString().c_str());
+ return nullptr;
+ }
+ } else {
error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str());
return nullptr;
}
- // now that the subtree is processed, process this node
- return addConstructor(loc, initList, type, mapTypeToConstructorOp(type));
+ // Now that the subtree is processed, process this node as if the
+ // initializer list is a set of arguments to a constructor.
+ TIntermNode* emulatedConstructorArguments;
+ if (initList->getSequence().size() == 1)
+ emulatedConstructorArguments = initList->getSequence()[0];
+ else
+ emulatedConstructorArguments = initList;
+ return addConstructor(loc, emulatedConstructorArguments, type);
}
//
@@ -3545,12 +3874,13 @@
//
// Returns nullptr for an error or the constructed node (aggregate or typed) for no error.
//
-TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type, TOperator op)
+TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNode* node, const TType& type)
{
if (node == nullptr || node->getAsTyped() == nullptr)
return nullptr;
TIntermAggregate* aggrNode = node->getAsAggregate();
+ TOperator op = intermediate.mapTypeToConstructorOp(type);
// Combined texture-sampler constructors are completely semantic checked
// in constructorTextureSamplerError()
@@ -3740,28 +4070,31 @@
//
// Do everything needed to add an interface block.
//
-void HlslParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, const TString* instanceName, TArraySizes* arraySizes)
+void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TString* instanceName, TArraySizes* arraySizes)
{
+ assert(type.getWritableStruct() != nullptr);
+
+ TTypeList& typeList = *type.getWritableStruct();
// fix and check for member storage qualifiers and types that don't belong within a block
for (unsigned int member = 0; member < typeList.size(); ++member) {
TType& memberType = *typeList[member].type;
TQualifier& memberQualifier = memberType.getQualifier();
const TSourceLoc& memberLoc = typeList[member].loc;
globalQualifierFix(memberLoc, memberQualifier);
- memberQualifier.storage = currentBlockQualifier.storage;
+ memberQualifier.storage = type.getQualifier().storage;
}
// This might be a redeclaration of a built-in block. If so, redeclareBuiltinBlock() will
// do all the rest.
- if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) {
- redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes);
- return;
- }
+ //if (! symbolTable.atBuiltInLevel() && builtInName(*blockName)) {
+ // redeclareBuiltinBlock(loc, typeList, *blockName, instanceName, arraySizes);
+ // return;
+ //}
// Make default block qualification, and adjust the member qualifications
TQualifier defaultQualification;
- switch (currentBlockQualifier.storage) {
+ switch (type.getQualifier().storage) {
case EvqUniform: defaultQualification = globalUniformDefaults; break;
case EvqBuffer: defaultQualification = globalBufferDefaults; break;
case EvqVaryingIn: defaultQualification = globalInputDefaults; break;
@@ -3771,12 +4104,12 @@
// Special case for "push_constant uniform", which has a default of std430,
// contrary to normal uniform defaults, and can't have a default tracked for it.
- if (currentBlockQualifier.layoutPushConstant && ! currentBlockQualifier.hasPacking())
- currentBlockQualifier.layoutPacking = ElpStd430;
+ if (type.getQualifier().layoutPushConstant && ! type.getQualifier().hasPacking())
+ type.getQualifier().layoutPacking = ElpStd430;
// fix and check for member layout qualifiers
- mergeObjectLayoutQualifiers(defaultQualification, currentBlockQualifier, true);
+ mergeObjectLayoutQualifiers(defaultQualification, type.getQualifier(), true);
bool memberWithLocation = false;
bool memberWithoutLocation = false;
@@ -3800,7 +4133,7 @@
if (memberQualifier.hasPacking())
error(memberLoc, "member of block cannot have a packing layout qualifier", typeList[member].type->getFieldName().c_str(), "");
if (memberQualifier.hasLocation()) {
- switch (currentBlockQualifier.storage) {
+ switch (type.getQualifier().storage) {
case EvqVaryingIn:
case EvqVaryingOut:
memberWithLocation = true;
@@ -3821,19 +4154,20 @@
}
// Process the members
- fixBlockLocations(loc, currentBlockQualifier, typeList, memberWithLocation, memberWithoutLocation);
- fixBlockXfbOffsets(currentBlockQualifier, typeList);
- fixBlockUniformOffsets(currentBlockQualifier, typeList);
+ fixBlockLocations(loc, type.getQualifier(), typeList, memberWithLocation, memberWithoutLocation);
+ fixBlockXfbOffsets(type.getQualifier(), typeList);
+ fixBlockUniformOffsets(type.getQualifier(), typeList);
// reverse merge, so that currentBlockQualifier now has all layout information
// (can't use defaultQualification directly, it's missing other non-layout-default-class qualifiers)
- mergeObjectLayoutQualifiers(currentBlockQualifier, defaultQualification, true);
+ mergeObjectLayoutQualifiers(type.getQualifier(), defaultQualification, true);
//
// Build and add the interface block as a new type named 'blockName'
//
- TType blockType(&typeList, *blockName, currentBlockQualifier);
+ //?? need the block name to be a typename?
+ TType blockType(&typeList, "" /* *blockName */, type.getQualifier());
if (arraySizes)
blockType.newArraySizes(*arraySizes);
@@ -3850,20 +4184,20 @@
// whose type is EbtBlock, but without all the structure; that will come from the type
// the instances point to.
//
- TType blockNameType(EbtBlock, blockType.getQualifier().storage);
- TVariable* blockNameVar = new TVariable(blockName, blockNameType);
- if (! symbolTable.insert(*blockNameVar)) {
- TSymbol* existingName = symbolTable.find(*blockName);
- if (existingName->getType().getBasicType() == EbtBlock) {
- if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) {
- error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString());
- return;
- }
- } else {
- error(loc, "block name cannot redefine a non-block name", blockName->c_str(), "");
- return;
- }
- }
+ //??TType blockNameType(EbtBlock, blockType.getQualifier().storage);
+ //??TVariable* blockNameVar = new TVariable(blockName, blockNameType);
+ //if (! symbolTable.insert(*blockNameVar)) {
+ // TSymbol* existingName = symbolTable.find(*blockName);
+ // if (existingName->getType().getBasicType() == EbtBlock) {
+ // if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) {
+ // error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString());
+ // return;
+ // }
+ // } else {
+ // error(loc, "block name cannot redefine a non-block name", blockName->c_str(), "");
+ // return;
+ // }
+ //}
// Add the variable, as anonymous or named instanceName.
// Make an anonymous variable if no name was provided.
@@ -3873,7 +4207,7 @@
TVariable& variable = *new TVariable(instanceName, blockType);
if (! symbolTable.insert(variable)) {
if (*instanceName == "")
- error(loc, "nameless block contains a member that already has a name at global scope", blockName->c_str(), "");
+ error(loc, "nameless block contains a member that already has a name at global scope", "" /* blockName->c_str() */, "");
else
error(loc, "block instance name redefinition", variable.getName().c_str(), "");
diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h
index f128131..92641a8 100755
--- a/hlsl/hlslParseHelper.h
+++ b/hlsl/hlslParseHelper.h
@@ -47,9 +47,10 @@
int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&,
bool forwardCompatible = false, EShMessages messages = EShMsgDefault);
virtual ~HlslParseContext();
+ void initializeExtensionBehavior();
+
void setLimits(const TBuiltInResource&);
bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false);
- void getPreamble(std::string&);
void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken,
const char* szExtraInfoFormat, ...);
@@ -94,6 +95,10 @@
void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&);
TFunction* handleConstructorCall(const TSourceLoc&, const TType&);
void handleSemantic(TType& type, const TString& semantic);
+ void handlePackOffset(const TSourceLoc&, TType& type, const glslang::TString& location,
+ const glslang::TString* component);
+ void handleRegister(const TSourceLoc&, TType& type, const glslang::TString* profile, const glslang::TString& desc,
+ int subComponent);
TIntermAggregate* handleSamplerTextureCombine(const TSourceLoc& loc, TIntermTyped* argTex, TIntermTyped* argSampler);
@@ -130,10 +135,10 @@
const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn);
void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0);
TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0);
- TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&, TOperator);
+ TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&);
TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&);
TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset);
- void declareBlock(const TSourceLoc&, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0);
+ void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0, TArraySizes* arraySizes = 0);
void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation);
void fixBlockXfbOffsets(TQualifier&, TTypeList&);
void fixBlockUniformOffsets(TQualifier&, TTypeList&);
@@ -160,7 +165,6 @@
void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration);
TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
- TOperator mapTypeToConstructorOp(const TType&) const;
TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage);
void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken,
const char* szExtraInfoFormat, TPrefixType prefix,
@@ -176,15 +180,12 @@
bool postMainReturn; // if inside a function, true if the function is the entry point and this is after a return statement
const TType* currentFunctionType; // the return type of the function that's currently being parsed
bool functionReturnsValue; // true if a non-void function has a return
- const TString* blockName;
- TQualifier currentBlockQualifier;
TBuiltInResource resources;
TLimits& limits;
HlslParseContext(HlslParseContext&);
HlslParseContext& operator=(HlslParseContext&);
- TMap<TString, TExtensionBehavior> extensionBehavior; // for each extension string, what its current behavior is set to
static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex()
bool afterEOF;
TQualifier globalBufferDefaults;
diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp
index d318a86..721da62 100755
--- a/hlsl/hlslParseables.cpp
+++ b/hlsl/hlslParseables.cpp
@@ -67,9 +67,14 @@
}
}
-bool IsTextureType(const char argOrder) { return argOrder == '%' || argOrder == '@'; }
-bool IsTextureArrayed(const char argOrder) { return argOrder == '@'; }
-bool IsTextureMS(const char /*argOrder*/) { return false; } // TODO: ...
+bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; }
+bool IsTextureArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&'; }
+bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; }
+bool IsBuffer(const char argOrder) { return argOrder == '*'; }
+bool IsTextureType(const char argOrder)
+{
+ return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder);
+}
// Reject certain combinations that are illegal sample methods. For example,
// 3D arrays.
@@ -77,34 +82,132 @@
{
const bool isArrayed = IsTextureArrayed(*argOrder);
const bool isMS = IsTextureMS(*argOrder);
+ const bool isBuffer = IsBuffer(*argOrder);
- // there are no 3D arrayed textures, or 3D SampleCmp
- if (dim0 == 3 && (isArrayed || name == "SampleCmp"))
+ // there are no 3D arrayed textures, or 3D SampleCmp(LevelZero)
+ if (dim0 == 3 && (isArrayed || name == "SampleCmp" || name == "SampleCmpLevelZero"))
return true;
const int numArgs = int(std::count(argOrder, argOrder + strlen(argOrder), ',')) + 1;
- // Reject invalid offset arrayed forms with cubemaps
- if (isArrayed && dim0 == 4) {
+ // Reject invalid offset forms with cubemaps
+ if (dim0 == 4) {
if ((name == "Sample" && numArgs >= 4) ||
(name == "SampleBias" && numArgs >= 5) ||
(name == "SampleCmp" && numArgs >= 5) ||
- (name == "SampleCmpLevelZero" && numArgs >= 4) ||
+ (name == "SampleCmpLevelZero" && numArgs >= 5) ||
(name == "SampleGrad" && numArgs >= 6) ||
(name == "SampleLevel" && numArgs >= 5))
return true;
}
- // Reject invalid Loads
- if (name == "Load") {
- if ((numArgs >= 3 && !isMS) || // Load with sampleindex requires multisample
- (dim0 == 4)) // Load does not support any cubemaps, arrayed or not.
+ const bool isGather =
+ (name == "Gather" ||
+ name == "GatherRed" ||
+ name == "GatherGreen" ||
+ name == "GatherBlue" ||
+ name == "GatherAlpha");
+
+ const bool isGatherCmp =
+ (name == "GatherCmpRed" ||
+ name == "GatherCmpGreen" ||
+ name == "GatherCmpBlue" ||
+ name == "GatherCmpAlpha");
+
+ // Reject invalid Gathers
+ if (isGather || isGatherCmp) {
+ if (dim0 == 1 || dim0 == 3) // there are no 1D or 3D gathers
return true;
+
+ // no offset on cube or cube array gathers
+ if (dim0 == 4) {
+ if ((isGather && numArgs > 3) || (isGatherCmp && numArgs > 4))
+ return true;
+ }
}
+ // Reject invalid Loads
+ if (name == "Load" && dim0 == 4)
+ return true; // Load does not support any cubemaps, arrayed or not.
+
+ // Multisample formats are only 2D and 2Darray
+ if (isMS && dim0 != 2)
+ return true;
+
+ // Buffer are only 1D
+ if (isBuffer && dim0 != 1)
+ return true;
+
return false;
}
-
+
+// Return the number of the coordinate arg, if any
+int CoordinateArgPos(const glslang::TString& name, bool isTexture)
+{
+ if (!isTexture || (name == "GetDimensions"))
+ return -1; // has none
+ else if (name == "Load")
+ return 1;
+ else
+ return 2; // other texture methods are 2
+}
+
+// Some texture methods use an addition coordinate dimension for the mip
+bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer)
+{
+ return name == "Load" && !isMS && !isBuffer;
+}
+
+// LOD calculations don't pass the array level in the coordinate.
+bool NoArrayCoord(const glslang::TString& name)
+{
+ return name == "CalculateLevelOfDetail" || name == "CalculateLevelOfDetailUnclamped";
+}
+
+// Handle IO params marked with > or <
+const char* IoParam(glslang::TString& s, const char* nthArgOrder)
+{
+ if (*nthArgOrder == '>') { // output params
+ ++nthArgOrder;
+ s.append("out ");
+ } else if (*nthArgOrder == '<') { // input params
+ ++nthArgOrder;
+ s.append("in ");
+ }
+
+ return nthArgOrder;
+}
+
+// Handle repeated args
+void HandleRepeatArg(const char*& arg, const char*& prev, const char* current)
+{
+ if (*arg == ',' || *arg == '\0')
+ arg = prev;
+ else
+ prev = current;
+}
+
+// Return true for the end of a single argument key, which can be the end of the string, or
+// the comma separator.
+inline bool IsEndOfArg(const char* arg)
+{
+ return arg == nullptr || *arg == '\0' || *arg == ',';
+}
+
+
+// If this is a fixed vector size, such as V3, return the size. Else return 0.
+int FixedVecSize(const char* arg)
+{
+ while (!IsEndOfArg(arg)) {
+ if (isdigit(*arg))
+ return *arg - '0';
+ ++arg;
+ }
+
+ return 0; // none found.
+}
+
+
// Create and return a type name. This is done in GLSL, not HLSL conventions, until such
// time as builtins are parsed using the HLSL parser.
//
@@ -118,19 +221,17 @@
const bool isMatMul = (argOrder[0] == '#');
const bool isTexture = IsTextureType(argOrder[0]);
const bool isArrayed = IsTextureArrayed(argOrder[0]);
- //const bool isMS = IsTextureMS(argOrder[0]);
+ const bool isSampler = IsSamplerType(argType[0]);
+ const bool isMS = IsTextureMS(argOrder[0]);
+ const bool isBuffer = IsBuffer(argOrder[0]);
- char order = *argOrder;
char type = *argType;
if (isTranspose) { // Take transpose of matrix dimensions
- order = *++argOrder;
std::swap(dim0, dim1);
} else if (isMatMul) {
- order = *++argOrder;
dim0 = dim1; // set vector dimension to mat col
} else if (isTexture) {
- order = *++argOrder;
if (type == 'F') // map base type to texture of that type.
type = 'T'; // e.g, int -> itexture, uint -> utexture, etc.
else if (type == 'I')
@@ -139,36 +240,44 @@
type = 'u';
}
+ if (isTranspose || isMatMul)
+ ++argOrder;
+
+ char order = *argOrder;
+
if (UseHlslTypes) {
+ // TODO: handle sub-vec4 returns
switch (type) {
- case '-': s += "void"; break;
- case 'F': s += "float"; break;
- case 'D': s += "double"; break;
- case 'I': s += "int"; break;
- case 'U': s += "uint"; break;
- case 'B': s += "bool"; break;
- case 'S': s += "sampler"; break;
- case 'T': s += "Texture"; break;
- case 'i': s += "Texture <int4>"; break;
- case 'u': s += "Texture <uint4>"; break;
- default: s += "UNKNOWN_TYPE"; break;
+ case '-': s += "void"; break;
+ case 'F': s += "float"; break;
+ case 'D': s += "double"; break;
+ case 'I': s += "int"; break;
+ case 'U': s += "uint"; break;
+ case 'B': s += "bool"; break;
+ case 'S': s += "sampler"; break;
+ case 's': s += "SamplerComparisonState"; break;
+ case 'T': s += (isBuffer ? "Buffer" : "Texture"); break;
+ case 'i': s += (isBuffer ? "Buffer <int4>" : "Texture <int4>"); break;
+ case 'u': s += (isBuffer ? "Buffer <uint4>" : "Texture <uint4>"); break;
+ default: s += "UNKNOWN_TYPE"; break;
}
} else {
switch (type) {
case '-': s += "void"; break;
- case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break;
- case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break;
- case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break;
- case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break;
- case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break;
- case 'S': s += "sampler"; break;
+ case 'F': s += BaseTypeName(order, "float", "vec", "mat"); break;
+ case 'D': s += BaseTypeName(order, "double", "dvec", "dmat"); break;
+ case 'I': s += BaseTypeName(order, "int", "ivec", "imat"); break;
+ case 'U': s += BaseTypeName(order, "uint", "uvec", "umat"); break;
+ case 'B': s += BaseTypeName(order, "bool", "bvec", "bmat"); break;
+ case 'S': s += "sampler"; break;
+ case 's': s += "samplerShadow"; break;
case 'T': // fall through
case 'i': // ...
case 'u': // ...
- if (type != 'T')
+ if (type != 'T') // create itexture, utexture, etc
s += type;
- s += "texture";
+ s += (isBuffer ? "samplerBuffer" : "texture");
break;
default: s += "UNKNOWN_TYPE"; break;
@@ -176,19 +285,19 @@
}
// handle fixed vector sizes, such as float3, and only ever 3.
- const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0;
+ const int fixedVecSize = FixedVecSize(argOrder);
if (fixedVecSize != 0)
dim0 = dim1 = fixedVecSize;
// Add sampler dimensions
- if (type == 'S' || isTexture) {
- if (order == 'V') {
+ if (isSampler || isTexture) {
+ if ((order == 'V' || isTexture) && !isBuffer) {
switch (dim0) {
- case 1: s += "1D"; break;
- case 2: s += "2D"; break;
- case 3: s += "3D"; break;
- case 4: s += "Cube"; break;
- default: s += "UNKNOWN_SAMPLER"; break;
+ case 1: s += "1D"; break;
+ case 2: s += (isMS ? "2DMS" : "2D"); break;
+ case 3: s += "3D"; break;
+ case 4: s += "Cube"; break;
+ default: s += "UNKNOWN_SAMPLER"; break;
}
}
} else {
@@ -213,6 +322,8 @@
s += ('0' + char(dim1));
break;
}
+ default:
+ break;
}
}
@@ -255,14 +366,6 @@
}
-// Return true for the end of a single argument key, which can be the end of the string, or
-// the comma separator.
-inline bool IsEndOfArg(const char* arg)
-{
- return arg == nullptr || *arg == '\0' || *arg == ',';
-}
-
-
// return position of end of argument specifier
inline const char* FindEndOfArg(const char* arg)
{
@@ -272,19 +375,6 @@
return *arg == '\0' ? nullptr : arg;
}
-// If this is a fixed vector size, such as V3, return the size. Else return 0.
-int FixedVecSize(const char* arg)
-{
- while (!IsEndOfArg(arg)) {
- if (isdigit(*arg))
- return *arg - '0';
- ++arg;
- }
-
- return 0; // none found.
-}
-
-
// Return pointer to beginning of Nth argument specifier in the string.
inline const char* NthArg(const char* arg, int n)
{
@@ -362,14 +452,16 @@
//
void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, const SpvVersion& /*spvVersion*/)
{
- static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1);
+ static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1);
+ static const EShLanguageMask EShLangPSCS = EShLanguageMask(EShLangFragmentMask | EShLangComputeMask);
+ static const EShLanguageMask EShLangVSPSGS = EShLanguageMask(EShLangVertexMask | EShLangFragmentMask | EShLangGeometryMask);
// This structure encodes the prototype information for each HLSL intrinsic.
// Because explicit enumeration would be cumbersome, it's procedurally generated.
// orderKey can be:
// S = scalar, V = vector, M = matrix, - = void
// typekey can be:
- // D = double, F = float, U = uint, I = int, B = bool, S = sampler
+ // D = double, F = float, U = uint, I = int, B = bool, S = sampler, s = shadowSampler
// An empty order or type key repeats the first one. E.g: SVM,, means 3 args each of SVM.
// '>' as first letter of order creates an output parameter
// '<' as first letter of order creates an input parameter
@@ -377,6 +469,8 @@
// '#' as first letter of order sets rows=cols for mats
// '%' as first letter of order creates texture of given F/I/U type (texture, itexture, etc)
// '@' as first letter of order creates arrayed texture of given type
+ // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures
+ // '*' as first letter of order creates buffer object
static const struct {
const char* name; // intrinsic name
@@ -386,257 +480,306 @@
const char* argType; // argument type key
unsigned int stage; // stage mask
} hlslIntrinsics[] = {
- // name retOrd retType argOrder argType stage mask
+ // name retOrd retType argOrder argType stage mask
// -----------------------------------------------------------------------------------------------
- { "abort", nullptr, nullptr, "-", "-", EShLangAll },
- { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
- { "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "all", "S", "B", "SVM", "BFI", EShLangAll },
- { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
- { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
- { "any", "S", "B", "SVM", "BFI", EShLangAll },
- { "asdouble", "S", "D", "S,", "U,", EShLangAll },
- { "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
- { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
- { "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "asint", nullptr, "I", "SVM", "FU", EShLangAll },
- { "asuint", nullptr, "U", "SVM", "FU", EShLangAll },
- { "atan", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll },
- { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangFragmentMask | EShLangComputeMask },
- { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll },
- { "clip", "-", "-", "SVM", "F", EShLangFragmentMask },
- { "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
- { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
- { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
- { "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "determinant", "S", "F", "M", "F", EShLangAll },
- { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangFragmentMask | EShLangComputeMask },
- { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
- { "distance", "S", "F", "V,", "F,", EShLangAll },
- { "dot", "S", nullptr, "V,", "FI,", EShLangAll },
- { "dst", nullptr, nullptr, "V4,V4", "F,", EShLangAll },
- // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
- { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
- { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
- { "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
- { "f32tof16", nullptr, "U", "SV", "F", EShLangAll },
- { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll },
- { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll },
- { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll },
- { "floor", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll },
- { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll },
- { "frac", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
- { "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
- { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll },
- { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll },
- { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
- { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
- { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangFragmentMask | EShLangComputeMask },
- { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangFragmentMask | EShLangComputeMask },
- { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll },
- { "isinf", nullptr, "B" , "SVM", "F", EShLangAll },
- { "isnan", nullptr, "B" , "SVM", "F", EShLangAll },
- { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
- { "length", "S", "F", "V", "F", EShLangAll },
- { "lerp", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
- { "lit", "V4", "F", "S,,", "F,,", EShLangAll },
- { "log", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
- { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
- { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
- { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
- { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
- { "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
- { "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
- { "mul", "M", nullptr, "S,M", "FI,", EShLangAll },
- { "mul", "V", nullptr, "V,S", "FI,", EShLangAll },
- { "mul", "S", nullptr, "V,V", "FI,", EShLangAll },
- { "mul", "#V", nullptr, "V,M", "FI,", EShLangAll },
- { "mul", "M", nullptr, "M,S", "FI,", EShLangAll },
- { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll },
+ { "abort", nullptr, nullptr, "-", "-", EShLangAll },
+ { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
+ { "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "all", "S", "B", "SVM", "BFI", EShLangAll },
+ { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
+ { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
+ { "any", "S", "B", "SVM", "BFI", EShLangAll },
+ { "asdouble", "S", "D", "S,", "U,", EShLangAll },
+ { "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
+ { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
+ { "asin", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "asint", nullptr, "I", "SVM", "FU", EShLangAll },
+ { "asuint", nullptr, "U", "SVM", "FU", EShLangAll },
+ { "atan", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "atan2", nullptr, nullptr, "SVM,", "F,", EShLangAll },
+ { "ceil", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "CheckAccessFullyMapped", "S", "B" , "S", "U", EShLangPSCS },
+ { "clamp", nullptr, nullptr, "SVM,,", "FUI,,", EShLangAll },
+ { "clip", "-", "-", "SVM", "F", EShLangFragmentMask },
+ { "cos", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "countbits", nullptr, nullptr, "SV", "U", EShLangAll },
+ { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll },
+ { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll },
+ { "ddx", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "ddx_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "ddx_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "ddy", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "ddy_coarse", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "ddy_fine", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "degrees", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "determinant", "S", "F", "M", "F", EShLangAll },
+ { "DeviceMemoryBarrier", nullptr, nullptr, "-", "-", EShLangPSCS },
+ { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
+ { "distance", "S", "F", "V,", "F,", EShLangAll },
+ { "dot", "S", nullptr, "V,", "FI,", EShLangAll },
+ { "dst", nullptr, nullptr, "V4,", "F,", EShLangAll },
+ // { "errorf", "-", "-", "", "", EShLangAll }, TODO: varargs
+ { "EvaluateAttributeAtCentroid", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "EvaluateAttributeAtSample", nullptr, nullptr, "SVM,S", "F,U", EShLangFragmentMask },
+ { "EvaluateAttributeSnapped", nullptr, nullptr, "SVM,V2", "F,I", EShLangFragmentMask },
+ { "exp", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "exp2", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "f16tof32", nullptr, "F", "SV", "U", EShLangAll },
+ { "f32tof16", nullptr, "U", "SV", "F", EShLangAll },
+ { "faceforward", nullptr, nullptr, "V,,", "F,,", EShLangAll },
+ { "firstbithigh", nullptr, nullptr, "SV", "UI", EShLangAll },
+ { "firstbitlow", nullptr, nullptr, "SV", "UI", EShLangAll },
+ { "floor", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "fma", nullptr, nullptr, "SVM,,", "D,,", EShLangAll },
+ { "fmod", nullptr, nullptr, "SVM,", "F,", EShLangAll },
+ { "frac", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "frexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
+ { "fwidth", nullptr, nullptr, "SVM", "F", EShLangFragmentMask },
+ { "GetRenderTargetSampleCount", "S", "U", "-", "-", EShLangAll },
+ { "GetRenderTargetSamplePosition", "V2", "F", "V1", "I", EShLangAll },
+ { "GroupMemoryBarrier", nullptr, nullptr, "-", "-", EShLangComputeMask },
+ { "GroupMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangComputeMask },
+ { "InterlockedAdd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedAdd", "-", "-", "SVM,", "UI,", EShLangPSCS },
+ { "InterlockedAnd", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedAnd", "-", "-", "SVM,", "UI,", EShLangPSCS },
+ { "InterlockedCompareExchange", "-", "-", "SVM,,,>", "UI,,,", EShLangPSCS },
+ { "InterlockedCompareStore", "-", "-", "SVM,,", "UI,,", EShLangPSCS },
+ { "InterlockedExchange", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedMax", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedMax", "-", "-", "SVM,", "UI,", EShLangPSCS },
+ { "InterlockedMin", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedMin", "-", "-", "SVM,", "UI,", EShLangPSCS },
+ { "InterlockedOr", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedOr", "-", "-", "SVM,", "UI,", EShLangPSCS },
+ { "InterlockedXor", "-", "-", "SVM,,>", "UI,,", EShLangPSCS },
+ { "InterlockedXor", "-", "-", "SVM,", "UI,", EShLangPSCS },
+ { "isfinite", nullptr, "B" , "SVM", "F", EShLangAll },
+ { "isinf", nullptr, "B" , "SVM", "F", EShLangAll },
+ { "isnan", nullptr, "B" , "SVM", "F", EShLangAll },
+ { "ldexp", nullptr, nullptr, "SVM,", "F,", EShLangAll },
+ { "length", "S", "F", "V", "F", EShLangAll },
+ { "lerp", nullptr, nullptr, "VM,,", "F,,", EShLangAll },
+ { "lerp", nullptr, nullptr, "SVM,,S", "F,,", EShLangAll },
+ { "lit", "V4", "F", "S,,", "F,,", EShLangAll },
+ { "log", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "log10", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "log2", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "mad", nullptr, nullptr, "SVM,,", "DFUI,,", EShLangAll },
+ { "max", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
+ { "min", nullptr, nullptr, "SVM,", "FI,", EShLangAll },
+ { "modf", nullptr, nullptr, "SVM,>", "FI,", EShLangAll },
+ { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll },
+ { "mul", "S", nullptr, "S,S", "FI,", EShLangAll },
+ { "mul", "V", nullptr, "S,V", "FI,", EShLangAll },
+ { "mul", "M", nullptr, "S,M", "FI,", EShLangAll },
+ { "mul", "V", nullptr, "V,S", "FI,", EShLangAll },
+ { "mul", "S", nullptr, "V,V", "FI,", EShLangAll },
+ { "mul", "#V", nullptr, "V,M", "FI,", EShLangAll },
+ { "mul", "M", nullptr, "M,S", "FI,", EShLangAll },
+ { "mul", "V", nullptr, "M,#V", "FI,", EShLangAll },
// mat*mat form of mul is handled in createMatTimesMat()
- { "noise", "S", "F", "V", "F", EShLangFragmentMask },
- { "normalize", nullptr, nullptr, "V", "F", EShLangAll },
- { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll },
- // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs
- { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
- { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
- { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
- { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask },
- { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
- { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
- { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
- { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
- { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
- { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,>S", "F,,,,", EShLangTessControlMask },
- { "radians", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
- { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
- { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
- { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
- { "round", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
- { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll },
- { "sin", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll },
- { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
- { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll },
- { "tan", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask },
- { "tex1D", "V4", "F", "V1,S,V1,V1", "S,F,F,F",EShLangFragmentMask },
- { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
- { "tex1Dgrad", "V4", "F", "V1,V1,V1,V1","S,F,F,F",EShLangFragmentMask },
- { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
- { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
- { "tex2D", "V4", "F", "V2,V2", "S,F", EShLangFragmentMask },
- { "tex2D", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
- { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
- { "tex2Dgrad", "V4", "F", "V2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
- { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
- { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
- { "tex3D", "V4", "F", "V3,V3", "S,F", EShLangFragmentMask },
- { "tex3D", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
- { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
- { "tex3Dgrad", "V4", "F", "V3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
- { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
- { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
- { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask },
- { "texCUBE", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
- { "texCUBEbias", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
- { "texCUBEgrad", "V4", "F", "V4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
- { "texCUBElod", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
- { "texCUBEproj", "V4", "F", "V4,V4", "S,F", EShLangFragmentMask },
- { "transpose", "^M", nullptr, "M", "F", EShLangAll },
- { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "noise", "S", "F", "V", "F", EShLangFragmentMask },
+ { "normalize", nullptr, nullptr, "V", "F", EShLangAll },
+ { "pow", nullptr, nullptr, "SVM,", "F,", EShLangAll },
+ // { "printf", "-", "-", "", "", EShLangAll }, TODO: varargs
+ { "Process2DQuadTessFactorsAvg", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
+ { "Process2DQuadTessFactorsMax", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
+ { "Process2DQuadTessFactorsMin", "-", "-", "V4,V2,>V4,>V2,", "F,,,,", EShLangTessControlMask },
+ { "ProcessIsolineTessFactors", "-", "-", "S,,>,>", "F,,,", EShLangTessControlMask },
+ { "ProcessQuadTessFactorsAvg", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
+ { "ProcessQuadTessFactorsMax", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
+ { "ProcessQuadTessFactorsMin", "-", "-", "V4,S,>V4,>V2,", "F,,,,", EShLangTessControlMask },
+ { "ProcessTriTessFactorsAvg", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
+ { "ProcessTriTessFactorsMax", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
+ { "ProcessTriTessFactorsMin", "-", "-", "V3,S,>V3,>S,", "F,,,,", EShLangTessControlMask },
+ { "radians", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "rcp", nullptr, nullptr, "SVM", "FD", EShLangAll },
+ { "reflect", nullptr, nullptr, "V,", "F,", EShLangAll },
+ { "refract", nullptr, nullptr, "V,V,S", "F,,", EShLangAll },
+ { "reversebits", nullptr, nullptr, "SV", "U", EShLangAll },
+ { "round", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll },
+ { "sign", nullptr, nullptr, "SVM", "FI", EShLangAll },
+ { "sin", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "sincos", "-", "-", "SVM,>,>", "F,,", EShLangAll },
+ { "sinh", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "smoothstep", nullptr, nullptr, "SVM,,", "F,,", EShLangAll },
+ { "sqrt", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "step", nullptr, nullptr, "SVM,", "F,", EShLangAll },
+ { "tan", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "tanh", nullptr, nullptr, "SVM", "F", EShLangAll },
+ { "tex1D", "V4", "F", "V1,S", "S,F", EShLangFragmentMask },
+ { "tex1D", "V4", "F", "V1,S,V1,", "S,F,,", EShLangFragmentMask },
+ { "tex1Dbias", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
+ { "tex1Dgrad", "V4", "F", "V1,,,", "S,F,,", EShLangFragmentMask },
+ { "tex1Dlod", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
+ { "tex1Dproj", "V4", "F", "V1,V4", "S,F", EShLangFragmentMask },
+ { "tex2D", "V4", "F", "V2,", "S,F", EShLangFragmentMask },
+ { "tex2D", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask },
+ { "tex2Dbias", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
+ { "tex2Dgrad", "V4", "F", "V2,,,", "S,F,,", EShLangFragmentMask },
+ { "tex2Dlod", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
+ { "tex2Dproj", "V4", "F", "V2,V4", "S,F", EShLangFragmentMask },
+ { "tex3D", "V4", "F", "V3,", "S,F", EShLangFragmentMask },
+ { "tex3D", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask },
+ { "tex3Dbias", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
+ { "tex3Dgrad", "V4", "F", "V3,,,", "S,F,,", EShLangFragmentMask },
+ { "tex3Dlod", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
+ { "tex3Dproj", "V4", "F", "V3,V4", "S,F", EShLangFragmentMask },
+ { "texCUBE", "V4", "F", "V4,V3", "S,F", EShLangFragmentMask },
+ { "texCUBE", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask },
+ { "texCUBEbias", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
+ { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangFragmentMask },
+ { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
+ { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangFragmentMask },
+ { "transpose", "^M", nullptr, "M", "F", EShLangAll },
+ { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
// Texture object methods. Return type can be overridden by shader declaration.
- // !O = no offset, O = offset, !A = no array, A = array
- { "Sample", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask },
- { "Sample", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
- { "Sample", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask },
- { "Sample", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
+ // !O = no offset, O = offset
+ { "Sample", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangFragmentMask },
+ { "Sample", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangFragmentMask },
- { "SampleBias", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
- { "SampleBias", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
- { "SampleBias", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
- { "SampleBias", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
+ { "SampleBias", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangFragmentMask },
+ { "SampleBias", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangFragmentMask },
- // { "SampleCmp", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
- // { "SampleCmp", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
- // { "SampleCmp", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
- // { "SampleCmp", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
+ // TODO: FXC accepts int/uint samplers here. unclear what that means.
+ { "SampleCmp", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,", EShLangFragmentMask },
+ { "SampleCmp", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,,I", EShLangFragmentMask },
- // { "SampleCmpLevelZero", /*!O !A*/ "V4", nullptr, "%V,S,V", "FIU,S,F", EShLangFragmentMask },
- // { "SampleCmpLevelZero", /* O !A*/ "V4", nullptr, "%V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
- // { "SampleCmpLevelZero", /*!O A*/ "V4", nullptr, "@V,S,V", "FIU,S,F", EShLangFragmentMask },
- // { "SampleCmpLevelZero", /* O A*/ "V4", nullptr, "@V,S,V,V", "FIU,S,F,I", EShLangFragmentMask },
+ // TODO: FXC accepts int/uint samplers here. unclear what that means.
+ { "SampleCmpLevelZero", /*!O*/ "S", "F", "%@,S,V,S", "FIU,s,F,F", EShLangFragmentMask },
+ { "SampleCmpLevelZero", /* O*/ "S", "F", "%@,S,V,S,V", "FIU,s,F,F,I", EShLangFragmentMask },
- { "SampleGrad", /*!O !A*/ "V4", nullptr, "%V,S,V,V,V", "FIU,S,F,F,F", EShLangAll },
- { "SampleGrad", /* O !A*/ "V4", nullptr, "%V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
- { "SampleGrad", /*!O A*/ "V4", nullptr, "@V,S,V,V,V", "FIU,S,F,F,F", EShLangAll },
- { "SampleGrad", /* O A*/ "V4", nullptr, "@V,S,V,V,V,V", "FIU,S,F,F,F,I", EShLangAll },
+ { "SampleGrad", /*!O*/ "V4", nullptr, "%@,S,V,,", "FIU,S,F,,", EShLangAll },
+ { "SampleGrad", /* O*/ "V4", nullptr, "%@,S,V,,,", "FIU,S,F,,,I", EShLangAll },
- // { "SampleLevel", /*!O !A*/ "V4", nullptr, "%V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
- // { "SampleLevel", /* O !A*/ "V4", nullptr, "%V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
- // { "SampleLevel", /*!O A*/ "V4", nullptr, "@V,S,V,S", "FIU,S,F,F", EShLangFragmentMask },
- // { "SampleLevel", /* O A*/ "V4", nullptr, "@V,S,V,S,V", "FIU,S,F,F,I", EShLangFragmentMask },
+ { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll },
+ { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll },
- // TODO: ...
- // { "Load", "V4", nullptr, "%V,V", "FIU,I", EShLangFragmentMask },
- // { "Load", /* +sampleidex*/ "V4", nullptr, "%V,V,S", "FIU,I,I", EShLangFragmentMask },
- // { "Load", /* +samplindex, offset*/ "V4", nullptr, "%V,V,S,V", "FIU,I,I,I", EShLangFragmentMask },
- // { "Load", "V4", nullptr, "@V,V", "FIU,I", EShLangFragmentMask },
- // { "Load", /* +sampleidex*/ "V4", nullptr, "@V,V,S", "FIU,I,I", EShLangFragmentMask },
- // { "Load", /* +samplindex, offset*/ "V4", nullptr, "@V,V,S,V", "FIU,I,I,I", EShLangFragmentMask },
+ { "Load", /*!O*/ "V4", nullptr, "%@*,V", "FIU,I", EShLangAll },
+ { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll },
+ { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll },
+ { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll },
- // table of overloads from: https://msdn.microsoft.com/en-us/library/windows/desktop/bb509693(v=vs.85).aspx
+ { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
+ { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll },
+
+ { "CalculateLevelOfDetail", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask },
+ { "CalculateLevelOfDetailUnclamped", "S", "F", "%@,S,V", "FUI,S,F", EShLangFragmentMask },
+
+ { "GetSamplePosition", "V2", "F", "$&2,S", "FUI,I", EShLangVSPSGS },
+
//
// UINT Width
// UINT MipLevel, UINT Width, UINT NumberOfLevels
- { "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,U", EShLangAll },
- { "GetDimensions", /* 1D */ "-", "-", "%V1,>S", "FUI,F", EShLangAll },
- { "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,U,U", EShLangAll },
- { "GetDimensions", /* 1D */ "-", "-", "%V1,S,>S,>S", "FUI,U,F,F", EShLangAll },
+ { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,U", EShLangAll },
+ { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,F", EShLangAll },
+ { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll },
+ { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll },
// UINT Width, UINT Elements
// UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels
- { "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,U,U", EShLangAll },
- { "GetDimensions", /* 1DArray */ "-", "-", "@V1,>S,>S", "FUI,F,F", EShLangAll },
- { "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
- { "GetDimensions", /* 1DArray */ "-", "-", "@V1,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
+ { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,U,", EShLangAll },
+ { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,F,", EShLangAll },
+ { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll },
+ { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll },
// UINT Width, UINT Height
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
- { "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,U,U", EShLangAll },
- { "GetDimensions", /* 2D */ "-", "-", "%V2,>S,>S", "FUI,F,F", EShLangAll },
- { "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
- { "GetDimensions", /* 2D */ "-", "-", "%V2,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
+ { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,U,", EShLangAll },
+ { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,F,", EShLangAll },
+ { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll },
+ { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll },
// UINT Width, UINT Height, UINT Elements
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
- { "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,U,U,U", EShLangAll },
- { "GetDimensions", /* 2DArray */ "-", "-", "@V2,>S,>S,>S", "FUI,F,F,F", EShLangAll },
- { "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
- { "GetDimensions", /* 2DArray */ "-", "-", "@V2,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
+ { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,U,,", EShLangAll },
+ { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,F,F,F", EShLangAll },
+ { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll },
+ { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll },
// UINT Width, UINT Height, UINT Depth
// UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels
- { "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,U,U,U", EShLangAll },
- { "GetDimensions", /* 3D */ "-", "-", "%V3,>S,>S,>S", "FUI,F,F,F", EShLangAll },
- { "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
- { "GetDimensions", /* 3D */ "-", "-", "%V3,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
+ { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,U,,", EShLangAll },
+ { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,F,,", EShLangAll },
+ { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll },
+ { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll },
// UINT Width, UINT Height
// UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels
- { "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,U,U", EShLangAll },
- { "GetDimensions", /* Cube */ "-", "-", "%V4,>S,>S", "FUI,F,F", EShLangAll },
- { "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,U,U,U", EShLangAll },
- { "GetDimensions", /* Cube */ "-", "-", "%V4,S,>S,>S,>S", "FUI,U,F,F,F", EShLangAll },
+ { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,U,", EShLangAll },
+ { "GetDimensions", /* Cube */ "-", "-", "%4,>S,", "FUI,F,", EShLangAll },
+ { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,,,", EShLangAll },
+ { "GetDimensions", /* Cube */ "-", "-", "%4,S,>S,,", "FUI,U,F,,", EShLangAll },
// UINT Width, UINT Height, UINT Elements
// UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels
- { "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,U,U,U", EShLangAll },
- { "GetDimensions", /* CubeArray */ "-", "-", "@V4,>S,>S,>S", "FUI,F,F,F", EShLangAll },
- { "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,U,U,U,U", EShLangAll },
- { "GetDimensions", /* CubeArray */ "-", "-", "@V4,S,>S,>S,>S,>S", "FUI,U,F,F,F,F", EShLangAll },
+ { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,U,,", EShLangAll },
+ { "GetDimensions", /* CubeArray */ "-", "-", "@4,>S,,", "FUI,F,,", EShLangAll },
+ { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,,,,", EShLangAll },
+ { "GetDimensions", /* CubeArray */ "-", "-", "@4,S,>S,,,", "FUI,U,F,,,", EShLangAll },
- // TODO: GetDimensions for Texture2DMS, Texture2DMSArray
// UINT Width, UINT Height, UINT Samples
// UINT Width, UINT Height, UINT Elements, UINT Samples
+ { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll },
+ { "GetDimensions", /* 2DMS */ "-", "-", "$2,>S,,", "FUI,U,,", EShLangAll },
+ { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll },
+ { "GetDimensions", /* 2DMSArray */ "-", "-", "&2,>S,,,", "FUI,U,,,", EShLangAll },
+
+ // SM5 texture methods
+ { "GatherRed", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
+ { "GatherRed", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
+ { "GatherRed", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
+ { "GatherRed", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
+ { "GatherRed", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
+
+ { "GatherGreen", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
+ { "GatherGreen", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
+ { "GatherGreen", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
+ { "GatherGreen", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
+ { "GatherGreen", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
+
+ { "GatherBlue", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
+ { "GatherBlue", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
+ { "GatherBlue", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
+ { "GatherBlue", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
+ { "GatherBlue", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
+
+ { "GatherAlpha", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll },
+ { "GatherAlpha", /* O*/ "V4", nullptr, "%@,S,V,", "FIU,S,F,I", EShLangAll },
+ { "GatherAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,,>S", "FIU,S,F,I,U", EShLangAll },
+ { "GatherAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,,,,", "FIU,S,F,I,,,", EShLangAll },
+ { "GatherAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,,,,,S", "FIU,S,F,I,,,,U",EShLangAll },
+
+ { "GatherCmpRed", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
+ { "GatherCmpRed", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
+ { "GatherCmpRed", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
+ { "GatherCmpRed", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
+ { "GatherCmpRed", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,V,S","FIU,s,F,,I,,,,U",EShLangAll },
+
+ { "GatherCmpGreen", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
+ { "GatherCmpGreen", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
+ { "GatherCmpGreen", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
+ { "GatherCmpGreen", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
+ { "GatherCmpGreen", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll },
+
+ { "GatherCmpBlue", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
+ { "GatherCmpBlue", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
+ { "GatherCmpBlue", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
+ { "GatherCmpBlue", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
+ { "GatherCmpBlue", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll },
+
+ { "GatherCmpAlpha", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,s,F,", EShLangAll },
+ { "GatherCmpAlpha", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,s,F,,I", EShLangAll },
+ { "GatherCmpAlpha", /* O, status*/ "V4", nullptr, "%@,S,V,S,V,>S", "FIU,s,F,,I,U", EShLangAll },
+ { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll },
+ { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll },
+
+ // TODO: Cmp forms
// Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet.
{ nullptr, nullptr, nullptr, nullptr, nullptr, 0 },
@@ -660,7 +803,11 @@
for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order...
const bool isTexture = IsTextureType(*argOrder);
const bool isArrayed = IsTextureArrayed(*argOrder);
+ const bool isMS = IsTextureMS(*argOrder);
+ const bool isBuffer = IsBuffer(*argOrder);
+ const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS, isBuffer);
const int fixedVecSize = FixedVecSize(argOrder);
+ const int coordArg = CoordinateArgPos(intrinsic.name, isTexture);
// calculate min and max vector and matrix dimensions
int dim0Min = 1;
@@ -689,6 +836,9 @@
s.append(intrinsic.name); // intrinsic name
s.append("("); // open paren
+ const char* prevArgOrder = nullptr;
+ const char* prevArgType = nullptr;
+
// Append argument types, if any.
for (int arg = 0; ; ++arg) {
const char* nthArgOrder(NthArg(argOrder, arg));
@@ -700,42 +850,45 @@
// cube textures use vec3 coordinates
int argDim0 = isTexture && arg > 0 ? std::min(dim0, 3) : dim0;
- // arrayed textures have one extra coordinate dimension
- if (isArrayed && arg == 2)
+ s.append(arg > 0 ? ", ": ""); // comma separator if needed
+
+ const char* orderBegin = nthArgOrder;
+ nthArgOrder = IoParam(s, nthArgOrder);
+
+ // Comma means use the previous argument order and type.
+ HandleRepeatArg(nthArgOrder, prevArgOrder, orderBegin);
+ HandleRepeatArg(nthArgType, prevArgType, nthArgType);
+
+ // In case the repeated arg has its own I/O marker
+ nthArgOrder = IoParam(s, nthArgOrder);
+
+ // arrayed textures have one extra coordinate dimension, except for
+ // the CalculateLevelOfDetail family.
+ if (isArrayed && arg == coordArg && !NoArrayCoord(intrinsic.name))
+ argDim0++;
+
+ // Some texture methods use an addition arg dimension to hold mip
+ if (arg == coordArg && mipInCoord)
argDim0++;
// For textures, the 1D case isn't a 1-vector, but a scalar.
if (isTexture && argDim0 == 1 && arg > 0 && *nthArgOrder == 'V')
nthArgOrder = "S";
- s.append(arg > 0 ? ", ": ""); // comma separator if needed
-
- if (*nthArgOrder == '>') { // output params
- ++nthArgOrder;
- s.append("out ");
- } else if (*nthArgOrder == '<') { // input params
- ++nthArgOrder;
- s.append("in ");
- }
-
- // Comma means use the 1st argument order and type.
- if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder;
- if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType;
-
AppendTypeName(s, nthArgOrder, nthArgType, argDim0, dim1); // Add arguments
}
s.append(");\n"); // close paren and trailing semicolon
- }
- }
- }
+ } // dim 1 loop
+ } // dim 0 loop
+ } // arg type loop
// skip over special characters
- if (isTexture)
+ if (isTexture && isalpha(argOrder[1]))
++argOrder;
if (isdigit(argOrder[1]))
++argOrder;
- }
+ } // arg order loop
if (intrinsic.stage == EShLangAll) // common builtins are only added once.
break;
@@ -916,12 +1069,26 @@
// Texture methods
symbolTable.relateToOperator("Sample", EOpMethodSample);
symbolTable.relateToOperator("SampleBias", EOpMethodSampleBias);
- // symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp);
- // symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero);
+ symbolTable.relateToOperator("SampleCmp", EOpMethodSampleCmp);
+ symbolTable.relateToOperator("SampleCmpLevelZero", EOpMethodSampleCmpLevelZero);
symbolTable.relateToOperator("SampleGrad", EOpMethodSampleGrad);
- // symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel);
- // symbolTable.relateToOperator("Load", EOpMethodLoad);
+ symbolTable.relateToOperator("SampleLevel", EOpMethodSampleLevel);
+ symbolTable.relateToOperator("Load", EOpMethodLoad);
symbolTable.relateToOperator("GetDimensions", EOpMethodGetDimensions);
+ symbolTable.relateToOperator("GetSamplePosition", EOpMethodGetSamplePosition);
+ symbolTable.relateToOperator("Gather", EOpMethodGather);
+ symbolTable.relateToOperator("CalculateLevelOfDetail", EOpMethodCalculateLevelOfDetail);
+ symbolTable.relateToOperator("CalculateLevelOfDetailUnclamped", EOpMethodCalculateLevelOfDetailUnclamped);
+
+ // SM5 Texture methods
+ symbolTable.relateToOperator("GatherRed", EOpMethodGatherRed);
+ symbolTable.relateToOperator("GatherGreen", EOpMethodGatherGreen);
+ symbolTable.relateToOperator("GatherBlue", EOpMethodGatherBlue);
+ symbolTable.relateToOperator("GatherAlpha", EOpMethodGatherAlpha);
+ symbolTable.relateToOperator("GatherCmpRed", EOpMethodGatherCmpRed);
+ symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen);
+ symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue);
+ symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha);
}
//
diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp
index 8a4eb73..da39321 100755
--- a/hlsl/hlslScanContext.cpp
+++ b/hlsl/hlslScanContext.cpp
@@ -258,6 +258,8 @@
(*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray;
(*KeywordMap)["struct"] = EHTokStruct;
+ (*KeywordMap)["cbuffer"] = EHTokCBuffer;
+ (*KeywordMap)["tbuffer"] = EHTokTBuffer;
(*KeywordMap)["typedef"] = EHTokTypedef;
(*KeywordMap)["true"] = EHTokBoolConstant;
@@ -574,6 +576,9 @@
// variable, user type, ...
case EHTokStruct:
case EHTokTypedef:
+ case EHTokCBuffer:
+ case EHTokTBuffer:
+ return keyword;
case EHTokBoolConstant:
if (strcmp("true", tokenText) == 0)
diff --git a/hlsl/hlslTokenStream.cpp b/hlsl/hlslTokenStream.cpp
index 47f779a..c915e0b 100755
--- a/hlsl/hlslTokenStream.cpp
+++ b/hlsl/hlslTokenStream.cpp
@@ -39,27 +39,29 @@
void HlslTokenStream::pushPreToken(const HlslToken& tok)
{
- assert(preTokenStackSize == 0);
- preTokenStack = tok;
- ++preTokenStackSize;
+ assert(preTokenStackSize < tokenBufferSize);
+ preTokenStack[preTokenStackSize++] = tok;
}
HlslToken HlslTokenStream::popPreToken()
{
- assert(preTokenStackSize == 1);
- --preTokenStackSize;
+ assert(preTokenStackSize > 0);
- return preTokenStack;
+ return preTokenStack[--preTokenStackSize];
}
void HlslTokenStream::pushTokenBuffer(const HlslToken& tok)
{
- tokenBuffer = tok;
+ tokenBuffer[tokenBufferPos] = tok;
+ tokenBufferPos = (tokenBufferPos+1) % tokenBufferSize;
}
HlslToken HlslTokenStream::popTokenBuffer()
{
- return tokenBuffer;
+ // Back up
+ tokenBufferPos = (tokenBufferPos+tokenBufferSize-1) % tokenBufferSize;
+
+ return tokenBuffer[tokenBufferPos];
}
// Load 'token' with the next token in the stream of tokens.
diff --git a/hlsl/hlslTokenStream.h b/hlsl/hlslTokenStream.h
index 12c2a2a..ec42889 100755
--- a/hlsl/hlslTokenStream.h
+++ b/hlsl/hlslTokenStream.h
@@ -43,7 +43,7 @@
class HlslTokenStream {
public:
explicit HlslTokenStream(HlslScanContext& scanner)
- : scanner(scanner), preTokenStackSize(0) { }
+ : scanner(scanner), preTokenStackSize(0), tokenBufferPos(0) { }
virtual ~HlslTokenStream() { }
public:
@@ -62,20 +62,24 @@
HlslScanContext& scanner; // lexical scanner, to get next token
+ // This is the number of tokens we can recedeToken() over.
+ static const int tokenBufferSize = 2;
+
// Previously scanned tokens, returned for future advances,
// so logically in front of the token stream.
// Is logically a stack; needs last in last out semantics.
- // Currently implemented as a stack of size 1.
- HlslToken preTokenStack;
+ // Currently implemented as a stack of size 2.
+ HlslToken preTokenStack[tokenBufferSize];
int preTokenStackSize;
void pushPreToken(const HlslToken&);
HlslToken popPreToken();
- // Previously scanned tokens, not yet return for future advances,
+ // Previously scanned tokens, not yet returned for future advances,
// but available for that.
// Is logically a fifo for normal advances, and a stack for recession.
- // Currently implemented with an intrinsic size of 1.
- HlslToken tokenBuffer;
+ // Currently implemented with an intrinsic size of 2.
+ HlslToken tokenBuffer[tokenBufferSize];
+ int tokenBufferPos;
void pushTokenBuffer(const HlslToken&);
HlslToken popTokenBuffer();
};
diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h
index 5a5266a..d72b2cd 100755
--- a/hlsl/hlslTokens.h
+++ b/hlsl/hlslTokens.h
@@ -212,6 +212,8 @@
EHTokIdentifier,
EHTokTypeName,
EHTokStruct,
+ EHTokCBuffer,
+ EHTokTBuffer,
EHTokTypedef,
// constant