aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xSPIRV/GlslangToSpv.cpp48
-rw-r--r--SPIRV/GlslangToSpv.h4
-rw-r--r--SPIRV/SpvBuilder.cpp8
-rwxr-xr-xSPIRV/SpvBuilder.h2
-rw-r--r--StandAlone/ResourceLimits.cpp220
-rw-r--r--StandAlone/StandAlone.cpp10
-rw-r--r--Test/baseResults/100.frag.out16
-rw-r--r--Test/baseResults/120.vert.out2
-rw-r--r--Test/baseResults/130.frag.out6
-rw-r--r--Test/baseResults/140.frag.out2
-rw-r--r--Test/baseResults/140.vert.out6
-rw-r--r--Test/baseResults/150.frag.out2
-rw-r--r--Test/baseResults/300.vert.out12
-rw-r--r--Test/baseResults/310.frag.out2
-rw-r--r--Test/baseResults/310AofA.vert.out2
-rw-r--r--Test/baseResults/400.frag.out4
-rw-r--r--Test/baseResults/420.frag.out2
-rw-r--r--Test/baseResults/430AofA.frag.out2
-rwxr-xr-xTest/baseResults/hlsl.amend.frag.out4
-rw-r--r--Test/baseResults/hlsl.array.flatten.frag.out8
-rwxr-xr-xTest/baseResults/hlsl.array.frag.out4
-rw-r--r--Test/baseResults/hlsl.array.implicit-size.frag.out2
-rw-r--r--Test/baseResults/hlsl.array.multidim.frag.out4
-rw-r--r--Test/baseResults/hlsl.attribute.expression.comp.out138
-rwxr-xr-xTest/baseResults/hlsl.basic.comp.out4
-rw-r--r--Test/baseResults/hlsl.basic.geom.out201
-rwxr-xr-xTest/baseResults/hlsl.buffer.frag.out8
-rw-r--r--Test/baseResults/hlsl.calculatelod.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.comparison.vec.frag.out402
-rwxr-xr-xTest/baseResults/hlsl.doLoop.frag.out14
-rwxr-xr-xTest/baseResults/hlsl.float1.frag.out2
-rwxr-xr-xTest/baseResults/hlsl.float4.frag.out6
-rwxr-xr-xTest/baseResults/hlsl.forLoop.frag.out42
-rw-r--r--Test/baseResults/hlsl.gather.array.dx10.frag.out32
-rw-r--r--Test/baseResults/hlsl.gather.basic.dx10.frag.out32
-rw-r--r--Test/baseResults/hlsl.gather.basic.dx10.vert.out28
-rw-r--r--Test/baseResults/hlsl.gather.offset.dx10.frag.out20
-rw-r--r--Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out20
-rw-r--r--Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out108
-rw-r--r--Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out108
-rw-r--r--Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out108
-rw-r--r--Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out108
-rw-r--r--Test/baseResults/hlsl.getdimensions.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.getdimensions.dx10.vert.out4
-rw-r--r--Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out20
-rw-r--r--Test/baseResults/hlsl.getsampleposition.dx10.frag.out16
-rw-r--r--Test/baseResults/hlsl.identifier.sample.frag.out103
-rwxr-xr-xTest/baseResults/hlsl.if.frag.out84
-rwxr-xr-xTest/baseResults/hlsl.init.frag.out8
-rw-r--r--Test/baseResults/hlsl.intrinsics.barriers.comp.out24
-rw-r--r--Test/baseResults/hlsl.intrinsics.comp.out136
-rw-r--r--Test/baseResults/hlsl.intrinsics.double.frag.out4
-rw-r--r--Test/baseResults/hlsl.intrinsics.f1632.frag.out16
-rw-r--r--Test/baseResults/hlsl.intrinsics.frag.out1516
-rw-r--r--Test/baseResults/hlsl.intrinsics.negative.frag.out120
-rw-r--r--Test/baseResults/hlsl.intrinsics.negative.vert.out116
-rw-r--r--Test/baseResults/hlsl.intrinsics.vert.out1338
-rwxr-xr-xTest/baseResults/hlsl.layout.frag.out2
-rw-r--r--Test/baseResults/hlsl.load.2dms.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.array.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.basic.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.basic.dx10.vert.out8
-rw-r--r--Test/baseResults/hlsl.load.buffer.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.buffer.float.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.offset.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.offsetarray.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.load.rwtexture.dx10.frag.out12
-rw-r--r--Test/baseResults/hlsl.logical.binary.frag.out220
-rw-r--r--Test/baseResults/hlsl.logical.binary.vec.frag.out412
-rw-r--r--Test/baseResults/hlsl.logical.unary.frag.out292
-rw-r--r--Test/baseResults/hlsl.matNx1.frag.out261
-rw-r--r--Test/baseResults/hlsl.matType.bool.frag.out419
-rwxr-xr-xTest/baseResults/hlsl.matType.frag.out22
-rw-r--r--Test/baseResults/hlsl.matType.int.frag.out738
-rw-r--r--Test/baseResults/hlsl.matrixindex.frag.out4
-rwxr-xr-xTest/baseResults/hlsl.max.frag.out4
-rw-r--r--Test/baseResults/hlsl.mintypes.frag.out224
-rwxr-xr-xTest/baseResults/hlsl.multiEntry.vert.out4
-rw-r--r--Test/baseResults/hlsl.numthreads.comp.out60
-rwxr-xr-xTest/baseResults/hlsl.partialInit.frag.out418
-rw-r--r--Test/baseResults/hlsl.precise.frag.out4
-rw-r--r--Test/baseResults/hlsl.promote.binary.frag.out280
-rw-r--r--Test/baseResults/hlsl.promote.vec1.frag.out118
-rw-r--r--Test/baseResults/hlsl.promotions.frag.out4
-rw-r--r--Test/baseResults/hlsl.rw.atomics.frag.out5261
-rw-r--r--Test/baseResults/hlsl.rw.bracket.frag.out8
-rw-r--r--Test/baseResults/hlsl.rw.register.frag.out158
-rw-r--r--Test/baseResults/hlsl.rw.scalar.bracket.frag.out8
-rw-r--r--Test/baseResults/hlsl.rw.vec2.bracket.frag.out8
-rw-r--r--Test/baseResults/hlsl.sample.array.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.sample.basic.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.sample.offset.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out4
-rw-r--r--Test/baseResults/hlsl.samplebias.array.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplebias.basic.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplebias.offset.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplecmp.array.dx10.frag.out561
-rw-r--r--Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out546
-rw-r--r--Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out462
-rw-r--r--Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out455
-rw-r--r--Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out563
-rw-r--r--Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out548
-rw-r--r--Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out464
-rw-r--r--Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out457
-rw-r--r--Test/baseResults/hlsl.samplegrad.array.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out4
-rw-r--r--Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplelevel.array.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out4
-rw-r--r--Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out8
-rw-r--r--Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out8
-rwxr-xr-xTest/baseResults/hlsl.shapeConv.frag.out153
-rwxr-xr-xTest/baseResults/hlsl.sin.frag.out4
-rw-r--r--Test/baseResults/hlsl.stringtoken.frag.out9
-rwxr-xr-xTest/baseResults/hlsl.struct.frag.out116
-rwxr-xr-xTest/baseResults/hlsl.swizzle.frag.out2
-rw-r--r--Test/baseResults/hlsl.tx.bracket.frag.out8
-rwxr-xr-xTest/baseResults/hlsl.typedef.frag.out2
-rwxr-xr-xTest/baseResults/hlsl.whileLoop.frag.out14
-rw-r--r--Test/baseResults/maxClipDistances.vert.out2
-rw-r--r--Test/baseResults/specExamples.frag.out6
-rw-r--r--Test/baseResults/specExamples.vert.out6
-rw-r--r--[-rwxr-xr-x]Test/baseResults/spv.310.comp.out209
-rw-r--r--[-rwxr-xr-x]Test/baseResults/spv.400.tesc.out192
-rwxr-xr-xTest/baseResults/spv.noWorkgroup.comp.out34
-rw-r--r--Test/baseResults/spv.register.autoassign.rangetest.frag.out4
-rw-r--r--Test/baseResults/spv.rw.autoassign.frag.out70
-rw-r--r--Test/baseResults/varyingArray.frag.out2
-rw-r--r--Test/baseResults/varyingArrayIndirect.frag.out2
-rw-r--r--Test/hlsl.attribute.expression.comp15
-rw-r--r--Test/hlsl.basic.geom25
-rw-r--r--Test/hlsl.comparison.vec.frag34
-rw-r--r--Test/hlsl.doLoop.frag2
-rw-r--r--Test/hlsl.forLoop.frag6
-rw-r--r--Test/hlsl.identifier.sample.frag18
-rw-r--r--Test/hlsl.if.frag12
-rw-r--r--Test/hlsl.logical.binary.frag21
-rw-r--r--Test/hlsl.logical.binary.vec.frag24
-rw-r--r--Test/hlsl.logical.unary.frag29
-rw-r--r--Test/hlsl.matNx1.frag31
-rw-r--r--Test/hlsl.matType.bool.frag53
-rw-r--r--Test/hlsl.matType.int.frag97
-rw-r--r--Test/hlsl.mintypes.frag49
-rw-r--r--Test/hlsl.numthreads.comp14
-rwxr-xr-xTest/hlsl.partialInit.frag29
-rw-r--r--Test/hlsl.promote.binary.frag28
-rw-r--r--Test/hlsl.promote.vec1.frag16
-rw-r--r--Test/hlsl.rw.atomics.frag244
-rw-r--r--Test/hlsl.rw.register.frag18
-rw-r--r--Test/hlsl.shapeConv.frag4
-rw-r--r--Test/hlsl.whileLoop.frag2
-rw-r--r--Test/spv.noWorkgroup.comp7
-rw-r--r--Test/spv.rw.autoassign.frag18
-rw-r--r--glslang/Include/ConstantUnion.h2
-rw-r--r--glslang/Include/Types.h1
-rw-r--r--glslang/Include/intermediate.h15
-rw-r--r--glslang/Include/revision.h4
-rw-r--r--glslang/MachineIndependent/Intermediate.cpp285
-rw-r--r--glslang/MachineIndependent/ParseContextBase.cpp41
-rw-r--r--glslang/MachineIndependent/ParseHelper.cpp66
-rw-r--r--glslang/MachineIndependent/ParseHelper.h28
-rw-r--r--glslang/MachineIndependent/ShaderLang.cpp97
-rw-r--r--glslang/MachineIndependent/intermOut.cpp2
-rw-r--r--glslang/MachineIndependent/iomapper.cpp408
-rw-r--r--glslang/MachineIndependent/iomapper.h2
-rw-r--r--glslang/MachineIndependent/linkValidate.cpp18
-rw-r--r--glslang/MachineIndependent/localintermediate.h16
-rw-r--r--glslang/Public/ShaderLang.h37
-rw-r--r--gtests/Hlsl.FromFile.cpp19
-rw-r--r--gtests/Spv.FromFile.cpp17
-rw-r--r--gtests/TestFixture.h5
-rwxr-xr-xhlsl/CMakeLists.txt4
-rw-r--r--hlsl/hlslAttributes.cpp110
-rw-r--r--hlsl/hlslAttributes.h97
-rwxr-xr-xhlsl/hlslGrammar.cpp301
-rwxr-xr-xhlsl/hlslGrammar.h10
-rwxr-xr-xhlsl/hlslParseHelper.cpp389
-rwxr-xr-xhlsl/hlslParseHelper.h18
-rwxr-xr-xhlsl/hlslParseables.cpp112
-rwxr-xr-xhlsl/hlslScanContext.cpp116
-rwxr-xr-xhlsl/hlslTokens.h32
189 files changed, 17224 insertions, 5190 deletions
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 49bb0a17..7abd04d6 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -99,7 +99,7 @@ private:
class TGlslangToSpvTraverser : public glslang::TIntermTraverser {
public:
TGlslangToSpvTraverser(const glslang::TIntermediate*, spv::SpvBuildLogger* logger);
- virtual ~TGlslangToSpvTraverser();
+ virtual ~TGlslangToSpvTraverser() { }
bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*);
bool visitBinary(glslang::TVisit, glslang::TIntermBinary*);
@@ -111,6 +111,7 @@ public:
bool visitLoop(glslang::TVisit, glslang::TIntermLoop*);
bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*);
+ void finishSpv();
void dumpSpv(std::vector<unsigned int>& out);
protected:
@@ -181,8 +182,8 @@ protected:
// There is a 1:1 mapping between a spv builder and a module; this is thread safe
spv::Builder builder;
- bool inMain;
- bool mainTerminated;
+ bool inEntryPoint;
+ bool entryPointTerminated;
bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used
std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface
const glslang::TIntermediate* glslangIntermediate;
@@ -768,7 +769,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
: TIntermTraverser(true, false, true), shaderEntry(nullptr), currentFunction(nullptr),
sequenceDepth(0), logger(buildLogger),
builder((glslang::GetKhronosToolId() << 16) | GeneratorVersion, logger),
- inMain(false), mainTerminated(false), linkageOnly(false),
+ inEntryPoint(false), entryPointTerminated(false), linkageOnly(false),
glslangIntermediate(glslangIntermediate)
{
spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage());
@@ -896,27 +897,27 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
default:
break;
}
-
}
-// Finish everything and dump
-void TGlslangToSpvTraverser::dumpSpv(std::vector<unsigned int>& out)
+// Finish creating SPV, after the traversal is complete.
+void TGlslangToSpvTraverser::finishSpv()
{
+ if (! entryPointTerminated) {
+ builder.setBuildPoint(shaderEntry->getLastBlock());
+ builder.leaveFunction();
+ }
+
// finish off the entry-point SPV instruction by adding the Input/Output <id>
for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it)
entryPoint->addIdOperand(*it);
builder.eliminateDeadDecorations();
- builder.dump(out);
}
-TGlslangToSpvTraverser::~TGlslangToSpvTraverser()
+// Write the SPV into 'out'.
+void TGlslangToSpvTraverser::dumpSpv(std::vector<unsigned int>& out)
{
- if (! mainTerminated) {
- spv::Block* lastMainBlock = shaderEntry->getLastBlock();
- builder.setBuildPoint(lastMainBlock);
- builder.leaveFunction();
- }
+ builder.dump(out);
}
//
@@ -1382,17 +1383,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpFunction:
if (visit == glslang::EvPreVisit) {
if (isShaderEntryPoint(node)) {
- inMain = true;
+ inEntryPoint = true;
builder.setBuildPoint(shaderEntry->getLastBlock());
currentFunction = shaderEntry;
} else {
handleFunctionEntry(node);
}
} else {
- if (inMain)
- mainTerminated = true;
+ if (inEntryPoint)
+ entryPointTerminated = true;
builder.leaveFunction();
- inMain = false;
+ inEntryPoint = false;
}
return true;
@@ -4118,11 +4119,9 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
// Create group invocation operations.
spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
{
- bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
#ifdef AMD_EXTENSIONS
+ bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
-#else
- bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
#endif
spv::Op opCode = spv::OpNop;
@@ -4133,10 +4132,12 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op
builder.addCapability(spv::CapabilitySubgroupBallotKHR);
} else {
builder.addCapability(spv::CapabilityGroups);
+#ifdef AMD_EXTENSIONS
if (op == glslang::EOpMinInvocationsNonUniform ||
op == glslang::EOpMaxInvocationsNonUniform ||
op == glslang::EOpAddInvocationsNonUniform)
builder.addExtension(spv::E_SPV_AMD_shader_ballot);
+#endif
spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup));
#ifdef AMD_EXTENSIONS
@@ -4597,7 +4598,7 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv:
builder.createNoResultOp(spv::OpEndPrimitive);
return 0;
case glslang::EOpBarrier:
- builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
+ builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
return 0;
case glslang::EOpMemoryBarrier:
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
@@ -5120,9 +5121,8 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsign
glslang::GetThreadPoolAllocator().push();
TGlslangToSpvTraverser it(&intermediate, logger);
-
root->traverse(&it);
-
+ it.finishSpv();
it.dumpSpv(spirv);
glslang::GetThreadPoolAllocator().pop();
diff --git a/SPIRV/GlslangToSpv.h b/SPIRV/GlslangToSpv.h
index 97b280ca..428cfb6a 100644
--- a/SPIRV/GlslangToSpv.h
+++ b/SPIRV/GlslangToSpv.h
@@ -32,6 +32,10 @@
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
//POSSIBILITY OF SUCH DAMAGE.
+#if _MSC_VER >= 1900
+ #pragma warning(disable : 4464) // relative include path contains '..'
+#endif
+
#include "../glslang/Include/intermediate.h"
#include <string>
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index 4703edc3..04b0f04f 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -64,7 +64,7 @@ Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) :
builderNumber(magicNumber),
buildPoint(0),
uniqueId(0),
- mainFunction(0),
+ entryPointFunction(0),
generatingOpCodeForSpecConst(false),
logger(buildLogger)
{
@@ -967,15 +967,15 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat
// Comments in header
Function* Builder::makeEntryPoint(const char* entryPoint)
{
- assert(! mainFunction);
+ assert(! entryPointFunction);
Block* entry;
std::vector<Id> params;
std::vector<Decoration> precisions;
- mainFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry);
+ entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry);
- return mainFunction;
+ return entryPointFunction;
}
// Comments in header
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index 0e8d9cae..e8524b2b 100755
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -564,7 +564,7 @@ public:
Module module;
Block* buildPoint;
Id uniqueId;
- Function* mainFunction;
+ Function* entryPointFunction;
bool generatingOpCodeForSpecConst;
AccessChain accessChain;
diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp
index 8a5e6f37..e22ec801 100644
--- a/StandAlone/ResourceLimits.cpp
+++ b/StandAlone/ResourceLimits.cpp
@@ -35,6 +35,7 @@
#include <cstdlib>
#include <cstring>
#include <sstream>
+#include <cctype>
#include "ResourceLimits.h"
@@ -240,208 +241,217 @@ std::string GetDefaultTBuiltInResourceString()
void DecodeResourceLimits(TBuiltInResource* resources, char* config)
{
- const char* delims = " \t\n\r";
-#pragma warning(suppress: 4996)
- const char* token = strtok(config, delims);
- while (token) {
-#pragma warning(suppress: 4996)
- const char* valueStr = strtok(0, delims);
- if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) {
- printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : "");
+ static const char* delims = " \t\n\r";
+
+ size_t pos = 0;
+ std::string configStr(config);
+
+ while ((pos = configStr.find_first_not_of(delims, pos)) != std::string::npos) {
+ const size_t token_s = pos;
+ const size_t token_e = configStr.find_first_of(delims, token_s);
+ const size_t value_s = configStr.find_first_not_of(delims, token_e);
+ const size_t value_e = configStr.find_first_of(delims, value_s);
+ pos = value_e;
+
+ // Faster to use compare(), but prefering readability.
+ const std::string tokenStr = configStr.substr(token_s, token_e-token_s);
+ const std::string valueStr = configStr.substr(value_s, value_e-value_s);
+
+ if (value_s == std::string::npos || ! (valueStr[0] == '-' || isdigit(valueStr[0]))) {
+ printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n",
+ valueStr.c_str());
return;
}
- int value = atoi(valueStr);
- if (strcmp(token, "MaxLights") == 0)
+ const int value = std::atoi(valueStr.c_str());
+
+ if (tokenStr == "MaxLights")
resources->maxLights = value;
- else if (strcmp(token, "MaxClipPlanes") == 0)
+ else if (tokenStr == "MaxClipPlanes")
resources->maxClipPlanes = value;
- else if (strcmp(token, "MaxTextureUnits") == 0)
+ else if (tokenStr == "MaxTextureUnits")
resources->maxTextureUnits = value;
- else if (strcmp(token, "MaxTextureCoords") == 0)
+ else if (tokenStr == "MaxTextureCoords")
resources->maxTextureCoords = value;
- else if (strcmp(token, "MaxVertexAttribs") == 0)
+ else if (tokenStr == "MaxVertexAttribs")
resources->maxVertexAttribs = value;
- else if (strcmp(token, "MaxVertexUniformComponents") == 0)
+ else if (tokenStr == "MaxVertexUniformComponents")
resources->maxVertexUniformComponents = value;
- else if (strcmp(token, "MaxVaryingFloats") == 0)
+ else if (tokenStr == "MaxVaryingFloats")
resources->maxVaryingFloats = value;
- else if (strcmp(token, "MaxVertexTextureImageUnits") == 0)
+ else if (tokenStr == "MaxVertexTextureImageUnits")
resources->maxVertexTextureImageUnits = value;
- else if (strcmp(token, "MaxCombinedTextureImageUnits") == 0)
+ else if (tokenStr == "MaxCombinedTextureImageUnits")
resources->maxCombinedTextureImageUnits = value;
- else if (strcmp(token, "MaxTextureImageUnits") == 0)
+ else if (tokenStr == "MaxTextureImageUnits")
resources->maxTextureImageUnits = value;
- else if (strcmp(token, "MaxFragmentUniformComponents") == 0)
+ else if (tokenStr == "MaxFragmentUniformComponents")
resources->maxFragmentUniformComponents = value;
- else if (strcmp(token, "MaxDrawBuffers") == 0)
+ else if (tokenStr == "MaxDrawBuffers")
resources->maxDrawBuffers = value;
- else if (strcmp(token, "MaxVertexUniformVectors") == 0)
+ else if (tokenStr == "MaxVertexUniformVectors")
resources->maxVertexUniformVectors = value;
- else if (strcmp(token, "MaxVaryingVectors") == 0)
+ else if (tokenStr == "MaxVaryingVectors")
resources->maxVaryingVectors = value;
- else if (strcmp(token, "MaxFragmentUniformVectors") == 0)
+ else if (tokenStr == "MaxFragmentUniformVectors")
resources->maxFragmentUniformVectors = value;
- else if (strcmp(token, "MaxVertexOutputVectors") == 0)
+ else if (tokenStr == "MaxVertexOutputVectors")
resources->maxVertexOutputVectors = value;
- else if (strcmp(token, "MaxFragmentInputVectors") == 0)
+ else if (tokenStr == "MaxFragmentInputVectors")
resources->maxFragmentInputVectors = value;
- else if (strcmp(token, "MinProgramTexelOffset") == 0)
+ else if (tokenStr == "MinProgramTexelOffset")
resources->minProgramTexelOffset = value;
- else if (strcmp(token, "MaxProgramTexelOffset") == 0)
+ else if (tokenStr == "MaxProgramTexelOffset")
resources->maxProgramTexelOffset = value;
- else if (strcmp(token, "MaxClipDistances") == 0)
+ else if (tokenStr == "MaxClipDistances")
resources->maxClipDistances = value;
- else if (strcmp(token, "MaxComputeWorkGroupCountX") == 0)
+ else if (tokenStr == "MaxComputeWorkGroupCountX")
resources->maxComputeWorkGroupCountX = value;
- else if (strcmp(token, "MaxComputeWorkGroupCountY") == 0)
+ else if (tokenStr == "MaxComputeWorkGroupCountY")
resources->maxComputeWorkGroupCountY = value;
- else if (strcmp(token, "MaxComputeWorkGroupCountZ") == 0)
+ else if (tokenStr == "MaxComputeWorkGroupCountZ")
resources->maxComputeWorkGroupCountZ = value;
- else if (strcmp(token, "MaxComputeWorkGroupSizeX") == 0)
+ else if (tokenStr == "MaxComputeWorkGroupSizeX")
resources->maxComputeWorkGroupSizeX = value;
- else if (strcmp(token, "MaxComputeWorkGroupSizeY") == 0)
+ else if (tokenStr == "MaxComputeWorkGroupSizeY")
resources->maxComputeWorkGroupSizeY = value;
- else if (strcmp(token, "MaxComputeWorkGroupSizeZ") == 0)
+ else if (tokenStr == "MaxComputeWorkGroupSizeZ")
resources->maxComputeWorkGroupSizeZ = value;
- else if (strcmp(token, "MaxComputeUniformComponents") == 0)
+ else if (tokenStr == "MaxComputeUniformComponents")
resources->maxComputeUniformComponents = value;
- else if (strcmp(token, "MaxComputeTextureImageUnits") == 0)
+ else if (tokenStr == "MaxComputeTextureImageUnits")
resources->maxComputeTextureImageUnits = value;
- else if (strcmp(token, "MaxComputeImageUniforms") == 0)
+ else if (tokenStr == "MaxComputeImageUniforms")
resources->maxComputeImageUniforms = value;
- else if (strcmp(token, "MaxComputeAtomicCounters") == 0)
+ else if (tokenStr == "MaxComputeAtomicCounters")
resources->maxComputeAtomicCounters = value;
- else if (strcmp(token, "MaxComputeAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxComputeAtomicCounterBuffers")
resources->maxComputeAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxVaryingComponents") == 0)
+ else if (tokenStr == "MaxVaryingComponents")
resources->maxVaryingComponents = value;
- else if (strcmp(token, "MaxVertexOutputComponents") == 0)
+ else if (tokenStr == "MaxVertexOutputComponents")
resources->maxVertexOutputComponents = value;
- else if (strcmp(token, "MaxGeometryInputComponents") == 0)
+ else if (tokenStr == "MaxGeometryInputComponents")
resources->maxGeometryInputComponents = value;
- else if (strcmp(token, "MaxGeometryOutputComponents") == 0)
+ else if (tokenStr == "MaxGeometryOutputComponents")
resources->maxGeometryOutputComponents = value;
- else if (strcmp(token, "MaxFragmentInputComponents") == 0)
+ else if (tokenStr == "MaxFragmentInputComponents")
resources->maxFragmentInputComponents = value;
- else if (strcmp(token, "MaxImageUnits") == 0)
+ else if (tokenStr == "MaxImageUnits")
resources->maxImageUnits = value;
- else if (strcmp(token, "MaxCombinedImageUnitsAndFragmentOutputs") == 0)
+ else if (tokenStr == "MaxCombinedImageUnitsAndFragmentOutputs")
resources->maxCombinedImageUnitsAndFragmentOutputs = value;
- else if (strcmp(token, "MaxCombinedShaderOutputResources") == 0)
+ else if (tokenStr == "MaxCombinedShaderOutputResources")
resources->maxCombinedShaderOutputResources = value;
- else if (strcmp(token, "MaxImageSamples") == 0)
+ else if (tokenStr == "MaxImageSamples")
resources->maxImageSamples = value;
- else if (strcmp(token, "MaxVertexImageUniforms") == 0)
+ else if (tokenStr == "MaxVertexImageUniforms")
resources->maxVertexImageUniforms = value;
- else if (strcmp(token, "MaxTessControlImageUniforms") == 0)
+ else if (tokenStr == "MaxTessControlImageUniforms")
resources->maxTessControlImageUniforms = value;
- else if (strcmp(token, "MaxTessEvaluationImageUniforms") == 0)
+ else if (tokenStr == "MaxTessEvaluationImageUniforms")
resources->maxTessEvaluationImageUniforms = value;
- else if (strcmp(token, "MaxGeometryImageUniforms") == 0)
+ else if (tokenStr == "MaxGeometryImageUniforms")
resources->maxGeometryImageUniforms = value;
- else if (strcmp(token, "MaxFragmentImageUniforms") == 0)
+ else if (tokenStr == "MaxFragmentImageUniforms")
resources->maxFragmentImageUniforms = value;
- else if (strcmp(token, "MaxCombinedImageUniforms") == 0)
+ else if (tokenStr == "MaxCombinedImageUniforms")
resources->maxCombinedImageUniforms = value;
- else if (strcmp(token, "MaxGeometryTextureImageUnits") == 0)
+ else if (tokenStr == "MaxGeometryTextureImageUnits")
resources->maxGeometryTextureImageUnits = value;
- else if (strcmp(token, "MaxGeometryOutputVertices") == 0)
+ else if (tokenStr == "MaxGeometryOutputVertices")
resources->maxGeometryOutputVertices = value;
- else if (strcmp(token, "MaxGeometryTotalOutputComponents") == 0)
+ else if (tokenStr == "MaxGeometryTotalOutputComponents")
resources->maxGeometryTotalOutputComponents = value;
- else if (strcmp(token, "MaxGeometryUniformComponents") == 0)
+ else if (tokenStr == "MaxGeometryUniformComponents")
resources->maxGeometryUniformComponents = value;
- else if (strcmp(token, "MaxGeometryVaryingComponents") == 0)
+ else if (tokenStr == "MaxGeometryVaryingComponents")
resources->maxGeometryVaryingComponents = value;
- else if (strcmp(token, "MaxTessControlInputComponents") == 0)
+ else if (tokenStr == "MaxTessControlInputComponents")
resources->maxTessControlInputComponents = value;
- else if (strcmp(token, "MaxTessControlOutputComponents") == 0)
+ else if (tokenStr == "MaxTessControlOutputComponents")
resources->maxTessControlOutputComponents = value;
- else if (strcmp(token, "MaxTessControlTextureImageUnits") == 0)
+ else if (tokenStr == "MaxTessControlTextureImageUnits")
resources->maxTessControlTextureImageUnits = value;
- else if (strcmp(token, "MaxTessControlUniformComponents") == 0)
+ else if (tokenStr == "MaxTessControlUniformComponents")
resources->maxTessControlUniformComponents = value;
- else if (strcmp(token, "MaxTessControlTotalOutputComponents") == 0)
+ else if (tokenStr == "MaxTessControlTotalOutputComponents")
resources->maxTessControlTotalOutputComponents = value;
- else if (strcmp(token, "MaxTessEvaluationInputComponents") == 0)
+ else if (tokenStr == "MaxTessEvaluationInputComponents")
resources->maxTessEvaluationInputComponents = value;
- else if (strcmp(token, "MaxTessEvaluationOutputComponents") == 0)
+ else if (tokenStr == "MaxTessEvaluationOutputComponents")
resources->maxTessEvaluationOutputComponents = value;
- else if (strcmp(token, "MaxTessEvaluationTextureImageUnits") == 0)
+ else if (tokenStr == "MaxTessEvaluationTextureImageUnits")
resources->maxTessEvaluationTextureImageUnits = value;
- else if (strcmp(token, "MaxTessEvaluationUniformComponents") == 0)
+ else if (tokenStr == "MaxTessEvaluationUniformComponents")
resources->maxTessEvaluationUniformComponents = value;
- else if (strcmp(token, "MaxTessPatchComponents") == 0)
+ else if (tokenStr == "MaxTessPatchComponents")
resources->maxTessPatchComponents = value;
- else if (strcmp(token, "MaxPatchVertices") == 0)
+ else if (tokenStr == "MaxPatchVertices")
resources->maxPatchVertices = value;
- else if (strcmp(token, "MaxTessGenLevel") == 0)
+ else if (tokenStr == "MaxTessGenLevel")
resources->maxTessGenLevel = value;
- else if (strcmp(token, "MaxViewports") == 0)
+ else if (tokenStr == "MaxViewports")
resources->maxViewports = value;
- else if (strcmp(token, "MaxVertexAtomicCounters") == 0)
+ else if (tokenStr == "MaxVertexAtomicCounters")
resources->maxVertexAtomicCounters = value;
- else if (strcmp(token, "MaxTessControlAtomicCounters") == 0)
+ else if (tokenStr == "MaxTessControlAtomicCounters")
resources->maxTessControlAtomicCounters = value;
- else if (strcmp(token, "MaxTessEvaluationAtomicCounters") == 0)
+ else if (tokenStr == "MaxTessEvaluationAtomicCounters")
resources->maxTessEvaluationAtomicCounters = value;
- else if (strcmp(token, "MaxGeometryAtomicCounters") == 0)
+ else if (tokenStr == "MaxGeometryAtomicCounters")
resources->maxGeometryAtomicCounters = value;
- else if (strcmp(token, "MaxFragmentAtomicCounters") == 0)
+ else if (tokenStr == "MaxFragmentAtomicCounters")
resources->maxFragmentAtomicCounters = value;
- else if (strcmp(token, "MaxCombinedAtomicCounters") == 0)
+ else if (tokenStr == "MaxCombinedAtomicCounters")
resources->maxCombinedAtomicCounters = value;
- else if (strcmp(token, "MaxAtomicCounterBindings") == 0)
+ else if (tokenStr == "MaxAtomicCounterBindings")
resources->maxAtomicCounterBindings = value;
- else if (strcmp(token, "MaxVertexAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxVertexAtomicCounterBuffers")
resources->maxVertexAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxTessControlAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxTessControlAtomicCounterBuffers")
resources->maxTessControlAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxTessEvaluationAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxTessEvaluationAtomicCounterBuffers")
resources->maxTessEvaluationAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxGeometryAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxGeometryAtomicCounterBuffers")
resources->maxGeometryAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxFragmentAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxFragmentAtomicCounterBuffers")
resources->maxFragmentAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxCombinedAtomicCounterBuffers") == 0)
+ else if (tokenStr == "MaxCombinedAtomicCounterBuffers")
resources->maxCombinedAtomicCounterBuffers = value;
- else if (strcmp(token, "MaxAtomicCounterBufferSize") == 0)
+ else if (tokenStr == "MaxAtomicCounterBufferSize")
resources->maxAtomicCounterBufferSize = value;
- else if (strcmp(token, "MaxTransformFeedbackBuffers") == 0)
+ else if (tokenStr == "MaxTransformFeedbackBuffers")
resources->maxTransformFeedbackBuffers = value;
- else if (strcmp(token, "MaxTransformFeedbackInterleavedComponents") == 0)
+ else if (tokenStr == "MaxTransformFeedbackInterleavedComponents")
resources->maxTransformFeedbackInterleavedComponents = value;
- else if (strcmp(token, "MaxCullDistances") == 0)
+ else if (tokenStr == "MaxCullDistances")
resources->maxCullDistances = value;
- else if (strcmp(token, "MaxCombinedClipAndCullDistances") == 0)
+ else if (tokenStr == "MaxCombinedClipAndCullDistances")
resources->maxCombinedClipAndCullDistances = value;
- else if (strcmp(token, "MaxSamples") == 0)
+ else if (tokenStr == "MaxSamples")
resources->maxSamples = value;
-
- else if (strcmp(token, "nonInductiveForLoops") == 0)
+ else if (tokenStr == "nonInductiveForLoops")
resources->limits.nonInductiveForLoops = (value != 0);
- else if (strcmp(token, "whileLoops") == 0)
+ else if (tokenStr == "whileLoops")
resources->limits.whileLoops = (value != 0);
- else if (strcmp(token, "doWhileLoops") == 0)
+ else if (tokenStr == "doWhileLoops")
resources->limits.doWhileLoops = (value != 0);
- else if (strcmp(token, "generalUniformIndexing") == 0)
+ else if (tokenStr == "generalUniformIndexing")
resources->limits.generalUniformIndexing = (value != 0);
- else if (strcmp(token, "generalAttributeMatrixVectorIndexing") == 0)
+ else if (tokenStr == "generalAttributeMatrixVectorIndexing")
resources->limits.generalAttributeMatrixVectorIndexing = (value != 0);
- else if (strcmp(token, "generalVaryingIndexing") == 0)
+ else if (tokenStr == "generalVaryingIndexing")
resources->limits.generalVaryingIndexing = (value != 0);
- else if (strcmp(token, "generalSamplerIndexing") == 0)
+ else if (tokenStr == "generalSamplerIndexing")
resources->limits.generalSamplerIndexing = (value != 0);
- else if (strcmp(token, "generalVariableIndexing") == 0)
+ else if (tokenStr == "generalVariableIndexing")
resources->limits.generalVariableIndexing = (value != 0);
- else if (strcmp(token, "generalConstantMatrixVectorIndexing") == 0)
+ else if (tokenStr == "generalConstantMatrixVectorIndexing")
resources->limits.generalConstantMatrixVectorIndexing = (value != 0);
else
- printf("Warning: unrecognized limit (%s) in configuration file.\n", token);
+ printf("Warning: unrecognized limit (%s) in configuration file.\n", tokenStr.c_str());
-#pragma warning(suppress: 4996)
- token = strtok(0, delims);
}
}
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 0ac72d3b..377e7cb3 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -164,6 +164,7 @@ const char* shaderStageName = nullptr;
std::array<unsigned int, EShLangCount> baseSamplerBinding;
std::array<unsigned int, EShLangCount> baseTextureBinding;
+std::array<unsigned int, EShLangCount> baseImageBinding;
std::array<unsigned int, EShLangCount> baseUboBinding;
//
@@ -252,6 +253,7 @@ void ProcessArguments(int argc, char* argv[])
{
baseSamplerBinding.fill(0);
baseTextureBinding.fill(0);
+ baseImageBinding.fill(0);
baseUboBinding.fill(0);
ExecutableName = argv[0];
@@ -279,6 +281,10 @@ void ProcessArguments(int argc, char* argv[])
lowerword == "shift-texture-binding" ||
lowerword == "stb") {
ProcessBindingBase(argc, argv, baseTextureBinding);
+ } else if (lowerword == "shift-image-bindings" || // synonyms
+ lowerword == "shift-image-binding" ||
+ lowerword == "sib") {
+ ProcessBindingBase(argc, argv, baseImageBinding);
} else if (lowerword == "shift-ubo-bindings" || // synonyms
lowerword == "shift-ubo-binding" ||
lowerword == "sub") {
@@ -544,6 +550,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]);
shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]);
+ shader->setShiftImageBinding(baseImageBinding[compUnit.stage]);
shader->setShiftUboBinding(baseUboBinding[compUnit.stage]);
shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0);
shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0);
@@ -941,6 +948,9 @@ void usage()
" --shift-texture-binding [stage] num set base binding number for textures\n"
" --stb [stage] num synonym for --shift-texture-binding\n"
"\n"
+ " --shift-image-binding [stage] num set base binding number for images (uav)\n"
+ " --sib [stage] num synonym for --shift-image-binding\n"
+ "\n"
" --shift-UBO-binding [stage] num set base binding number for UBOs\n"
" --sub [stage] num synonym for --shift-UBO-binding\n"
"\n"
diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out
index edd65ab2..74a597ff 100644
--- a/Test/baseResults/100.frag.out
+++ b/Test/baseResults/100.frag.out
@@ -393,13 +393,13 @@ ERROR: node is still EOpNull!
0:? 'a' (global 3-element array of mediump int)
0:? 'uint' (global mediump int)
0:? 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:? 'f' (global mediump float)
+0:? 'f' (invariant global mediump float)
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})
0:? 'fa' (global implicitly-sized array of mediump float)
-0:? 'f13' (global mediump float)
+0:? 'f13' (invariant global mediump float)
0:? 'fi' (invariant temp mediump float)
-0:? 'av' (smooth in mediump 4-component vector of float)
-0:? 'uv2' (uniform mediump 2-component vector of float)
+0:? 'av' (invariant smooth in mediump 4-component vector of float)
+0:? 'uv2' (invariant uniform mediump 2-component vector of float)
0:? 'uv3' (invariant uniform mediump 3-component vector of float)
0:? 'glob2D' (global lowp sampler2D)
0:? 'vary2D' (smooth in lowp sampler2D)
@@ -731,13 +731,13 @@ ERROR: node is still EOpNull!
0:? 'a' (global 3-element array of mediump int)
0:? 'uint' (global mediump int)
0:? 'v' (smooth in 3-element array of mediump 4-component vector of float)
-0:? 'f' (global mediump float)
+0:? 'f' (invariant global mediump float)
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x})
0:? 'fa' (global 1-element array of mediump float)
-0:? 'f13' (global mediump float)
+0:? 'f13' (invariant global mediump float)
0:? 'fi' (invariant temp mediump float)
-0:? 'av' (smooth in mediump 4-component vector of float)
-0:? 'uv2' (uniform mediump 2-component vector of float)
+0:? 'av' (invariant smooth in mediump 4-component vector of float)
+0:? 'uv2' (invariant uniform mediump 2-component vector of float)
0:? 'uv3' (invariant uniform mediump 3-component vector of float)
0:? 'glob2D' (global lowp sampler2D)
0:? 'vary2D' (smooth in lowp sampler2D)
diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out
index 73ced6a1..18fb221d 100644
--- a/Test/baseResults/120.vert.out
+++ b/Test/baseResults/120.vert.out
@@ -420,7 +420,6 @@ ERROR: node is still EOpNull!
0:? 'concall' (const float)
0:? 0.295520
0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
-0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
0:? 'c' (uniform int)
0:? 'x' (in 2-component vector of int)
0:? 'v2a' (in 2-component vector of float)
@@ -772,7 +771,6 @@ ERROR: node is still EOpNull!
0:? 'concall' (const float)
0:? 0.295520
0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
-0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord)
0:? 'c' (uniform int)
0:? 'x' (in 2-component vector of int)
0:? 'v2a' (in 2-component vector of float)
diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out
index b2b4dd06..a28908ea 100644
--- a/Test/baseResults/130.frag.out
+++ b/Test/baseResults/130.frag.out
@@ -383,8 +383,7 @@ ERROR: node is still EOpNull!
0:? 'fnop' (noperspective in float)
0:? 'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance)
0:? 'sampC' (uniform samplerCube)
-0:? 'gl_Color' (smooth in 4-component vector of float Color)
-0:? 'gl_Color' (flat in 4-component vector of float Color)
+0:? 'gl_Color' (in 4-component vector of float Color)
0:? 'samp2D' (uniform sampler2D)
0:? 'samp2DS' (uniform sampler2DShadow)
0:? 'samp2DR' (uniform sampler2DRect)
@@ -759,8 +758,7 @@ ERROR: node is still EOpNull!
0:? 'fnop' (noperspective in float)
0:? 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance)
0:? 'sampC' (uniform samplerCube)
-0:? 'gl_Color' (smooth in 4-component vector of float Color)
-0:? 'gl_Color' (flat in 4-component vector of float Color)
+0:? 'gl_Color' (in 4-component vector of float Color)
0:? 'samp2D' (uniform sampler2D)
0:? 'samp2DS' (uniform sampler2DShadow)
0:? 'samp2DR' (uniform sampler2DRect)
diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out
index fbeee83a..38c3b9f4 100644
--- a/Test/baseResults/140.frag.out
+++ b/Test/baseResults/140.frag.out
@@ -104,7 +104,6 @@ ERROR: node is still EOpNull!
0:? 'i' (smooth in 4-component vector of float)
0:? 'o' (out 4-component vector of float)
0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
-0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
0:? 's' (smooth in structure{global float f})
0:? 'patch' (global float)
0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float)
@@ -211,7 +210,6 @@ ERROR: node is still EOpNull!
0:? 'i' (smooth in 4-component vector of float)
0:? 'o' (out 4-component vector of float)
0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
-0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance)
0:? 's' (smooth in structure{global float f})
0:? 'patch' (global float)
0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float)
diff --git a/Test/baseResults/140.vert.out b/Test/baseResults/140.vert.out
index 634458cd..365a0aae 100644
--- a/Test/baseResults/140.vert.out
+++ b/Test/baseResults/140.vert.out
@@ -124,11 +124,8 @@ ERROR: node is still EOpNull!
0:? 'locBad' (layout(location=9 ) in 4-component vector of float)
0:? 'loc' (layout(location=9 ) in 4-component vector of float)
0:? 'gl_PointSize' (gl_PointSize float PointSize)
-0:? 'gl_PointSize' (gl_PointSize float PointSize)
-0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
-0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
0:? 's2dr' (uniform sampler2DRect)
0:? 's2drs' (uniform sampler2DRectShadow)
0:? 'itloc2' (in 2-component vector of int)
@@ -254,11 +251,8 @@ ERROR: node is still EOpNull!
0:? 'locBad' (layout(location=9 ) in 4-component vector of float)
0:? 'loc' (layout(location=9 ) in 4-component vector of float)
0:? 'gl_PointSize' (gl_PointSize float PointSize)
-0:? 'gl_PointSize' (gl_PointSize float PointSize)
-0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex)
0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
-0:? 'gl_FogFragCoord' (smooth out float FogFragCoord)
0:? 's2dr' (uniform sampler2DRect)
0:? 's2drs' (uniform sampler2DRectShadow)
0:? 'itloc2' (in 2-component vector of int)
diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out
index 082a8274..0972fdcd 100644
--- a/Test/baseResults/150.frag.out
+++ b/Test/baseResults/150.frag.out
@@ -108,7 +108,6 @@ ERROR: node is still EOpNull!
0:49 'gl_PrimitiveID' (flat in int PrimitiveID)
0:? Linker Objects
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
-0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'foo' (smooth in 4-component vector of float)
0:? 's' (smooth in structure{global float f})
0:? 'patch' (global float)
@@ -228,7 +227,6 @@ ERROR: node is still EOpNull!
0:49 'gl_PrimitiveID' (flat in int PrimitiveID)
0:? Linker Objects
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
-0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'foo' (smooth in 4-component vector of float)
0:? 's' (smooth in structure{global float f})
0:? 'patch' (global float)
diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out
index ecfa3d50..d35929f7 100644
--- a/Test/baseResults/300.vert.out
+++ b/Test/baseResults/300.vert.out
@@ -308,9 +308,9 @@ ERROR: node is still EOpNull!
0:? 'badsize2' (global implicitly-sized array of highp float)
0:? 'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a})
0:? 'okayA' (global 2-element array of highp float)
-0:? 'newV' (smooth out highp 3-component vector of float)
-0:? 'invIn' (in highp 4-component vector of float)
-0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 'newV' (invariant smooth out highp 3-component vector of float)
+0:? 'invIn' (invariant in highp 4-component vector of float)
+0:? 's2' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})
@@ -592,9 +592,9 @@ ERROR: node is still EOpNull!
0:? 'badsize2' (global 1-element array of highp float)
0:? 'ubInst' (layout(column_major shared ) uniform 1-element array of block{layout(column_major shared ) uniform 1-element array of highp int a})
0:? 'okayA' (global 2-element array of highp float)
-0:? 'newV' (smooth out highp 3-component vector of float)
-0:? 'invIn' (in highp 4-component vector of float)
-0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f})
+0:? 'newV' (invariant smooth out highp 3-component vector of float)
+0:? 'invIn' (invariant in highp 4-component vector of float)
+0:? 's2' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f})
0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f})
0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23})
diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out
index 6cfd3f44..66d6ae00 100644
--- a/Test/baseResults/310.frag.out
+++ b/Test/baseResults/310.frag.out
@@ -963,7 +963,6 @@ ERROR: node is still EOpNull!
0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)
0:? 'arrayedInst' (in 4-element array of block{in mediump float f})
0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
-0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
0:? 'inf' (smooth in mediump 2-component vector of float)
0:? 'ing' (smooth in mediump 2-component vector of float)
0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int)
@@ -1844,7 +1843,6 @@ ERROR: node is still EOpNull!
0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float)
0:? 'arrayedInst' (in 4-element array of block{in mediump float f})
0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
-0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth)
0:? 'inf' (smooth in mediump 2-component vector of float)
0:? 'ing' (smooth in mediump 2-component vector of float)
0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int)
diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out
index 83f105ca..28592d51 100644
--- a/Test/baseResults/310AofA.vert.out
+++ b/Test/baseResults/310AofA.vert.out
@@ -5,7 +5,7 @@ ERROR: 0:23: '' : array size required
ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized
ERROR: 0:40: '' : array size required
ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument
-ERROR: 0:49: 'constructior' : array constructor argument not correct type to construct array element
+ERROR: 0:49: 'constructor' : array constructor argument not correct type to construct array element
ERROR: 0:62: '[' : array index out of range '4'
ERROR: 0:78: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global 5-element array of 7-element array of highp float'
ERROR: 0:79: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global implicitly-sized array of 7-element array of highp float'
diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out
index 33a8c9ab..90904140 100644
--- a/Test/baseResults/400.frag.out
+++ b/Test/baseResults/400.frag.out
@@ -481,8 +481,6 @@ ERROR: node is still EOpNull!
0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float)
0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float)
0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
-0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
-0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'u2drs' (uniform sampler2DRectShadow)
0:? 'patchIn' (smooth patch in 4-component vector of float)
@@ -962,8 +960,6 @@ ERROR: node is still EOpNull!
0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float)
0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float)
0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
-0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
-0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'u2drs' (uniform sampler2DRectShadow)
0:? 'patchIn' (smooth patch in 4-component vector of float)
diff --git a/Test/baseResults/420.frag.out b/Test/baseResults/420.frag.out
index 784cdb4b..3b4c9be3 100644
--- a/Test/baseResults/420.frag.out
+++ b/Test/baseResults/420.frag.out
@@ -19,7 +19,6 @@ ERROR: node is still EOpNull!
0:8 0.300000
0:? Linker Objects
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
-0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
0:? 'depth' (smooth in float)
0:? 'a' (layout(binding=0 offset=0 ) uniform implicitly-sized array of atomic_uint)
@@ -39,7 +38,6 @@ ERROR: node is still EOpNull!
0:8 0.300000
0:? Linker Objects
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
-0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
0:? 'depth' (smooth in float)
0:? 'a' (layout(binding=0 offset=0 ) uniform 1-element array of atomic_uint)
diff --git a/Test/baseResults/430AofA.frag.out b/Test/baseResults/430AofA.frag.out
index 68285f73..f3bbfb8b 100644
--- a/Test/baseResults/430AofA.frag.out
+++ b/Test/baseResults/430AofA.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: '[]' : only outermost dimension of an array of arrays can be implicitly sized
ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument
-ERROR: 0:15: 'constructior' : array constructor argument not correct type to construct array element
+ERROR: 0:15: 'constructor' : array constructor argument not correct type to construct array element
ERROR: 0:28: '[' : array index out of range '4'
ERROR: 0:56: 'constructor' : cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float'
ERROR: 0:60: 'constructor' : cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float'
diff --git a/Test/baseResults/hlsl.amend.frag.out b/Test/baseResults/hlsl.amend.frag.out
index 1be59064..44d76552 100755
--- a/Test/baseResults/hlsl.amend.frag.out
+++ b/Test/baseResults/hlsl.amend.frag.out
@@ -58,7 +58,7 @@ gl_FragCoord origin is upper left
0:25 Constant:
0:25 0 (const uint)
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
Linked fragment stage:
@@ -123,7 +123,7 @@ gl_FragCoord origin is upper left
0:25 Constant:
0:25 0 (const uint)
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out
index cbfb0ef9..74a348a2 100644
--- a/Test/baseResults/hlsl.array.flatten.frag.out
+++ b/Test/baseResults/hlsl.array.flatten.frag.out
@@ -138,6 +138,7 @@ gl_FragCoord origin is upper left
0:? 'g_samp[2]' (uniform sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_tex[0]' (uniform texture1D)
0:? 'g_tex[1]' (uniform texture1D)
0:? 'g_tex[2]' (uniform texture1D)
@@ -150,9 +151,8 @@ gl_FragCoord origin is upper left
0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler)
0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler)
0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:? 'not_flattened_a' (global 5-element array of int)
-0:? 'color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
@@ -297,6 +297,7 @@ gl_FragCoord origin is upper left
0:? 'g_samp[2]' (uniform sampler)
0:37 'aggShadow' (temp 3-element array of sampler)
0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_tex[0]' (uniform texture1D)
0:? 'g_tex[1]' (uniform texture1D)
0:? 'g_tex[2]' (uniform texture1D)
@@ -309,9 +310,8 @@ gl_FragCoord origin is upper left
0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler)
0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler)
0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats})
0:? 'not_flattened_a' (global 5-element array of int)
-0:? 'color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out
index 00aedb3d..e04a5e81 100755
--- a/Test/baseResults/hlsl.array.frag.out
+++ b/Test/baseResults/hlsl.array.frag.out
@@ -57,9 +57,9 @@ gl_FragCoord origin is upper left
0:10 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:? 'i' (layout(location=0 ) in int)
0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
Linked fragment stage:
@@ -123,9 +123,9 @@ gl_FragCoord origin is upper left
0:10 Branch: Return
0:? Linker Objects
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
0:? 'i' (layout(location=0 ) in int)
0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out
index d8e0ed86..5674cb47 100644
--- a/Test/baseResults/hlsl.array.implicit-size.frag.out
+++ b/Test/baseResults/hlsl.array.implicit-size.frag.out
@@ -81,6 +81,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -234,6 +235,7 @@ gl_FragCoord origin is upper left
Store 18(g_array) 24
Store 28(g_array_unused) 31
Store 37(g_mystruct) 42
+ Return
FunctionEnd
12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10
11(ps_output): 9(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out
index a2df1a8d..66890b52 100644
--- a/Test/baseResults/hlsl.array.multidim.frag.out
+++ b/Test/baseResults/hlsl.array.multidim.frag.out
@@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
0:19 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
Linked fragment stage:
@@ -125,7 +125,7 @@ gl_FragCoord origin is upper left
0:19 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.attribute.expression.comp.out b/Test/baseResults/hlsl.attribute.expression.comp.out
new file mode 100644
index 00000000..2316cd9b
--- /dev/null
+++ b/Test/baseResults/hlsl.attribute.expression.comp.out
@@ -0,0 +1,138 @@
+hlsl.attribute.expression.comp
+Shader version: 450
+local_size = (4, 6, 8)
+0:? Sequence
+0:9 Function Definition: main( (temp 4-component vector of float)
+0:9 Function Parameters:
+0:? Sequence
+0:11 Sequence
+0:11 move second child to first child (temp int)
+0:11 'x' (temp int)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Loop with condition tested first
+0:11 Loop Condition
+0:11 Compare Less Than (temp bool)
+0:11 'x' (temp int)
+0:11 bound: direct index for structure (layout(offset=0 ) uniform int)
+0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
+0:11 Constant:
+0:11 0 (const uint)
+0:11 No loop body
+0:11 Loop Terminal Expression
+0:11 Pre-Increment (temp int)
+0:11 'x' (temp int)
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:14 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
+
+
+Linked compute stage:
+
+
+Shader version: 450
+local_size = (4, 6, 8)
+0:? Sequence
+0:9 Function Definition: main( (temp 4-component vector of float)
+0:9 Function Parameters:
+0:? Sequence
+0:11 Sequence
+0:11 move second child to first child (temp int)
+0:11 'x' (temp int)
+0:11 Constant:
+0:11 0 (const int)
+0:11 Loop with condition tested first
+0:11 Loop Condition
+0:11 Compare Less Than (temp bool)
+0:11 'x' (temp int)
+0:11 bound: direct index for structure (layout(offset=0 ) uniform int)
+0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
+0:11 Constant:
+0:11 0 (const uint)
+0:11 No loop body
+0:11 Loop Terminal Expression
+0:11 Pre-Increment (temp int)
+0:11 'x' (temp int)
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:14 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 34
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main" 30
+ ExecutionMode 4 LocalSize 4 6 8
+ Name 4 "main"
+ Name 8 "x"
+ Name 16 "$Global"
+ MemberName 16($Global) 0 "bound"
+ Name 18 ""
+ Name 30 "@entryPointOutput"
+ MemberDecorate 16($Global) 0 Offset 0
+ Decorate 16($Global) Block
+ Decorate 18 DescriptorSet 0
+ Decorate 30(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 9: 6(int) Constant 0
+ 16($Global): TypeStruct 6(int)
+ 17: TypePointer Uniform 16($Global)
+ 18: 17(ptr) Variable Uniform
+ 19: TypePointer Uniform 6(int)
+ 22: TypeBool
+ 25: 6(int) Constant 1
+ 27: TypeFloat 32
+ 28: TypeVector 27(float) 4
+ 29: TypePointer Output 28(fvec4)
+30(@entryPointOutput): 29(ptr) Variable Output
+ 31: 27(float) Constant 0
+ 32: 28(fvec4) ConstantComposite 31 31 31 31
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(x): 7(ptr) Variable Function
+ Store 8(x) 9
+ Branch 10
+ 10: Label
+ LoopMerge 12 13 None
+ Branch 14
+ 14: Label
+ 15: 6(int) Load 8(x)
+ 20: 19(ptr) AccessChain 18 9
+ 21: 6(int) Load 20
+ 23: 22(bool) SLessThan 15 21
+ BranchConditional 23 11 12
+ 11: Label
+ Branch 13
+ 13: Label
+ 24: 6(int) Load 8(x)
+ 26: 6(int) IAdd 24 25
+ Store 8(x) 26
+ Branch 10
+ 12: Label
+ Store 30(@entryPointOutput) 32
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out
index c6dc3e5c..9101e22f 100755
--- a/Test/baseResults/hlsl.basic.comp.out
+++ b/Test/baseResults/hlsl.basic.comp.out
@@ -8,8 +8,8 @@ local_size = (1, 1, 1)
0:? Sequence
0:5 'dti' (in int LocalInvocationID)
0:? Linker Objects
-0:? 'a' (shared 100-element array of 4-component vector of float)
0:? 'dti' (in int LocalInvocationID)
+0:? 'a' (shared 100-element array of 4-component vector of float)
Linked compute stage:
@@ -24,8 +24,8 @@ local_size = (1, 1, 1)
0:? Sequence
0:5 'dti' (in int LocalInvocationID)
0:? Linker Objects
-0:? 'a' (shared 100-element array of 4-component vector of float)
0:? 'dti' (in int LocalInvocationID)
+0:? 'a' (shared 100-element array of 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.basic.geom.out b/Test/baseResults/hlsl.basic.geom.out
new file mode 100644
index 00000000..2c20b439
--- /dev/null
+++ b/Test/baseResults/hlsl.basic.geom.out
@@ -0,0 +1,201 @@
+hlsl.basic.geom
+Shader version: 450
+invocations = -1
+max_vertices = 4
+input primitive = triangles
+output primitive = line_strip
+0:? Sequence
+0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void)
+0:16 Function Parameters:
+0:16 'VertexID' (layout(location=0 ) in 3-element array of uint)
+0:16 'test' (layout(location=3 ) in 3-element array of uint)
+0:16 'OutputStream' (out structure{temp float myfloat, temp int something})
+0:? Sequence
+0:19 move second child to first child (temp float)
+0:19 myfloat: direct index for structure (temp float)
+0:19 'Vert' (temp structure{temp float myfloat, temp int something})
+0:19 Constant:
+0:19 0 (const int)
+0:19 Convert uint to float (temp float)
+0:19 add (temp uint)
+0:19 add (temp uint)
+0:19 direct index (layout(location=3 ) temp uint)
+0:19 'test' (layout(location=3 ) in 3-element array of uint)
+0:19 Constant:
+0:19 0 (const int)
+0:19 direct index (layout(location=3 ) temp uint)
+0:19 'test' (layout(location=3 ) in 3-element array of uint)
+0:19 Constant:
+0:19 1 (const int)
+0:19 direct index (layout(location=3 ) temp uint)
+0:19 'test' (layout(location=3 ) in 3-element array of uint)
+0:19 Constant:
+0:19 2 (const int)
+0:20 move second child to first child (temp int)
+0:20 something: direct index for structure (temp int)
+0:20 'Vert' (temp structure{temp float myfloat, temp int something})
+0:20 Constant:
+0:20 1 (const int)
+0:20 Convert uint to int (temp int)
+0:20 direct index (layout(location=0 ) temp uint)
+0:20 'VertexID' (layout(location=0 ) in 3-element array of uint)
+0:20 Constant:
+0:20 0 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp structure{temp float myfloat, temp int something})
+0:22 'OutputStream' (out structure{temp float myfloat, temp int something})
+0:22 'Vert' (temp structure{temp float myfloat, temp int something})
+0:22 EmitVertex (temp void)
+0:23 Sequence
+0:23 move second child to first child (temp structure{temp float myfloat, temp int something})
+0:23 'OutputStream' (out structure{temp float myfloat, temp int something})
+0:23 'Vert' (temp structure{temp float myfloat, temp int something})
+0:23 EmitVertex (temp void)
+0:24 EndPrimitive (temp void)
+0:? Linker Objects
+0:? 'VertexID' (layout(location=0 ) in 3-element array of uint)
+0:? 'test' (layout(location=3 ) in 3-element array of uint)
+0:? 'myfloat' (layout(location=0 ) out float)
+0:? 'something' (layout(location=1 ) out int)
+
+
+Linked geometry stage:
+
+
+Shader version: 450
+invocations = 1
+max_vertices = 4
+input primitive = triangles
+output primitive = line_strip
+0:? Sequence
+0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void)
+0:16 Function Parameters:
+0:16 'VertexID' (layout(location=0 ) in 3-element array of uint)
+0:16 'test' (layout(location=3 ) in 3-element array of uint)
+0:16 'OutputStream' (out structure{temp float myfloat, temp int something})
+0:? Sequence
+0:19 move second child to first child (temp float)
+0:19 myfloat: direct index for structure (temp float)
+0:19 'Vert' (temp structure{temp float myfloat, temp int something})
+0:19 Constant:
+0:19 0 (const int)
+0:19 Convert uint to float (temp float)
+0:19 add (temp uint)
+0:19 add (temp uint)
+0:19 direct index (layout(location=3 ) temp uint)
+0:19 'test' (layout(location=3 ) in 3-element array of uint)
+0:19 Constant:
+0:19 0 (const int)
+0:19 direct index (layout(location=3 ) temp uint)
+0:19 'test' (layout(location=3 ) in 3-element array of uint)
+0:19 Constant:
+0:19 1 (const int)
+0:19 direct index (layout(location=3 ) temp uint)
+0:19 'test' (layout(location=3 ) in 3-element array of uint)
+0:19 Constant:
+0:19 2 (const int)
+0:20 move second child to first child (temp int)
+0:20 something: direct index for structure (temp int)
+0:20 'Vert' (temp structure{temp float myfloat, temp int something})
+0:20 Constant:
+0:20 1 (const int)
+0:20 Convert uint to int (temp int)
+0:20 direct index (layout(location=0 ) temp uint)
+0:20 'VertexID' (layout(location=0 ) in 3-element array of uint)
+0:20 Constant:
+0:20 0 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp structure{temp float myfloat, temp int something})
+0:22 'OutputStream' (out structure{temp float myfloat, temp int something})
+0:22 'Vert' (temp structure{temp float myfloat, temp int something})
+0:22 EmitVertex (temp void)
+0:23 Sequence
+0:23 move second child to first child (temp structure{temp float myfloat, temp int something})
+0:23 'OutputStream' (out structure{temp float myfloat, temp int something})
+0:23 'Vert' (temp structure{temp float myfloat, temp int something})
+0:23 EmitVertex (temp void)
+0:24 EndPrimitive (temp void)
+0:? Linker Objects
+0:? 'VertexID' (layout(location=0 ) in 3-element array of uint)
+0:? 'test' (layout(location=3 ) in 3-element array of uint)
+0:? 'myfloat' (layout(location=0 ) out float)
+0:? 'something' (layout(location=1 ) out int)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 45
+
+ Capability Geometry
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Geometry 4 "main" 16 31 38 42 44
+ ExecutionMode 4 Triangles
+ ExecutionMode 4 Invocations 1
+ ExecutionMode 4 OutputLineStrip
+ ExecutionMode 4 OutputVertices 4
+ Name 4 "main"
+ Name 8 "PSInput"
+ MemberName 8(PSInput) 0 "myfloat"
+ MemberName 8(PSInput) 1 "something"
+ Name 10 "Vert"
+ Name 16 "test"
+ Name 31 "VertexID"
+ Name 38 "OutputStream"
+ Name 42 "myfloat"
+ Name 44 "something"
+ Decorate 16(test) Location 3
+ Decorate 31(VertexID) Location 0
+ Decorate 42(myfloat) Location 0
+ Decorate 44(something) Location 1
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeInt 32 1
+ 8(PSInput): TypeStruct 6(float) 7(int)
+ 9: TypePointer Function 8(PSInput)
+ 11: 7(int) Constant 0
+ 12: TypeInt 32 0
+ 13: 12(int) Constant 3
+ 14: TypeArray 12(int) 13
+ 15: TypePointer Input 14
+ 16(test): 15(ptr) Variable Input
+ 17: TypePointer Input 12(int)
+ 20: 7(int) Constant 1
+ 24: 7(int) Constant 2
+ 29: TypePointer Function 6(float)
+ 31(VertexID): 15(ptr) Variable Input
+ 35: TypePointer Function 7(int)
+ 37: TypePointer Output 8(PSInput)
+38(OutputStream): 37(ptr) Variable Output
+ 41: TypePointer Output 6(float)
+ 42(myfloat): 41(ptr) Variable Output
+ 43: TypePointer Output 7(int)
+ 44(something): 43(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 10(Vert): 9(ptr) Variable Function
+ 18: 17(ptr) AccessChain 16(test) 11
+ 19: 12(int) Load 18
+ 21: 17(ptr) AccessChain 16(test) 20
+ 22: 12(int) Load 21
+ 23: 12(int) IAdd 19 22
+ 25: 17(ptr) AccessChain 16(test) 24
+ 26: 12(int) Load 25
+ 27: 12(int) IAdd 23 26
+ 28: 6(float) ConvertUToF 27
+ 30: 29(ptr) AccessChain 10(Vert) 11
+ Store 30 28
+ 32: 17(ptr) AccessChain 31(VertexID) 11
+ 33: 12(int) Load 32
+ 34: 7(int) Bitcast 33
+ 36: 35(ptr) AccessChain 10(Vert) 20
+ Store 36 34
+ 39: 8(PSInput) Load 10(Vert)
+ Store 38(OutputStream) 39
+ EmitVertex
+ 40: 8(PSInput) Load 10(Vert)
+ Store 38(OutputStream) 40
+ EmitVertex
+ EndPrimitive
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out
index 2eb1f9ce..dbb2b5e1 100755
--- a/Test/baseResults/hlsl.buffer.frag.out
+++ b/Test/baseResults/hlsl.buffer.frag.out
@@ -32,12 +32,12 @@ gl_FragCoord origin is upper left
0:31 0 (const uint)
0:31 Branch: Return
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3})
0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...})
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@@ -76,12 +76,12 @@ gl_FragCoord origin is upper left
0:31 0 (const uint)
0:31 Branch: Return
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1})
0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2})
0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3})
0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...})
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index ff18441c..56a2ce86 100644
--- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -155,6 +155,8 @@ gl_FragCoord origin is upper left
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -166,8 +168,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -329,6 +329,8 @@ gl_FragCoord origin is upper left
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -340,8 +342,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
index ecd1f0d1..799dcc37 100644
--- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
@@ -167,6 +167,8 @@ ERROR: node is still EOpNull!
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -178,8 +180,6 @@ ERROR: node is still EOpNull!
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -341,6 +341,8 @@ ERROR: node is still EOpNull!
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -352,7 +354,5 @@ ERROR: node is still EOpNull!
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.comparison.vec.frag.out b/Test/baseResults/hlsl.comparison.vec.frag.out
new file mode 100644
index 00000000..1bf63ec8
--- /dev/null
+++ b/Test/baseResults/hlsl.comparison.vec.frag.out
@@ -0,0 +1,402 @@
+hlsl.comparison.vec.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:4 Function Definition: Bug1(vf4; (temp void)
+0:4 Function Parameters:
+0:4 'a' (in 4-component vector of float)
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp 4-component vector of float)
+0:5 'v04' (temp 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:6 Sequence
+0:6 move second child to first child (temp float)
+0:6 'v01' (temp float)
+0:6 Constant:
+0:6 0.000000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of bool)
+0:8 'r00' (temp 4-component vector of bool)
+0:8 Equal (temp 4-component vector of bool)
+0:8 'a' (in 4-component vector of float)
+0:8 'v04' (temp 4-component vector of float)
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of bool)
+0:9 'r01' (temp 4-component vector of bool)
+0:9 NotEqual (temp 4-component vector of bool)
+0:9 'a' (in 4-component vector of float)
+0:9 'v04' (temp 4-component vector of float)
+0:10 Sequence
+0:10 move second child to first child (temp 4-component vector of bool)
+0:10 'r02' (temp 4-component vector of bool)
+0:10 Compare Less Than (temp 4-component vector of bool)
+0:10 'a' (in 4-component vector of float)
+0:10 'v04' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of bool)
+0:11 'r03' (temp 4-component vector of bool)
+0:11 Compare Greater Than (temp 4-component vector of bool)
+0:11 'a' (in 4-component vector of float)
+0:11 'v04' (temp 4-component vector of float)
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of bool)
+0:13 'r10' (temp 4-component vector of bool)
+0:13 Equal (temp 4-component vector of bool)
+0:13 'a' (in 4-component vector of float)
+0:13 Construct vec4 (in 4-component vector of float)
+0:13 'v01' (temp float)
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of bool)
+0:14 'r11' (temp 4-component vector of bool)
+0:14 NotEqual (temp 4-component vector of bool)
+0:14 'a' (in 4-component vector of float)
+0:14 Construct vec4 (in 4-component vector of float)
+0:14 'v01' (temp float)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of bool)
+0:15 'r12' (temp 4-component vector of bool)
+0:15 Compare Less Than (temp 4-component vector of bool)
+0:15 'a' (in 4-component vector of float)
+0:15 Construct vec4 (in 4-component vector of float)
+0:15 'v01' (temp float)
+0:16 Sequence
+0:16 move second child to first child (temp 4-component vector of bool)
+0:16 'r13' (temp 4-component vector of bool)
+0:16 Compare Greater Than (temp 4-component vector of bool)
+0:16 'a' (in 4-component vector of float)
+0:16 Construct vec4 (in 4-component vector of float)
+0:16 'v01' (temp float)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of bool)
+0:18 'r20' (temp 4-component vector of bool)
+0:18 Equal (temp 4-component vector of bool)
+0:18 Construct vec4 (in 4-component vector of float)
+0:18 'v01' (temp float)
+0:18 'a' (in 4-component vector of float)
+0:19 Sequence
+0:19 move second child to first child (temp 4-component vector of bool)
+0:19 'r21' (temp 4-component vector of bool)
+0:19 NotEqual (temp 4-component vector of bool)
+0:19 Construct vec4 (in 4-component vector of float)
+0:19 'v01' (temp float)
+0:19 'a' (in 4-component vector of float)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of bool)
+0:20 'r22' (temp 4-component vector of bool)
+0:20 Compare Less Than (temp 4-component vector of bool)
+0:20 Construct vec4 (in 4-component vector of float)
+0:20 'v01' (temp float)
+0:20 'a' (in 4-component vector of float)
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of bool)
+0:21 'r23' (temp 4-component vector of bool)
+0:21 Compare Greater Than (temp 4-component vector of bool)
+0:21 Construct vec4 (in 4-component vector of float)
+0:21 'v01' (temp float)
+0:21 'a' (in 4-component vector of float)
+0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:30 Function Parameters:
+0:? Sequence
+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})
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:33 Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 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})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:4 Function Definition: Bug1(vf4; (temp void)
+0:4 Function Parameters:
+0:4 'a' (in 4-component vector of float)
+0:? Sequence
+0:5 Sequence
+0:5 move second child to first child (temp 4-component vector of float)
+0:5 'v04' (temp 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:6 Sequence
+0:6 move second child to first child (temp float)
+0:6 'v01' (temp float)
+0:6 Constant:
+0:6 0.000000
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of bool)
+0:8 'r00' (temp 4-component vector of bool)
+0:8 Equal (temp 4-component vector of bool)
+0:8 'a' (in 4-component vector of float)
+0:8 'v04' (temp 4-component vector of float)
+0:9 Sequence
+0:9 move second child to first child (temp 4-component vector of bool)
+0:9 'r01' (temp 4-component vector of bool)
+0:9 NotEqual (temp 4-component vector of bool)
+0:9 'a' (in 4-component vector of float)
+0:9 'v04' (temp 4-component vector of float)
+0:10 Sequence
+0:10 move second child to first child (temp 4-component vector of bool)
+0:10 'r02' (temp 4-component vector of bool)
+0:10 Compare Less Than (temp 4-component vector of bool)
+0:10 'a' (in 4-component vector of float)
+0:10 'v04' (temp 4-component vector of float)
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of bool)
+0:11 'r03' (temp 4-component vector of bool)
+0:11 Compare Greater Than (temp 4-component vector of bool)
+0:11 'a' (in 4-component vector of float)
+0:11 'v04' (temp 4-component vector of float)
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of bool)
+0:13 'r10' (temp 4-component vector of bool)
+0:13 Equal (temp 4-component vector of bool)
+0:13 'a' (in 4-component vector of float)
+0:13 Construct vec4 (in 4-component vector of float)
+0:13 'v01' (temp float)
+0:14 Sequence
+0:14 move second child to first child (temp 4-component vector of bool)
+0:14 'r11' (temp 4-component vector of bool)
+0:14 NotEqual (temp 4-component vector of bool)
+0:14 'a' (in 4-component vector of float)
+0:14 Construct vec4 (in 4-component vector of float)
+0:14 'v01' (temp float)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of bool)
+0:15 'r12' (temp 4-component vector of bool)
+0:15 Compare Less Than (temp 4-component vector of bool)
+0:15 'a' (in 4-component vector of float)
+0:15 Construct vec4 (in 4-component vector of float)
+0:15 'v01' (temp float)
+0:16 Sequence
+0:16 move second child to first child (temp 4-component vector of bool)
+0:16 'r13' (temp 4-component vector of bool)
+0:16 Compare Greater Than (temp 4-component vector of bool)
+0:16 'a' (in 4-component vector of float)
+0:16 Construct vec4 (in 4-component vector of float)
+0:16 'v01' (temp float)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of bool)
+0:18 'r20' (temp 4-component vector of bool)
+0:18 Equal (temp 4-component vector of bool)
+0:18 Construct vec4 (in 4-component vector of float)
+0:18 'v01' (temp float)
+0:18 'a' (in 4-component vector of float)
+0:19 Sequence
+0:19 move second child to first child (temp 4-component vector of bool)
+0:19 'r21' (temp 4-component vector of bool)
+0:19 NotEqual (temp 4-component vector of bool)
+0:19 Construct vec4 (in 4-component vector of float)
+0:19 'v01' (temp float)
+0:19 'a' (in 4-component vector of float)
+0:20 Sequence
+0:20 move second child to first child (temp 4-component vector of bool)
+0:20 'r22' (temp 4-component vector of bool)
+0:20 Compare Less Than (temp 4-component vector of bool)
+0:20 Construct vec4 (in 4-component vector of float)
+0:20 'v01' (temp float)
+0:20 'a' (in 4-component vector of float)
+0:21 Sequence
+0:21 move second child to first child (temp 4-component vector of bool)
+0:21 'r23' (temp 4-component vector of bool)
+0:21 Compare Greater Than (temp 4-component vector of bool)
+0:21 Construct vec4 (in 4-component vector of float)
+0:21 'v01' (temp float)
+0:21 'a' (in 4-component vector of float)
+0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:30 Function Parameters:
+0:? Sequence
+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})
+0:32 Constant:
+0:32 0 (const int)
+0:32 Constant:
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:32 0.000000
+0:33 Sequence
+0:33 Sequence
+0:33 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 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})
+0:33 Constant:
+0:33 0 (const int)
+0:33 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 91
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 84
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 11 "Bug1(vf4;"
+ Name 10 "a"
+ Name 13 "v04"
+ Name 17 "v01"
+ Name 21 "r00"
+ Name 25 "r01"
+ Name 29 "r02"
+ Name 33 "r03"
+ Name 37 "r10"
+ Name 42 "r11"
+ Name 47 "r12"
+ Name 52 "r13"
+ Name 57 "r20"
+ Name 62 "r21"
+ Name 67 "r22"
+ Name 72 "r23"
+ Name 77 "PS_OUTPUT"
+ MemberName 77(PS_OUTPUT) 0 "Color"
+ Name 79 "psout"
+ Name 84 "Color"
+ Name 88 "$Global"
+ MemberName 88($Global) 0 "uf4"
+ Name 90 ""
+ Decorate 84(Color) Location 0
+ MemberDecorate 88($Global) 0 Offset 0
+ Decorate 88($Global) Block
+ Decorate 90 DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Function 7(fvec4)
+ 9: TypeFunction 2 8(ptr)
+ 14: 6(float) Constant 0
+ 15: 7(fvec4) ConstantComposite 14 14 14 14
+ 16: TypePointer Function 6(float)
+ 18: TypeBool
+ 19: TypeVector 18(bool) 4
+ 20: TypePointer Function 19(bvec4)
+ 77(PS_OUTPUT): TypeStruct 7(fvec4)
+ 78: TypePointer Function 77(PS_OUTPUT)
+ 80: TypeInt 32 1
+ 81: 80(int) Constant 0
+ 83: TypePointer Output 7(fvec4)
+ 84(Color): 83(ptr) Variable Output
+ 88($Global): TypeStruct 7(fvec4)
+ 89: TypePointer Uniform 88($Global)
+ 90: 89(ptr) Variable Uniform
+ 4(main): 2 Function None 3
+ 5: Label
+ 79(psout): 78(ptr) Variable Function
+ 82: 8(ptr) AccessChain 79(psout) 81
+ Store 82 15
+ 85: 8(ptr) AccessChain 79(psout) 81
+ 86: 7(fvec4) Load 85
+ Store 84(Color) 86
+ Return
+ FunctionEnd
+ 11(Bug1(vf4;): 2 Function None 9
+ 10(a): 8(ptr) FunctionParameter
+ 12: Label
+ 13(v04): 8(ptr) Variable Function
+ 17(v01): 16(ptr) Variable Function
+ 21(r00): 20(ptr) Variable Function
+ 25(r01): 20(ptr) Variable Function
+ 29(r02): 20(ptr) Variable Function
+ 33(r03): 20(ptr) Variable Function
+ 37(r10): 20(ptr) Variable Function
+ 42(r11): 20(ptr) Variable Function
+ 47(r12): 20(ptr) Variable Function
+ 52(r13): 20(ptr) Variable Function
+ 57(r20): 20(ptr) Variable Function
+ 62(r21): 20(ptr) Variable Function
+ 67(r22): 20(ptr) Variable Function
+ 72(r23): 20(ptr) Variable Function
+ Store 13(v04) 15
+ Store 17(v01) 14
+ 22: 7(fvec4) Load 10(a)
+ 23: 7(fvec4) Load 13(v04)
+ 24: 19(bvec4) FOrdEqual 22 23
+ Store 21(r00) 24
+ 26: 7(fvec4) Load 10(a)
+ 27: 7(fvec4) Load 13(v04)
+ 28: 19(bvec4) FOrdNotEqual 26 27
+ Store 25(r01) 28
+ 30: 7(fvec4) Load 10(a)
+ 31: 7(fvec4) Load 13(v04)
+ 32: 19(bvec4) FOrdLessThan 30 31
+ Store 29(r02) 32
+ 34: 7(fvec4) Load 10(a)
+ 35: 7(fvec4) Load 13(v04)
+ 36: 19(bvec4) FOrdGreaterThan 34 35
+ Store 33(r03) 36
+ 38: 7(fvec4) Load 10(a)
+ 39: 6(float) Load 17(v01)
+ 40: 7(fvec4) CompositeConstruct 39 39 39 39
+ 41: 19(bvec4) FOrdEqual 38 40
+ Store 37(r10) 41
+ 43: 7(fvec4) Load 10(a)
+ 44: 6(float) Load 17(v01)
+ 45: 7(fvec4) CompositeConstruct 44 44 44 44
+ 46: 19(bvec4) FOrdNotEqual 43 45
+ Store 42(r11) 46
+ 48: 7(fvec4) Load 10(a)
+ 49: 6(float) Load 17(v01)
+ 50: 7(fvec4) CompositeConstruct 49 49 49 49
+ 51: 19(bvec4) FOrdLessThan 48 50
+ Store 47(r12) 51
+ 53: 7(fvec4) Load 10(a)
+ 54: 6(float) Load 17(v01)
+ 55: 7(fvec4) CompositeConstruct 54 54 54 54
+ 56: 19(bvec4) FOrdGreaterThan 53 55
+ Store 52(r13) 56
+ 58: 6(float) Load 17(v01)
+ 59: 7(fvec4) CompositeConstruct 58 58 58 58
+ 60: 7(fvec4) Load 10(a)
+ 61: 19(bvec4) FOrdEqual 59 60
+ Store 57(r20) 61
+ 63: 6(float) Load 17(v01)
+ 64: 7(fvec4) CompositeConstruct 63 63 63 63
+ 65: 7(fvec4) Load 10(a)
+ 66: 19(bvec4) FOrdNotEqual 64 65
+ Store 62(r21) 66
+ 68: 6(float) Load 17(v01)
+ 69: 7(fvec4) CompositeConstruct 68 68 68 68
+ 70: 7(fvec4) Load 10(a)
+ 71: 19(bvec4) FOrdLessThan 69 70
+ Store 67(r22) 71
+ 73: 6(float) Load 17(v01)
+ 74: 7(fvec4) CompositeConstruct 73 73 73 73
+ 75: 7(fvec4) Load 10(a)
+ 76: 19(bvec4) FOrdGreaterThan 74 75
+ Store 72(r23) 76
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out
index 2d5a8fbf..c060cdc7 100755
--- a/Test/baseResults/hlsl.doLoop.frag.out
+++ b/Test/baseResults/hlsl.doLoop.frag.out
@@ -18,9 +18,10 @@ gl_FragCoord origin is upper left
0:4 No loop body
0:5 Loop with condition not tested first
0:5 Loop Condition
-0:5 Compare Equal (temp bool)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 all (temp bool)
+0:5 Equal (temp 4-component vector of bool)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Loop Body
0:5 Sequence
0:5 move second child to first child (temp 4-component vector of float)
@@ -54,9 +55,10 @@ gl_FragCoord origin is upper left
0:4 No loop body
0:5 Loop with condition not tested first
0:5 Loop Condition
-0:5 Compare Equal (temp bool)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 all (temp bool)
+0:5 Equal (temp 4-component vector of bool)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 Loop Body
0:5 Sequence
0:5 move second child to first child (temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out
index 83a243fc..641febd7 100755
--- a/Test/baseResults/hlsl.float1.frag.out
+++ b/Test/baseResults/hlsl.float1.frag.out
@@ -32,6 +32,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -92,6 +93,7 @@ gl_FragCoord origin is upper left
5: Label
Store 14(f1) 15
Store 16(scalar) 17
+ Return
FunctionEnd
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
9(inFloat1): 7(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out
index 6caac247..27c9a5c6 100755
--- a/Test/baseResults/hlsl.float4.frag.out
+++ b/Test/baseResults/hlsl.float4.frag.out
@@ -17,11 +17,12 @@ gl_FragCoord origin is upper left
0:10 Constant:
0:10 0 (const uint)
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -38,7 +39,7 @@ gl_FragCoord origin is upper left
0:10 Constant:
0:10 0 (const uint)
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4})
// Module Version 10000
// Generated by (magic number): 80001
@@ -82,6 +83,7 @@ gl_FragCoord origin is upper left
20: TypePointer Uniform 7(fvec4)
4(PixelShaderFunction): 2 Function None 3
5: Label
+ Return
FunctionEnd
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out
index cc475784..85b8fb27 100755
--- a/Test/baseResults/hlsl.forLoop.frag.out
+++ b/Test/baseResults/hlsl.forLoop.frag.out
@@ -19,16 +19,18 @@ gl_FragCoord origin is upper left
0:? Sequence
0:5 Loop with condition tested first
0:5 Loop Condition
-0:5 Compare Not Equal (temp bool)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 any (temp bool)
+0:5 NotEqual (temp 4-component vector of bool)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 No loop body
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop Condition
-0:6 Compare Not Equal (temp bool)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 any (temp bool)
+0:6 NotEqual (temp 4-component vector of bool)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Loop Body
0:? Sequence
0:6 Sequence
@@ -42,9 +44,10 @@ gl_FragCoord origin is upper left
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop Condition
-0:7 Compare Not Equal (temp bool)
-0:7 'input' (layout(location=0 ) in 4-component vector of float)
-0:7 'input' (layout(location=0 ) in 4-component vector of float)
+0:7 any (temp bool)
+0:7 NotEqual (temp 4-component vector of bool)
+0:7 'input' (layout(location=0 ) in 4-component vector of float)
+0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop Body
0:? Sequence
0:7 Sequence
@@ -141,16 +144,18 @@ gl_FragCoord origin is upper left
0:? Sequence
0:5 Loop with condition tested first
0:5 Loop Condition
-0:5 Compare Not Equal (temp bool)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
-0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 any (temp bool)
+0:5 NotEqual (temp 4-component vector of bool)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
+0:5 'input' (layout(location=0 ) in 4-component vector of float)
0:5 No loop body
0:? Sequence
0:6 Loop with condition tested first
0:6 Loop Condition
-0:6 Compare Not Equal (temp bool)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 any (temp bool)
+0:6 NotEqual (temp 4-component vector of bool)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 Loop Body
0:? Sequence
0:6 Sequence
@@ -164,9 +169,10 @@ gl_FragCoord origin is upper left
0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop with condition tested first
0:7 Loop Condition
-0:7 Compare Not Equal (temp bool)
-0:7 'input' (layout(location=0 ) in 4-component vector of float)
-0:7 'input' (layout(location=0 ) in 4-component vector of float)
+0:7 any (temp bool)
+0:7 NotEqual (temp 4-component vector of bool)
+0:7 'input' (layout(location=0 ) in 4-component vector of float)
+0:7 'input' (layout(location=0 ) in 4-component vector of float)
0:7 Loop Body
0:? Sequence
0:7 Sequence
diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out
index a09b87ce..ee550d16 100644
--- a/Test/baseResults/hlsl.gather.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -19,7 +19,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -30,7 +30,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -41,7 +41,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -53,7 +53,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -107,6 +107,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -118,8 +120,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -134,7 +134,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -145,7 +145,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -156,7 +156,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -167,7 +167,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -179,7 +179,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -191,7 +191,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -233,6 +233,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -244,8 +246,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
index 467ccf4c..86e106ca 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -18,7 +18,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -28,7 +28,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -38,7 +38,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -49,7 +49,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -60,7 +60,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -101,6 +101,8 @@ gl_FragCoord origin is upper left
0:47 1 (const int)
0:47 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -116,8 +118,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -142,7 +142,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -152,7 +152,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -162,7 +162,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -173,7 +173,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -184,7 +184,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -225,6 +225,8 @@ gl_FragCoord origin is upper left
0:47 1 (const int)
0:47 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -240,8 +242,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
index d08a57e7..a8936753 100644
--- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out
@@ -7,7 +7,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -17,7 +17,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -27,7 +27,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -37,7 +37,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -48,7 +48,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -59,7 +59,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -87,6 +87,7 @@ Shader version: 450
0:45 0 (const int)
0:45 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -102,7 +103,6 @@ Shader version: 450
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Pos' (out 4-component vector of float Position)
Linked vertex stage:
@@ -116,7 +116,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -126,7 +126,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -136,7 +136,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -146,7 +146,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -157,7 +157,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -168,7 +168,7 @@ Shader version: 450
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 textureGather (temp 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)
@@ -196,6 +196,7 @@ Shader version: 450
0:45 0 (const int)
0:45 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -211,7 +212,6 @@ Shader version: 450
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Pos' (out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
index ff7eb398..5b48bf32 100644
--- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -21,7 +21,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -34,7 +34,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -77,6 +77,8 @@ gl_FragCoord origin is upper left
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -91,8 +93,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -107,7 +107,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -120,7 +120,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -133,7 +133,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -176,6 +176,8 @@ gl_FragCoord origin is upper left
0:43 1 (const int)
0:43 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -190,8 +192,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
index dc64a807..a7589cd9 100644
--- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -22,7 +22,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -36,7 +36,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -80,6 +80,8 @@ gl_FragCoord origin is upper left
0:35 1 (const int)
0:35 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -88,8 +90,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -118,7 +118,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -176,6 +176,8 @@ gl_FragCoord origin is upper left
0:35 1 (const int)
0:35 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -184,8 +186,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
index 4e78cdaf..b04a8573 100644
--- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -21,7 +21,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -34,7 +34,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -47,7 +47,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -60,7 +60,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -73,7 +73,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -86,7 +86,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -99,7 +99,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -112,7 +112,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -125,7 +125,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -138,7 +138,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -151,7 +151,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -164,7 +164,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -177,7 +177,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -190,7 +190,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -203,7 +203,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -216,7 +216,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -229,7 +229,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -242,7 +242,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -255,7 +255,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -268,7 +268,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -281,7 +281,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -294,7 +294,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -307,7 +307,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -350,6 +350,8 @@ gl_FragCoord origin is upper left
0:70 1 (const int)
0:70 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
@@ -361,9 +363,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
Linked fragment stage:
@@ -378,7 +378,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -391,7 +391,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -404,7 +404,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -417,7 +417,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -430,7 +430,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -443,7 +443,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -456,7 +456,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -469,7 +469,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -482,7 +482,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -495,7 +495,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -508,7 +508,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -521,7 +521,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -534,7 +534,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -547,7 +547,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -560,7 +560,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -573,7 +573,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -586,7 +586,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -599,7 +599,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -612,7 +612,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -625,7 +625,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -638,7 +638,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -651,7 +651,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -664,7 +664,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -677,7 +677,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -720,6 +720,8 @@ gl_FragCoord origin is upper left
0:70 1 (const int)
0:70 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
@@ -731,9 +733,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
index ef1e7e05..d2fb0b17 100644
--- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -21,7 +21,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -34,7 +34,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -47,7 +47,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -60,7 +60,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -73,7 +73,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -86,7 +86,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -99,7 +99,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -112,7 +112,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -125,7 +125,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -138,7 +138,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -151,7 +151,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -164,7 +164,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -177,7 +177,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -190,7 +190,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -203,7 +203,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -216,7 +216,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -229,7 +229,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -242,7 +242,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -255,7 +255,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -268,7 +268,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -281,7 +281,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -294,7 +294,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -307,7 +307,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -350,6 +350,8 @@ gl_FragCoord origin is upper left
0:76 1 (const int)
0:76 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -365,9 +367,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
Linked fragment stage:
@@ -382,7 +382,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -395,7 +395,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -408,7 +408,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -421,7 +421,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -434,7 +434,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -447,7 +447,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -460,7 +460,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -473,7 +473,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -486,7 +486,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -499,7 +499,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -512,7 +512,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -525,7 +525,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -538,7 +538,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -551,7 +551,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -564,7 +564,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -577,7 +577,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -590,7 +590,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -603,7 +603,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -616,7 +616,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -629,7 +629,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -642,7 +642,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -655,7 +655,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -668,7 +668,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -681,7 +681,7 @@ gl_FragCoord origin is upper left
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 textureGather (temp 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)
@@ -724,6 +724,8 @@ gl_FragCoord origin is upper left
0:76 1 (const int)
0:76 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -739,9 +741,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
index f178c3b3..43395741 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -25,7 +25,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -42,7 +42,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -89,7 +89,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -119,7 +119,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -166,7 +166,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -183,7 +183,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -200,7 +200,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -230,7 +230,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -260,7 +260,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -307,7 +307,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -324,7 +324,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -341,7 +341,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -371,7 +371,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -401,7 +401,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -431,7 +431,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -448,7 +448,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -465,7 +465,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -482,7 +482,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -512,7 +512,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -542,7 +542,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -602,6 +602,8 @@ gl_FragCoord origin is upper left
0:115 1 (const int)
0:115 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -617,9 +619,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -634,7 +634,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -651,7 +651,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -668,7 +668,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -685,7 +685,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -715,7 +715,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -745,7 +745,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -775,7 +775,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -792,7 +792,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -809,7 +809,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -826,7 +826,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -856,7 +856,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -886,7 +886,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -916,7 +916,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -933,7 +933,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -950,7 +950,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -967,7 +967,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -997,7 +997,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1027,7 +1027,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1057,7 +1057,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -1074,7 +1074,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -1091,7 +1091,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -1108,7 +1108,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1138,7 +1138,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1168,7 +1168,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1228,6 +1228,8 @@ gl_FragCoord origin is upper left
0:115 1 (const int)
0:115 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -1243,9 +1245,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
index f565379f..4722cff6 100644
--- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
@@ -8,7 +8,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -25,7 +25,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -42,7 +42,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -59,7 +59,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -89,7 +89,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -119,7 +119,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -149,7 +149,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -166,7 +166,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -183,7 +183,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -200,7 +200,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -230,7 +230,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -260,7 +260,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -290,7 +290,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -307,7 +307,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -324,7 +324,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -341,7 +341,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -371,7 +371,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -401,7 +401,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -431,7 +431,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -448,7 +448,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -465,7 +465,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -482,7 +482,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -512,7 +512,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -542,7 +542,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -602,6 +602,8 @@ gl_FragCoord origin is upper left
0:109 1 (const int)
0:109 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
@@ -613,9 +615,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -630,7 +630,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -647,7 +647,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -664,7 +664,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -681,7 +681,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -711,7 +711,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -741,7 +741,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -771,7 +771,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -788,7 +788,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -805,7 +805,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -822,7 +822,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -852,7 +852,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -882,7 +882,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -912,7 +912,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -929,7 +929,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -946,7 +946,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -963,7 +963,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -993,7 +993,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1023,7 +1023,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1053,7 +1053,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -1070,7 +1070,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -1087,7 +1087,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffset (temp 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)
@@ -1104,7 +1104,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1134,7 +1134,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1164,7 +1164,7 @@ gl_FragCoord origin is upper left
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 textureGatherOffsets (temp 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)
@@ -1224,6 +1224,8 @@ gl_FragCoord origin is upper left
0:109 1 (const int)
0:109 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray)
@@ -1235,9 +1237,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
index 3a55d682..0c488cfb 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out
@@ -1076,6 +1076,8 @@ gl_FragCoord origin is upper left
0:279 1 (const int)
0:279 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -1104,8 +1106,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -2188,6 +2188,8 @@ gl_FragCoord origin is upper left
0:279 1 (const int)
0:279 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -2216,8 +2218,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
index 3a05bca8..c1c90f4b 100644
--- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out
+++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out
@@ -46,9 +46,9 @@ Shader version: 450
0:26 0 (const int)
0:26 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
-0:? 'Pos' (out 4-component vector of float Position)
Linked vertex stage:
@@ -101,9 +101,9 @@ Shader version: 450
0:26 0 (const int)
0:26 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
-0:? 'Pos' (out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
index 717c376a..918246b6 100644
--- a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
+++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
@@ -326,6 +326,8 @@ gl_FragCoord origin is upper left
0:95 1 (const int)
0:95 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -345,9 +347,7 @@ gl_FragCoord origin is upper left
0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -680,6 +680,8 @@ gl_FragCoord origin is upper left
0:95 1 (const int)
0:95 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -699,9 +701,7 @@ gl_FragCoord origin is upper left
0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
@@ -796,6 +796,14 @@ gl_FragCoord origin is upper left
Decorate 214(Depth) BuiltIn FragDepth
Decorate 220(g_sSamp) DescriptorSet 0
Decorate 220(g_sSamp) Binding 0
+ MemberDecorate 222($Global) 0 Offset 0
+ MemberDecorate 222($Global) 1 Offset 8
+ MemberDecorate 222($Global) 2 Offset 16
+ MemberDecorate 222($Global) 3 Offset 32
+ MemberDecorate 222($Global) 4 Offset 48
+ MemberDecorate 222($Global) 5 Offset 56
+ MemberDecorate 222($Global) 6 Offset 64
+ MemberDecorate 222($Global) 7 Offset 80
Decorate 222($Global) Block
Decorate 224 DescriptorSet 0
2: TypeVoid
diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
index 9465c62b..5985eadc 100644
--- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
+++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -14,7 +14,7 @@ ERROR: node is still EOpNull!
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)
+ (temp 2-component vector of float)
0:16 'g_tTex2dmsf4' (uniform texture2DMS)
0:16 Constant:
0:16 1 (const int)
@@ -22,7 +22,7 @@ ERROR: node is still EOpNull!
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)
+ (temp 2-component vector of float)
0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:17 Constant:
0:17 2 (const int)
@@ -59,11 +59,11 @@ ERROR: node is still EOpNull!
0:22 1 (const int)
0:22 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex2dmsf4' (uniform texture2DMS)
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -79,7 +79,7 @@ ERROR: node is still EOpNull!
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)
+ (temp 2-component vector of float)
0:16 'g_tTex2dmsf4' (uniform texture2DMS)
0:16 Constant:
0:16 1 (const int)
@@ -87,7 +87,7 @@ ERROR: node is still EOpNull!
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)
+ (temp 2-component vector of float)
0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:17 Constant:
0:17 2 (const int)
@@ -124,10 +124,10 @@ ERROR: node is still EOpNull!
0:22 1 (const int)
0:22 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex2dmsf4' (uniform texture2DMS)
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.identifier.sample.frag.out b/Test/baseResults/hlsl.identifier.sample.frag.out
new file mode 100644
index 00000000..8e740819
--- /dev/null
+++ b/Test/baseResults/hlsl.identifier.sample.frag.out
@@ -0,0 +1,103 @@
+hlsl.identifier.sample.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: sample(i1; (temp int)
+0:9 Function Parameters:
+0:9 'x' (in int)
+0:? Sequence
+0:9 Branch: Return with expression
+0:9 'x' (in int)
+0:12 Function Definition: main( (temp 4-component vector of float)
+0:12 Function Parameters:
+0:? Sequence
+0:15 Sequence
+0:15 move second child to first child (temp int)
+0:15 'sample' (temp int)
+0:15 Constant:
+0:15 3 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:17 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: sample(i1; (temp int)
+0:9 Function Parameters:
+0:9 'x' (in int)
+0:? Sequence
+0:9 Branch: Return with expression
+0:9 'x' (in int)
+0:12 Function Definition: main( (temp 4-component vector of float)
+0:12 Function Parameters:
+0:? Sequence
+0:15 Sequence
+0:15 move second child to first child (temp int)
+0:15 'sample' (temp int)
+0:15 Constant:
+0:15 3 (const int)
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:17 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 24
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 20
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 10 "sample(i1;"
+ Name 9 "x"
+ Name 15 "sample"
+ Name 20 "@entryPointOutput"
+ Decorate 20(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypePointer Function 6(int)
+ 8: TypeFunction 6(int) 7(ptr)
+ 16: 6(int) Constant 3
+ 17: TypeFloat 32
+ 18: TypeVector 17(float) 4
+ 19: TypePointer Output 18(fvec4)
+20(@entryPointOutput): 19(ptr) Variable Output
+ 21: 17(float) Constant 0
+ 22: 18(fvec4) ConstantComposite 21 21 21 21
+ 4(main): 2 Function None 3
+ 5: Label
+ 15(sample): 7(ptr) Variable Function
+ Store 15(sample) 16
+ Store 20(@entryPointOutput) 22
+ Return
+ FunctionEnd
+ 10(sample(i1;): 6(int) Function None 8
+ 9(x): 7(ptr) FunctionParameter
+ 11: Label
+ 12: 6(int) Load 9(x)
+ ReturnValue 12
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out
index 3b329ae1..c37bff61 100755
--- a/Test/baseResults/hlsl.if.frag.out
+++ b/Test/baseResults/hlsl.if.frag.out
@@ -8,9 +8,10 @@ gl_FragCoord origin is upper left
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Condition
-0:3 Compare Equal (temp bool)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 all (temp bool)
+0:3 Equal (temp 4-component vector of bool)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 true case
0:4 Sequence
0:4 move second child to first child (temp 4-component vector of float)
@@ -19,9 +20,10 @@ gl_FragCoord origin is upper left
0:4 Branch: Return
0:6 Test condition and select (temp void)
0:6 Condition
-0:6 Compare Equal (temp bool)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 all (temp bool)
+0:6 Equal (temp 4-component vector of bool)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 true case
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
@@ -37,21 +39,24 @@ gl_FragCoord origin is upper left
0:9 Branch: Return
0:11 Test condition and select (temp void)
0:11 Condition
-0:11 Compare Equal (temp bool)
-0:11 'input' (layout(location=0 ) in 4-component vector of float)
-0:11 'input' (layout(location=0 ) in 4-component vector of float)
+0:11 all (temp bool)
+0:11 Equal (temp 4-component vector of bool)
+0:11 'input' (layout(location=0 ) in 4-component vector of float)
+0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Condition
-0:14 Compare Equal (temp bool)
-0:14 'input' (layout(location=0 ) in 4-component vector of float)
-0:14 'input' (layout(location=0 ) in 4-component vector of float)
+0:14 all (temp bool)
+0:14 Equal (temp 4-component vector of bool)
+0:14 'input' (layout(location=0 ) in 4-component vector of float)
+0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Condition
-0:19 Compare Equal (temp bool)
-0:19 'input' (layout(location=0 ) in 4-component vector of float)
-0:19 'input' (layout(location=0 ) in 4-component vector of float)
+0:19 all (temp bool)
+0:19 Equal (temp 4-component vector of bool)
+0:19 'input' (layout(location=0 ) in 4-component vector of float)
+0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 true case
0:? Sequence
0:20 Sequence
@@ -61,9 +66,10 @@ gl_FragCoord origin is upper left
0:20 Branch: Return
0:23 Test condition and select (temp void)
0:23 Condition
-0:23 Compare Equal (temp bool)
-0:23 'input' (layout(location=0 ) in 4-component vector of float)
-0:23 'input' (layout(location=0 ) in 4-component vector of float)
+0:23 all (temp bool)
+0:23 Equal (temp 4-component vector of bool)
+0:23 'input' (layout(location=0 ) in 4-component vector of float)
+0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 true case
0:? Sequence
0:24 Sequence
@@ -109,9 +115,10 @@ gl_FragCoord origin is upper left
0:? Sequence
0:3 Test condition and select (temp void)
0:3 Condition
-0:3 Compare Equal (temp bool)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 all (temp bool)
+0:3 Equal (temp 4-component vector of bool)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 true case
0:4 Sequence
0:4 move second child to first child (temp 4-component vector of float)
@@ -120,9 +127,10 @@ gl_FragCoord origin is upper left
0:4 Branch: Return
0:6 Test condition and select (temp void)
0:6 Condition
-0:6 Compare Equal (temp bool)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
-0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 all (temp bool)
+0:6 Equal (temp 4-component vector of bool)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
+0:6 'input' (layout(location=0 ) in 4-component vector of float)
0:6 true case
0:7 Sequence
0:7 move second child to first child (temp 4-component vector of float)
@@ -138,21 +146,24 @@ gl_FragCoord origin is upper left
0:9 Branch: Return
0:11 Test condition and select (temp void)
0:11 Condition
-0:11 Compare Equal (temp bool)
-0:11 'input' (layout(location=0 ) in 4-component vector of float)
-0:11 'input' (layout(location=0 ) in 4-component vector of float)
+0:11 all (temp bool)
+0:11 Equal (temp 4-component vector of bool)
+0:11 'input' (layout(location=0 ) in 4-component vector of float)
+0:11 'input' (layout(location=0 ) in 4-component vector of float)
0:11 true case is null
0:14 Test condition and select (temp void)
0:14 Condition
-0:14 Compare Equal (temp bool)
-0:14 'input' (layout(location=0 ) in 4-component vector of float)
-0:14 'input' (layout(location=0 ) in 4-component vector of float)
+0:14 all (temp bool)
+0:14 Equal (temp 4-component vector of bool)
+0:14 'input' (layout(location=0 ) in 4-component vector of float)
+0:14 'input' (layout(location=0 ) in 4-component vector of float)
0:14 true case is null
0:19 Test condition and select (temp void)
0:19 Condition
-0:19 Compare Equal (temp bool)
-0:19 'input' (layout(location=0 ) in 4-component vector of float)
-0:19 'input' (layout(location=0 ) in 4-component vector of float)
+0:19 all (temp bool)
+0:19 Equal (temp 4-component vector of bool)
+0:19 'input' (layout(location=0 ) in 4-component vector of float)
+0:19 'input' (layout(location=0 ) in 4-component vector of float)
0:19 true case
0:? Sequence
0:20 Sequence
@@ -162,9 +173,10 @@ gl_FragCoord origin is upper left
0:20 Branch: Return
0:23 Test condition and select (temp void)
0:23 Condition
-0:23 Compare Equal (temp bool)
-0:23 'input' (layout(location=0 ) in 4-component vector of float)
-0:23 'input' (layout(location=0 ) in 4-component vector of float)
+0:23 all (temp bool)
+0:23 Equal (temp 4-component vector of bool)
+0:23 'input' (layout(location=0 ) in 4-component vector of float)
+0:23 'input' (layout(location=0 ) in 4-component vector of float)
0:23 true case
0:? Sequence
0:24 Sequence
diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out
index b31921b4..42f94cae 100755
--- a/Test/baseResults/hlsl.init.frag.out
+++ b/Test/baseResults/hlsl.init.frag.out
@@ -132,6 +132,8 @@ gl_FragCoord origin is upper left
0:35 'a1' (global 4-component vector of float)
0:35 Branch: Return
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'a1' (global 4-component vector of float)
0:? 'b1' (global 4-component vector of float)
0:? 'a1i' (global 4-component vector of float)
@@ -150,8 +152,6 @@ gl_FragCoord origin is upper left
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})
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'input' (layout(location=0 ) in 4-component vector of float)
Linked fragment stage:
@@ -290,6 +290,8 @@ gl_FragCoord origin is upper left
0:35 'a1' (global 4-component vector of float)
0:35 Branch: Return
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'a1' (global 4-component vector of float)
0:? 'b1' (global 4-component vector of float)
0:? 'a1i' (global 4-component vector of float)
@@ -308,8 +310,6 @@ gl_FragCoord origin is upper left
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})
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'input' (layout(location=0 ) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out
index 5d92dd1f..07bd3709 100644
--- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out
@@ -5,12 +5,12 @@ local_size = (1, 1, 1)
0:3 Function Definition: ComputeShaderFunction( (temp float)
0:3 Function Parameters:
0:? Sequence
-0:4 MemoryBarrier (global void)
-0:5 AllMemoryBarrierWithGroupSync (global void)
-0:6 GroupMemoryBarrier (global void)
-0:7 GroupMemoryBarrierWithGroupSync (global void)
-0:8 WorkgroupMemoryBarrier (global void)
-0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
+0:4 MemoryBarrier (temp void)
+0:5 AllMemoryBarrierWithGroupSync (temp void)
+0:6 GroupMemoryBarrier (temp void)
+0:7 GroupMemoryBarrierWithGroupSync (temp void)
+0:8 WorkgroupMemoryBarrier (temp void)
+0:9 WorkgroupMemoryBarrierWithGroupSync (temp void)
0:11 Sequence
0:11 move second child to first child (temp float)
0:? '@entryPointOutput' (layout(location=0 ) out float)
@@ -30,12 +30,12 @@ local_size = (1, 1, 1)
0:3 Function Definition: ComputeShaderFunction( (temp float)
0:3 Function Parameters:
0:? Sequence
-0:4 MemoryBarrier (global void)
-0:5 AllMemoryBarrierWithGroupSync (global void)
-0:6 GroupMemoryBarrier (global void)
-0:7 GroupMemoryBarrierWithGroupSync (global void)
-0:8 WorkgroupMemoryBarrier (global void)
-0:9 WorkgroupMemoryBarrierWithGroupSync (global void)
+0:4 MemoryBarrier (temp void)
+0:5 AllMemoryBarrierWithGroupSync (temp void)
+0:6 GroupMemoryBarrier (temp void)
+0:7 GroupMemoryBarrierWithGroupSync (temp void)
+0:8 WorkgroupMemoryBarrier (temp void)
+0:9 WorkgroupMemoryBarrierWithGroupSync (temp void)
0:11 Sequence
0:11 move second child to first child (temp float)
0:? '@entryPointOutput' (layout(location=0 ) out float)
diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out
index cd366fcb..42ad9731 100644
--- a/Test/baseResults/hlsl.intrinsics.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.comp.out
@@ -10,9 +10,9 @@ local_size = (1, 1, 1)
0:17 'inU0' (in uint)
0:17 'inU1' (in uint)
0:? Sequence
-0:21 all (global bool)
+0:21 all (temp bool)
0:21 'inF0' (in float)
-0:24 AtomicAdd (global void)
+0:24 AtomicAdd (temp void)
0:24 'gs_ua' (shared uint)
0:24 'gs_ub' (shared uint)
0:25 move second child to first child (temp uint)
@@ -20,7 +20,7 @@ local_size = (1, 1, 1)
0:25 AtomicAdd (temp uint)
0:25 'gs_ua' (shared uint)
0:25 'gs_ub' (shared uint)
-0:26 AtomicAnd (global void)
+0:26 AtomicAnd (temp void)
0:26 'gs_ua' (shared uint)
0:26 'gs_ub' (shared uint)
0:27 move second child to first child (temp uint)
@@ -39,7 +39,7 @@ local_size = (1, 1, 1)
0:29 AtomicExchange (temp uint)
0:29 'gs_ua' (shared uint)
0:29 'gs_ub' (shared uint)
-0:30 AtomicMax (global void)
+0:30 AtomicMax (temp void)
0:30 'gs_ua' (shared uint)
0:30 'gs_ub' (shared uint)
0:31 move second child to first child (temp uint)
@@ -47,7 +47,7 @@ local_size = (1, 1, 1)
0:31 AtomicMax (temp uint)
0:31 'gs_ua' (shared uint)
0:31 'gs_ub' (shared uint)
-0:32 AtomicMin (global void)
+0:32 AtomicMin (temp void)
0:32 'gs_ua' (shared uint)
0:32 'gs_ub' (shared uint)
0:33 move second child to first child (temp uint)
@@ -55,7 +55,7 @@ local_size = (1, 1, 1)
0:33 AtomicMin (temp uint)
0:33 'gs_ua' (shared uint)
0:33 'gs_ub' (shared uint)
-0:34 AtomicOr (global void)
+0:34 AtomicOr (temp void)
0:34 'gs_ua' (shared uint)
0:34 'gs_ub' (shared uint)
0:35 move second child to first child (temp uint)
@@ -63,7 +63,7 @@ local_size = (1, 1, 1)
0:35 AtomicOr (temp uint)
0:35 'gs_ua' (shared uint)
0:35 'gs_ub' (shared uint)
-0:36 AtomicXor (global void)
+0:36 AtomicXor (temp void)
0:36 'gs_ua' (shared uint)
0:36 'gs_ub' (shared uint)
0:37 move second child to first child (temp uint)
@@ -91,9 +91,9 @@ local_size = (1, 1, 1)
0:51 'inU0' (in 2-component vector of uint)
0:51 'inU1' (in 2-component vector of uint)
0:? Sequence
-0:55 all (global bool)
+0:55 all (temp bool)
0:55 'inF0' (in 2-component vector of float)
-0:58 AtomicAdd (global void)
+0:58 AtomicAdd (temp void)
0:58 'gs_ua2' (shared 2-component vector of uint)
0:58 'gs_ub2' (shared 2-component vector of uint)
0:59 move second child to first child (temp 2-component vector of uint)
@@ -101,7 +101,7 @@ local_size = (1, 1, 1)
0:59 AtomicAdd (temp 2-component vector of uint)
0:59 'gs_ua2' (shared 2-component vector of uint)
0:59 'gs_ub2' (shared 2-component vector of uint)
-0:60 AtomicAnd (global void)
+0:60 AtomicAnd (temp void)
0:60 'gs_ua2' (shared 2-component vector of uint)
0:60 'gs_ub2' (shared 2-component vector of uint)
0:61 move second child to first child (temp 2-component vector of uint)
@@ -120,7 +120,7 @@ local_size = (1, 1, 1)
0:63 AtomicExchange (temp 2-component vector of uint)
0:63 'gs_ua2' (shared 2-component vector of uint)
0:63 'gs_ub2' (shared 2-component vector of uint)
-0:64 AtomicMax (global void)
+0:64 AtomicMax (temp void)
0:64 'gs_ua2' (shared 2-component vector of uint)
0:64 'gs_ub2' (shared 2-component vector of uint)
0:65 move second child to first child (temp 2-component vector of uint)
@@ -128,7 +128,7 @@ local_size = (1, 1, 1)
0:65 AtomicMax (temp 2-component vector of uint)
0:65 'gs_ua2' (shared 2-component vector of uint)
0:65 'gs_ub2' (shared 2-component vector of uint)
-0:66 AtomicMin (global void)
+0:66 AtomicMin (temp void)
0:66 'gs_ua2' (shared 2-component vector of uint)
0:66 'gs_ub2' (shared 2-component vector of uint)
0:67 move second child to first child (temp 2-component vector of uint)
@@ -136,7 +136,7 @@ local_size = (1, 1, 1)
0:67 AtomicMin (temp 2-component vector of uint)
0:67 'gs_ua2' (shared 2-component vector of uint)
0:67 'gs_ub2' (shared 2-component vector of uint)
-0:68 AtomicOr (global void)
+0:68 AtomicOr (temp void)
0:68 'gs_ua2' (shared 2-component vector of uint)
0:68 'gs_ub2' (shared 2-component vector of uint)
0:69 move second child to first child (temp 2-component vector of uint)
@@ -144,7 +144,7 @@ local_size = (1, 1, 1)
0:69 AtomicOr (temp 2-component vector of uint)
0:69 'gs_ua2' (shared 2-component vector of uint)
0:69 'gs_ub2' (shared 2-component vector of uint)
-0:70 AtomicXor (global void)
+0:70 AtomicXor (temp void)
0:70 'gs_ua2' (shared 2-component vector of uint)
0:70 'gs_ub2' (shared 2-component vector of uint)
0:71 move second child to first child (temp 2-component vector of uint)
@@ -164,9 +164,9 @@ local_size = (1, 1, 1)
0:78 'inU0' (in 3-component vector of uint)
0:78 'inU1' (in 3-component vector of uint)
0:? Sequence
-0:82 all (global bool)
+0:82 all (temp bool)
0:82 'inF0' (in 3-component vector of float)
-0:85 AtomicAdd (global void)
+0:85 AtomicAdd (temp void)
0:85 'gs_ua3' (shared 3-component vector of uint)
0:85 'gs_ub3' (shared 3-component vector of uint)
0:86 move second child to first child (temp 3-component vector of uint)
@@ -174,7 +174,7 @@ local_size = (1, 1, 1)
0:86 AtomicAdd (temp 3-component vector of uint)
0:86 'gs_ua3' (shared 3-component vector of uint)
0:86 'gs_ub3' (shared 3-component vector of uint)
-0:87 AtomicAnd (global void)
+0:87 AtomicAnd (temp void)
0:87 'gs_ua3' (shared 3-component vector of uint)
0:87 'gs_ub3' (shared 3-component vector of uint)
0:88 move second child to first child (temp 3-component vector of uint)
@@ -193,7 +193,7 @@ local_size = (1, 1, 1)
0:90 AtomicExchange (temp 3-component vector of uint)
0:90 'gs_ua3' (shared 3-component vector of uint)
0:90 'gs_ub3' (shared 3-component vector of uint)
-0:91 AtomicMax (global void)
+0:91 AtomicMax (temp void)
0:91 'gs_ua3' (shared 3-component vector of uint)
0:91 'gs_ub3' (shared 3-component vector of uint)
0:92 move second child to first child (temp 3-component vector of uint)
@@ -201,7 +201,7 @@ local_size = (1, 1, 1)
0:92 AtomicMax (temp 3-component vector of uint)
0:92 'gs_ua3' (shared 3-component vector of uint)
0:92 'gs_ub3' (shared 3-component vector of uint)
-0:93 AtomicMin (global void)
+0:93 AtomicMin (temp void)
0:93 'gs_ua3' (shared 3-component vector of uint)
0:93 'gs_ub3' (shared 3-component vector of uint)
0:94 move second child to first child (temp 3-component vector of uint)
@@ -209,7 +209,7 @@ local_size = (1, 1, 1)
0:94 AtomicMin (temp 3-component vector of uint)
0:94 'gs_ua3' (shared 3-component vector of uint)
0:94 'gs_ub3' (shared 3-component vector of uint)
-0:95 AtomicOr (global void)
+0:95 AtomicOr (temp void)
0:95 'gs_ua3' (shared 3-component vector of uint)
0:95 'gs_ub3' (shared 3-component vector of uint)
0:96 move second child to first child (temp 3-component vector of uint)
@@ -217,7 +217,7 @@ local_size = (1, 1, 1)
0:96 AtomicOr (temp 3-component vector of uint)
0:96 'gs_ua3' (shared 3-component vector of uint)
0:96 'gs_ub3' (shared 3-component vector of uint)
-0:97 AtomicXor (global void)
+0:97 AtomicXor (temp void)
0:97 'gs_ua3' (shared 3-component vector of uint)
0:97 'gs_ub3' (shared 3-component vector of uint)
0:98 move second child to first child (temp 3-component vector of uint)
@@ -238,9 +238,9 @@ local_size = (1, 1, 1)
0:105 'inU0' (layout(location=3 ) in 4-component vector of uint)
0:105 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? Sequence
-0:109 all (global bool)
+0:109 all (temp bool)
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:112 AtomicAdd (global void)
+0:112 AtomicAdd (temp void)
0:112 'gs_ua4' (shared 4-component vector of uint)
0:112 'gs_ub4' (shared 4-component vector of uint)
0:113 move second child to first child (temp 4-component vector of uint)
@@ -248,7 +248,7 @@ local_size = (1, 1, 1)
0:113 AtomicAdd (temp 4-component vector of uint)
0:113 'gs_ua4' (shared 4-component vector of uint)
0:113 'gs_ub4' (shared 4-component vector of uint)
-0:114 AtomicAnd (global void)
+0:114 AtomicAnd (temp void)
0:114 'gs_ua4' (shared 4-component vector of uint)
0:114 'gs_ub4' (shared 4-component vector of uint)
0:115 move second child to first child (temp 4-component vector of uint)
@@ -267,7 +267,7 @@ local_size = (1, 1, 1)
0:117 AtomicExchange (temp 4-component vector of uint)
0:117 'gs_ua4' (shared 4-component vector of uint)
0:117 'gs_ub4' (shared 4-component vector of uint)
-0:118 AtomicMax (global void)
+0:118 AtomicMax (temp void)
0:118 'gs_ua4' (shared 4-component vector of uint)
0:118 'gs_ub4' (shared 4-component vector of uint)
0:119 move second child to first child (temp 4-component vector of uint)
@@ -275,7 +275,7 @@ local_size = (1, 1, 1)
0:119 AtomicMax (temp 4-component vector of uint)
0:119 'gs_ua4' (shared 4-component vector of uint)
0:119 'gs_ub4' (shared 4-component vector of uint)
-0:120 AtomicMin (global void)
+0:120 AtomicMin (temp void)
0:120 'gs_ua4' (shared 4-component vector of uint)
0:120 'gs_ub4' (shared 4-component vector of uint)
0:121 move second child to first child (temp 4-component vector of uint)
@@ -283,7 +283,7 @@ local_size = (1, 1, 1)
0:121 AtomicMin (temp 4-component vector of uint)
0:121 'gs_ua4' (shared 4-component vector of uint)
0:121 'gs_ub4' (shared 4-component vector of uint)
-0:122 AtomicOr (global void)
+0:122 AtomicOr (temp void)
0:122 'gs_ua4' (shared 4-component vector of uint)
0:122 'gs_ub4' (shared 4-component vector of uint)
0:123 move second child to first child (temp 4-component vector of uint)
@@ -291,7 +291,7 @@ local_size = (1, 1, 1)
0:123 AtomicOr (temp 4-component vector of uint)
0:123 'gs_ua4' (shared 4-component vector of uint)
0:123 'gs_ub4' (shared 4-component vector of uint)
-0:124 AtomicXor (global void)
+0:124 AtomicXor (temp void)
0:124 'gs_ua4' (shared 4-component vector of uint)
0:124 'gs_ub4' (shared 4-component vector of uint)
0:125 move second child to first child (temp 4-component vector of uint)
@@ -309,6 +309,12 @@ local_size = (1, 1, 1)
0:? 4.000000
0:128 Branch: Return
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
+0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
+0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
+0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
+0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? 'gs_ua' (shared uint)
0:? 'gs_ub' (shared uint)
0:? 'gs_uc' (shared uint)
@@ -321,12 +327,6 @@ local_size = (1, 1, 1)
0:? 'gs_ua4' (shared 4-component vector of uint)
0:? 'gs_ub4' (shared 4-component vector of uint)
0:? 'gs_uc4' (shared 4-component vector of uint)
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
-0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
-0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
-0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
Linked compute stage:
@@ -343,9 +343,9 @@ local_size = (1, 1, 1)
0:17 'inU0' (in uint)
0:17 'inU1' (in uint)
0:? Sequence
-0:21 all (global bool)
+0:21 all (temp bool)
0:21 'inF0' (in float)
-0:24 AtomicAdd (global void)
+0:24 AtomicAdd (temp void)
0:24 'gs_ua' (shared uint)
0:24 'gs_ub' (shared uint)
0:25 move second child to first child (temp uint)
@@ -353,7 +353,7 @@ local_size = (1, 1, 1)
0:25 AtomicAdd (temp uint)
0:25 'gs_ua' (shared uint)
0:25 'gs_ub' (shared uint)
-0:26 AtomicAnd (global void)
+0:26 AtomicAnd (temp void)
0:26 'gs_ua' (shared uint)
0:26 'gs_ub' (shared uint)
0:27 move second child to first child (temp uint)
@@ -372,7 +372,7 @@ local_size = (1, 1, 1)
0:29 AtomicExchange (temp uint)
0:29 'gs_ua' (shared uint)
0:29 'gs_ub' (shared uint)
-0:30 AtomicMax (global void)
+0:30 AtomicMax (temp void)
0:30 'gs_ua' (shared uint)
0:30 'gs_ub' (shared uint)
0:31 move second child to first child (temp uint)
@@ -380,7 +380,7 @@ local_size = (1, 1, 1)
0:31 AtomicMax (temp uint)
0:31 'gs_ua' (shared uint)
0:31 'gs_ub' (shared uint)
-0:32 AtomicMin (global void)
+0:32 AtomicMin (temp void)
0:32 'gs_ua' (shared uint)
0:32 'gs_ub' (shared uint)
0:33 move second child to first child (temp uint)
@@ -388,7 +388,7 @@ local_size = (1, 1, 1)
0:33 AtomicMin (temp uint)
0:33 'gs_ua' (shared uint)
0:33 'gs_ub' (shared uint)
-0:34 AtomicOr (global void)
+0:34 AtomicOr (temp void)
0:34 'gs_ua' (shared uint)
0:34 'gs_ub' (shared uint)
0:35 move second child to first child (temp uint)
@@ -396,7 +396,7 @@ local_size = (1, 1, 1)
0:35 AtomicOr (temp uint)
0:35 'gs_ua' (shared uint)
0:35 'gs_ub' (shared uint)
-0:36 AtomicXor (global void)
+0:36 AtomicXor (temp void)
0:36 'gs_ua' (shared uint)
0:36 'gs_ub' (shared uint)
0:37 move second child to first child (temp uint)
@@ -424,9 +424,9 @@ local_size = (1, 1, 1)
0:51 'inU0' (in 2-component vector of uint)
0:51 'inU1' (in 2-component vector of uint)
0:? Sequence
-0:55 all (global bool)
+0:55 all (temp bool)
0:55 'inF0' (in 2-component vector of float)
-0:58 AtomicAdd (global void)
+0:58 AtomicAdd (temp void)
0:58 'gs_ua2' (shared 2-component vector of uint)
0:58 'gs_ub2' (shared 2-component vector of uint)
0:59 move second child to first child (temp 2-component vector of uint)
@@ -434,7 +434,7 @@ local_size = (1, 1, 1)
0:59 AtomicAdd (temp 2-component vector of uint)
0:59 'gs_ua2' (shared 2-component vector of uint)
0:59 'gs_ub2' (shared 2-component vector of uint)
-0:60 AtomicAnd (global void)
+0:60 AtomicAnd (temp void)
0:60 'gs_ua2' (shared 2-component vector of uint)
0:60 'gs_ub2' (shared 2-component vector of uint)
0:61 move second child to first child (temp 2-component vector of uint)
@@ -453,7 +453,7 @@ local_size = (1, 1, 1)
0:63 AtomicExchange (temp 2-component vector of uint)
0:63 'gs_ua2' (shared 2-component vector of uint)
0:63 'gs_ub2' (shared 2-component vector of uint)
-0:64 AtomicMax (global void)
+0:64 AtomicMax (temp void)
0:64 'gs_ua2' (shared 2-component vector of uint)
0:64 'gs_ub2' (shared 2-component vector of uint)
0:65 move second child to first child (temp 2-component vector of uint)
@@ -461,7 +461,7 @@ local_size = (1, 1, 1)
0:65 AtomicMax (temp 2-component vector of uint)
0:65 'gs_ua2' (shared 2-component vector of uint)
0:65 'gs_ub2' (shared 2-component vector of uint)
-0:66 AtomicMin (global void)
+0:66 AtomicMin (temp void)
0:66 'gs_ua2' (shared 2-component vector of uint)
0:66 'gs_ub2' (shared 2-component vector of uint)
0:67 move second child to first child (temp 2-component vector of uint)
@@ -469,7 +469,7 @@ local_size = (1, 1, 1)
0:67 AtomicMin (temp 2-component vector of uint)
0:67 'gs_ua2' (shared 2-component vector of uint)
0:67 'gs_ub2' (shared 2-component vector of uint)
-0:68 AtomicOr (global void)
+0:68 AtomicOr (temp void)
0:68 'gs_ua2' (shared 2-component vector of uint)
0:68 'gs_ub2' (shared 2-component vector of uint)
0:69 move second child to first child (temp 2-component vector of uint)
@@ -477,7 +477,7 @@ local_size = (1, 1, 1)
0:69 AtomicOr (temp 2-component vector of uint)
0:69 'gs_ua2' (shared 2-component vector of uint)
0:69 'gs_ub2' (shared 2-component vector of uint)
-0:70 AtomicXor (global void)
+0:70 AtomicXor (temp void)
0:70 'gs_ua2' (shared 2-component vector of uint)
0:70 'gs_ub2' (shared 2-component vector of uint)
0:71 move second child to first child (temp 2-component vector of uint)
@@ -497,9 +497,9 @@ local_size = (1, 1, 1)
0:78 'inU0' (in 3-component vector of uint)
0:78 'inU1' (in 3-component vector of uint)
0:? Sequence
-0:82 all (global bool)
+0:82 all (temp bool)
0:82 'inF0' (in 3-component vector of float)
-0:85 AtomicAdd (global void)
+0:85 AtomicAdd (temp void)
0:85 'gs_ua3' (shared 3-component vector of uint)
0:85 'gs_ub3' (shared 3-component vector of uint)
0:86 move second child to first child (temp 3-component vector of uint)
@@ -507,7 +507,7 @@ local_size = (1, 1, 1)
0:86 AtomicAdd (temp 3-component vector of uint)
0:86 'gs_ua3' (shared 3-component vector of uint)
0:86 'gs_ub3' (shared 3-component vector of uint)
-0:87 AtomicAnd (global void)
+0:87 AtomicAnd (temp void)
0:87 'gs_ua3' (shared 3-component vector of uint)
0:87 'gs_ub3' (shared 3-component vector of uint)
0:88 move second child to first child (temp 3-component vector of uint)
@@ -526,7 +526,7 @@ local_size = (1, 1, 1)
0:90 AtomicExchange (temp 3-component vector of uint)
0:90 'gs_ua3' (shared 3-component vector of uint)
0:90 'gs_ub3' (shared 3-component vector of uint)
-0:91 AtomicMax (global void)
+0:91 AtomicMax (temp void)
0:91 'gs_ua3' (shared 3-component vector of uint)
0:91 'gs_ub3' (shared 3-component vector of uint)
0:92 move second child to first child (temp 3-component vector of uint)
@@ -534,7 +534,7 @@ local_size = (1, 1, 1)
0:92 AtomicMax (temp 3-component vector of uint)
0:92 'gs_ua3' (shared 3-component vector of uint)
0:92 'gs_ub3' (shared 3-component vector of uint)
-0:93 AtomicMin (global void)
+0:93 AtomicMin (temp void)
0:93 'gs_ua3' (shared 3-component vector of uint)
0:93 'gs_ub3' (shared 3-component vector of uint)
0:94 move second child to first child (temp 3-component vector of uint)
@@ -542,7 +542,7 @@ local_size = (1, 1, 1)
0:94 AtomicMin (temp 3-component vector of uint)
0:94 'gs_ua3' (shared 3-component vector of uint)
0:94 'gs_ub3' (shared 3-component vector of uint)
-0:95 AtomicOr (global void)
+0:95 AtomicOr (temp void)
0:95 'gs_ua3' (shared 3-component vector of uint)
0:95 'gs_ub3' (shared 3-component vector of uint)
0:96 move second child to first child (temp 3-component vector of uint)
@@ -550,7 +550,7 @@ local_size = (1, 1, 1)
0:96 AtomicOr (temp 3-component vector of uint)
0:96 'gs_ua3' (shared 3-component vector of uint)
0:96 'gs_ub3' (shared 3-component vector of uint)
-0:97 AtomicXor (global void)
+0:97 AtomicXor (temp void)
0:97 'gs_ua3' (shared 3-component vector of uint)
0:97 'gs_ub3' (shared 3-component vector of uint)
0:98 move second child to first child (temp 3-component vector of uint)
@@ -571,9 +571,9 @@ local_size = (1, 1, 1)
0:105 'inU0' (layout(location=3 ) in 4-component vector of uint)
0:105 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? Sequence
-0:109 all (global bool)
+0:109 all (temp bool)
0:109 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:112 AtomicAdd (global void)
+0:112 AtomicAdd (temp void)
0:112 'gs_ua4' (shared 4-component vector of uint)
0:112 'gs_ub4' (shared 4-component vector of uint)
0:113 move second child to first child (temp 4-component vector of uint)
@@ -581,7 +581,7 @@ local_size = (1, 1, 1)
0:113 AtomicAdd (temp 4-component vector of uint)
0:113 'gs_ua4' (shared 4-component vector of uint)
0:113 'gs_ub4' (shared 4-component vector of uint)
-0:114 AtomicAnd (global void)
+0:114 AtomicAnd (temp void)
0:114 'gs_ua4' (shared 4-component vector of uint)
0:114 'gs_ub4' (shared 4-component vector of uint)
0:115 move second child to first child (temp 4-component vector of uint)
@@ -600,7 +600,7 @@ local_size = (1, 1, 1)
0:117 AtomicExchange (temp 4-component vector of uint)
0:117 'gs_ua4' (shared 4-component vector of uint)
0:117 'gs_ub4' (shared 4-component vector of uint)
-0:118 AtomicMax (global void)
+0:118 AtomicMax (temp void)
0:118 'gs_ua4' (shared 4-component vector of uint)
0:118 'gs_ub4' (shared 4-component vector of uint)
0:119 move second child to first child (temp 4-component vector of uint)
@@ -608,7 +608,7 @@ local_size = (1, 1, 1)
0:119 AtomicMax (temp 4-component vector of uint)
0:119 'gs_ua4' (shared 4-component vector of uint)
0:119 'gs_ub4' (shared 4-component vector of uint)
-0:120 AtomicMin (global void)
+0:120 AtomicMin (temp void)
0:120 'gs_ua4' (shared 4-component vector of uint)
0:120 'gs_ub4' (shared 4-component vector of uint)
0:121 move second child to first child (temp 4-component vector of uint)
@@ -616,7 +616,7 @@ local_size = (1, 1, 1)
0:121 AtomicMin (temp 4-component vector of uint)
0:121 'gs_ua4' (shared 4-component vector of uint)
0:121 'gs_ub4' (shared 4-component vector of uint)
-0:122 AtomicOr (global void)
+0:122 AtomicOr (temp void)
0:122 'gs_ua4' (shared 4-component vector of uint)
0:122 'gs_ub4' (shared 4-component vector of uint)
0:123 move second child to first child (temp 4-component vector of uint)
@@ -624,7 +624,7 @@ local_size = (1, 1, 1)
0:123 AtomicOr (temp 4-component vector of uint)
0:123 'gs_ua4' (shared 4-component vector of uint)
0:123 'gs_ub4' (shared 4-component vector of uint)
-0:124 AtomicXor (global void)
+0:124 AtomicXor (temp void)
0:124 'gs_ua4' (shared 4-component vector of uint)
0:124 'gs_ub4' (shared 4-component vector of uint)
0:125 move second child to first child (temp 4-component vector of uint)
@@ -642,6 +642,12 @@ local_size = (1, 1, 1)
0:? 4.000000
0:128 Branch: Return
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
+0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
+0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
+0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
+0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
0:? 'gs_ua' (shared uint)
0:? 'gs_ub' (shared uint)
0:? 'gs_uc' (shared uint)
@@ -654,12 +660,6 @@ local_size = (1, 1, 1)
0:? 'gs_ua4' (shared 4-component vector of uint)
0:? 'gs_ub4' (shared 4-component vector of uint)
0:? 'gs_uc4' (shared 4-component vector of uint)
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
-0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
-0:? 'inU0' (layout(location=3 ) in 4-component vector of uint)
-0:? 'inU1' (layout(location=4 ) in 4-component vector of uint)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out
index 554e5520..91abf737 100644
--- a/Test/baseResults/hlsl.intrinsics.double.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.double.frag.out
@@ -16,7 +16,7 @@ gl_FragCoord origin is upper left
0:6 Sequence
0:6 move second child to first child (temp double)
0:6 'r00' (temp double)
-0:6 fma (global double)
+0:6 fma (temp double)
0:6 'inDV1a' (layout(location=0 ) in double)
0:6 'inDV1b' (layout(location=1 ) in double)
0:6 'inDV1c' (layout(location=2 ) in double)
@@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
0:6 Sequence
0:6 move second child to first child (temp double)
0:6 'r00' (temp double)
-0:6 fma (global double)
+0:6 fma (temp double)
0:6 'inDV1a' (layout(location=0 ) in double)
0:6 'inDV1b' (layout(location=1 ) in double)
0:6 'inDV1c' (layout(location=2 ) in double)
diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out
index 5fcb5f99..0b4c0746 100644
--- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out
@@ -14,7 +14,7 @@ ERROR: node is still EOpNull!
0:2 'inF0' (in float)
0:? Sequence
0:3 ERROR: Bad unary op
- (global uint)
+ (temp uint)
0:3 'inF0' (in float)
0:5 Branch: Return with expression
0:5 Constant:
@@ -31,7 +31,7 @@ ERROR: node is still EOpNull!
0:15 'inF0' (in 2-component vector of float)
0:? Sequence
0:16 ERROR: Bad unary op
- (global 2-component vector of uint)
+ (temp 2-component vector of uint)
0:16 'inF0' (in 2-component vector of float)
0:18 Branch: Return with expression
0:? Constant:
@@ -42,7 +42,7 @@ ERROR: node is still EOpNull!
0:22 'inF0' (in 3-component vector of float)
0:? Sequence
0:23 ERROR: Bad unary op
- (global 3-component vector of uint)
+ (temp 3-component vector of uint)
0:23 'inF0' (in 3-component vector of float)
0:25 Branch: Return with expression
0:? Constant:
@@ -54,7 +54,7 @@ ERROR: node is still EOpNull!
0:29 'inF0' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:30 ERROR: Bad unary op
- (global 4-component vector of uint)
+ (temp 4-component vector of uint)
0:30 'inF0' (layout(location=0 ) in 4-component vector of float)
0:32 Sequence
0:32 move second child to first child (temp 4-component vector of float)
@@ -81,7 +81,7 @@ ERROR: node is still EOpNull!
0:2 'inF0' (in float)
0:? Sequence
0:3 ERROR: Bad unary op
- (global uint)
+ (temp uint)
0:3 'inF0' (in float)
0:5 Branch: Return with expression
0:5 Constant:
@@ -98,7 +98,7 @@ ERROR: node is still EOpNull!
0:15 'inF0' (in 2-component vector of float)
0:? Sequence
0:16 ERROR: Bad unary op
- (global 2-component vector of uint)
+ (temp 2-component vector of uint)
0:16 'inF0' (in 2-component vector of float)
0:18 Branch: Return with expression
0:? Constant:
@@ -109,7 +109,7 @@ ERROR: node is still EOpNull!
0:22 'inF0' (in 3-component vector of float)
0:? Sequence
0:23 ERROR: Bad unary op
- (global 3-component vector of uint)
+ (temp 3-component vector of uint)
0:23 'inF0' (in 3-component vector of float)
0:25 Branch: Return with expression
0:? Constant:
@@ -121,7 +121,7 @@ ERROR: node is still EOpNull!
0:29 'inF0' (layout(location=0 ) in 4-component vector of float)
0:? Sequence
0:30 ERROR: Bad unary op
- (global 4-component vector of uint)
+ (temp 4-component vector of uint)
0:30 'inF0' (layout(location=0 ) in 4-component vector of float)
0:32 Sequence
0:32 move second child to first child (temp 4-component vector of float)
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index d5a0f998..8a1935ee 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -13,63 +13,63 @@ gl_FragCoord origin is upper left
0:20 Sequence
0:20 move second child to first child (temp bool)
0:20 'r000' (temp bool)
-0:20 all (global bool)
+0:20 all (temp bool)
0:20 'inF0' (in float)
0:21 Sequence
0:21 move second child to first child (temp float)
0:21 'r001' (temp float)
-0:21 Absolute value (global float)
+0:21 Absolute value (temp float)
0:21 'inF0' (in float)
0:22 Sequence
0:22 move second child to first child (temp float)
0:22 'r002' (temp float)
-0:22 arc cosine (global float)
+0:22 arc cosine (temp float)
0:22 'inF0' (in float)
0:23 Sequence
0:23 move second child to first child (temp bool)
0:23 'r003' (temp bool)
-0:23 any (global bool)
+0:23 any (temp bool)
0:23 'inF0' (in float)
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'r004' (temp float)
-0:24 arc sine (global float)
+0:24 arc sine (temp float)
0:24 'inF0' (in float)
0:25 Sequence
0:25 move second child to first child (temp int)
0:25 'r005' (temp int)
-0:25 floatBitsToInt (global int)
+0:25 floatBitsToInt (temp int)
0:25 'inF0' (in float)
0:26 Sequence
0:26 move second child to first child (temp uint)
0:26 'r006' (temp uint)
-0:26 floatBitsToUint (global uint)
+0:26 floatBitsToUint (temp uint)
0:26 'inF0' (in float)
0:27 Sequence
0:27 move second child to first child (temp float)
0:27 'r007' (temp float)
-0:27 intBitsToFloat (global float)
+0:27 intBitsToFloat (temp float)
0:27 'inU0' (in uint)
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'r009' (temp float)
-0:29 arc tangent (global float)
+0:29 arc tangent (temp float)
0:29 'inF0' (in float)
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'r010' (temp float)
-0:30 arc tangent (global float)
+0:30 arc tangent (temp float)
0:30 'inF0' (in float)
0:30 'inF1' (in float)
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'r011' (temp float)
-0:31 Ceiling (global float)
+0:31 Ceiling (temp float)
0:31 'inF0' (in float)
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'r012' (temp float)
-0:32 clamp (global float)
+0:32 clamp (temp float)
0:32 'inF0' (in float)
0:32 'inF1' (in float)
0:32 'inF2' (in float)
@@ -84,132 +84,132 @@ gl_FragCoord origin is upper left
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'r014' (temp float)
-0:34 cosine (global float)
+0:34 cosine (temp float)
0:34 'inF0' (in float)
0:35 Sequence
0:35 move second child to first child (temp float)
0:35 'r015' (temp float)
-0:35 hyp. cosine (global float)
+0:35 hyp. cosine (temp float)
0:35 'inF0' (in float)
0:36 Sequence
0:36 move second child to first child (temp uint)
0:36 'r016' (temp uint)
-0:36 bitCount (global uint)
+0:36 bitCount (temp uint)
0:36 Constant:
0:36 7 (const uint)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'r017' (temp float)
-0:37 dPdx (global float)
+0:37 dPdx (temp float)
0:37 'inF0' (in float)
0:38 Sequence
0:38 move second child to first child (temp float)
0:38 'r018' (temp float)
-0:38 dPdxCoarse (global float)
+0:38 dPdxCoarse (temp float)
0:38 'inF0' (in float)
0:39 Sequence
0:39 move second child to first child (temp float)
0:39 'r019' (temp float)
-0:39 dPdxFine (global float)
+0:39 dPdxFine (temp float)
0:39 'inF0' (in float)
0:40 Sequence
0:40 move second child to first child (temp float)
0:40 'r020' (temp float)
-0:40 dPdy (global float)
+0:40 dPdy (temp float)
0:40 'inF0' (in float)
0:41 Sequence
0:41 move second child to first child (temp float)
0:41 'r021' (temp float)
-0:41 dPdyCoarse (global float)
+0:41 dPdyCoarse (temp float)
0:41 'inF0' (in float)
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r022' (temp float)
-0:42 dPdyFine (global float)
+0:42 dPdyFine (temp float)
0:42 'inF0' (in float)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r023' (temp float)
-0:43 degrees (global float)
+0:43 degrees (temp float)
0:43 'inF0' (in float)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r027' (temp float)
-0:47 exp (global float)
+0:47 exp (temp float)
0:47 'inF0' (in float)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r028' (temp float)
-0:48 exp2 (global float)
+0:48 exp2 (temp float)
0:48 'inF0' (in float)
0:49 Sequence
0:49 move second child to first child (temp uint)
0:49 'r029' (temp uint)
0:49 Convert int to uint (temp uint)
-0:49 findMSB (global int)
+0:49 findMSB (temp int)
0:49 Constant:
0:49 7 (const int)
0:50 Sequence
0:50 move second child to first child (temp uint)
0:50 'r030' (temp uint)
0:50 Convert int to uint (temp uint)
-0:50 findLSB (global int)
+0:50 findLSB (temp int)
0:50 Constant:
0:50 7 (const int)
0:51 Sequence
0:51 move second child to first child (temp float)
0:51 'r031' (temp float)
-0:51 Floor (global float)
+0:51 Floor (temp float)
0:51 'inF0' (in float)
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r033' (temp float)
-0:53 mod (global float)
+0:53 mod (temp float)
0:53 'inF0' (in float)
0:53 'inF1' (in float)
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r034' (temp float)
-0:54 Fraction (global float)
+0:54 Fraction (temp float)
0:54 'inF0' (in float)
0:55 Sequence
0:55 move second child to first child (temp float)
0:55 'r035' (temp float)
-0:55 frexp (global float)
+0:55 frexp (temp float)
0:55 'inF0' (in float)
0:55 'inF1' (in float)
0:56 Sequence
0:56 move second child to first child (temp float)
0:56 'r036' (temp float)
-0:56 fwidth (global float)
+0:56 fwidth (temp float)
0:56 'inF0' (in float)
0:57 Sequence
0:57 move second child to first child (temp bool)
0:57 'r037' (temp bool)
-0:57 isinf (global bool)
+0:57 isinf (temp bool)
0:57 'inF0' (in float)
0:58 Sequence
0:58 move second child to first child (temp bool)
0:58 'r038' (temp bool)
-0:58 isnan (global bool)
+0:58 isnan (temp bool)
0:58 'inF0' (in float)
0:59 Sequence
0:59 move second child to first child (temp float)
0:59 'r039' (temp float)
-0:59 ldexp (global float)
+0:59 ldexp (temp float)
0:59 'inF0' (in float)
0:59 'inF1' (in float)
0:60 Sequence
0:60 move second child to first child (temp float)
0:60 'r039a' (temp float)
-0:60 mix (global float)
+0:60 mix (temp float)
0:60 'inF0' (in float)
0:60 'inF1' (in float)
0:60 'inF2' (in float)
0:61 Sequence
0:61 move second child to first child (temp float)
0:61 'r040' (temp float)
-0:61 log (global float)
+0:61 log (temp float)
0:61 'inF0' (in float)
0:62 Sequence
0:62 move second child to first child (temp float)
@@ -222,30 +222,30 @@ gl_FragCoord origin is upper left
0:63 Sequence
0:63 move second child to first child (temp float)
0:63 'r042' (temp float)
-0:63 log2 (global float)
+0:63 log2 (temp float)
0:63 'inF0' (in float)
0:64 Sequence
0:64 move second child to first child (temp float)
0:64 'r043' (temp float)
-0:64 max (global float)
+0:64 max (temp float)
0:64 'inF0' (in float)
0:64 'inF1' (in float)
0:65 Sequence
0:65 move second child to first child (temp float)
0:65 'r044' (temp float)
-0:65 min (global float)
+0:65 min (temp float)
0:65 'inF0' (in float)
0:65 'inF1' (in float)
0:66 Sequence
0:66 move second child to first child (temp float)
0:66 'r045' (temp float)
-0:66 pow (global float)
+0:66 pow (temp float)
0:66 'inF0' (in float)
0:66 'inF1' (in float)
0:67 Sequence
0:67 move second child to first child (temp float)
0:67 'r046' (temp float)
-0:67 radians (global float)
+0:67 radians (temp float)
0:67 'inF0' (in float)
0:68 Sequence
0:68 move second child to first child (temp float)
@@ -257,18 +257,18 @@ gl_FragCoord origin is upper left
0:69 Sequence
0:69 move second child to first child (temp uint)
0:69 'r048' (temp uint)
-0:69 bitFieldReverse (global uint)
+0:69 bitFieldReverse (temp uint)
0:69 Constant:
0:69 2 (const uint)
0:70 Sequence
0:70 move second child to first child (temp float)
0:70 'r049' (temp float)
-0:70 roundEven (global float)
+0:70 roundEven (temp float)
0:70 'inF0' (in float)
0:71 Sequence
0:71 move second child to first child (temp float)
0:71 'r050' (temp float)
-0:71 inverse sqrt (global float)
+0:71 inverse sqrt (temp float)
0:71 'inF0' (in float)
0:72 Sequence
0:72 move second child to first child (temp float)
@@ -282,12 +282,12 @@ gl_FragCoord origin is upper left
0:73 Sequence
0:73 move second child to first child (temp float)
0:73 'r052' (temp float)
-0:73 Sign (global float)
+0:73 Sign (temp float)
0:73 'inF0' (in float)
0:74 Sequence
0:74 move second child to first child (temp float)
0:74 'r053' (temp float)
-0:74 sine (global float)
+0:74 sine (temp float)
0:74 'inF0' (in float)
0:75 Sequence
0:75 move second child to first child (temp float)
@@ -301,40 +301,40 @@ gl_FragCoord origin is upper left
0:76 Sequence
0:76 move second child to first child (temp float)
0:76 'r055' (temp float)
-0:76 hyp. sine (global float)
+0:76 hyp. sine (temp float)
0:76 'inF0' (in float)
0:77 Sequence
0:77 move second child to first child (temp float)
0:77 'r056' (temp float)
-0:77 smoothstep (global float)
+0:77 smoothstep (temp float)
0:77 'inF0' (in float)
0:77 'inF1' (in float)
0:77 'inF2' (in float)
0:78 Sequence
0:78 move second child to first child (temp float)
0:78 'r057' (temp float)
-0:78 sqrt (global float)
+0:78 sqrt (temp float)
0:78 'inF0' (in float)
0:79 Sequence
0:79 move second child to first child (temp float)
0:79 'r058' (temp float)
-0:79 step (global float)
+0:79 step (temp float)
0:79 'inF0' (in float)
0:79 'inF1' (in float)
0:80 Sequence
0:80 move second child to first child (temp float)
0:80 'r059' (temp float)
-0:80 tangent (global float)
+0:80 tangent (temp float)
0:80 'inF0' (in float)
0:81 Sequence
0:81 move second child to first child (temp float)
0:81 'r060' (temp float)
-0:81 hyp. tangent (global float)
+0:81 hyp. tangent (temp float)
0:81 'inF0' (in float)
0:83 Sequence
0:83 move second child to first child (temp float)
0:83 'r061' (temp float)
-0:83 trunc (global float)
+0:83 trunc (temp float)
0:83 'inF0' (in float)
0:85 Branch: Return with expression
0:85 Constant:
@@ -359,63 +359,63 @@ gl_FragCoord origin is upper left
0:98 Sequence
0:98 move second child to first child (temp bool)
0:98 'r000' (temp bool)
-0:98 all (global bool)
+0:98 all (temp bool)
0:98 'inF0' (in 2-component vector of float)
0:99 Sequence
0:99 move second child to first child (temp 2-component vector of float)
0:99 'r001' (temp 2-component vector of float)
-0:99 Absolute value (global 2-component vector of float)
+0:99 Absolute value (temp 2-component vector of float)
0:99 'inF0' (in 2-component vector of float)
0:100 Sequence
0:100 move second child to first child (temp 2-component vector of float)
0:100 'r002' (temp 2-component vector of float)
-0:100 arc cosine (global 2-component vector of float)
+0:100 arc cosine (temp 2-component vector of float)
0:100 'inF0' (in 2-component vector of float)
0:101 Sequence
0:101 move second child to first child (temp bool)
0:101 'r003' (temp bool)
-0:101 any (global bool)
+0:101 any (temp bool)
0:101 'inF0' (in 2-component vector of float)
0:102 Sequence
0:102 move second child to first child (temp 2-component vector of float)
0:102 'r004' (temp 2-component vector of float)
-0:102 arc sine (global 2-component vector of float)
+0:102 arc sine (temp 2-component vector of float)
0:102 'inF0' (in 2-component vector of float)
0:103 Sequence
0:103 move second child to first child (temp 2-component vector of int)
0:103 'r005' (temp 2-component vector of int)
-0:103 floatBitsToInt (global 2-component vector of int)
+0:103 floatBitsToInt (temp 2-component vector of int)
0:103 'inF0' (in 2-component vector of float)
0:104 Sequence
0:104 move second child to first child (temp 2-component vector of uint)
0:104 'r006' (temp 2-component vector of uint)
-0:104 floatBitsToUint (global 2-component vector of uint)
+0:104 floatBitsToUint (temp 2-component vector of uint)
0:104 'inF0' (in 2-component vector of float)
0:105 Sequence
0:105 move second child to first child (temp 2-component vector of float)
0:105 'r007' (temp 2-component vector of float)
-0:105 intBitsToFloat (global 2-component vector of float)
+0:105 intBitsToFloat (temp 2-component vector of float)
0:105 'inU0' (in 2-component vector of uint)
0:107 Sequence
0:107 move second child to first child (temp 2-component vector of float)
0:107 'r009' (temp 2-component vector of float)
-0:107 arc tangent (global 2-component vector of float)
+0:107 arc tangent (temp 2-component vector of float)
0:107 'inF0' (in 2-component vector of float)
0:108 Sequence
0:108 move second child to first child (temp 2-component vector of float)
0:108 'r010' (temp 2-component vector of float)
-0:108 arc tangent (global 2-component vector of float)
+0:108 arc tangent (temp 2-component vector of float)
0:108 'inF0' (in 2-component vector of float)
0:108 'inF1' (in 2-component vector of float)
0:109 Sequence
0:109 move second child to first child (temp 2-component vector of float)
0:109 'r011' (temp 2-component vector of float)
-0:109 Ceiling (global 2-component vector of float)
+0:109 Ceiling (temp 2-component vector of float)
0:109 'inF0' (in 2-component vector of float)
0:110 Sequence
0:110 move second child to first child (temp 2-component vector of float)
0:110 'r012' (temp 2-component vector of float)
-0:110 clamp (global 2-component vector of float)
+0:110 clamp (temp 2-component vector of float)
0:110 'inF0' (in 2-component vector of float)
0:110 'inF1' (in 2-component vector of float)
0:110 'inF2' (in 2-component vector of float)
@@ -432,157 +432,157 @@ gl_FragCoord origin is upper left
0:112 Sequence
0:112 move second child to first child (temp 2-component vector of float)
0:112 'r013' (temp 2-component vector of float)
-0:112 cosine (global 2-component vector of float)
+0:112 cosine (temp 2-component vector of float)
0:112 'inF0' (in 2-component vector of float)
0:113 Sequence
0:113 move second child to first child (temp 2-component vector of float)
0:113 'r015' (temp 2-component vector of float)
-0:113 hyp. cosine (global 2-component vector of float)
+0:113 hyp. cosine (temp 2-component vector of float)
0:113 'inF0' (in 2-component vector of float)
0:114 Sequence
0:114 move second child to first child (temp 2-component vector of uint)
0:114 'r016' (temp 2-component vector of uint)
-0:? bitCount (global 2-component vector of uint)
+0:? bitCount (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:115 Sequence
0:115 move second child to first child (temp 2-component vector of float)
0:115 'r017' (temp 2-component vector of float)
-0:115 dPdx (global 2-component vector of float)
+0:115 dPdx (temp 2-component vector of float)
0:115 'inF0' (in 2-component vector of float)
0:116 Sequence
0:116 move second child to first child (temp 2-component vector of float)
0:116 'r018' (temp 2-component vector of float)
-0:116 dPdxCoarse (global 2-component vector of float)
+0:116 dPdxCoarse (temp 2-component vector of float)
0:116 'inF0' (in 2-component vector of float)
0:117 Sequence
0:117 move second child to first child (temp 2-component vector of float)
0:117 'r019' (temp 2-component vector of float)
-0:117 dPdxFine (global 2-component vector of float)
+0:117 dPdxFine (temp 2-component vector of float)
0:117 'inF0' (in 2-component vector of float)
0:118 Sequence
0:118 move second child to first child (temp 2-component vector of float)
0:118 'r020' (temp 2-component vector of float)
-0:118 dPdy (global 2-component vector of float)
+0:118 dPdy (temp 2-component vector of float)
0:118 'inF0' (in 2-component vector of float)
0:119 Sequence
0:119 move second child to first child (temp 2-component vector of float)
0:119 'r021' (temp 2-component vector of float)
-0:119 dPdyCoarse (global 2-component vector of float)
+0:119 dPdyCoarse (temp 2-component vector of float)
0:119 'inF0' (in 2-component vector of float)
0:120 Sequence
0:120 move second child to first child (temp 2-component vector of float)
0:120 'r022' (temp 2-component vector of float)
-0:120 dPdyFine (global 2-component vector of float)
+0:120 dPdyFine (temp 2-component vector of float)
0:120 'inF0' (in 2-component vector of float)
0:121 Sequence
0:121 move second child to first child (temp 2-component vector of float)
0:121 'r023' (temp 2-component vector of float)
-0:121 degrees (global 2-component vector of float)
+0:121 degrees (temp 2-component vector of float)
0:121 'inF0' (in 2-component vector of float)
0:125 Sequence
0:125 move second child to first child (temp float)
0:125 'r026' (temp float)
-0:125 distance (global float)
+0:125 distance (temp float)
0:125 'inF0' (in 2-component vector of float)
0:125 'inF1' (in 2-component vector of float)
0:126 Sequence
0:126 move second child to first child (temp float)
0:126 'r027' (temp float)
-0:126 dot-product (global float)
+0:126 dot-product (temp float)
0:126 'inF0' (in 2-component vector of float)
0:126 'inF1' (in 2-component vector of float)
0:130 Sequence
0:130 move second child to first child (temp 2-component vector of float)
0:130 'r028' (temp 2-component vector of float)
-0:130 exp (global 2-component vector of float)
+0:130 exp (temp 2-component vector of float)
0:130 'inF0' (in 2-component vector of float)
0:131 Sequence
0:131 move second child to first child (temp 2-component vector of float)
0:131 'r029' (temp 2-component vector of float)
-0:131 exp2 (global 2-component vector of float)
+0:131 exp2 (temp 2-component vector of float)
0:131 'inF0' (in 2-component vector of float)
0:132 Sequence
0:132 move second child to first child (temp 2-component vector of float)
0:132 'r030' (temp 2-component vector of float)
-0:132 face-forward (global 2-component vector of float)
+0:132 face-forward (temp 2-component vector of float)
0:132 'inF0' (in 2-component vector of float)
0:132 'inF1' (in 2-component vector of float)
0:132 'inF2' (in 2-component vector of float)
0:133 Sequence
0:133 move second child to first child (temp 2-component vector of uint)
0:133 'r031' (temp 2-component vector of uint)
-0:? findMSB (global 2-component vector of uint)
+0:? findMSB (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:134 Sequence
0:134 move second child to first child (temp 2-component vector of uint)
0:134 'r032' (temp 2-component vector of uint)
-0:? findLSB (global 2-component vector of uint)
+0:? findLSB (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:135 Sequence
0:135 move second child to first child (temp 2-component vector of float)
0:135 'r033' (temp 2-component vector of float)
-0:135 Floor (global 2-component vector of float)
+0:135 Floor (temp 2-component vector of float)
0:135 'inF0' (in 2-component vector of float)
0:137 Sequence
0:137 move second child to first child (temp 2-component vector of float)
0:137 'r035' (temp 2-component vector of float)
-0:137 mod (global 2-component vector of float)
+0:137 mod (temp 2-component vector of float)
0:137 'inF0' (in 2-component vector of float)
0:137 'inF1' (in 2-component vector of float)
0:138 Sequence
0:138 move second child to first child (temp 2-component vector of float)
0:138 'r036' (temp 2-component vector of float)
-0:138 Fraction (global 2-component vector of float)
+0:138 Fraction (temp 2-component vector of float)
0:138 'inF0' (in 2-component vector of float)
0:139 Sequence
0:139 move second child to first child (temp 2-component vector of float)
0:139 'r037' (temp 2-component vector of float)
-0:139 frexp (global 2-component vector of float)
+0:139 frexp (temp 2-component vector of float)
0:139 'inF0' (in 2-component vector of float)
0:139 'inF1' (in 2-component vector of float)
0:140 Sequence
0:140 move second child to first child (temp 2-component vector of float)
0:140 'r038' (temp 2-component vector of float)
-0:140 fwidth (global 2-component vector of float)
+0:140 fwidth (temp 2-component vector of float)
0:140 'inF0' (in 2-component vector of float)
0:141 Sequence
0:141 move second child to first child (temp 2-component vector of bool)
0:141 'r039' (temp 2-component vector of bool)
-0:141 isinf (global 2-component vector of bool)
+0:141 isinf (temp 2-component vector of bool)
0:141 'inF0' (in 2-component vector of float)
0:142 Sequence
0:142 move second child to first child (temp 2-component vector of bool)
0:142 'r040' (temp 2-component vector of bool)
-0:142 isnan (global 2-component vector of bool)
+0:142 isnan (temp 2-component vector of bool)
0:142 'inF0' (in 2-component vector of float)
0:143 Sequence
0:143 move second child to first child (temp 2-component vector of float)
0:143 'r041' (temp 2-component vector of float)
-0:143 ldexp (global 2-component vector of float)
+0:143 ldexp (temp 2-component vector of float)
0:143 'inF0' (in 2-component vector of float)
0:143 'inF1' (in 2-component vector of float)
0:144 Sequence
0:144 move second child to first child (temp 2-component vector of float)
0:144 'r039a' (temp 2-component vector of float)
-0:144 mix (global 2-component vector of float)
+0:144 mix (temp 2-component vector of float)
0:144 'inF0' (in 2-component vector of float)
0:144 'inF1' (in 2-component vector of float)
0:144 'inF2' (in 2-component vector of float)
0:145 Sequence
0:145 move second child to first child (temp float)
0:145 'r042' (temp float)
-0:145 length (global float)
+0:145 length (temp float)
0:145 'inF0' (in 2-component vector of float)
0:146 Sequence
0:146 move second child to first child (temp 2-component vector of float)
0:146 'r043' (temp 2-component vector of float)
-0:146 log (global 2-component vector of float)
+0:146 log (temp 2-component vector of float)
0:146 'inF0' (in 2-component vector of float)
0:147 Sequence
0:147 move second child to first child (temp 2-component vector of float)
@@ -595,35 +595,35 @@ gl_FragCoord origin is upper left
0:148 Sequence
0:148 move second child to first child (temp 2-component vector of float)
0:148 'r045' (temp 2-component vector of float)
-0:148 log2 (global 2-component vector of float)
+0:148 log2 (temp 2-component vector of float)
0:148 'inF0' (in 2-component vector of float)
0:149 Sequence
0:149 move second child to first child (temp 2-component vector of float)
0:149 'r046' (temp 2-component vector of float)
-0:149 max (global 2-component vector of float)
+0:149 max (temp 2-component vector of float)
0:149 'inF0' (in 2-component vector of float)
0:149 'inF1' (in 2-component vector of float)
0:150 Sequence
0:150 move second child to first child (temp 2-component vector of float)
0:150 'r047' (temp 2-component vector of float)
-0:150 min (global 2-component vector of float)
+0:150 min (temp 2-component vector of float)
0:150 'inF0' (in 2-component vector of float)
0:150 'inF1' (in 2-component vector of float)
0:151 Sequence
0:151 move second child to first child (temp 2-component vector of float)
0:151 'r048' (temp 2-component vector of float)
-0:151 normalize (global 2-component vector of float)
+0:151 normalize (temp 2-component vector of float)
0:151 'inF0' (in 2-component vector of float)
0:152 Sequence
0:152 move second child to first child (temp 2-component vector of float)
0:152 'r049' (temp 2-component vector of float)
-0:152 pow (global 2-component vector of float)
+0:152 pow (temp 2-component vector of float)
0:152 'inF0' (in 2-component vector of float)
0:152 'inF1' (in 2-component vector of float)
0:153 Sequence
0:153 move second child to first child (temp 2-component vector of float)
0:153 'r050' (temp 2-component vector of float)
-0:153 radians (global 2-component vector of float)
+0:153 radians (temp 2-component vector of float)
0:153 'inF0' (in 2-component vector of float)
0:154 Sequence
0:154 move second child to first child (temp 2-component vector of float)
@@ -635,13 +635,13 @@ gl_FragCoord origin is upper left
0:155 Sequence
0:155 move second child to first child (temp 2-component vector of float)
0:155 'r052' (temp 2-component vector of float)
-0:155 reflect (global 2-component vector of float)
+0:155 reflect (temp 2-component vector of float)
0:155 'inF0' (in 2-component vector of float)
0:155 'inF1' (in 2-component vector of float)
0:156 Sequence
0:156 move second child to first child (temp 2-component vector of float)
0:156 'r053' (temp 2-component vector of float)
-0:156 refract (global 2-component vector of float)
+0:156 refract (temp 2-component vector of float)
0:156 'inF0' (in 2-component vector of float)
0:156 'inF1' (in 2-component vector of float)
0:156 Constant:
@@ -649,19 +649,19 @@ gl_FragCoord origin is upper left
0:157 Sequence
0:157 move second child to first child (temp 2-component vector of uint)
0:157 'r054' (temp 2-component vector of uint)
-0:? bitFieldReverse (global 2-component vector of uint)
+0:? bitFieldReverse (temp 2-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:158 Sequence
0:158 move second child to first child (temp 2-component vector of float)
0:158 'r055' (temp 2-component vector of float)
-0:158 roundEven (global 2-component vector of float)
+0:158 roundEven (temp 2-component vector of float)
0:158 'inF0' (in 2-component vector of float)
0:159 Sequence
0:159 move second child to first child (temp 2-component vector of float)
0:159 'r056' (temp 2-component vector of float)
-0:159 inverse sqrt (global 2-component vector of float)
+0:159 inverse sqrt (temp 2-component vector of float)
0:159 'inF0' (in 2-component vector of float)
0:160 Sequence
0:160 move second child to first child (temp 2-component vector of float)
@@ -675,12 +675,12 @@ gl_FragCoord origin is upper left
0:161 Sequence
0:161 move second child to first child (temp 2-component vector of float)
0:161 'r058' (temp 2-component vector of float)
-0:161 Sign (global 2-component vector of float)
+0:161 Sign (temp 2-component vector of float)
0:161 'inF0' (in 2-component vector of float)
0:162 Sequence
0:162 move second child to first child (temp 2-component vector of float)
0:162 'r059' (temp 2-component vector of float)
-0:162 sine (global 2-component vector of float)
+0:162 sine (temp 2-component vector of float)
0:162 'inF0' (in 2-component vector of float)
0:163 Sequence
0:163 move second child to first child (temp 2-component vector of float)
@@ -694,40 +694,40 @@ gl_FragCoord origin is upper left
0:164 Sequence
0:164 move second child to first child (temp 2-component vector of float)
0:164 'r060' (temp 2-component vector of float)
-0:164 hyp. sine (global 2-component vector of float)
+0:164 hyp. sine (temp 2-component vector of float)
0:164 'inF0' (in 2-component vector of float)
0:165 Sequence
0:165 move second child to first child (temp 2-component vector of float)
0:165 'r061' (temp 2-component vector of float)
-0:165 smoothstep (global 2-component vector of float)
+0:165 smoothstep (temp 2-component vector of float)
0:165 'inF0' (in 2-component vector of float)
0:165 'inF1' (in 2-component vector of float)
0:165 'inF2' (in 2-component vector of float)
0:166 Sequence
0:166 move second child to first child (temp 2-component vector of float)
0:166 'r062' (temp 2-component vector of float)
-0:166 sqrt (global 2-component vector of float)
+0:166 sqrt (temp 2-component vector of float)
0:166 'inF0' (in 2-component vector of float)
0:167 Sequence
0:167 move second child to first child (temp 2-component vector of float)
0:167 'r063' (temp 2-component vector of float)
-0:167 step (global 2-component vector of float)
+0:167 step (temp 2-component vector of float)
0:167 'inF0' (in 2-component vector of float)
0:167 'inF1' (in 2-component vector of float)
0:168 Sequence
0:168 move second child to first child (temp 2-component vector of float)
0:168 'r064' (temp 2-component vector of float)
-0:168 tangent (global 2-component vector of float)
+0:168 tangent (temp 2-component vector of float)
0:168 'inF0' (in 2-component vector of float)
0:169 Sequence
0:169 move second child to first child (temp 2-component vector of float)
0:169 'r065' (temp 2-component vector of float)
-0:169 hyp. tangent (global 2-component vector of float)
+0:169 hyp. tangent (temp 2-component vector of float)
0:169 'inF0' (in 2-component vector of float)
0:171 Sequence
0:171 move second child to first child (temp 2-component vector of float)
0:171 'r066' (temp 2-component vector of float)
-0:171 trunc (global 2-component vector of float)
+0:171 trunc (temp 2-component vector of float)
0:171 'inF0' (in 2-component vector of float)
0:174 Branch: Return with expression
0:? Constant:
@@ -744,63 +744,63 @@ gl_FragCoord origin is upper left
0:181 Sequence
0:181 move second child to first child (temp bool)
0:181 'r000' (temp bool)
-0:181 all (global bool)
+0:181 all (temp bool)
0:181 'inF0' (in 3-component vector of float)
0:182 Sequence
0:182 move second child to first child (temp 3-component vector of float)
0:182 'r001' (temp 3-component vector of float)
-0:182 Absolute value (global 3-component vector of float)
+0:182 Absolute value (temp 3-component vector of float)
0:182 'inF0' (in 3-component vector of float)
0:183 Sequence
0:183 move second child to first child (temp 3-component vector of float)
0:183 'r002' (temp 3-component vector of float)
-0:183 arc cosine (global 3-component vector of float)
+0:183 arc cosine (temp 3-component vector of float)
0:183 'inF0' (in 3-component vector of float)
0:184 Sequence
0:184 move second child to first child (temp bool)
0:184 'r003' (temp bool)
-0:184 any (global bool)
+0:184 any (temp bool)
0:184 'inF0' (in 3-component vector of float)
0:185 Sequence
0:185 move second child to first child (temp 3-component vector of float)
0:185 'r004' (temp 3-component vector of float)
-0:185 arc sine (global 3-component vector of float)
+0:185 arc sine (temp 3-component vector of float)
0:185 'inF0' (in 3-component vector of float)
0:186 Sequence
0:186 move second child to first child (temp 3-component vector of int)
0:186 'r005' (temp 3-component vector of int)
-0:186 floatBitsToInt (global 3-component vector of int)
+0:186 floatBitsToInt (temp 3-component vector of int)
0:186 'inF0' (in 3-component vector of float)
0:187 Sequence
0:187 move second child to first child (temp 3-component vector of uint)
0:187 'r006' (temp 3-component vector of uint)
-0:187 floatBitsToUint (global 3-component vector of uint)
+0:187 floatBitsToUint (temp 3-component vector of uint)
0:187 'inF0' (in 3-component vector of float)
0:188 Sequence
0:188 move second child to first child (temp 3-component vector of float)
0:188 'r007' (temp 3-component vector of float)
-0:188 intBitsToFloat (global 3-component vector of float)
+0:188 intBitsToFloat (temp 3-component vector of float)
0:188 'inU0' (in 3-component vector of uint)
0:190 Sequence
0:190 move second child to first child (temp 3-component vector of float)
0:190 'r009' (temp 3-component vector of float)
-0:190 arc tangent (global 3-component vector of float)
+0:190 arc tangent (temp 3-component vector of float)
0:190 'inF0' (in 3-component vector of float)
0:191 Sequence
0:191 move second child to first child (temp 3-component vector of float)
0:191 'r010' (temp 3-component vector of float)
-0:191 arc tangent (global 3-component vector of float)
+0:191 arc tangent (temp 3-component vector of float)
0:191 'inF0' (in 3-component vector of float)
0:191 'inF1' (in 3-component vector of float)
0:192 Sequence
0:192 move second child to first child (temp 3-component vector of float)
0:192 'r011' (temp 3-component vector of float)
-0:192 Ceiling (global 3-component vector of float)
+0:192 Ceiling (temp 3-component vector of float)
0:192 'inF0' (in 3-component vector of float)
0:193 Sequence
0:193 move second child to first child (temp 3-component vector of float)
0:193 'r012' (temp 3-component vector of float)
-0:193 clamp (global 3-component vector of float)
+0:193 clamp (temp 3-component vector of float)
0:193 'inF0' (in 3-component vector of float)
0:193 'inF1' (in 3-component vector of float)
0:193 'inF2' (in 3-component vector of float)
@@ -818,17 +818,17 @@ gl_FragCoord origin is upper left
0:195 Sequence
0:195 move second child to first child (temp 3-component vector of float)
0:195 'r013' (temp 3-component vector of float)
-0:195 cosine (global 3-component vector of float)
+0:195 cosine (temp 3-component vector of float)
0:195 'inF0' (in 3-component vector of float)
0:196 Sequence
0:196 move second child to first child (temp 3-component vector of float)
0:196 'r014' (temp 3-component vector of float)
-0:196 hyp. cosine (global 3-component vector of float)
+0:196 hyp. cosine (temp 3-component vector of float)
0:196 'inF0' (in 3-component vector of float)
0:197 Sequence
0:197 move second child to first child (temp 3-component vector of uint)
0:197 'r015' (temp 3-component vector of uint)
-0:? bitCount (global 3-component vector of uint)
+0:? bitCount (temp 3-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
@@ -836,77 +836,77 @@ gl_FragCoord origin is upper left
0:198 Sequence
0:198 move second child to first child (temp 3-component vector of float)
0:198 'r016' (temp 3-component vector of float)
-0:198 cross-product (global 3-component vector of float)
+0:198 cross-product (temp 3-component vector of float)
0:198 'inF0' (in 3-component vector of float)
0:198 'inF1' (in 3-component vector of float)
0:199 Sequence
0:199 move second child to first child (temp 3-component vector of float)
0:199 'r017' (temp 3-component vector of float)
-0:199 dPdx (global 3-component vector of float)
+0:199 dPdx (temp 3-component vector of float)
0:199 'inF0' (in 3-component vector of float)
0:200 Sequence
0:200 move second child to first child (temp 3-component vector of float)
0:200 'r018' (temp 3-component vector of float)
-0:200 dPdxCoarse (global 3-component vector of float)
+0:200 dPdxCoarse (temp 3-component vector of float)
0:200 'inF0' (in 3-component vector of float)
0:201 Sequence
0:201 move second child to first child (temp 3-component vector of float)
0:201 'r019' (temp 3-component vector of float)
-0:201 dPdxFine (global 3-component vector of float)
+0:201 dPdxFine (temp 3-component vector of float)
0:201 'inF0' (in 3-component vector of float)
0:202 Sequence
0:202 move second child to first child (temp 3-component vector of float)
0:202 'r020' (temp 3-component vector of float)
-0:202 dPdy (global 3-component vector of float)
+0:202 dPdy (temp 3-component vector of float)
0:202 'inF0' (in 3-component vector of float)
0:203 Sequence
0:203 move second child to first child (temp 3-component vector of float)
0:203 'r021' (temp 3-component vector of float)
-0:203 dPdyCoarse (global 3-component vector of float)
+0:203 dPdyCoarse (temp 3-component vector of float)
0:203 'inF0' (in 3-component vector of float)
0:204 Sequence
0:204 move second child to first child (temp 3-component vector of float)
0:204 'r022' (temp 3-component vector of float)
-0:204 dPdyFine (global 3-component vector of float)
+0:204 dPdyFine (temp 3-component vector of float)
0:204 'inF0' (in 3-component vector of float)
0:205 Sequence
0:205 move second child to first child (temp 3-component vector of float)
0:205 'r023' (temp 3-component vector of float)
-0:205 degrees (global 3-component vector of float)
+0:205 degrees (temp 3-component vector of float)
0:205 'inF0' (in 3-component vector of float)
0:206 Sequence
0:206 move second child to first child (temp float)
0:206 'r024' (temp float)
-0:206 distance (global float)
+0:206 distance (temp float)
0:206 'inF0' (in 3-component vector of float)
0:206 'inF1' (in 3-component vector of float)
0:207 Sequence
0:207 move second child to first child (temp float)
0:207 'r025' (temp float)
-0:207 dot-product (global float)
+0:207 dot-product (temp float)
0:207 'inF0' (in 3-component vector of float)
0:207 'inF1' (in 3-component vector of float)
0:211 Sequence
0:211 move second child to first child (temp 3-component vector of float)
0:211 'r029' (temp 3-component vector of float)
-0:211 exp (global 3-component vector of float)
+0:211 exp (temp 3-component vector of float)
0:211 'inF0' (in 3-component vector of float)
0:212 Sequence
0:212 move second child to first child (temp 3-component vector of float)
0:212 'r030' (temp 3-component vector of float)
-0:212 exp2 (global 3-component vector of float)
+0:212 exp2 (temp 3-component vector of float)
0:212 'inF0' (in 3-component vector of float)
0:213 Sequence
0:213 move second child to first child (temp 3-component vector of float)
0:213 'r031' (temp 3-component vector of float)
-0:213 face-forward (global 3-component vector of float)
+0:213 face-forward (temp 3-component vector of float)
0:213 'inF0' (in 3-component vector of float)
0:213 'inF1' (in 3-component vector of float)
0:213 'inF2' (in 3-component vector of float)
0:214 Sequence
0:214 move second child to first child (temp 3-component vector of uint)
0:214 'r032' (temp 3-component vector of uint)
-0:? findMSB (global 3-component vector of uint)
+0:? findMSB (temp 3-component vector of uint)
0:? Constant:
0:? 2 (const uint)
0:? 3 (const uint)
@@ -914,7 +914,7 @@ gl_FragCoord origin is upper left
0:215 Sequence
0:215 move second child to first child (temp 3-component vector of uint)
0:215 'r033' (temp 3-component vector of uint)
-0:? findLSB (global 3-component vector of uint)
+0:? findLSB (temp 3-component vector of uint)
0:? Constant:
0:? 2 (const uint)
0:? 3 (const uint)
@@ -922,57 +922,57 @@ gl_FragCoord origin is upper left
0:216 Sequence
0:216 move second child to first child (temp 3-component vector of float)
0:216 'r034' (temp 3-component vector of float)
-0:216 Floor (global 3-component vector of float)
+0:216 Floor (temp 3-component vector of float)
0:216 'inF0' (in 3-component vector of float)
0:218 Sequence
0:218 move second child to first child (temp 3-component vector of float)
0:218 'r036' (temp 3-component vector of float)
-0:218 mod (global 3-component vector of float)
+0:218 mod (temp 3-component vector of float)
0:218 'inF0' (in 3-component vector of float)
0:218 'inF1' (in 3-component vector of float)
0:219 Sequence
0:219 move second child to first child (temp 3-component vector of float)
0:219 'r037' (temp 3-component vector of float)
-0:219 Fraction (global 3-component vector of float)
+0:219 Fraction (temp 3-component vector of float)
0:219 'inF0' (in 3-component vector of float)
0:220 Sequence
0:220 move second child to first child (temp 3-component vector of float)
0:220 'r038' (temp 3-component vector of float)
-0:220 frexp (global 3-component vector of float)
+0:220 frexp (temp 3-component vector of float)
0:220 'inF0' (in 3-component vector of float)
0:220 'inF1' (in 3-component vector of float)
0:221 Sequence
0:221 move second child to first child (temp 3-component vector of float)
0:221 'r039' (temp 3-component vector of float)
-0:221 fwidth (global 3-component vector of float)
+0:221 fwidth (temp 3-component vector of float)
0:221 'inF0' (in 3-component vector of float)
0:222 Sequence
0:222 move second child to first child (temp 3-component vector of bool)
0:222 'r040' (temp 3-component vector of bool)
-0:222 isinf (global 3-component vector of bool)
+0:222 isinf (temp 3-component vector of bool)
0:222 'inF0' (in 3-component vector of float)
0:223 Sequence
0:223 move second child to first child (temp 3-component vector of bool)
0:223 'r041' (temp 3-component vector of bool)
-0:223 isnan (global 3-component vector of bool)
+0:223 isnan (temp 3-component vector of bool)
0:223 'inF0' (in 3-component vector of float)
0:224 Sequence
0:224 move second child to first child (temp 3-component vector of float)
0:224 'r042' (temp 3-component vector of float)
-0:224 ldexp (global 3-component vector of float)
+0:224 ldexp (temp 3-component vector of float)
0:224 'inF0' (in 3-component vector of float)
0:224 'inF1' (in 3-component vector of float)
0:225 Sequence
0:225 move second child to first child (temp 3-component vector of float)
0:225 'r039a' (temp 3-component vector of float)
-0:225 mix (global 3-component vector of float)
+0:225 mix (temp 3-component vector of float)
0:225 'inF0' (in 3-component vector of float)
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 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 mix (temp 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:
@@ -980,12 +980,12 @@ gl_FragCoord origin is upper left
0:227 Sequence
0:227 move second child to first child (temp float)
0:227 'r043' (temp float)
-0:227 length (global float)
+0:227 length (temp 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 'r044' (temp 3-component vector of float)
-0:228 log (global 3-component vector of float)
+0:228 log (temp 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)
@@ -998,35 +998,35 @@ gl_FragCoord origin is upper left
0:230 Sequence
0:230 move second child to first child (temp 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 log2 (temp 3-component vector of float)
0:230 'inF0' (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 'r047' (temp 3-component vector of float)
-0:231 max (global 3-component vector of float)
+0:231 max (temp 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 'r048' (temp 3-component vector of float)
-0:232 min (global 3-component vector of float)
+0:232 min (temp 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 'r049' (temp 3-component vector of float)
-0:233 normalize (global 3-component vector of float)
+0:233 normalize (temp 3-component vector of float)
0:233 'inF0' (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 'r050' (temp 3-component vector of float)
-0:234 pow (global 3-component vector of float)
+0:234 pow (temp 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 'r051' (temp 3-component vector of float)
-0:235 radians (global 3-component vector of float)
+0:235 radians (temp 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)
@@ -1038,13 +1038,13 @@ gl_FragCoord origin is upper left
0:237 Sequence
0:237 move second child to first child (temp 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 reflect (temp 3-component vector of float)
0:237 'inF0' (in 3-component vector of float)
0:237 'inF1' (in 3-component vector of float)
0:238 Sequence
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 refract (temp 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:
@@ -1052,7 +1052,7 @@ gl_FragCoord origin is upper left
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:? bitFieldReverse (temp 3-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
@@ -1060,12 +1060,12 @@ gl_FragCoord origin is upper left
0:240 Sequence
0:240 move second child to first child (temp 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 roundEven (temp 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 'r057' (temp 3-component vector of float)
-0:241 inverse sqrt (global 3-component vector of float)
+0:241 inverse sqrt (temp 3-component vector of float)
0:241 'inF0' (in 3-component vector of float)
0:242 Sequence
0:242 move second child to first child (temp 3-component vector of float)
@@ -1079,12 +1079,12 @@ gl_FragCoord origin is upper left
0:243 Sequence
0:243 move second child to first child (temp 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 Sign (temp 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 'r060' (temp 3-component vector of float)
-0:244 sine (global 3-component vector of float)
+0:244 sine (temp 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)
@@ -1098,40 +1098,40 @@ gl_FragCoord origin is upper left
0:246 Sequence
0:246 move second child to first child (temp 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 hyp. sine (temp 3-component vector of float)
0:246 'inF0' (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 'r062' (temp 3-component vector of float)
-0:247 smoothstep (global 3-component vector of float)
+0:247 smoothstep (temp 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 'r063' (temp 3-component vector of float)
-0:248 sqrt (global 3-component vector of float)
+0:248 sqrt (temp 3-component vector of float)
0:248 'inF0' (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 'r064' (temp 3-component vector of float)
-0:249 step (global 3-component vector of float)
+0:249 step (temp 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 'r065' (temp 3-component vector of float)
-0:250 tangent (global 3-component vector of float)
+0:250 tangent (temp 3-component vector of float)
0:250 'inF0' (in 3-component vector of float)
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 hyp. tangent (temp 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 trunc (temp 3-component vector of float)
0:253 'inF0' (in 3-component vector of float)
0:256 Branch: Return with expression
0:? Constant:
@@ -1149,63 +1149,63 @@ gl_FragCoord origin is upper left
0:263 Sequence
0:263 move second child to first child (temp bool)
0:263 'r000' (temp bool)
-0:263 all (global bool)
+0:263 all (temp 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 'r001' (temp 4-component vector of float)
-0:264 Absolute value (global 4-component vector of float)
+0:264 Absolute value (temp 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 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 arc cosine (temp 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 bool)
0:266 'r003' (temp bool)
-0:266 any (global bool)
+0:266 any (temp 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 float)
0:267 'r004' (temp 4-component vector of float)
-0:267 arc sine (global 4-component vector of float)
+0:267 arc sine (temp 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 int)
0:268 'r005' (temp 4-component vector of int)
-0:268 floatBitsToInt (global 4-component vector of int)
+0:268 floatBitsToInt (temp 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 uint)
0:269 'r006' (temp 4-component vector of uint)
-0:269 floatBitsToUint (global 4-component vector of uint)
+0:269 floatBitsToUint (temp 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 intBitsToFloat (temp 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 'r009' (temp 4-component vector of float)
-0:272 arc tangent (global 4-component vector of float)
+0:272 arc tangent (temp 4-component vector of float)
0:272 'inF0' (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 'r010' (temp 4-component vector of float)
-0:273 arc tangent (global 4-component vector of float)
+0:273 arc tangent (temp 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 'r011' (temp 4-component vector of float)
-0:274 Ceiling (global 4-component vector of float)
+0:274 Ceiling (temp 4-component vector of float)
0:274 'inF0' (in 4-component vector of float)
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 clamp (temp 4-component vector of float)
0:275 'inF0' (in 4-component vector of float)
0:275 'inF1' (in 4-component vector of float)
0:275 'inF2' (in 4-component vector of float)
@@ -1224,17 +1224,17 @@ gl_FragCoord origin is upper left
0:277 Sequence
0:277 move second child to first child (temp 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 cosine (temp 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 float)
0:278 'r014' (temp 4-component vector of float)
-0:278 hyp. cosine (global 4-component vector of float)
+0:278 hyp. cosine (temp 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:? bitCount (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
@@ -1243,48 +1243,48 @@ gl_FragCoord origin is upper left
0:280 Sequence
0:280 move second child to first child (temp 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 dPdx (temp 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 'r017' (temp 4-component vector of float)
-0:281 dPdxCoarse (global 4-component vector of float)
+0:281 dPdxCoarse (temp 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 'r018' (temp 4-component vector of float)
-0:282 dPdxFine (global 4-component vector of float)
+0:282 dPdxFine (temp 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 'r019' (temp 4-component vector of float)
-0:283 dPdy (global 4-component vector of float)
+0:283 dPdy (temp 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 'r020' (temp 4-component vector of float)
-0:284 dPdyCoarse (global 4-component vector of float)
+0:284 dPdyCoarse (temp 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 'r021' (temp 4-component vector of float)
-0:285 dPdyFine (global 4-component vector of float)
+0:285 dPdyFine (temp 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 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 degrees (temp 4-component vector of float)
0:286 'inF0' (in 4-component vector of float)
0:287 Sequence
0:287 move second child to first child (temp float)
0:287 'r023' (temp float)
-0:287 distance (global float)
+0:287 distance (temp 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 float)
0:288 'r024' (temp float)
-0:288 dot-product (global float)
+0:288 dot-product (temp float)
0:288 'inF0' (in 4-component vector of float)
0:288 'inF1' (in 4-component vector of float)
0:289 Sequence
@@ -1313,24 +1313,24 @@ gl_FragCoord origin is upper left
0:293 Sequence
0:293 move second child to first child (temp 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 exp (temp 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 'r030' (temp 4-component vector of float)
-0:294 exp2 (global 4-component vector of float)
+0:294 exp2 (temp 4-component vector of float)
0:294 'inF0' (in 4-component vector of float)
0:295 Sequence
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 face-forward (temp 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:? findMSB (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
@@ -1339,7 +1339,7 @@ gl_FragCoord origin is upper left
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:? findLSB (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
@@ -1348,62 +1348,62 @@ gl_FragCoord origin is upper left
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 Floor (temp 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 'r036' (temp 4-component vector of float)
-0:300 mod (global 4-component vector of float)
+0:300 mod (temp 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 'r037' (temp 4-component vector of float)
-0:301 Fraction (global 4-component vector of float)
+0:301 Fraction (temp 4-component vector of float)
0:301 'inF0' (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 'r038' (temp 4-component vector of float)
-0:302 frexp (global 4-component vector of float)
+0:302 frexp (temp 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 float)
0:303 'r039' (temp 4-component vector of float)
-0:303 fwidth (global 4-component vector of float)
+0:303 fwidth (temp 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 'r040' (temp 4-component vector of bool)
-0:304 isinf (global 4-component vector of bool)
+0:304 isinf (temp 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 bool)
0:305 'r041' (temp 4-component vector of bool)
-0:305 isnan (global 4-component vector of bool)
+0:305 isnan (temp 4-component vector of bool)
0:305 'inF0' (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 'r042' (temp 4-component vector of float)
-0:306 ldexp (global 4-component vector of float)
+0:306 ldexp (temp 4-component vector of float)
0:306 'inF0' (in 4-component vector of float)
0:306 'inF1' (in 4-component vector of float)
0:307 Sequence
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 mix (temp 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 float)
0:308 'r043' (temp float)
-0:308 length (global float)
+0:308 length (temp 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 'r044' (temp 4-component vector of float)
-0:309 log (global 4-component vector of float)
+0:309 log (temp 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)
@@ -1416,35 +1416,35 @@ gl_FragCoord origin is upper left
0:311 Sequence
0:311 move second child to first child (temp 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 log2 (temp 4-component vector of float)
0:311 'inF0' (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 'r047' (temp 4-component vector of float)
-0:312 max (global 4-component vector of float)
+0:312 max (temp 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 'r048' (temp 4-component vector of float)
-0:313 min (global 4-component vector of float)
+0:313 min (temp 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 'r049' (temp 4-component vector of float)
-0:314 normalize (global 4-component vector of float)
+0:314 normalize (temp 4-component vector of float)
0:314 'inF0' (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 'r050' (temp 4-component vector of float)
-0:315 pow (global 4-component vector of float)
+0:315 pow (temp 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 'r051' (temp 4-component vector of float)
-0:316 radians (global 4-component vector of float)
+0:316 radians (temp 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)
@@ -1456,13 +1456,13 @@ gl_FragCoord origin is upper left
0:318 Sequence
0:318 move second child to first child (temp 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 reflect (temp 4-component vector of float)
0:318 'inF0' (in 4-component vector of float)
0:318 'inF1' (in 4-component vector of float)
0:319 Sequence
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 refract (temp 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:
@@ -1470,7 +1470,7 @@ gl_FragCoord origin is upper left
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:? bitFieldReverse (temp 4-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
@@ -1479,12 +1479,12 @@ gl_FragCoord origin is upper left
0:321 Sequence
0:321 move second child to first child (temp 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 roundEven (temp 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 'r057' (temp 4-component vector of float)
-0:322 inverse sqrt (global 4-component vector of float)
+0:322 inverse sqrt (temp 4-component vector of float)
0:322 'inF0' (in 4-component vector of float)
0:323 Sequence
0:323 move second child to first child (temp 4-component vector of float)
@@ -1498,12 +1498,12 @@ gl_FragCoord origin is upper left
0:324 Sequence
0:324 move second child to first child (temp 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 Sign (temp 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 'r060' (temp 4-component vector of float)
-0:325 sine (global 4-component vector of float)
+0:325 sine (temp 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)
@@ -1517,40 +1517,40 @@ gl_FragCoord origin is upper left
0:327 Sequence
0:327 move second child to first child (temp 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 hyp. sine (temp 4-component vector of float)
0:327 'inF0' (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 'r062' (temp 4-component vector of float)
-0:328 smoothstep (global 4-component vector of float)
+0:328 smoothstep (temp 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 'r063' (temp 4-component vector of float)
-0:329 sqrt (global 4-component vector of float)
+0:329 sqrt (temp 4-component vector of float)
0:329 'inF0' (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 'r064' (temp 4-component vector of float)
-0:330 step (global 4-component vector of float)
+0:330 step (temp 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 'r065' (temp 4-component vector of float)
-0:331 tangent (global 4-component vector of float)
+0:331 tangent (temp 4-component vector of float)
0:331 'inF0' (in 4-component vector of float)
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 hyp. tangent (temp 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 trunc (temp 4-component vector of float)
0:334 'inF0' (in 4-component vector of float)
0:337 Branch: Return with expression
0:? Constant:
@@ -1567,40 +1567,40 @@ gl_FragCoord origin is upper left
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 all (temp 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 Absolute value (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
-0:403 arc cosine (global 2X2 matrix of float)
+0:403 arc 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 bool)
0:403 'r003' (temp bool)
-0:403 any (global bool)
+0:403 any (temp 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 arc sine (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 'r005' (temp 2X2 matrix of float)
-0:403 arc tangent (global 2X2 matrix of float)
+0:403 arc tangent (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 'r006' (temp 2X2 matrix of float)
-0:403 arc tangent (global 2X2 matrix of float)
+0:403 arc tangent (temp 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 Ceiling (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
0:403 Test condition and select (temp void)
0:403 Condition
@@ -1617,114 +1617,114 @@ gl_FragCoord origin is upper left
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 clamp (temp 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 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 'r010' (temp 2X2 matrix of float)
-0:403 hyp. cosine (global 2X2 matrix of float)
+0:403 hyp. 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 'r011' (temp 2X2 matrix of float)
-0:403 dPdx (global 2X2 matrix of float)
+0:403 dPdx (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 'r012' (temp 2X2 matrix of float)
-0:403 dPdxCoarse (global 2X2 matrix of float)
+0:403 dPdxCoarse (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 'r013' (temp 2X2 matrix of float)
-0:403 dPdxFine (global 2X2 matrix of float)
+0:403 dPdxFine (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 'r014' (temp 2X2 matrix of float)
-0:403 dPdy (global 2X2 matrix of float)
+0:403 dPdy (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 'r015' (temp 2X2 matrix of float)
-0:403 dPdyCoarse (global 2X2 matrix of float)
+0:403 dPdyCoarse (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 'r016' (temp 2X2 matrix of float)
-0:403 dPdyFine (global 2X2 matrix of float)
+0:403 dPdyFine (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 'r017' (temp 2X2 matrix of float)
-0:403 degrees (global 2X2 matrix of float)
+0:403 degrees (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 float)
0:403 'r018' (temp float)
-0:403 determinant (global float)
+0:403 determinant (temp 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 exp (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 'R020' (temp 2X2 matrix of float)
-0:403 exp2 (global 2X2 matrix of float)
+0:403 exp2 (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 'r021' (temp 2X2 matrix of float)
-0:403 Floor (global 2X2 matrix of float)
+0:403 Floor (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 'r022' (temp 2X2 matrix of float)
-0:403 mod (global 2X2 matrix of float)
+0:403 mod (temp 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 Fraction (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 'r024' (temp 2X2 matrix of float)
-0:403 frexp (global 2X2 matrix of float)
+0:403 frexp (temp 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 fwidth (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 'r026' (temp 2X2 matrix of float)
-0:403 ldexp (global 2X2 matrix of float)
+0:403 ldexp (temp 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 mix (temp 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 log (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)
@@ -1737,40 +1737,40 @@ gl_FragCoord origin is upper left
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 log2 (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 'r030' (temp 2X2 matrix of float)
-0:403 max (global 2X2 matrix of float)
+0:403 max (temp 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 min (temp 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 pow (temp 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 radians (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 'r034' (temp 2X2 matrix of float)
-0:403 roundEven (global 2X2 matrix of float)
+0:403 roundEven (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 'r035' (temp 2X2 matrix of float)
-0:403 inverse sqrt (global 2X2 matrix of float)
+0:403 inverse sqrt (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)
@@ -1784,12 +1784,12 @@ gl_FragCoord origin is upper left
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 Sign (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 'r038' (temp 2X2 matrix of float)
-0:403 sine (global 2X2 matrix of float)
+0:403 sine (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)
@@ -1803,42 +1803,42 @@ gl_FragCoord origin is upper left
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 hyp. sine (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 'r049' (temp 2X2 matrix of float)
-0:403 smoothstep (global 2X2 matrix of float)
+0:403 smoothstep (temp 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 sqrt (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 'r042' (temp 2X2 matrix of float)
-0:403 step (global 2X2 matrix of float)
+0:403 step (temp 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 tangent (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 'r044' (temp 2X2 matrix of float)
-0:403 hyp. tangent (global 2X2 matrix of float)
+0:403 hyp. tangent (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
-0:403 transpose (global 2X2 matrix of float)
+0:403 transpose (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 'r046' (temp 2X2 matrix of float)
-0:403 trunc (global 2X2 matrix of float)
+0:403 trunc (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
0:406 Branch: Return with expression
0:? Constant:
@@ -1855,40 +1855,40 @@ gl_FragCoord origin is upper left
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 all (temp 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 Absolute value (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
-0:412 arc cosine (global 3X3 matrix of float)
+0:412 arc 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 bool)
0:412 'r003' (temp bool)
-0:412 any (global bool)
+0:412 any (temp 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 arc sine (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 'r005' (temp 3X3 matrix of float)
-0:412 arc tangent (global 3X3 matrix of float)
+0:412 arc tangent (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 'r006' (temp 3X3 matrix of float)
-0:412 arc tangent (global 3X3 matrix of float)
+0:412 arc tangent (temp 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 Ceiling (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
0:412 Test condition and select (temp void)
0:412 Condition
@@ -1910,114 +1910,114 @@ gl_FragCoord origin is upper left
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 clamp (temp 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 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 'r010' (temp 3X3 matrix of float)
-0:412 hyp. cosine (global 3X3 matrix of float)
+0:412 hyp. 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 'r011' (temp 3X3 matrix of float)
-0:412 dPdx (global 3X3 matrix of float)
+0:412 dPdx (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 'r012' (temp 3X3 matrix of float)
-0:412 dPdxCoarse (global 3X3 matrix of float)
+0:412 dPdxCoarse (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 'r013' (temp 3X3 matrix of float)
-0:412 dPdxFine (global 3X3 matrix of float)
+0:412 dPdxFine (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 'r014' (temp 3X3 matrix of float)
-0:412 dPdy (global 3X3 matrix of float)
+0:412 dPdy (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 'r015' (temp 3X3 matrix of float)
-0:412 dPdyCoarse (global 3X3 matrix of float)
+0:412 dPdyCoarse (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 'r016' (temp 3X3 matrix of float)
-0:412 dPdyFine (global 3X3 matrix of float)
+0:412 dPdyFine (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 'r017' (temp 3X3 matrix of float)
-0:412 degrees (global 3X3 matrix of float)
+0:412 degrees (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 float)
0:412 'r018' (temp float)
-0:412 determinant (global float)
+0:412 determinant (temp 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 exp (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 'R020' (temp 3X3 matrix of float)
-0:412 exp2 (global 3X3 matrix of float)
+0:412 exp2 (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 'r021' (temp 3X3 matrix of float)
-0:412 Floor (global 3X3 matrix of float)
+0:412 Floor (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 'r022' (temp 3X3 matrix of float)
-0:412 mod (global 3X3 matrix of float)
+0:412 mod (temp 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 Fraction (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 'r024' (temp 3X3 matrix of float)
-0:412 frexp (global 3X3 matrix of float)
+0:412 frexp (temp 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 fwidth (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 'r026' (temp 3X3 matrix of float)
-0:412 ldexp (global 3X3 matrix of float)
+0:412 ldexp (temp 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 mix (temp 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 log (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)
@@ -2030,40 +2030,40 @@ gl_FragCoord origin is upper left
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 log2 (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 'r030' (temp 3X3 matrix of float)
-0:412 max (global 3X3 matrix of float)
+0:412 max (temp 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 min (temp 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 pow (temp 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 radians (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 'r034' (temp 3X3 matrix of float)
-0:412 roundEven (global 3X3 matrix of float)
+0:412 roundEven (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 'r035' (temp 3X3 matrix of float)
-0:412 inverse sqrt (global 3X3 matrix of float)
+0:412 inverse sqrt (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)
@@ -2077,12 +2077,12 @@ gl_FragCoord origin is upper left
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 Sign (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 'r038' (temp 3X3 matrix of float)
-0:412 sine (global 3X3 matrix of float)
+0:412 sine (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)
@@ -2096,42 +2096,42 @@ gl_FragCoord origin is upper left
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 hyp. sine (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 'r049' (temp 3X3 matrix of float)
-0:412 smoothstep (global 3X3 matrix of float)
+0:412 smoothstep (temp 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 sqrt (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 'r042' (temp 3X3 matrix of float)
-0:412 step (global 3X3 matrix of float)
+0:412 step (temp 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 tangent (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 'r044' (temp 3X3 matrix of float)
-0:412 hyp. tangent (global 3X3 matrix of float)
+0:412 hyp. tangent (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
-0:412 transpose (global 3X3 matrix of float)
+0:412 transpose (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 'r046' (temp 3X3 matrix of float)
-0:412 trunc (global 3X3 matrix of float)
+0:412 trunc (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
0:415 Branch: Return with expression
0:? Constant:
@@ -2153,40 +2153,40 @@ gl_FragCoord origin is upper left
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 all (temp 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 Absolute value (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
-0:421 arc cosine (global 4X4 matrix of float)
+0:421 arc 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 bool)
0:421 'r003' (temp bool)
-0:421 any (global bool)
+0:421 any (temp 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 arc sine (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 'r005' (temp 4X4 matrix of float)
-0:421 arc tangent (global 4X4 matrix of float)
+0:421 arc tangent (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 'r006' (temp 4X4 matrix of float)
-0:421 arc tangent (global 4X4 matrix of float)
+0:421 arc tangent (temp 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 Ceiling (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
0:421 Test condition and select (temp void)
0:421 Condition
@@ -2215,114 +2215,114 @@ gl_FragCoord origin is upper left
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 clamp (temp 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 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 'r010' (temp 4X4 matrix of float)
-0:421 hyp. cosine (global 4X4 matrix of float)
+0:421 hyp. 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 'r011' (temp 4X4 matrix of float)
-0:421 dPdx (global 4X4 matrix of float)
+0:421 dPdx (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 'r012' (temp 4X4 matrix of float)
-0:421 dPdxCoarse (global 4X4 matrix of float)
+0:421 dPdxCoarse (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 'r013' (temp 4X4 matrix of float)
-0:421 dPdxFine (global 4X4 matrix of float)
+0:421 dPdxFine (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 'r014' (temp 4X4 matrix of float)
-0:421 dPdy (global 4X4 matrix of float)
+0:421 dPdy (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 'r015' (temp 4X4 matrix of float)
-0:421 dPdyCoarse (global 4X4 matrix of float)
+0:421 dPdyCoarse (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 'r016' (temp 4X4 matrix of float)
-0:421 dPdyFine (global 4X4 matrix of float)
+0:421 dPdyFine (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 'r017' (temp 4X4 matrix of float)
-0:421 degrees (global 4X4 matrix of float)
+0:421 degrees (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 float)
0:421 'r018' (temp float)
-0:421 determinant (global float)
+0:421 determinant (temp 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 exp (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 'R020' (temp 4X4 matrix of float)
-0:421 exp2 (global 4X4 matrix of float)
+0:421 exp2 (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 'r021' (temp 4X4 matrix of float)
-0:421 Floor (global 4X4 matrix of float)
+0:421 Floor (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 'r022' (temp 4X4 matrix of float)
-0:421 mod (global 4X4 matrix of float)
+0:421 mod (temp 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 Fraction (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 'r024' (temp 4X4 matrix of float)
-0:421 frexp (global 4X4 matrix of float)
+0:421 frexp (temp 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 fwidth (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 'r026' (temp 4X4 matrix of float)
-0:421 ldexp (global 4X4 matrix of float)
+0:421 ldexp (temp 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 mix (temp 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 log (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)
@@ -2335,40 +2335,40 @@ gl_FragCoord origin is upper left
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 log2 (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 'r030' (temp 4X4 matrix of float)
-0:421 max (global 4X4 matrix of float)
+0:421 max (temp 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 min (temp 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 pow (temp 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 radians (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 'r034' (temp 4X4 matrix of float)
-0:421 roundEven (global 4X4 matrix of float)
+0:421 roundEven (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 'r035' (temp 4X4 matrix of float)
-0:421 inverse sqrt (global 4X4 matrix of float)
+0:421 inverse sqrt (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)
@@ -2382,12 +2382,12 @@ gl_FragCoord origin is upper left
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 Sign (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 'r038' (temp 4X4 matrix of float)
-0:421 sine (global 4X4 matrix of float)
+0:421 sine (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)
@@ -2401,42 +2401,42 @@ gl_FragCoord origin is upper left
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 hyp. sine (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 'r049' (temp 4X4 matrix of float)
-0:421 smoothstep (global 4X4 matrix of float)
+0:421 smoothstep (temp 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 sqrt (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 'r042' (temp 4X4 matrix of float)
-0:421 step (global 4X4 matrix of float)
+0:421 step (temp 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 tangent (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 'r044' (temp 4X4 matrix of float)
-0:421 hyp. tangent (global 4X4 matrix of float)
+0:421 hyp. tangent (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
-0:421 transpose (global 4X4 matrix of float)
+0:421 transpose (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 'r046' (temp 4X4 matrix of float)
-0:421 trunc (global 4X4 matrix of float)
+0:421 trunc (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
0:424 Branch: Return with expression
0:? Constant:
@@ -2486,7 +2486,7 @@ gl_FragCoord origin is upper left
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 dot-product (temp float)
0:443 'inFV0' (in 2-component vector of float)
0:443 'inFV1' (in 2-component vector of float)
0:443 Sequence
@@ -2549,7 +2549,7 @@ gl_FragCoord origin is upper left
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 dot-product (temp float)
0:450 'inFV0' (in 3-component vector of float)
0:450 'inFV1' (in 3-component vector of float)
0:450 Sequence
@@ -2612,7 +2612,7 @@ gl_FragCoord origin is upper left
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 dot-product (temp float)
0:457 'inFV0' (in 4-component vector of float)
0:457 'inFV1' (in 4-component vector of float)
0:457 Sequence
@@ -2690,13 +2690,13 @@ gl_FragCoord origin is upper left
0:472 Sequence
0:472 move second child to first child (temp float)
0:472 'r05' (temp float)
-0:472 dot-product (global float)
+0:472 dot-product (temp 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 float)
0:473 'r06' (temp float)
-0:473 dot-product (global float)
+0:473 dot-product (temp float)
0:473 'inFV3' (in 3-component vector of float)
0:473 'inFV3' (in 3-component vector of float)
0:474 Sequence
@@ -2782,6 +2782,7 @@ gl_FragCoord origin is upper left
0:492 0 (const int)
0:492 Branch: Return
0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:? 'gs_ua' (shared uint)
0:? 'gs_ub' (shared uint)
0:? 'gs_uc' (shared uint)
@@ -2794,7 +2795,6 @@ gl_FragCoord origin is upper left
0:? 'gs_ua4' (shared 4-component vector of uint)
0:? 'gs_ub4' (shared 4-component vector of uint)
0:? 'gs_uc4' (shared 4-component vector of uint)
-0:? 'color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
@@ -2814,63 +2814,63 @@ gl_FragCoord origin is upper left
0:20 Sequence
0:20 move second child to first child (temp bool)
0:20 'r000' (temp bool)
-0:20 all (global bool)
+0:20 all (temp bool)
0:20 'inF0' (in float)
0:21 Sequence
0:21 move second child to first child (temp float)
0:21 'r001' (temp float)
-0:21 Absolute value (global float)
+0:21 Absolute value (temp float)
0:21 'inF0' (in float)
0:22 Sequence
0:22 move second child to first child (temp float)
0:22 'r002' (temp float)
-0:22 arc cosine (global float)
+0:22 arc cosine (temp float)
0:22 'inF0' (in float)
0:23 Sequence
0:23 move second child to first child (temp bool)
0:23 'r003' (temp bool)
-0:23 any (global bool)
+0:23 any (temp bool)
0:23 'inF0' (in float)
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'r004' (temp float)
-0:24 arc sine (global float)
+0:24 arc sine (temp float)
0:24 'inF0' (in float)
0:25 Sequence
0:25 move second child to first child (temp int)
0:25 'r005' (temp int)
-0:25 floatBitsToInt (global int)
+0:25 floatBitsToInt (temp int)
0:25 'inF0' (in float)
0:26 Sequence
0:26 move second child to first child (temp uint)
0:26 'r006' (temp uint)
-0:26 floatBitsToUint (global uint)
+0:26 floatBitsToUint (temp uint)
0:26 'inF0' (in float)
0:27 Sequence
0:27 move second child to first child (temp float)
0:27 'r007' (temp float)
-0:27 intBitsToFloat (global float)
+0:27 intBitsToFloat (temp float)
0:27 'inU0' (in uint)
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'r009' (temp float)
-0:29 arc tangent (global float)
+0:29 arc tangent (temp float)
0:29 'inF0' (in float)
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'r010' (temp float)
-0:30 arc tangent (global float)
+0:30 arc tangent (temp float)
0:30 'inF0' (in float)
0:30 'inF1' (in float)
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'r011' (temp float)
-0:31 Ceiling (global float)
+0:31 Ceiling (temp float)
0:31 'inF0' (in float)
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'r012' (temp float)
-0:32 clamp (global float)
+0:32 clamp (temp float)
0:32 'inF0' (in float)
0:32 'inF1' (in float)
0:32 'inF2' (in float)
@@ -2885,132 +2885,132 @@ gl_FragCoord origin is upper left
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'r014' (temp float)
-0:34 cosine (global float)
+0:34 cosine (temp float)
0:34 'inF0' (in float)
0:35 Sequence
0:35 move second child to first child (temp float)
0:35 'r015' (temp float)
-0:35 hyp. cosine (global float)
+0:35 hyp. cosine (temp float)
0:35 'inF0' (in float)
0:36 Sequence
0:36 move second child to first child (temp uint)
0:36 'r016' (temp uint)
-0:36 bitCount (global uint)
+0:36 bitCount (temp uint)
0:36 Constant:
0:36 7 (const uint)
0:37 Sequence
0:37 move second child to first child (temp float)
0:37 'r017' (temp float)
-0:37 dPdx (global float)
+0:37 dPdx (temp float)
0:37 'inF0' (in float)
0:38 Sequence
0:38 move second child to first child (temp float)
0:38 'r018' (temp float)
-0:38 dPdxCoarse (global float)
+0:38 dPdxCoarse (temp float)
0:38 'inF0' (in float)
0:39 Sequence
0:39 move second child to first child (temp float)
0:39 'r019' (temp float)
-0:39 dPdxFine (global float)
+0:39 dPdxFine (temp float)
0:39 'inF0' (in float)
0:40 Sequence
0:40 move second child to first child (temp float)
0:40 'r020' (temp float)
-0:40 dPdy (global float)
+0:40 dPdy (temp float)
0:40 'inF0' (in float)
0:41 Sequence
0:41 move second child to first child (temp float)
0:41 'r021' (temp float)
-0:41 dPdyCoarse (global float)
+0:41 dPdyCoarse (temp float)
0:41 'inF0' (in float)
0:42 Sequence
0:42 move second child to first child (temp float)
0:42 'r022' (temp float)
-0:42 dPdyFine (global float)
+0:42 dPdyFine (temp float)
0:42 'inF0' (in float)
0:43 Sequence
0:43 move second child to first child (temp float)
0:43 'r023' (temp float)
-0:43 degrees (global float)
+0:43 degrees (temp float)
0:43 'inF0' (in float)
0:47 Sequence
0:47 move second child to first child (temp float)
0:47 'r027' (temp float)
-0:47 exp (global float)
+0:47 exp (temp float)
0:47 'inF0' (in float)
0:48 Sequence
0:48 move second child to first child (temp float)
0:48 'r028' (temp float)
-0:48 exp2 (global float)
+0:48 exp2 (temp float)
0:48 'inF0' (in float)
0:49 Sequence
0:49 move second child to first child (temp uint)
0:49 'r029' (temp uint)
0:49 Convert int to uint (temp uint)
-0:49 findMSB (global int)
+0:49 findMSB (temp int)
0:49 Constant:
0:49 7 (const int)
0:50 Sequence
0:50 move second child to first child (temp uint)
0:50 'r030' (temp uint)
0:50 Convert int to uint (temp uint)
-0:50 findLSB (global int)
+0:50 findLSB (temp int)
0:50 Constant:
0:50 7 (const int)
0:51 Sequence
0:51 move second child to first child (temp float)
0:51 'r031' (temp float)
-0:51 Floor (global float)
+0:51 Floor (temp float)
0:51 'inF0' (in float)
0:53 Sequence
0:53 move second child to first child (temp float)
0:53 'r033' (temp float)
-0:53 mod (global float)
+0:53 mod (temp float)
0:53 'inF0' (in float)
0:53 'inF1' (in float)
0:54 Sequence
0:54 move second child to first child (temp float)
0:54 'r034' (temp float)
-0:54 Fraction (global float)
+0:54 Fraction (temp float)
0:54 'inF0' (in float)
0:55 Sequence
0:55 move second child to first child (temp float)
0:55 'r035' (temp float)
-0:55 frexp (global float)
+0:55 frexp (temp float)
0:55 'inF0' (in float)
0:55 'inF1' (in float)
0:56 Sequence
0:56 move second child to first child (temp float)
0:56 'r036' (temp float)
-0:56 fwidth (global float)
+0:56 fwidth (temp float)
0:56 'inF0' (in float)
0:57 Sequence
0:57 move second child to first child (temp bool)
0:57 'r037' (temp bool)
-0:57 isinf (global bool)
+0:57 isinf (temp bool)
0:57 'inF0' (in float)
0:58 Sequence
0:58 move second child to first child (temp bool)
0:58 'r038' (temp bool)
-0:58 isnan (global bool)
+0:58 isnan (temp bool)
0:58 'inF0' (in float)
0:59 Sequence
0:59 move second child to first child (temp float)
0:59 'r039' (temp float)
-0:59 ldexp (global float)
+0:59 ldexp (temp float)
0:59 'inF0' (in float)
0:59 'inF1' (in float)
0:60 Sequence
0:60 move second child to first child (temp float)
0:60 'r039a' (temp float)
-0:60 mix (global float)
+0:60 mix (temp float)
0:60 'inF0' (in float)
0:60 'inF1' (in float)
0:60 'inF2' (in float)
0:61 Sequence
0:61 move second child to first child (temp float)
0:61 'r040' (temp float)
-0:61 log (global float)
+0:61 log (temp float)
0:61 'inF0' (in float)
0:62 Sequence
0:62 move second child to first child (temp float)
@@ -3023,30 +3023,30 @@ gl_FragCoord origin is upper left
0:63 Sequence
0:63 move second child to first child (temp float)
0:63 'r042' (temp float)
-0:63 log2 (global float)
+0:63 log2 (temp float)
0:63 'inF0' (in float)
0:64 Sequence
0:64 move second child to first child (temp float)
0:64 'r043' (temp float)
-0:64 max (global float)
+0:64 max (temp float)
0:64 'inF0' (in float)
0:64 'inF1' (in float)
0:65 Sequence
0:65 move second child to first child (temp float)
0:65 'r044' (temp float)
-0:65 min (global float)
+0:65 min (temp float)
0:65 'inF0' (in float)
0:65 'inF1' (in float)
0:66 Sequence
0:66 move second child to first child (temp float)
0:66 'r045' (temp float)
-0:66 pow (global float)
+0:66 pow (temp float)
0:66 'inF0' (in float)
0:66 'inF1' (in float)
0:67 Sequence
0:67 move second child to first child (temp float)
0:67 'r046' (temp float)
-0:67 radians (global float)
+0:67 radians (temp float)
0:67 'inF0' (in float)
0:68 Sequence
0:68 move second child to first child (temp float)
@@ -3058,18 +3058,18 @@ gl_FragCoord origin is upper left
0:69 Sequence
0:69 move second child to first child (temp uint)
0:69 'r048' (temp uint)
-0:69 bitFieldReverse (global uint)
+0:69 bitFieldReverse (temp uint)
0:69 Constant:
0:69 2 (const uint)
0:70 Sequence
0:70 move second child to first child (temp float)
0:70 'r049' (temp float)
-0:70 roundEven (global float)
+0:70 roundEven (temp float)
0:70 'inF0' (in float)
0:71 Sequence
0:71 move second child to first child (temp float)
0:71 'r050' (temp float)
-0:71 inverse sqrt (global float)
+0:71 inverse sqrt (temp float)
0:71 'inF0' (in float)
0:72 Sequence
0:72 move second child to first child (temp float)
@@ -3083,12 +3083,12 @@ gl_FragCoord origin is upper left
0:73 Sequence
0:73 move second child to first child (temp float)
0:73 'r052' (temp float)
-0:73 Sign (global float)
+0:73 Sign (temp float)
0:73 'inF0' (in float)
0:74 Sequence
0:74 move second child to first child (temp float)
0:74 'r053' (temp float)
-0:74 sine (global float)
+0:74 sine (temp float)
0:74 'inF0' (in float)
0:75 Sequence
0:75 move second child to first child (temp float)
@@ -3102,40 +3102,40 @@ gl_FragCoord origin is upper left
0:76 Sequence
0:76 move second child to first child (temp float)
0:76 'r055' (temp float)
-0:76 hyp. sine (global float)
+0:76 hyp. sine (temp float)
0:76 'inF0' (in float)
0:77 Sequence
0:77 move second child to first child (temp float)
0:77 'r056' (temp float)
-0:77 smoothstep (global float)
+0:77 smoothstep (temp float)
0:77 'inF0' (in float)
0:77 'inF1' (in float)
0:77 'inF2' (in float)
0:78 Sequence
0:78 move second child to first child (temp float)
0:78 'r057' (temp float)
-0:78 sqrt (global float)
+0:78 sqrt (temp float)
0:78 'inF0' (in float)
0:79 Sequence
0:79 move second child to first child (temp float)
0:79 'r058' (temp float)
-0:79 step (global float)
+0:79 step (temp float)
0:79 'inF0' (in float)
0:79 'inF1' (in float)
0:80 Sequence
0:80 move second child to first child (temp float)
0:80 'r059' (temp float)
-0:80 tangent (global float)
+0:80 tangent (temp float)
0:80 'inF0' (in float)
0:81 Sequence
0:81 move second child to first child (temp float)
0:81 'r060' (temp float)
-0:81 hyp. tangent (global float)
+0:81 hyp. tangent (temp float)
0:81 'inF0' (in float)
0:83 Sequence
0:83 move second child to first child (temp float)
0:83 'r061' (temp float)
-0:83 trunc (global float)
+0:83 trunc (temp float)
0:83 'inF0' (in float)
0:85 Branch: Return with expression
0:85 Constant:
@@ -3160,63 +3160,63 @@ gl_FragCoord origin is upper left
0:98 Sequence
0:98 move second child to first child (temp bool)
0:98 'r000' (temp bool)
-0:98 all (global bool)
+0:98 all (temp bool)
0:98 'inF0' (in 2-component vector of float)
0:99 Sequence
0:99 move second child to first child (temp 2-component vector of float)
0:99 'r001' (temp 2-component vector of float)
-0:99 Absolute value (global 2-component vector of float)
+0:99 Absolute value (temp 2-component vector of float)
0:99 'inF0' (in 2-component vector of float)
0:100 Sequence
0:100 move second child to first child (temp 2-component vector of float)
0:100 'r002' (temp 2-component vector of float)
-0:100 arc cosine (global 2-component vector of float)
+0:100 arc cosine (temp 2-component vector of float)
0:100 'inF0' (in 2-component vector of float)
0:101 Sequence
0:101 move second child to first child (temp bool)
0:101 'r003' (temp bool)
-0:101 any (global bool)
+0:101 any (temp bool)
0:101 'inF0' (in 2-component vector of float)
0:102 Sequence
0:102 move second child to first child (temp 2-component vector of float)
0:102 'r004' (temp 2-component vector of float)
-0:102 arc sine (global 2-component vector of float)
+0:102 arc sine (temp 2-component vector of float)
0:102 'inF0' (in 2-component vector of float)
0:103 Sequence
0:103 move second child to first child (temp 2-component vector of int)
0:103 'r005' (temp 2-component vector of int)
-0:103 floatBitsToInt (global 2-component vector of int)
+0:103 floatBitsToInt (temp 2-component vector of int)
0:103 'inF0' (in 2-component vector of float)
0:104 Sequence
0:104 move second child to first child (temp 2-component vector of uint)
0:104 'r006' (temp 2-component vector of uint)
-0:104 floatBitsToUint (global 2-component vector of uint)
+0:104 floatBitsToUint (temp 2-component vector of uint)
0:104 'inF0' (in 2-component vector of float)
0:105 Sequence
0:105 move second child to first child (temp 2-component vector of float)
0:105 'r007' (temp 2-component vector of float)
-0:105 intBitsToFloat (global 2-component vector of float)
+0:105 intBitsToFloat (temp 2-component vector of float)
0:105 'inU0' (in 2-component vector of uint)
0:107 Sequence
0:107 move second child to first child (temp 2-component vector of float)
0:107 'r009' (temp 2-component vector of float)
-0:107 arc tangent (global 2-component vector of float)
+0:107 arc tangent (temp 2-component vector of float)
0:107 'inF0' (in 2-component vector of float)
0:108 Sequence
0:108 move second child to first child (temp 2-component vector of float)
0:108 'r010' (temp 2-component vector of float)
-0:108 arc tangent (global 2-component vector of float)
+0:108 arc tangent (temp 2-component vector of float)
0:108 'inF0' (in 2-component vector of float)
0:108 'inF1' (in 2-component vector of float)
0:109 Sequence
0:109 move second child to first child (temp 2-component vector of float)
0:109 'r011' (temp 2-component vector of float)
-0:109 Ceiling (global 2-component vector of float)
+0:109 Ceiling (temp 2-component vector of float)
0:109 'inF0' (in 2-component vector of float)
0:110 Sequence
0:110 move second child to first child (temp 2-component vector of float)
0:110 'r012' (temp 2-component vector of float)
-0:110 clamp (global 2-component vector of float)
+0:110 clamp (temp 2-component vector of float)
0:110 'inF0' (in 2-component vector of float)
0:110 'inF1' (in 2-component vector of float)
0:110 'inF2' (in 2-component vector of float)
@@ -3233,157 +3233,157 @@ gl_FragCoord origin is upper left
0:112 Sequence
0:112 move second child to first child (temp 2-component vector of float)
0:112 'r013' (temp 2-component vector of float)
-0:112 cosine (global 2-component vector of float)
+0:112 cosine (temp 2-component vector of float)
0:112 'inF0' (in 2-component vector of float)
0:113 Sequence
0:113 move second child to first child (temp 2-component vector of float)
0:113 'r015' (temp 2-component vector of float)
-0:113 hyp. cosine (global 2-component vector of float)
+0:113 hyp. cosine (temp 2-component vector of float)
0:113 'inF0' (in 2-component vector of float)
0:114 Sequence
0:114 move second child to first child (temp 2-component vector of uint)
0:114 'r016' (temp 2-component vector of uint)
-0:? bitCount (global 2-component vector of uint)
+0:? bitCount (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:115 Sequence
0:115 move second child to first child (temp 2-component vector of float)
0:115 'r017' (temp 2-component vector of float)
-0:115 dPdx (global 2-component vector of float)
+0:115 dPdx (temp 2-component vector of float)
0:115 'inF0' (in 2-component vector of float)
0:116 Sequence
0:116 move second child to first child (temp 2-component vector of float)
0:116 'r018' (temp 2-component vector of float)
-0:116 dPdxCoarse (global 2-component vector of float)
+0:116 dPdxCoarse (temp 2-component vector of float)
0:116 'inF0' (in 2-component vector of float)
0:117 Sequence
0:117 move second child to first child (temp 2-component vector of float)
0:117 'r019' (temp 2-component vector of float)
-0:117 dPdxFine (global 2-component vector of float)
+0:117 dPdxFine (temp 2-component vector of float)
0:117 'inF0' (in 2-component vector of float)
0:118 Sequence
0:118 move second child to first child (temp 2-component vector of float)
0:118 'r020' (temp 2-component vector of float)
-0:118 dPdy (global 2-component vector of float)
+0:118 dPdy (temp 2-component vector of float)
0:118 'inF0' (in 2-component vector of float)
0:119 Sequence
0:119 move second child to first child (temp 2-component vector of float)
0:119 'r021' (temp 2-component vector of float)
-0:119 dPdyCoarse (global 2-component vector of float)
+0:119 dPdyCoarse (temp 2-component vector of float)
0:119 'inF0' (in 2-component vector of float)
0:120 Sequence
0:120 move second child to first child (temp 2-component vector of float)
0:120 'r022' (temp 2-component vector of float)
-0:120 dPdyFine (global 2-component vector of float)
+0:120 dPdyFine (temp 2-component vector of float)
0:120 'inF0' (in 2-component vector of float)
0:121 Sequence
0:121 move second child to first child (temp 2-component vector of float)
0:121 'r023' (temp 2-component vector of float)
-0:121 degrees (global 2-component vector of float)
+0:121 degrees (temp 2-component vector of float)
0:121 'inF0' (in 2-component vector of float)
0:125 Sequence
0:125 move second child to first child (temp float)
0:125 'r026' (temp float)
-0:125 distance (global float)
+0:125 distance (temp float)
0:125 'inF0' (in 2-component vector of float)
0:125 'inF1' (in 2-component vector of float)
0:126 Sequence
0:126 move second child to first child (temp float)
0:126 'r027' (temp float)
-0:126 dot-product (global float)
+0:126 dot-product (temp float)
0:126 'inF0' (in 2-component vector of float)
0:126 'inF1' (in 2-component vector of float)
0:130 Sequence
0:130 move second child to first child (temp 2-component vector of float)
0:130 'r028' (temp 2-component vector of float)
-0:130 exp (global 2-component vector of float)
+0:130 exp (temp 2-component vector of float)
0:130 'inF0' (in 2-component vector of float)
0:131 Sequence
0:131 move second child to first child (temp 2-component vector of float)
0:131 'r029' (temp 2-component vector of float)
-0:131 exp2 (global 2-component vector of float)
+0:131 exp2 (temp 2-component vector of float)
0:131 'inF0' (in 2-component vector of float)
0:132 Sequence
0:132 move second child to first child (temp 2-component vector of float)
0:132 'r030' (temp 2-component vector of float)
-0:132 face-forward (global 2-component vector of float)
+0:132 face-forward (temp 2-component vector of float)
0:132 'inF0' (in 2-component vector of float)
0:132 'inF1' (in 2-component vector of float)
0:132 'inF2' (in 2-component vector of float)
0:133 Sequence
0:133 move second child to first child (temp 2-component vector of uint)
0:133 'r031' (temp 2-component vector of uint)
-0:? findMSB (global 2-component vector of uint)
+0:? findMSB (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:134 Sequence
0:134 move second child to first child (temp 2-component vector of uint)
0:134 'r032' (temp 2-component vector of uint)
-0:? findLSB (global 2-component vector of uint)
+0:? findLSB (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
0:135 Sequence
0:135 move second child to first child (temp 2-component vector of float)
0:135 'r033' (temp 2-component vector of float)
-0:135 Floor (global 2-component vector of float)
+0:135 Floor (temp 2-component vector of float)
0:135 'inF0' (in 2-component vector of float)
0:137 Sequence
0:137 move second child to first child (temp 2-component vector of float)
0:137 'r035' (temp 2-component vector of float)
-0:137 mod (global 2-component vector of float)
+0:137 mod (temp 2-component vector of float)
0:137 'inF0' (in 2-component vector of float)
0:137 'inF1' (in 2-component vector of float)
0:138 Sequence
0:138 move second child to first child (temp 2-component vector of float)
0:138 'r036' (temp 2-component vector of float)
-0:138 Fraction (global 2-component vector of float)
+0:138 Fraction (temp 2-component vector of float)
0:138 'inF0' (in 2-component vector of float)
0:139 Sequence
0:139 move second child to first child (temp 2-component vector of float)
0:139 'r037' (temp 2-component vector of float)
-0:139 frexp (global 2-component vector of float)
+0:139 frexp (temp 2-component vector of float)
0:139 'inF0' (in 2-component vector of float)
0:139 'inF1' (in 2-component vector of float)
0:140 Sequence
0:140 move second child to first child (temp 2-component vector of float)
0:140 'r038' (temp 2-component vector of float)
-0:140 fwidth (global 2-component vector of float)
+0:140 fwidth (temp 2-component vector of float)
0:140 'inF0' (in 2-component vector of float)
0:141 Sequence
0:141 move second child to first child (temp 2-component vector of bool)
0:141 'r039' (temp 2-component vector of bool)
-0:141 isinf (global 2-component vector of bool)
+0:141 isinf (temp 2-component vector of bool)
0:141 'inF0' (in 2-component vector of float)
0:142 Sequence
0:142 move second child to first child (temp 2-component vector of bool)
0:142 'r040' (temp 2-component vector of bool)
-0:142 isnan (global 2-component vector of bool)
+0:142 isnan (temp 2-component vector of bool)
0:142 'inF0' (in 2-component vector of float)
0:143 Sequence
0:143 move second child to first child (temp 2-component vector of float)
0:143 'r041' (temp 2-component vector of float)
-0:143 ldexp (global 2-component vector of float)
+0:143 ldexp (temp 2-component vector of float)
0:143 'inF0' (in 2-component vector of float)
0:143 'inF1' (in 2-component vector of float)
0:144 Sequence
0:144 move second child to first child (temp 2-component vector of float)
0:144 'r039a' (temp 2-component vector of float)
-0:144 mix (global 2-component vector of float)
+0:144 mix (temp 2-component vector of float)
0:144 'inF0' (in 2-component vector of float)
0:144 'inF1' (in 2-component vector of float)
0:144 'inF2' (in 2-component vector of float)
0:145 Sequence
0:145 move second child to first child (temp float)
0:145 'r042' (temp float)
-0:145 length (global float)
+0:145 length (temp float)
0:145 'inF0' (in 2-component vector of float)
0:146 Sequence
0:146 move second child to first child (temp 2-component vector of float)
0:146 'r043' (temp 2-component vector of float)
-0:146 log (global 2-component vector of float)
+0:146 log (temp 2-component vector of float)
0:146 'inF0' (in 2-component vector of float)
0:147 Sequence
0:147 move second child to first child (temp 2-component vector of float)
@@ -3396,35 +3396,35 @@ gl_FragCoord origin is upper left
0:148 Sequence
0:148 move second child to first child (temp 2-component vector of float)
0:148 'r045' (temp 2-component vector of float)
-0:148 log2 (global 2-component vector of float)
+0:148 log2 (temp 2-component vector of float)
0:148 'inF0' (in 2-component vector of float)
0:149 Sequence
0:149 move second child to first child (temp 2-component vector of float)
0:149 'r046' (temp 2-component vector of float)
-0:149 max (global 2-component vector of float)
+0:149 max (temp 2-component vector of float)
0:149 'inF0' (in 2-component vector of float)
0:149 'inF1' (in 2-component vector of float)
0:150 Sequence
0:150 move second child to first child (temp 2-component vector of float)
0:150 'r047' (temp 2-component vector of float)
-0:150 min (global 2-component vector of float)
+0:150 min (temp 2-component vector of float)
0:150 'inF0' (in 2-component vector of float)
0:150 'inF1' (in 2-component vector of float)
0:151 Sequence
0:151 move second child to first child (temp 2-component vector of float)
0:151 'r048' (temp 2-component vector of float)
-0:151 normalize (global 2-component vector of float)
+0:151 normalize (temp 2-component vector of float)
0:151 'inF0' (in 2-component vector of float)
0:152 Sequence
0:152 move second child to first child (temp 2-component vector of float)
0:152 'r049' (temp 2-component vector of float)
-0:152 pow (global 2-component vector of float)
+0:152 pow (temp 2-component vector of float)
0:152 'inF0' (in 2-component vector of float)
0:152 'inF1' (in 2-component vector of float)
0:153 Sequence
0:153 move second child to first child (temp 2-component vector of float)
0:153 'r050' (temp 2-component vector of float)
-0:153 radians (global 2-component vector of float)
+0:153 radians (temp 2-component vector of float)
0:153 'inF0' (in 2-component vector of float)
0:154 Sequence
0:154 move second child to first child (temp 2-component vector of float)
@@ -3436,13 +3436,13 @@ gl_FragCoord origin is upper left
0:155 Sequence
0:155 move second child to first child (temp 2-component vector of float)
0:155 'r052' (temp 2-component vector of float)
-0:155 reflect (global 2-component vector of float)
+0:155 reflect (temp 2-component vector of float)
0:155 'inF0' (in 2-component vector of float)
0:155 'inF1' (in 2-component vector of float)
0:156 Sequence
0:156 move second child to first child (temp 2-component vector of float)
0:156 'r053' (temp 2-component vector of float)
-0:156 refract (global 2-component vector of float)
+0:156 refract (temp 2-component vector of float)
0:156 'inF0' (in 2-component vector of float)
0:156 'inF1' (in 2-component vector of float)
0:156 Constant:
@@ -3450,19 +3450,19 @@ gl_FragCoord origin is upper left
0:157 Sequence
0:157 move second child to first child (temp 2-component vector of uint)
0:157 'r054' (temp 2-component vector of uint)
-0:? bitFieldReverse (global 2-component vector of uint)
+0:? bitFieldReverse (temp 2-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:158 Sequence
0:158 move second child to first child (temp 2-component vector of float)
0:158 'r055' (temp 2-component vector of float)
-0:158 roundEven (global 2-component vector of float)
+0:158 roundEven (temp 2-component vector of float)
0:158 'inF0' (in 2-component vector of float)
0:159 Sequence
0:159 move second child to first child (temp 2-component vector of float)
0:159 'r056' (temp 2-component vector of float)
-0:159 inverse sqrt (global 2-component vector of float)
+0:159 inverse sqrt (temp 2-component vector of float)
0:159 'inF0' (in 2-component vector of float)
0:160 Sequence
0:160 move second child to first child (temp 2-component vector of float)
@@ -3476,12 +3476,12 @@ gl_FragCoord origin is upper left
0:161 Sequence
0:161 move second child to first child (temp 2-component vector of float)
0:161 'r058' (temp 2-component vector of float)
-0:161 Sign (global 2-component vector of float)
+0:161 Sign (temp 2-component vector of float)
0:161 'inF0' (in 2-component vector of float)
0:162 Sequence
0:162 move second child to first child (temp 2-component vector of float)
0:162 'r059' (temp 2-component vector of float)
-0:162 sine (global 2-component vector of float)
+0:162 sine (temp 2-component vector of float)
0:162 'inF0' (in 2-component vector of float)
0:163 Sequence
0:163 move second child to first child (temp 2-component vector of float)
@@ -3495,40 +3495,40 @@ gl_FragCoord origin is upper left
0:164 Sequence
0:164 move second child to first child (temp 2-component vector of float)
0:164 'r060' (temp 2-component vector of float)
-0:164 hyp. sine (global 2-component vector of float)
+0:164 hyp. sine (temp 2-component vector of float)
0:164 'inF0' (in 2-component vector of float)
0:165 Sequence
0:165 move second child to first child (temp 2-component vector of float)
0:165 'r061' (temp 2-component vector of float)
-0:165 smoothstep (global 2-component vector of float)
+0:165 smoothstep (temp 2-component vector of float)
0:165 'inF0' (in 2-component vector of float)
0:165 'inF1' (in 2-component vector of float)
0:165 'inF2' (in 2-component vector of float)
0:166 Sequence
0:166 move second child to first child (temp 2-component vector of float)
0:166 'r062' (temp 2-component vector of float)
-0:166 sqrt (global 2-component vector of float)
+0:166 sqrt (temp 2-component vector of float)
0:166 'inF0' (in 2-component vector of float)
0:167 Sequence
0:167 move second child to first child (temp 2-component vector of float)
0:167 'r063' (temp 2-component vector of float)
-0:167 step (global 2-component vector of float)
+0:167 step (temp 2-component vector of float)
0:167 'inF0' (in 2-component vector of float)
0:167 'inF1' (in 2-component vector of float)
0:168 Sequence
0:168 move second child to first child (temp 2-component vector of float)
0:168 'r064' (temp 2-component vector of float)
-0:168 tangent (global 2-component vector of float)
+0:168 tangent (temp 2-component vector of float)
0:168 'inF0' (in 2-component vector of float)
0:169 Sequence
0:169 move second child to first child (temp 2-component vector of float)
0:169 'r065' (temp 2-component vector of float)
-0:169 hyp. tangent (global 2-component vector of float)
+0:169 hyp. tangent (temp 2-component vector of float)
0:169 'inF0' (in 2-component vector of float)
0:171 Sequence
0:171 move second child to first child (temp 2-component vector of float)
0:171 'r066' (temp 2-component vector of float)
-0:171 trunc (global 2-component vector of float)
+0:171 trunc (temp 2-component vector of float)
0:171 'inF0' (in 2-component vector of float)
0:174 Branch: Return with expression
0:? Constant:
@@ -3545,63 +3545,63 @@ gl_FragCoord origin is upper left
0:181 Sequence
0:181 move second child to first child (temp bool)
0:181 'r000' (temp bool)
-0:181 all (global bool)
+0:181 all (temp bool)
0:181 'inF0' (in 3-component vector of float)
0:182 Sequence
0:182 move second child to first child (temp 3-component vector of float)
0:182 'r001' (temp 3-component vector of float)
-0:182 Absolute value (global 3-component vector of float)
+0:182 Absolute value (temp 3-component vector of float)
0:182 'inF0' (in 3-component vector of float)
0:183 Sequence
0:183 move second child to first child (temp 3-component vector of float)
0:183 'r002' (temp 3-component vector of float)
-0:183 arc cosine (global 3-component vector of float)
+0:183 arc cosine (temp 3-component vector of float)
0:183 'inF0' (in 3-component vector of float)
0:184 Sequence
0:184 move second child to first child (temp bool)
0:184 'r003' (temp bool)
-0:184 any (global bool)
+0:184 any (temp bool)
0:184 'inF0' (in 3-component vector of float)
0:185 Sequence
0:185 move second child to first child (temp 3-component vector of float)
0:185 'r004' (temp 3-component vector of float)
-0:185 arc sine (global 3-component vector of float)
+0:185 arc sine (temp 3-component vector of float)
0:185 'inF0' (in 3-component vector of float)
0:186 Sequence
0:186 move second child to first child (temp 3-component vector of int)
0:186 'r005' (temp 3-component vector of int)
-0:186 floatBitsToInt (global 3-component vector of int)
+0:186 floatBitsToInt (temp 3-component vector of int)
0:186 'inF0' (in 3-component vector of float)
0:187 Sequence
0:187 move second child to first child (temp 3-component vector of uint)
0:187 'r006' (temp 3-component vector of uint)
-0:187 floatBitsToUint (global 3-component vector of uint)
+0:187 floatBitsToUint (temp 3-component vector of uint)
0:187 'inF0' (in 3-component vector of float)
0:188 Sequence
0:188 move second child to first child (temp 3-component vector of float)
0:188 'r007' (temp 3-component vector of float)
-0:188 intBitsToFloat (global 3-component vector of float)
+0:188 intBitsToFloat (temp 3-component vector of float)
0:188 'inU0' (in 3-component vector of uint)
0:190 Sequence
0:190 move second child to first child (temp 3-component vector of float)
0:190 'r009' (temp 3-component vector of float)
-0:190 arc tangent (global 3-component vector of float)
+0:190 arc tangent (temp 3-component vector of float)
0:190 'inF0' (in 3-component vector of float)
0:191 Sequence
0:191 move second child to first child (temp 3-component vector of float)
0:191 'r010' (temp 3-component vector of float)
-0:191 arc tangent (global 3-component vector of float)
+0:191 arc tangent (temp 3-component vector of float)
0:191 'inF0' (in 3-component vector of float)
0:191 'inF1' (in 3-component vector of float)
0:192 Sequence
0:192 move second child to first child (temp 3-component vector of float)
0:192 'r011' (temp 3-component vector of float)
-0:192 Ceiling (global 3-component vector of float)
+0:192 Ceiling (temp 3-component vector of float)
0:192 'inF0' (in 3-component vector of float)
0:193 Sequence
0:193 move second child to first child (temp 3-component vector of float)
0:193 'r012' (temp 3-component vector of float)
-0:193 clamp (global 3-component vector of float)
+0:193 clamp (temp 3-component vector of float)
0:193 'inF0' (in 3-component vector of float)
0:193 'inF1' (in 3-component vector of float)
0:193 'inF2' (in 3-component vector of float)
@@ -3619,17 +3619,17 @@ gl_FragCoord origin is upper left
0:195 Sequence
0:195 move second child to first child (temp 3-component vector of float)
0:195 'r013' (temp 3-component vector of float)
-0:195 cosine (global 3-component vector of float)
+0:195 cosine (temp 3-component vector of float)
0:195 'inF0' (in 3-component vector of float)
0:196 Sequence
0:196 move second child to first child (temp 3-component vector of float)
0:196 'r014' (temp 3-component vector of float)
-0:196 hyp. cosine (global 3-component vector of float)
+0:196 hyp. cosine (temp 3-component vector of float)
0:196 'inF0' (in 3-component vector of float)
0:197 Sequence
0:197 move second child to first child (temp 3-component vector of uint)
0:197 'r015' (temp 3-component vector of uint)
-0:? bitCount (global 3-component vector of uint)
+0:? bitCount (temp 3-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
@@ -3637,77 +3637,77 @@ gl_FragCoord origin is upper left
0:198 Sequence
0:198 move second child to first child (temp 3-component vector of float)
0:198 'r016' (temp 3-component vector of float)
-0:198 cross-product (global 3-component vector of float)
+0:198 cross-product (temp 3-component vector of float)
0:198 'inF0' (in 3-component vector of float)
0:198 'inF1' (in 3-component vector of float)
0:199 Sequence
0:199 move second child to first child (temp 3-component vector of float)
0:199 'r017' (temp 3-component vector of float)
-0:199 dPdx (global 3-component vector of float)
+0:199 dPdx (temp 3-component vector of float)
0:199 'inF0' (in 3-component vector of float)
0:200 Sequence
0:200 move second child to first child (temp 3-component vector of float)
0:200 'r018' (temp 3-component vector of float)
-0:200 dPdxCoarse (global 3-component vector of float)
+0:200 dPdxCoarse (temp 3-component vector of float)
0:200 'inF0' (in 3-component vector of float)
0:201 Sequence
0:201 move second child to first child (temp 3-component vector of float)
0:201 'r019' (temp 3-component vector of float)
-0:201 dPdxFine (global 3-component vector of float)
+0:201 dPdxFine (temp 3-component vector of float)
0:201 'inF0' (in 3-component vector of float)
0:202 Sequence
0:202 move second child to first child (temp 3-component vector of float)
0:202 'r020' (temp 3-component vector of float)
-0:202 dPdy (global 3-component vector of float)
+0:202 dPdy (temp 3-component vector of float)
0:202 'inF0' (in 3-component vector of float)
0:203 Sequence
0:203 move second child to first child (temp 3-component vector of float)
0:203 'r021' (temp 3-component vector of float)
-0:203 dPdyCoarse (global 3-component vector of float)
+0:203 dPdyCoarse (temp 3-component vector of float)
0:203 'inF0' (in 3-component vector of float)
0:204 Sequence
0:204 move second child to first child (temp 3-component vector of float)
0:204 'r022' (temp 3-component vector of float)
-0:204 dPdyFine (global 3-component vector of float)
+0:204 dPdyFine (temp 3-component vector of float)
0:204 'inF0' (in 3-component vector of float)
0:205 Sequence
0:205 move second child to first child (temp 3-component vector of float)
0:205 'r023' (temp 3-component vector of float)
-0:205 degrees (global 3-component vector of float)
+0:205 degrees (temp 3-component vector of float)
0:205 'inF0' (in 3-component vector of float)
0:206 Sequence
0:206 move second child to first child (temp float)
0:206 'r024' (temp float)
-0:206 distance (global float)
+0:206 distance (temp float)
0:206 'inF0' (in 3-component vector of float)
0:206 'inF1' (in 3-component vector of float)
0:207 Sequence
0:207 move second child to first child (temp float)
0:207 'r025' (temp float)
-0:207 dot-product (global float)
+0:207 dot-product (temp float)
0:207 'inF0' (in 3-component vector of float)
0:207 'inF1' (in 3-component vector of float)
0:211 Sequence
0:211 move second child to first child (temp 3-component vector of float)
0:211 'r029' (temp 3-component vector of float)
-0:211 exp (global 3-component vector of float)
+0:211 exp (temp 3-component vector of float)
0:211 'inF0' (in 3-component vector of float)
0:212 Sequence
0:212 move second child to first child (temp 3-component vector of float)
0:212 'r030' (temp 3-component vector of float)
-0:212 exp2 (global 3-component vector of float)
+0:212 exp2 (temp 3-component vector of float)
0:212 'inF0' (in 3-component vector of float)
0:213 Sequence
0:213 move second child to first child (temp 3-component vector of float)
0:213 'r031' (temp 3-component vector of float)
-0:213 face-forward (global 3-component vector of float)
+0:213 face-forward (temp 3-component vector of float)
0:213 'inF0' (in 3-component vector of float)
0:213 'inF1' (in 3-component vector of float)
0:213 'inF2' (in 3-component vector of float)
0:214 Sequence
0:214 move second child to first child (temp 3-component vector of uint)
0:214 'r032' (temp 3-component vector of uint)
-0:? findMSB (global 3-component vector of uint)
+0:? findMSB (temp 3-component vector of uint)
0:? Constant:
0:? 2 (const uint)
0:? 3 (const uint)
@@ -3715,7 +3715,7 @@ gl_FragCoord origin is upper left
0:215 Sequence
0:215 move second child to first child (temp 3-component vector of uint)
0:215 'r033' (temp 3-component vector of uint)
-0:? findLSB (global 3-component vector of uint)
+0:? findLSB (temp 3-component vector of uint)
0:? Constant:
0:? 2 (const uint)
0:? 3 (const uint)
@@ -3723,57 +3723,57 @@ gl_FragCoord origin is upper left
0:216 Sequence
0:216 move second child to first child (temp 3-component vector of float)
0:216 'r034' (temp 3-component vector of float)
-0:216 Floor (global 3-component vector of float)
+0:216 Floor (temp 3-component vector of float)
0:216 'inF0' (in 3-component vector of float)
0:218 Sequence
0:218 move second child to first child (temp 3-component vector of float)
0:218 'r036' (temp 3-component vector of float)
-0:218 mod (global 3-component vector of float)
+0:218 mod (temp 3-component vector of float)
0:218 'inF0' (in 3-component vector of float)
0:218 'inF1' (in 3-component vector of float)
0:219 Sequence
0:219 move second child to first child (temp 3-component vector of float)
0:219 'r037' (temp 3-component vector of float)
-0:219 Fraction (global 3-component vector of float)
+0:219 Fraction (temp 3-component vector of float)
0:219 'inF0' (in 3-component vector of float)
0:220 Sequence
0:220 move second child to first child (temp 3-component vector of float)
0:220 'r038' (temp 3-component vector of float)
-0:220 frexp (global 3-component vector of float)
+0:220 frexp (temp 3-component vector of float)
0:220 'inF0' (in 3-component vector of float)
0:220 'inF1' (in 3-component vector of float)
0:221 Sequence
0:221 move second child to first child (temp 3-component vector of float)
0:221 'r039' (temp 3-component vector of float)
-0:221 fwidth (global 3-component vector of float)
+0:221 fwidth (temp 3-component vector of float)
0:221 'inF0' (in 3-component vector of float)
0:222 Sequence
0:222 move second child to first child (temp 3-component vector of bool)
0:222 'r040' (temp 3-component vector of bool)
-0:222 isinf (global 3-component vector of bool)
+0:222 isinf (temp 3-component vector of bool)
0:222 'inF0' (in 3-component vector of float)
0:223 Sequence
0:223 move second child to first child (temp 3-component vector of bool)
0:223 'r041' (temp 3-component vector of bool)
-0:223 isnan (global 3-component vector of bool)
+0:223 isnan (temp 3-component vector of bool)
0:223 'inF0' (in 3-component vector of float)
0:224 Sequence
0:224 move second child to first child (temp 3-component vector of float)
0:224 'r042' (temp 3-component vector of float)
-0:224 ldexp (global 3-component vector of float)
+0:224 ldexp (temp 3-component vector of float)
0:224 'inF0' (in 3-component vector of float)
0:224 'inF1' (in 3-component vector of float)
0:225 Sequence
0:225 move second child to first child (temp 3-component vector of float)
0:225 'r039a' (temp 3-component vector of float)
-0:225 mix (global 3-component vector of float)
+0:225 mix (temp 3-component vector of float)
0:225 'inF0' (in 3-component vector of float)
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 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 mix (temp 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:
@@ -3781,12 +3781,12 @@ gl_FragCoord origin is upper left
0:227 Sequence
0:227 move second child to first child (temp float)
0:227 'r043' (temp float)
-0:227 length (global float)
+0:227 length (temp 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 'r044' (temp 3-component vector of float)
-0:228 log (global 3-component vector of float)
+0:228 log (temp 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)
@@ -3799,35 +3799,35 @@ gl_FragCoord origin is upper left
0:230 Sequence
0:230 move second child to first child (temp 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 log2 (temp 3-component vector of float)
0:230 'inF0' (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 'r047' (temp 3-component vector of float)
-0:231 max (global 3-component vector of float)
+0:231 max (temp 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 'r048' (temp 3-component vector of float)
-0:232 min (global 3-component vector of float)
+0:232 min (temp 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 'r049' (temp 3-component vector of float)
-0:233 normalize (global 3-component vector of float)
+0:233 normalize (temp 3-component vector of float)
0:233 'inF0' (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 'r050' (temp 3-component vector of float)
-0:234 pow (global 3-component vector of float)
+0:234 pow (temp 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 'r051' (temp 3-component vector of float)
-0:235 radians (global 3-component vector of float)
+0:235 radians (temp 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)
@@ -3839,13 +3839,13 @@ gl_FragCoord origin is upper left
0:237 Sequence
0:237 move second child to first child (temp 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 reflect (temp 3-component vector of float)
0:237 'inF0' (in 3-component vector of float)
0:237 'inF1' (in 3-component vector of float)
0:238 Sequence
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 refract (temp 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:
@@ -3853,7 +3853,7 @@ gl_FragCoord origin is upper left
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:? bitFieldReverse (temp 3-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
@@ -3861,12 +3861,12 @@ gl_FragCoord origin is upper left
0:240 Sequence
0:240 move second child to first child (temp 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 roundEven (temp 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 'r057' (temp 3-component vector of float)
-0:241 inverse sqrt (global 3-component vector of float)
+0:241 inverse sqrt (temp 3-component vector of float)
0:241 'inF0' (in 3-component vector of float)
0:242 Sequence
0:242 move second child to first child (temp 3-component vector of float)
@@ -3880,12 +3880,12 @@ gl_FragCoord origin is upper left
0:243 Sequence
0:243 move second child to first child (temp 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 Sign (temp 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 'r060' (temp 3-component vector of float)
-0:244 sine (global 3-component vector of float)
+0:244 sine (temp 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)
@@ -3899,40 +3899,40 @@ gl_FragCoord origin is upper left
0:246 Sequence
0:246 move second child to first child (temp 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 hyp. sine (temp 3-component vector of float)
0:246 'inF0' (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 'r062' (temp 3-component vector of float)
-0:247 smoothstep (global 3-component vector of float)
+0:247 smoothstep (temp 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 'r063' (temp 3-component vector of float)
-0:248 sqrt (global 3-component vector of float)
+0:248 sqrt (temp 3-component vector of float)
0:248 'inF0' (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 'r064' (temp 3-component vector of float)
-0:249 step (global 3-component vector of float)
+0:249 step (temp 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 'r065' (temp 3-component vector of float)
-0:250 tangent (global 3-component vector of float)
+0:250 tangent (temp 3-component vector of float)
0:250 'inF0' (in 3-component vector of float)
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 hyp. tangent (temp 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 trunc (temp 3-component vector of float)
0:253 'inF0' (in 3-component vector of float)
0:256 Branch: Return with expression
0:? Constant:
@@ -3950,63 +3950,63 @@ gl_FragCoord origin is upper left
0:263 Sequence
0:263 move second child to first child (temp bool)
0:263 'r000' (temp bool)
-0:263 all (global bool)
+0:263 all (temp 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 'r001' (temp 4-component vector of float)
-0:264 Absolute value (global 4-component vector of float)
+0:264 Absolute value (temp 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 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 arc cosine (temp 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 bool)
0:266 'r003' (temp bool)
-0:266 any (global bool)
+0:266 any (temp 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 float)
0:267 'r004' (temp 4-component vector of float)
-0:267 arc sine (global 4-component vector of float)
+0:267 arc sine (temp 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 int)
0:268 'r005' (temp 4-component vector of int)
-0:268 floatBitsToInt (global 4-component vector of int)
+0:268 floatBitsToInt (temp 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 uint)
0:269 'r006' (temp 4-component vector of uint)
-0:269 floatBitsToUint (global 4-component vector of uint)
+0:269 floatBitsToUint (temp 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 intBitsToFloat (temp 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 'r009' (temp 4-component vector of float)
-0:272 arc tangent (global 4-component vector of float)
+0:272 arc tangent (temp 4-component vector of float)
0:272 'inF0' (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 'r010' (temp 4-component vector of float)
-0:273 arc tangent (global 4-component vector of float)
+0:273 arc tangent (temp 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 'r011' (temp 4-component vector of float)
-0:274 Ceiling (global 4-component vector of float)
+0:274 Ceiling (temp 4-component vector of float)
0:274 'inF0' (in 4-component vector of float)
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 clamp (temp 4-component vector of float)
0:275 'inF0' (in 4-component vector of float)
0:275 'inF1' (in 4-component vector of float)
0:275 'inF2' (in 4-component vector of float)
@@ -4025,17 +4025,17 @@ gl_FragCoord origin is upper left
0:277 Sequence
0:277 move second child to first child (temp 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 cosine (temp 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 float)
0:278 'r014' (temp 4-component vector of float)
-0:278 hyp. cosine (global 4-component vector of float)
+0:278 hyp. cosine (temp 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:? bitCount (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
@@ -4044,48 +4044,48 @@ gl_FragCoord origin is upper left
0:280 Sequence
0:280 move second child to first child (temp 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 dPdx (temp 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 'r017' (temp 4-component vector of float)
-0:281 dPdxCoarse (global 4-component vector of float)
+0:281 dPdxCoarse (temp 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 'r018' (temp 4-component vector of float)
-0:282 dPdxFine (global 4-component vector of float)
+0:282 dPdxFine (temp 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 'r019' (temp 4-component vector of float)
-0:283 dPdy (global 4-component vector of float)
+0:283 dPdy (temp 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 'r020' (temp 4-component vector of float)
-0:284 dPdyCoarse (global 4-component vector of float)
+0:284 dPdyCoarse (temp 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 'r021' (temp 4-component vector of float)
-0:285 dPdyFine (global 4-component vector of float)
+0:285 dPdyFine (temp 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 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 degrees (temp 4-component vector of float)
0:286 'inF0' (in 4-component vector of float)
0:287 Sequence
0:287 move second child to first child (temp float)
0:287 'r023' (temp float)
-0:287 distance (global float)
+0:287 distance (temp 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 float)
0:288 'r024' (temp float)
-0:288 dot-product (global float)
+0:288 dot-product (temp float)
0:288 'inF0' (in 4-component vector of float)
0:288 'inF1' (in 4-component vector of float)
0:289 Sequence
@@ -4114,24 +4114,24 @@ gl_FragCoord origin is upper left
0:293 Sequence
0:293 move second child to first child (temp 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 exp (temp 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 'r030' (temp 4-component vector of float)
-0:294 exp2 (global 4-component vector of float)
+0:294 exp2 (temp 4-component vector of float)
0:294 'inF0' (in 4-component vector of float)
0:295 Sequence
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 face-forward (temp 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:? findMSB (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
@@ -4140,7 +4140,7 @@ gl_FragCoord origin is upper left
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:? findLSB (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 8 (const uint)
@@ -4149,62 +4149,62 @@ gl_FragCoord origin is upper left
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 Floor (temp 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 'r036' (temp 4-component vector of float)
-0:300 mod (global 4-component vector of float)
+0:300 mod (temp 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 'r037' (temp 4-component vector of float)
-0:301 Fraction (global 4-component vector of float)
+0:301 Fraction (temp 4-component vector of float)
0:301 'inF0' (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 'r038' (temp 4-component vector of float)
-0:302 frexp (global 4-component vector of float)
+0:302 frexp (temp 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 float)
0:303 'r039' (temp 4-component vector of float)
-0:303 fwidth (global 4-component vector of float)
+0:303 fwidth (temp 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 'r040' (temp 4-component vector of bool)
-0:304 isinf (global 4-component vector of bool)
+0:304 isinf (temp 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 bool)
0:305 'r041' (temp 4-component vector of bool)
-0:305 isnan (global 4-component vector of bool)
+0:305 isnan (temp 4-component vector of bool)
0:305 'inF0' (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 'r042' (temp 4-component vector of float)
-0:306 ldexp (global 4-component vector of float)
+0:306 ldexp (temp 4-component vector of float)
0:306 'inF0' (in 4-component vector of float)
0:306 'inF1' (in 4-component vector of float)
0:307 Sequence
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 mix (temp 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 float)
0:308 'r043' (temp float)
-0:308 length (global float)
+0:308 length (temp 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 'r044' (temp 4-component vector of float)
-0:309 log (global 4-component vector of float)
+0:309 log (temp 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)
@@ -4217,35 +4217,35 @@ gl_FragCoord origin is upper left
0:311 Sequence
0:311 move second child to first child (temp 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 log2 (temp 4-component vector of float)
0:311 'inF0' (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 'r047' (temp 4-component vector of float)
-0:312 max (global 4-component vector of float)
+0:312 max (temp 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 'r048' (temp 4-component vector of float)
-0:313 min (global 4-component vector of float)
+0:313 min (temp 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 'r049' (temp 4-component vector of float)
-0:314 normalize (global 4-component vector of float)
+0:314 normalize (temp 4-component vector of float)
0:314 'inF0' (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 'r050' (temp 4-component vector of float)
-0:315 pow (global 4-component vector of float)
+0:315 pow (temp 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 'r051' (temp 4-component vector of float)
-0:316 radians (global 4-component vector of float)
+0:316 radians (temp 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)
@@ -4257,13 +4257,13 @@ gl_FragCoord origin is upper left
0:318 Sequence
0:318 move second child to first child (temp 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 reflect (temp 4-component vector of float)
0:318 'inF0' (in 4-component vector of float)
0:318 'inF1' (in 4-component vector of float)
0:319 Sequence
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 refract (temp 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:
@@ -4271,7 +4271,7 @@ gl_FragCoord origin is upper left
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:? bitFieldReverse (temp 4-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
@@ -4280,12 +4280,12 @@ gl_FragCoord origin is upper left
0:321 Sequence
0:321 move second child to first child (temp 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 roundEven (temp 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 'r057' (temp 4-component vector of float)
-0:322 inverse sqrt (global 4-component vector of float)
+0:322 inverse sqrt (temp 4-component vector of float)
0:322 'inF0' (in 4-component vector of float)
0:323 Sequence
0:323 move second child to first child (temp 4-component vector of float)
@@ -4299,12 +4299,12 @@ gl_FragCoord origin is upper left
0:324 Sequence
0:324 move second child to first child (temp 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 Sign (temp 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 'r060' (temp 4-component vector of float)
-0:325 sine (global 4-component vector of float)
+0:325 sine (temp 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)
@@ -4318,40 +4318,40 @@ gl_FragCoord origin is upper left
0:327 Sequence
0:327 move second child to first child (temp 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 hyp. sine (temp 4-component vector of float)
0:327 'inF0' (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 'r062' (temp 4-component vector of float)
-0:328 smoothstep (global 4-component vector of float)
+0:328 smoothstep (temp 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 'r063' (temp 4-component vector of float)
-0:329 sqrt (global 4-component vector of float)
+0:329 sqrt (temp 4-component vector of float)
0:329 'inF0' (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 'r064' (temp 4-component vector of float)
-0:330 step (global 4-component vector of float)
+0:330 step (temp 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 'r065' (temp 4-component vector of float)
-0:331 tangent (global 4-component vector of float)
+0:331 tangent (temp 4-component vector of float)
0:331 'inF0' (in 4-component vector of float)
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 hyp. tangent (temp 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 trunc (temp 4-component vector of float)
0:334 'inF0' (in 4-component vector of float)
0:337 Branch: Return with expression
0:? Constant:
@@ -4368,40 +4368,40 @@ gl_FragCoord origin is upper left
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 all (temp 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 Absolute value (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
-0:403 arc cosine (global 2X2 matrix of float)
+0:403 arc 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 bool)
0:403 'r003' (temp bool)
-0:403 any (global bool)
+0:403 any (temp 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 arc sine (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 'r005' (temp 2X2 matrix of float)
-0:403 arc tangent (global 2X2 matrix of float)
+0:403 arc tangent (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 'r006' (temp 2X2 matrix of float)
-0:403 arc tangent (global 2X2 matrix of float)
+0:403 arc tangent (temp 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 Ceiling (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
0:403 Test condition and select (temp void)
0:403 Condition
@@ -4418,114 +4418,114 @@ gl_FragCoord origin is upper left
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 clamp (temp 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 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 'r010' (temp 2X2 matrix of float)
-0:403 hyp. cosine (global 2X2 matrix of float)
+0:403 hyp. 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 'r011' (temp 2X2 matrix of float)
-0:403 dPdx (global 2X2 matrix of float)
+0:403 dPdx (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 'r012' (temp 2X2 matrix of float)
-0:403 dPdxCoarse (global 2X2 matrix of float)
+0:403 dPdxCoarse (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 'r013' (temp 2X2 matrix of float)
-0:403 dPdxFine (global 2X2 matrix of float)
+0:403 dPdxFine (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 'r014' (temp 2X2 matrix of float)
-0:403 dPdy (global 2X2 matrix of float)
+0:403 dPdy (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 'r015' (temp 2X2 matrix of float)
-0:403 dPdyCoarse (global 2X2 matrix of float)
+0:403 dPdyCoarse (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 'r016' (temp 2X2 matrix of float)
-0:403 dPdyFine (global 2X2 matrix of float)
+0:403 dPdyFine (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 'r017' (temp 2X2 matrix of float)
-0:403 degrees (global 2X2 matrix of float)
+0:403 degrees (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 float)
0:403 'r018' (temp float)
-0:403 determinant (global float)
+0:403 determinant (temp 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 exp (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 'R020' (temp 2X2 matrix of float)
-0:403 exp2 (global 2X2 matrix of float)
+0:403 exp2 (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 'r021' (temp 2X2 matrix of float)
-0:403 Floor (global 2X2 matrix of float)
+0:403 Floor (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 'r022' (temp 2X2 matrix of float)
-0:403 mod (global 2X2 matrix of float)
+0:403 mod (temp 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 Fraction (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 'r024' (temp 2X2 matrix of float)
-0:403 frexp (global 2X2 matrix of float)
+0:403 frexp (temp 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 fwidth (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 'r026' (temp 2X2 matrix of float)
-0:403 ldexp (global 2X2 matrix of float)
+0:403 ldexp (temp 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 mix (temp 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 log (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)
@@ -4538,40 +4538,40 @@ gl_FragCoord origin is upper left
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 log2 (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 'r030' (temp 2X2 matrix of float)
-0:403 max (global 2X2 matrix of float)
+0:403 max (temp 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 min (temp 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 pow (temp 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 radians (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 'r034' (temp 2X2 matrix of float)
-0:403 roundEven (global 2X2 matrix of float)
+0:403 roundEven (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 'r035' (temp 2X2 matrix of float)
-0:403 inverse sqrt (global 2X2 matrix of float)
+0:403 inverse sqrt (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)
@@ -4585,12 +4585,12 @@ gl_FragCoord origin is upper left
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 Sign (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 'r038' (temp 2X2 matrix of float)
-0:403 sine (global 2X2 matrix of float)
+0:403 sine (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)
@@ -4604,42 +4604,42 @@ gl_FragCoord origin is upper left
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 hyp. sine (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 'r049' (temp 2X2 matrix of float)
-0:403 smoothstep (global 2X2 matrix of float)
+0:403 smoothstep (temp 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 sqrt (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 'r042' (temp 2X2 matrix of float)
-0:403 step (global 2X2 matrix of float)
+0:403 step (temp 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 tangent (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 'r044' (temp 2X2 matrix of float)
-0:403 hyp. tangent (global 2X2 matrix of float)
+0:403 hyp. tangent (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
-0:403 transpose (global 2X2 matrix of float)
+0:403 transpose (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 'r046' (temp 2X2 matrix of float)
-0:403 trunc (global 2X2 matrix of float)
+0:403 trunc (temp 2X2 matrix of float)
0:403 'inF0' (in 2X2 matrix of float)
0:406 Branch: Return with expression
0:? Constant:
@@ -4656,40 +4656,40 @@ gl_FragCoord origin is upper left
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 all (temp 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 Absolute value (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
-0:412 arc cosine (global 3X3 matrix of float)
+0:412 arc 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 bool)
0:412 'r003' (temp bool)
-0:412 any (global bool)
+0:412 any (temp 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 arc sine (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 'r005' (temp 3X3 matrix of float)
-0:412 arc tangent (global 3X3 matrix of float)
+0:412 arc tangent (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 'r006' (temp 3X3 matrix of float)
-0:412 arc tangent (global 3X3 matrix of float)
+0:412 arc tangent (temp 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 Ceiling (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
0:412 Test condition and select (temp void)
0:412 Condition
@@ -4711,114 +4711,114 @@ gl_FragCoord origin is upper left
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 clamp (temp 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 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 'r010' (temp 3X3 matrix of float)
-0:412 hyp. cosine (global 3X3 matrix of float)
+0:412 hyp. 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 'r011' (temp 3X3 matrix of float)
-0:412 dPdx (global 3X3 matrix of float)
+0:412 dPdx (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 'r012' (temp 3X3 matrix of float)
-0:412 dPdxCoarse (global 3X3 matrix of float)
+0:412 dPdxCoarse (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 'r013' (temp 3X3 matrix of float)
-0:412 dPdxFine (global 3X3 matrix of float)
+0:412 dPdxFine (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 'r014' (temp 3X3 matrix of float)
-0:412 dPdy (global 3X3 matrix of float)
+0:412 dPdy (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 'r015' (temp 3X3 matrix of float)
-0:412 dPdyCoarse (global 3X3 matrix of float)
+0:412 dPdyCoarse (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 'r016' (temp 3X3 matrix of float)
-0:412 dPdyFine (global 3X3 matrix of float)
+0:412 dPdyFine (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 'r017' (temp 3X3 matrix of float)
-0:412 degrees (global 3X3 matrix of float)
+0:412 degrees (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 float)
0:412 'r018' (temp float)
-0:412 determinant (global float)
+0:412 determinant (temp 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 exp (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 'R020' (temp 3X3 matrix of float)
-0:412 exp2 (global 3X3 matrix of float)
+0:412 exp2 (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 'r021' (temp 3X3 matrix of float)
-0:412 Floor (global 3X3 matrix of float)
+0:412 Floor (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 'r022' (temp 3X3 matrix of float)
-0:412 mod (global 3X3 matrix of float)
+0:412 mod (temp 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 Fraction (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 'r024' (temp 3X3 matrix of float)
-0:412 frexp (global 3X3 matrix of float)
+0:412 frexp (temp 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 fwidth (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 'r026' (temp 3X3 matrix of float)
-0:412 ldexp (global 3X3 matrix of float)
+0:412 ldexp (temp 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 mix (temp 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 log (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)
@@ -4831,40 +4831,40 @@ gl_FragCoord origin is upper left
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 log2 (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 'r030' (temp 3X3 matrix of float)
-0:412 max (global 3X3 matrix of float)
+0:412 max (temp 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 min (temp 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 pow (temp 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 radians (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 'r034' (temp 3X3 matrix of float)
-0:412 roundEven (global 3X3 matrix of float)
+0:412 roundEven (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 'r035' (temp 3X3 matrix of float)
-0:412 inverse sqrt (global 3X3 matrix of float)
+0:412 inverse sqrt (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)
@@ -4878,12 +4878,12 @@ gl_FragCoord origin is upper left
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 Sign (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 'r038' (temp 3X3 matrix of float)
-0:412 sine (global 3X3 matrix of float)
+0:412 sine (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)
@@ -4897,42 +4897,42 @@ gl_FragCoord origin is upper left
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 hyp. sine (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 'r049' (temp 3X3 matrix of float)
-0:412 smoothstep (global 3X3 matrix of float)
+0:412 smoothstep (temp 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 sqrt (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 'r042' (temp 3X3 matrix of float)
-0:412 step (global 3X3 matrix of float)
+0:412 step (temp 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 tangent (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 'r044' (temp 3X3 matrix of float)
-0:412 hyp. tangent (global 3X3 matrix of float)
+0:412 hyp. tangent (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
-0:412 transpose (global 3X3 matrix of float)
+0:412 transpose (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 'r046' (temp 3X3 matrix of float)
-0:412 trunc (global 3X3 matrix of float)
+0:412 trunc (temp 3X3 matrix of float)
0:412 'inF0' (in 3X3 matrix of float)
0:415 Branch: Return with expression
0:? Constant:
@@ -4954,40 +4954,40 @@ gl_FragCoord origin is upper left
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 all (temp 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 Absolute value (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
-0:421 arc cosine (global 4X4 matrix of float)
+0:421 arc 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 bool)
0:421 'r003' (temp bool)
-0:421 any (global bool)
+0:421 any (temp 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 arc sine (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 'r005' (temp 4X4 matrix of float)
-0:421 arc tangent (global 4X4 matrix of float)
+0:421 arc tangent (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 'r006' (temp 4X4 matrix of float)
-0:421 arc tangent (global 4X4 matrix of float)
+0:421 arc tangent (temp 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 Ceiling (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
0:421 Test condition and select (temp void)
0:421 Condition
@@ -5016,114 +5016,114 @@ gl_FragCoord origin is upper left
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 clamp (temp 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 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 'r010' (temp 4X4 matrix of float)
-0:421 hyp. cosine (global 4X4 matrix of float)
+0:421 hyp. 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 'r011' (temp 4X4 matrix of float)
-0:421 dPdx (global 4X4 matrix of float)
+0:421 dPdx (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 'r012' (temp 4X4 matrix of float)
-0:421 dPdxCoarse (global 4X4 matrix of float)
+0:421 dPdxCoarse (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 'r013' (temp 4X4 matrix of float)
-0:421 dPdxFine (global 4X4 matrix of float)
+0:421 dPdxFine (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 'r014' (temp 4X4 matrix of float)
-0:421 dPdy (global 4X4 matrix of float)
+0:421 dPdy (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 'r015' (temp 4X4 matrix of float)
-0:421 dPdyCoarse (global 4X4 matrix of float)
+0:421 dPdyCoarse (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 'r016' (temp 4X4 matrix of float)
-0:421 dPdyFine (global 4X4 matrix of float)
+0:421 dPdyFine (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 'r017' (temp 4X4 matrix of float)
-0:421 degrees (global 4X4 matrix of float)
+0:421 degrees (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 float)
0:421 'r018' (temp float)
-0:421 determinant (global float)
+0:421 determinant (temp 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 exp (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 'R020' (temp 4X4 matrix of float)
-0:421 exp2 (global 4X4 matrix of float)
+0:421 exp2 (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 'r021' (temp 4X4 matrix of float)
-0:421 Floor (global 4X4 matrix of float)
+0:421 Floor (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 'r022' (temp 4X4 matrix of float)
-0:421 mod (global 4X4 matrix of float)
+0:421 mod (temp 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 Fraction (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 'r024' (temp 4X4 matrix of float)
-0:421 frexp (global 4X4 matrix of float)
+0:421 frexp (temp 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 fwidth (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 'r026' (temp 4X4 matrix of float)
-0:421 ldexp (global 4X4 matrix of float)
+0:421 ldexp (temp 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 mix (temp 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 log (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)
@@ -5136,40 +5136,40 @@ gl_FragCoord origin is upper left
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 log2 (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 'r030' (temp 4X4 matrix of float)
-0:421 max (global 4X4 matrix of float)
+0:421 max (temp 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 min (temp 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 pow (temp 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 radians (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 'r034' (temp 4X4 matrix of float)
-0:421 roundEven (global 4X4 matrix of float)
+0:421 roundEven (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 'r035' (temp 4X4 matrix of float)
-0:421 inverse sqrt (global 4X4 matrix of float)
+0:421 inverse sqrt (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)
@@ -5183,12 +5183,12 @@ gl_FragCoord origin is upper left
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 Sign (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 'r038' (temp 4X4 matrix of float)
-0:421 sine (global 4X4 matrix of float)
+0:421 sine (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)
@@ -5202,42 +5202,42 @@ gl_FragCoord origin is upper left
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 hyp. sine (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 'r049' (temp 4X4 matrix of float)
-0:421 smoothstep (global 4X4 matrix of float)
+0:421 smoothstep (temp 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 sqrt (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 'r042' (temp 4X4 matrix of float)
-0:421 step (global 4X4 matrix of float)
+0:421 step (temp 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 tangent (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 'r044' (temp 4X4 matrix of float)
-0:421 hyp. tangent (global 4X4 matrix of float)
+0:421 hyp. tangent (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
-0:421 transpose (global 4X4 matrix of float)
+0:421 transpose (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 'r046' (temp 4X4 matrix of float)
-0:421 trunc (global 4X4 matrix of float)
+0:421 trunc (temp 4X4 matrix of float)
0:421 'inF0' (in 4X4 matrix of float)
0:424 Branch: Return with expression
0:? Constant:
@@ -5287,7 +5287,7 @@ gl_FragCoord origin is upper left
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 dot-product (temp float)
0:443 'inFV0' (in 2-component vector of float)
0:443 'inFV1' (in 2-component vector of float)
0:443 Sequence
@@ -5350,7 +5350,7 @@ gl_FragCoord origin is upper left
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 dot-product (temp float)
0:450 'inFV0' (in 3-component vector of float)
0:450 'inFV1' (in 3-component vector of float)
0:450 Sequence
@@ -5413,7 +5413,7 @@ gl_FragCoord origin is upper left
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 dot-product (temp float)
0:457 'inFV0' (in 4-component vector of float)
0:457 'inFV1' (in 4-component vector of float)
0:457 Sequence
@@ -5491,13 +5491,13 @@ gl_FragCoord origin is upper left
0:472 Sequence
0:472 move second child to first child (temp float)
0:472 'r05' (temp float)
-0:472 dot-product (global float)
+0:472 dot-product (temp 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 float)
0:473 'r06' (temp float)
-0:473 dot-product (global float)
+0:473 dot-product (temp float)
0:473 'inFV3' (in 3-component vector of float)
0:473 'inFV3' (in 3-component vector of float)
0:474 Sequence
@@ -5583,6 +5583,7 @@ gl_FragCoord origin is upper left
0:492 0 (const int)
0:492 Branch: Return
0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
0:? 'gs_ua' (shared uint)
0:? 'gs_ub' (shared uint)
0:? 'gs_uc' (shared uint)
@@ -5595,7 +5596,6 @@ gl_FragCoord origin is upper left
0:? 'gs_ua4' (shared 4-component vector of uint)
0:? 'gs_ub4' (shared 4-component vector of uint)
0:? 'gs_uc4' (shared 4-component vector of uint)
-0:? 'color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out
index 29ee0095..e2750543 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out
@@ -78,36 +78,36 @@ ERROR: node is still EOpNull!
0:5 'inF0' (in float)
0:5 Convert float to uint (temp uint)
0:5 'inF1' (in float)
-0:6 Function Call: CheckAccessFullyMapped(u1; (global bool)
+0:6 Function Call: CheckAccessFullyMapped(u1; (temp bool)
0:6 Constant:
0:6 3 (const uint)
-0:7 bitCount (global uint)
+0:7 bitCount (temp uint)
0:7 Convert float to uint (temp uint)
0:7 'inF0' (in float)
-0:8 cross-product (global 3-component vector of float)
+0:8 cross-product (temp 3-component vector of float)
0:8 Construct vec3 (in 3-component vector of float)
0:8 'inF0' (in float)
0:8 Construct vec3 (in 3-component vector of float)
0:8 'inF1' (in float)
-0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int)
+0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int)
0:9 Construct vec4 (in 4-component vector of float)
0:9 'inF0' (in float)
0:10 Constant:
0:10 0.000000
0:12 ERROR: Bad unary op
- (global float)
+ (temp float)
0:12 Convert float to uint (temp uint)
0:12 'inF0' (in float)
-0:13 findMSB (global uint)
+0:13 findMSB (temp uint)
0:13 Convert float to uint (temp uint)
0:13 'inF0' (in float)
-0:14 findLSB (global uint)
+0:14 findLSB (temp uint)
0:14 Convert float to uint (temp uint)
0:14 'inF0' (in float)
-0:23 length (global float)
+0:23 length (temp float)
0:23 Construct vec2 (in 2-component vector of float)
0:23 'inF0' (in float)
-0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint)
+0:24 Function Call: msad4(u1;vu2;vu4; (temp 4-component vector of uint)
0:24 Convert float to uint (temp uint)
0:24 'inF0' (in float)
0:24 Constant:
@@ -118,15 +118,15 @@ ERROR: node is still EOpNull!
0:24 0 (const uint)
0:24 0 (const uint)
0:24 0 (const uint)
-0:25 normalize (global 2-component vector of float)
+0:25 normalize (temp 2-component vector of float)
0:25 Construct vec2 (in 2-component vector of float)
0:25 'inF0' (in float)
-0:26 reflect (global 2-component vector of float)
+0:26 reflect (temp 2-component vector of float)
0:26 Construct vec2 (in 2-component vector of float)
0:26 'inF0' (in float)
0:26 Construct vec2 (in 2-component vector of float)
0:26 'inF1' (in float)
-0:27 refract (global 2-component vector of float)
+0:27 refract (temp 2-component vector of float)
0:27 Construct vec2 (in 2-component vector of float)
0:27 'inF0' (in float)
0:27 Construct vec2 (in 2-component vector of float)
@@ -134,7 +134,7 @@ ERROR: node is still EOpNull!
0:27 'inF2' (in float)
0:28 Constant:
0:28 0.000000
-0:29 bitFieldReverse (global uint)
+0:29 bitFieldReverse (temp uint)
0:29 Convert float to uint (temp uint)
0:29 'inF0' (in float)
0:30 Constant:
@@ -162,14 +162,14 @@ ERROR: node is still EOpNull!
0:45 'inI0' (in 2-component vector of int)
0:? Sequence
0:46 ERROR: Bad aggregation op
- (global 2-component vector of double)
+ (temp 2-component vector of double)
0:46 Convert float to uint (temp 2-component vector of uint)
0:46 'inF0' (in 2-component vector of float)
0:46 Convert float to uint (temp 2-component vector of uint)
0:46 'inF1' (in 2-component vector of float)
0:47 Constant:
0:47 0.000000
-0:48 bitCount (global 2-component vector of uint)
+0:48 bitCount (temp 2-component vector of uint)
0:48 Convert float to uint (temp 2-component vector of uint)
0:48 'inF0' (in 2-component vector of float)
0:49 Constant:
@@ -179,16 +179,16 @@ ERROR: node is still EOpNull!
0:51 Constant:
0:51 0.000000
0:52 ERROR: Bad unary op
- (global 2-component vector of float)
+ (temp 2-component vector of float)
0:52 Convert float to uint (temp 2-component vector of uint)
0:52 'inF0' (in 2-component vector of float)
-0:53 findMSB (global 2-component vector of uint)
+0:53 findMSB (temp 2-component vector of uint)
0:53 Convert float to uint (temp 2-component vector of uint)
0:53 'inF0' (in 2-component vector of float)
-0:54 findLSB (global 2-component vector of uint)
+0:54 findLSB (temp 2-component vector of uint)
0:54 Convert float to uint (temp 2-component vector of uint)
0:54 'inF0' (in 2-component vector of float)
-0:56 bitFieldReverse (global 2-component vector of uint)
+0:56 bitFieldReverse (temp 2-component vector of uint)
0:56 Convert float to uint (temp 2-component vector of uint)
0:56 'inF0' (in 2-component vector of float)
0:57 Constant:
@@ -206,7 +206,7 @@ ERROR: node is still EOpNull!
0:? Sequence
0:64 Constant:
0:64 0.000000
-0:65 bitCount (global 3-component vector of uint)
+0:65 bitCount (temp 3-component vector of uint)
0:65 Convert float to uint (temp 3-component vector of uint)
0:65 'inF0' (in 3-component vector of float)
0:66 Constant:
@@ -214,16 +214,16 @@ ERROR: node is still EOpNull!
0:67 Constant:
0:67 0.000000
0:68 ERROR: Bad unary op
- (global 3-component vector of float)
+ (temp 3-component vector of float)
0:68 Convert float to uint (temp 3-component vector of uint)
0:68 'inF0' (in 3-component vector of float)
-0:69 findMSB (global 3-component vector of uint)
+0:69 findMSB (temp 3-component vector of uint)
0:69 Convert float to uint (temp 3-component vector of uint)
0:69 'inF0' (in 3-component vector of float)
-0:70 findLSB (global 3-component vector of uint)
+0:70 findLSB (temp 3-component vector of uint)
0:70 Convert float to uint (temp 3-component vector of uint)
0:70 'inF0' (in 3-component vector of float)
-0:72 bitFieldReverse (global 3-component vector of uint)
+0:72 bitFieldReverse (temp 3-component vector of uint)
0:72 Convert float to uint (temp 3-component vector of uint)
0:72 'inF0' (in 3-component vector of float)
0:73 Constant:
@@ -242,10 +242,10 @@ ERROR: node is still EOpNull!
0:? Sequence
0:81 Constant:
0:81 0.000000
-0:82 bitCount (global 4-component vector of uint)
+0:82 bitCount (temp 4-component vector of uint)
0:82 Convert float to uint (temp 4-component vector of uint)
0:82 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:83 cross-product (global 3-component vector of float)
+0:83 cross-product (temp 3-component vector of float)
0:83 Construct vec3 (in 3-component vector of float)
0:83 'inF0' (layout(location=0 ) in 4-component vector of float)
0:83 Construct vec3 (in 3-component vector of float)
@@ -253,16 +253,16 @@ ERROR: node is still EOpNull!
0:84 Constant:
0:84 0.000000
0:85 ERROR: Bad unary op
- (global 4-component vector of float)
+ (temp 4-component vector of float)
0:85 Convert float to uint (temp 4-component vector of uint)
0:85 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:86 findMSB (global 4-component vector of uint)
+0:86 findMSB (temp 4-component vector of uint)
0:86 Convert float to uint (temp 4-component vector of uint)
0:86 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:87 findLSB (global 4-component vector of uint)
+0:87 findLSB (temp 4-component vector of uint)
0:87 Convert float to uint (temp 4-component vector of uint)
0:87 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:89 bitFieldReverse (global 4-component vector of uint)
+0:89 bitFieldReverse (temp 4-component vector of uint)
0:89 Convert float to uint (temp 4-component vector of uint)
0:89 'inF0' (layout(location=0 ) in 4-component vector of float)
0:90 Constant:
@@ -434,36 +434,36 @@ ERROR: node is still EOpNull!
0:5 'inF0' (in float)
0:5 Convert float to uint (temp uint)
0:5 'inF1' (in float)
-0:6 Function Call: CheckAccessFullyMapped(u1; (global bool)
+0:6 Function Call: CheckAccessFullyMapped(u1; (temp bool)
0:6 Constant:
0:6 3 (const uint)
-0:7 bitCount (global uint)
+0:7 bitCount (temp uint)
0:7 Convert float to uint (temp uint)
0:7 'inF0' (in float)
-0:8 cross-product (global 3-component vector of float)
+0:8 cross-product (temp 3-component vector of float)
0:8 Construct vec3 (in 3-component vector of float)
0:8 'inF0' (in float)
0:8 Construct vec3 (in 3-component vector of float)
0:8 'inF1' (in float)
-0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int)
+0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int)
0:9 Construct vec4 (in 4-component vector of float)
0:9 'inF0' (in float)
0:10 Constant:
0:10 0.000000
0:12 ERROR: Bad unary op
- (global float)
+ (temp float)
0:12 Convert float to uint (temp uint)
0:12 'inF0' (in float)
-0:13 findMSB (global uint)
+0:13 findMSB (temp uint)
0:13 Convert float to uint (temp uint)
0:13 'inF0' (in float)
-0:14 findLSB (global uint)
+0:14 findLSB (temp uint)
0:14 Convert float to uint (temp uint)
0:14 'inF0' (in float)
-0:23 length (global float)
+0:23 length (temp float)
0:23 Construct vec2 (in 2-component vector of float)
0:23 'inF0' (in float)
-0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint)
+0:24 Function Call: msad4(u1;vu2;vu4; (temp 4-component vector of uint)
0:24 Convert float to uint (temp uint)
0:24 'inF0' (in float)
0:24 Constant:
@@ -474,15 +474,15 @@ ERROR: node is still EOpNull!
0:24 0 (const uint)
0:24 0 (const uint)
0:24 0 (const uint)
-0:25 normalize (global 2-component vector of float)
+0:25 normalize (temp 2-component vector of float)
0:25 Construct vec2 (in 2-component vector of float)
0:25 'inF0' (in float)
-0:26 reflect (global 2-component vector of float)
+0:26 reflect (temp 2-component vector of float)
0:26 Construct vec2 (in 2-component vector of float)
0:26 'inF0' (in float)
0:26 Construct vec2 (in 2-component vector of float)
0:26 'inF1' (in float)
-0:27 refract (global 2-component vector of float)
+0:27 refract (temp 2-component vector of float)
0:27 Construct vec2 (in 2-component vector of float)
0:27 'inF0' (in float)
0:27 Construct vec2 (in 2-component vector of float)
@@ -490,7 +490,7 @@ ERROR: node is still EOpNull!
0:27 'inF2' (in float)
0:28 Constant:
0:28 0.000000
-0:29 bitFieldReverse (global uint)
+0:29 bitFieldReverse (temp uint)
0:29 Convert float to uint (temp uint)
0:29 'inF0' (in float)
0:30 Constant:
@@ -518,14 +518,14 @@ ERROR: node is still EOpNull!
0:45 'inI0' (in 2-component vector of int)
0:? Sequence
0:46 ERROR: Bad aggregation op
- (global 2-component vector of double)
+ (temp 2-component vector of double)
0:46 Convert float to uint (temp 2-component vector of uint)
0:46 'inF0' (in 2-component vector of float)
0:46 Convert float to uint (temp 2-component vector of uint)
0:46 'inF1' (in 2-component vector of float)
0:47 Constant:
0:47 0.000000
-0:48 bitCount (global 2-component vector of uint)
+0:48 bitCount (temp 2-component vector of uint)
0:48 Convert float to uint (temp 2-component vector of uint)
0:48 'inF0' (in 2-component vector of float)
0:49 Constant:
@@ -535,16 +535,16 @@ ERROR: node is still EOpNull!
0:51 Constant:
0:51 0.000000
0:52 ERROR: Bad unary op
- (global 2-component vector of float)
+ (temp 2-component vector of float)
0:52 Convert float to uint (temp 2-component vector of uint)
0:52 'inF0' (in 2-component vector of float)
-0:53 findMSB (global 2-component vector of uint)
+0:53 findMSB (temp 2-component vector of uint)
0:53 Convert float to uint (temp 2-component vector of uint)
0:53 'inF0' (in 2-component vector of float)
-0:54 findLSB (global 2-component vector of uint)
+0:54 findLSB (temp 2-component vector of uint)
0:54 Convert float to uint (temp 2-component vector of uint)
0:54 'inF0' (in 2-component vector of float)
-0:56 bitFieldReverse (global 2-component vector of uint)
+0:56 bitFieldReverse (temp 2-component vector of uint)
0:56 Convert float to uint (temp 2-component vector of uint)
0:56 'inF0' (in 2-component vector of float)
0:57 Constant:
@@ -562,7 +562,7 @@ ERROR: node is still EOpNull!
0:? Sequence
0:64 Constant:
0:64 0.000000
-0:65 bitCount (global 3-component vector of uint)
+0:65 bitCount (temp 3-component vector of uint)
0:65 Convert float to uint (temp 3-component vector of uint)
0:65 'inF0' (in 3-component vector of float)
0:66 Constant:
@@ -570,16 +570,16 @@ ERROR: node is still EOpNull!
0:67 Constant:
0:67 0.000000
0:68 ERROR: Bad unary op
- (global 3-component vector of float)
+ (temp 3-component vector of float)
0:68 Convert float to uint (temp 3-component vector of uint)
0:68 'inF0' (in 3-component vector of float)
-0:69 findMSB (global 3-component vector of uint)
+0:69 findMSB (temp 3-component vector of uint)
0:69 Convert float to uint (temp 3-component vector of uint)
0:69 'inF0' (in 3-component vector of float)
-0:70 findLSB (global 3-component vector of uint)
+0:70 findLSB (temp 3-component vector of uint)
0:70 Convert float to uint (temp 3-component vector of uint)
0:70 'inF0' (in 3-component vector of float)
-0:72 bitFieldReverse (global 3-component vector of uint)
+0:72 bitFieldReverse (temp 3-component vector of uint)
0:72 Convert float to uint (temp 3-component vector of uint)
0:72 'inF0' (in 3-component vector of float)
0:73 Constant:
@@ -598,10 +598,10 @@ ERROR: node is still EOpNull!
0:? Sequence
0:81 Constant:
0:81 0.000000
-0:82 bitCount (global 4-component vector of uint)
+0:82 bitCount (temp 4-component vector of uint)
0:82 Convert float to uint (temp 4-component vector of uint)
0:82 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:83 cross-product (global 3-component vector of float)
+0:83 cross-product (temp 3-component vector of float)
0:83 Construct vec3 (in 3-component vector of float)
0:83 'inF0' (layout(location=0 ) in 4-component vector of float)
0:83 Construct vec3 (in 3-component vector of float)
@@ -609,16 +609,16 @@ ERROR: node is still EOpNull!
0:84 Constant:
0:84 0.000000
0:85 ERROR: Bad unary op
- (global 4-component vector of float)
+ (temp 4-component vector of float)
0:85 Convert float to uint (temp 4-component vector of uint)
0:85 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:86 findMSB (global 4-component vector of uint)
+0:86 findMSB (temp 4-component vector of uint)
0:86 Convert float to uint (temp 4-component vector of uint)
0:86 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:87 findLSB (global 4-component vector of uint)
+0:87 findLSB (temp 4-component vector of uint)
0:87 Convert float to uint (temp 4-component vector of uint)
0:87 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:89 bitFieldReverse (global 4-component vector of uint)
+0:89 bitFieldReverse (temp 4-component vector of uint)
0:89 Convert float to uint (temp 4-component vector of uint)
0:89 'inF0' (layout(location=0 ) in 4-component vector of float)
0:90 Constant:
diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out
index 72b6fbcc..b57a5a9a 100644
--- a/Test/baseResults/hlsl.intrinsics.negative.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out
@@ -114,6 +114,11 @@ Shader version: 450
0:? 4.000000
0:? 4.000000
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
+0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
+0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
+0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
0:? 'gs_ua' (global uint)
0:? 'gs_ub' (global uint)
0:? 'gs_uc' (global uint)
@@ -126,11 +131,6 @@ Shader version: 450
0:? 'gs_ua4' (global 4-component vector of uint)
0:? 'gs_ub4' (global 4-component vector of uint)
0:? 'gs_uc4' (global 4-component vector of uint)
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
-0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
-0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
Linked vertex stage:
@@ -251,6 +251,11 @@ Shader version: 450
0:? 4.000000
0:? 4.000000
0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
+0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
+0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
+0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
0:? 'gs_ua' (global uint)
0:? 'gs_ub' (global uint)
0:? 'gs_uc' (global uint)
@@ -263,11 +268,6 @@ Shader version: 450
0:? 'gs_ua4' (global 4-component vector of uint)
0:? 'gs_ub4' (global 4-component vector of uint)
0:? 'gs_uc4' (global 4-component vector of uint)
-0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'inF0' (layout(location=0 ) in 4-component vector of float)
-0:? 'inF1' (layout(location=1 ) in 4-component vector of float)
-0:? 'inF2' (layout(location=2 ) in 4-component vector of float)
-0:? 'inI0' (layout(location=3 ) in 4-component vector of int)
// Module Version 10000
// Generated by (magic number): 80001
@@ -276,7 +276,7 @@ Shader version: 450
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Vertex 4 "VertexShaderFunction" 85 122 123 124 127
+ EntryPoint Vertex 4 "VertexShaderFunction" 85 102 103 104 107
Name 4 "VertexShaderFunction"
Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;"
Name 11 "inF0"
@@ -311,27 +311,27 @@ Shader version: 450
Name 66 "inF1"
Name 67 "inF2"
Name 85 "@entryPointOutput"
- Name 103 "gs_ua"
- Name 104 "gs_ub"
- Name 105 "gs_uc"
- Name 108 "gs_ua2"
- Name 109 "gs_ub2"
- Name 110 "gs_uc2"
- Name 113 "gs_ua3"
- Name 114 "gs_ub3"
- Name 115 "gs_uc3"
- Name 118 "gs_ua4"
- Name 119 "gs_ub4"
- Name 120 "gs_uc4"
- Name 122 "inF0"
- Name 123 "inF1"
- Name 124 "inF2"
- Name 127 "inI0"
+ Name 102 "inF0"
+ Name 103 "inF1"
+ Name 104 "inF2"
+ Name 107 "inI0"
+ Name 110 "gs_ua"
+ Name 111 "gs_ub"
+ Name 112 "gs_uc"
+ Name 115 "gs_ua2"
+ Name 116 "gs_ub2"
+ Name 117 "gs_uc2"
+ Name 120 "gs_ua3"
+ Name 121 "gs_ub3"
+ Name 122 "gs_uc3"
+ Name 125 "gs_ua4"
+ Name 126 "gs_ub4"
+ Name 127 "gs_uc4"
Decorate 85(@entryPointOutput) Location 0
- Decorate 122(inF0) Location 0
- Decorate 123(inF1) Location 1
- Decorate 124(inF2) Location 2
- Decorate 127(inI0) Location 3
+ Decorate 102(inF0) Location 0
+ Decorate 103(inF1) Location 1
+ Decorate 104(inF2) Location 2
+ Decorate 107(inI0) Location 3
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -375,33 +375,33 @@ Shader version: 450
94: 53 ConstantComposite 93 93 93
97: 61(fvec4) ConstantComposite 86 86 86 86
98: 62 ConstantComposite 97 97 97 97
- 101: TypeInt 32 0
- 102: TypePointer Private 101(int)
- 103(gs_ua): 102(ptr) Variable Private
- 104(gs_ub): 102(ptr) Variable Private
- 105(gs_uc): 102(ptr) Variable Private
- 106: TypeVector 101(int) 2
- 107: TypePointer Private 106(ivec2)
- 108(gs_ua2): 107(ptr) Variable Private
- 109(gs_ub2): 107(ptr) Variable Private
- 110(gs_uc2): 107(ptr) Variable Private
- 111: TypeVector 101(int) 3
- 112: TypePointer Private 111(ivec3)
- 113(gs_ua3): 112(ptr) Variable Private
- 114(gs_ub3): 112(ptr) Variable Private
- 115(gs_uc3): 112(ptr) Variable Private
- 116: TypeVector 101(int) 4
- 117: TypePointer Private 116(ivec4)
- 118(gs_ua4): 117(ptr) Variable Private
- 119(gs_ub4): 117(ptr) Variable Private
- 120(gs_uc4): 117(ptr) Variable Private
- 121: TypePointer Input 61(fvec4)
- 122(inF0): 121(ptr) Variable Input
- 123(inF1): 121(ptr) Variable Input
- 124(inF2): 121(ptr) Variable Input
- 125: TypeVector 8(int) 4
- 126: TypePointer Input 125(ivec4)
- 127(inI0): 126(ptr) Variable Input
+ 101: TypePointer Input 61(fvec4)
+ 102(inF0): 101(ptr) Variable Input
+ 103(inF1): 101(ptr) Variable Input
+ 104(inF2): 101(ptr) Variable Input
+ 105: TypeVector 8(int) 4
+ 106: TypePointer Input 105(ivec4)
+ 107(inI0): 106(ptr) Variable Input
+ 108: TypeInt 32 0
+ 109: TypePointer Private 108(int)
+ 110(gs_ua): 109(ptr) Variable Private
+ 111(gs_ub): 109(ptr) Variable Private
+ 112(gs_uc): 109(ptr) Variable Private
+ 113: TypeVector 108(int) 2
+ 114: TypePointer Private 113(ivec2)
+ 115(gs_ua2): 114(ptr) Variable Private
+ 116(gs_ub2): 114(ptr) Variable Private
+ 117(gs_uc2): 114(ptr) Variable Private
+ 118: TypeVector 108(int) 3
+ 119: TypePointer Private 118(ivec3)
+ 120(gs_ua3): 119(ptr) Variable Private
+ 121(gs_ub3): 119(ptr) Variable Private
+ 122(gs_uc3): 119(ptr) Variable Private
+ 123: TypeVector 108(int) 4
+ 124: TypePointer Private 123(ivec4)
+ 125(gs_ua4): 124(ptr) Variable Private
+ 126(gs_ub4): 124(ptr) Variable Private
+ 127(gs_uc4): 124(ptr) Variable Private
4(VertexShaderFunction): 2 Function None 3
5: Label
Store 85(@entryPointOutput) 87
diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out
index 811a752d..bcf911bc 100644
--- a/Test/baseResults/hlsl.intrinsics.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.vert.out
@@ -9,99 +9,99 @@ Shader version: 450
0:2 'inU0' (in uint)
0:2 'inU1' (in uint)
0:? Sequence
-0:3 all (global bool)
+0:3 all (temp bool)
0:3 'inF0' (in float)
-0:4 Absolute value (global float)
+0:4 Absolute value (temp float)
0:4 'inF0' (in float)
-0:5 arc cosine (global float)
+0:5 arc cosine (temp float)
0:5 'inF0' (in float)
-0:6 any (global bool)
+0:6 any (temp bool)
0:6 'inF0' (in float)
-0:7 arc sine (global float)
+0:7 arc sine (temp float)
0:7 'inF0' (in float)
-0:8 floatBitsToInt (global int)
+0:8 floatBitsToInt (temp int)
0:8 'inF0' (in float)
-0:9 floatBitsToUint (global uint)
+0:9 floatBitsToUint (temp uint)
0:9 'inF0' (in float)
-0:10 intBitsToFloat (global float)
+0:10 intBitsToFloat (temp float)
0:10 'inU0' (in uint)
-0:12 arc tangent (global float)
+0:12 arc tangent (temp float)
0:12 'inF0' (in float)
-0:13 arc tangent (global float)
+0:13 arc tangent (temp float)
0:13 'inF0' (in float)
0:13 'inF1' (in float)
-0:14 Ceiling (global float)
+0:14 Ceiling (temp float)
0:14 'inF0' (in float)
-0:15 clamp (global float)
+0:15 clamp (temp float)
0:15 'inF0' (in float)
0:15 'inF1' (in float)
0:15 'inF2' (in float)
-0:16 cosine (global float)
+0:16 cosine (temp float)
0:16 'inF0' (in float)
-0:17 hyp. cosine (global float)
+0:17 hyp. cosine (temp float)
0:17 'inF0' (in float)
-0:18 bitCount (global uint)
+0:18 bitCount (temp uint)
0:18 Constant:
0:18 7 (const uint)
-0:19 degrees (global float)
+0:19 degrees (temp float)
0:19 'inF0' (in float)
-0:23 exp (global float)
+0:23 exp (temp float)
0:23 'inF0' (in float)
-0:24 exp2 (global float)
+0:24 exp2 (temp float)
0:24 'inF0' (in float)
-0:25 findMSB (global int)
+0:25 findMSB (temp int)
0:25 Constant:
0:25 7 (const int)
-0:26 findLSB (global int)
+0:26 findLSB (temp int)
0:26 Constant:
0:26 7 (const int)
-0:27 Floor (global float)
+0:27 Floor (temp float)
0:27 'inF0' (in float)
-0:29 mod (global float)
+0:29 mod (temp float)
0:29 'inF0' (in float)
0:29 'inF1' (in float)
-0:30 Fraction (global float)
+0:30 Fraction (temp float)
0:30 'inF0' (in float)
-0:31 frexp (global float)
+0:31 frexp (temp float)
0:31 'inF0' (in float)
0:31 'inF1' (in float)
-0:32 isinf (global bool)
+0:32 isinf (temp bool)
0:32 'inF0' (in float)
-0:33 isnan (global bool)
+0:33 isnan (temp bool)
0:33 'inF0' (in float)
-0:34 ldexp (global float)
+0:34 ldexp (temp float)
0:34 'inF0' (in float)
0:34 'inF1' (in float)
-0:35 mix (global float)
+0:35 mix (temp float)
0:35 'inF0' (in float)
0:35 'inF1' (in float)
0:35 'inF2' (in float)
-0:36 log (global float)
+0:36 log (temp float)
0:36 'inF0' (in float)
0:37 component-wise multiply (temp float)
0:37 log2 (temp float)
0:37 'inF0' (in float)
0:37 Constant:
0:37 0.301030
-0:38 log2 (global float)
+0:38 log2 (temp float)
0:38 'inF0' (in float)
-0:39 max (global float)
+0:39 max (temp float)
0:39 'inF0' (in float)
0:39 'inF1' (in float)
-0:40 min (global float)
+0:40 min (temp float)
0:40 'inF0' (in float)
0:40 'inF1' (in float)
-0:42 pow (global float)
+0:42 pow (temp float)
0:42 'inF0' (in float)
0:42 'inF1' (in float)
-0:43 radians (global float)
+0:43 radians (temp float)
0:43 'inF0' (in float)
-0:44 bitFieldReverse (global uint)
+0:44 bitFieldReverse (temp uint)
0:44 Constant:
0:44 2 (const uint)
-0:45 roundEven (global float)
+0:45 roundEven (temp float)
0:45 'inF0' (in float)
-0:46 inverse sqrt (global float)
+0:46 inverse sqrt (temp float)
0:46 'inF0' (in float)
0:47 clamp (temp float)
0:47 'inF0' (in float)
@@ -109,9 +109,9 @@ Shader version: 450
0:47 0.000000
0:47 Constant:
0:47 1.000000
-0:48 Sign (global float)
+0:48 Sign (temp float)
0:48 'inF0' (in float)
-0:49 sine (global float)
+0:49 sine (temp float)
0:49 'inF0' (in float)
0:50 Sequence
0:50 move second child to first child (temp float)
@@ -122,22 +122,22 @@ Shader version: 450
0:50 'inF2' (in float)
0:50 cosine (temp float)
0:50 'inF0' (in float)
-0:51 hyp. sine (global float)
+0:51 hyp. sine (temp float)
0:51 'inF0' (in float)
-0:52 smoothstep (global float)
+0:52 smoothstep (temp float)
0:52 'inF0' (in float)
0:52 'inF1' (in float)
0:52 'inF2' (in float)
-0:53 sqrt (global float)
+0:53 sqrt (temp float)
0:53 'inF0' (in float)
-0:54 step (global float)
+0:54 step (temp float)
0:54 'inF0' (in float)
0:54 'inF1' (in float)
-0:55 tangent (global float)
+0:55 tangent (temp float)
0:55 'inF0' (in float)
-0:56 hyp. tangent (global float)
+0:56 hyp. tangent (temp float)
0:56 'inF0' (in float)
-0:58 trunc (global float)
+0:58 trunc (temp float)
0:58 'inF0' (in float)
0:60 Branch: Return with expression
0:60 Constant:
@@ -159,123 +159,123 @@ Shader version: 450
0:70 'inU0' (in 2-component vector of uint)
0:70 'inU1' (in 2-component vector of uint)
0:? Sequence
-0:71 all (global bool)
+0:71 all (temp bool)
0:71 'inF0' (in 2-component vector of float)
-0:72 Absolute value (global 2-component vector of float)
+0:72 Absolute value (temp 2-component vector of float)
0:72 'inF0' (in 2-component vector of float)
-0:73 arc cosine (global 2-component vector of float)
+0:73 arc cosine (temp 2-component vector of float)
0:73 'inF0' (in 2-component vector of float)
-0:74 any (global bool)
+0:74 any (temp bool)
0:74 'inF0' (in 2-component vector of float)
-0:75 arc sine (global 2-component vector of float)
+0:75 arc sine (temp 2-component vector of float)
0:75 'inF0' (in 2-component vector of float)
-0:76 floatBitsToInt (global 2-component vector of int)
+0:76 floatBitsToInt (temp 2-component vector of int)
0:76 'inF0' (in 2-component vector of float)
-0:77 floatBitsToUint (global 2-component vector of uint)
+0:77 floatBitsToUint (temp 2-component vector of uint)
0:77 'inF0' (in 2-component vector of float)
-0:78 intBitsToFloat (global 2-component vector of float)
+0:78 intBitsToFloat (temp 2-component vector of float)
0:78 'inU0' (in 2-component vector of uint)
-0:80 arc tangent (global 2-component vector of float)
+0:80 arc tangent (temp 2-component vector of float)
0:80 'inF0' (in 2-component vector of float)
-0:81 arc tangent (global 2-component vector of float)
+0:81 arc tangent (temp 2-component vector of float)
0:81 'inF0' (in 2-component vector of float)
0:81 'inF1' (in 2-component vector of float)
-0:82 Ceiling (global 2-component vector of float)
+0:82 Ceiling (temp 2-component vector of float)
0:82 'inF0' (in 2-component vector of float)
-0:83 clamp (global 2-component vector of float)
+0:83 clamp (temp 2-component vector of float)
0:83 'inF0' (in 2-component vector of float)
0:83 'inF1' (in 2-component vector of float)
0:83 'inF2' (in 2-component vector of float)
-0:84 cosine (global 2-component vector of float)
+0:84 cosine (temp 2-component vector of float)
0:84 'inF0' (in 2-component vector of float)
-0:85 hyp. cosine (global 2-component vector of float)
+0:85 hyp. cosine (temp 2-component vector of float)
0:85 'inF0' (in 2-component vector of float)
-0:? bitCount (global 2-component vector of uint)
+0:? bitCount (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
-0:87 degrees (global 2-component vector of float)
+0:87 degrees (temp 2-component vector of float)
0:87 'inF0' (in 2-component vector of float)
-0:88 distance (global float)
+0:88 distance (temp float)
0:88 'inF0' (in 2-component vector of float)
0:88 'inF1' (in 2-component vector of float)
-0:89 dot-product (global float)
+0:89 dot-product (temp float)
0:89 'inF0' (in 2-component vector of float)
0:89 'inF1' (in 2-component vector of float)
-0:93 exp (global 2-component vector of float)
+0:93 exp (temp 2-component vector of float)
0:93 'inF0' (in 2-component vector of float)
-0:94 exp2 (global 2-component vector of float)
+0:94 exp2 (temp 2-component vector of float)
0:94 'inF0' (in 2-component vector of float)
-0:95 face-forward (global 2-component vector of float)
+0:95 face-forward (temp 2-component vector of float)
0:95 'inF0' (in 2-component vector of float)
0:95 'inF1' (in 2-component vector of float)
0:95 'inF2' (in 2-component vector of float)
-0:96 findMSB (global int)
+0:96 findMSB (temp int)
0:96 Constant:
0:96 7 (const int)
-0:97 findLSB (global int)
+0:97 findLSB (temp int)
0:97 Constant:
0:97 7 (const int)
-0:98 Floor (global 2-component vector of float)
+0:98 Floor (temp 2-component vector of float)
0:98 'inF0' (in 2-component vector of float)
-0:100 mod (global 2-component vector of float)
+0:100 mod (temp 2-component vector of float)
0:100 'inF0' (in 2-component vector of float)
0:100 'inF1' (in 2-component vector of float)
-0:101 Fraction (global 2-component vector of float)
+0:101 Fraction (temp 2-component vector of float)
0:101 'inF0' (in 2-component vector of float)
-0:102 frexp (global 2-component vector of float)
+0:102 frexp (temp 2-component vector of float)
0:102 'inF0' (in 2-component vector of float)
0:102 'inF1' (in 2-component vector of float)
-0:103 isinf (global 2-component vector of bool)
+0:103 isinf (temp 2-component vector of bool)
0:103 'inF0' (in 2-component vector of float)
-0:104 isnan (global 2-component vector of bool)
+0:104 isnan (temp 2-component vector of bool)
0:104 'inF0' (in 2-component vector of float)
-0:105 ldexp (global 2-component vector of float)
+0:105 ldexp (temp 2-component vector of float)
0:105 'inF0' (in 2-component vector of float)
0:105 'inF1' (in 2-component vector of float)
-0:106 mix (global 2-component vector of float)
+0:106 mix (temp 2-component vector of float)
0:106 'inF0' (in 2-component vector of float)
0:106 'inF1' (in 2-component vector of float)
0:106 'inF2' (in 2-component vector of float)
-0:107 length (global float)
+0:107 length (temp float)
0:107 'inF0' (in 2-component vector of float)
-0:108 log (global 2-component vector of float)
+0:108 log (temp 2-component vector of float)
0:108 'inF0' (in 2-component vector of float)
0:109 vector-scale (temp 2-component vector of float)
0:109 log2 (temp 2-component vector of float)
0:109 'inF0' (in 2-component vector of float)
0:109 Constant:
0:109 0.301030
-0:110 log2 (global 2-component vector of float)
+0:110 log2 (temp 2-component vector of float)
0:110 'inF0' (in 2-component vector of float)
-0:111 max (global 2-component vector of float)
+0:111 max (temp 2-component vector of float)
0:111 'inF0' (in 2-component vector of float)
0:111 'inF1' (in 2-component vector of float)
-0:112 min (global 2-component vector of float)
+0:112 min (temp 2-component vector of float)
0:112 'inF0' (in 2-component vector of float)
0:112 'inF1' (in 2-component vector of float)
-0:114 normalize (global 2-component vector of float)
+0:114 normalize (temp 2-component vector of float)
0:114 'inF0' (in 2-component vector of float)
-0:115 pow (global 2-component vector of float)
+0:115 pow (temp 2-component vector of float)
0:115 'inF0' (in 2-component vector of float)
0:115 'inF1' (in 2-component vector of float)
-0:116 radians (global 2-component vector of float)
+0:116 radians (temp 2-component vector of float)
0:116 'inF0' (in 2-component vector of float)
-0:117 reflect (global 2-component vector of float)
+0:117 reflect (temp 2-component vector of float)
0:117 'inF0' (in 2-component vector of float)
0:117 'inF1' (in 2-component vector of float)
-0:118 refract (global 2-component vector of float)
+0:118 refract (temp 2-component vector of float)
0:118 'inF0' (in 2-component vector of float)
0:118 'inF1' (in 2-component vector of float)
0:118 Constant:
0:118 2.000000
-0:? bitFieldReverse (global 2-component vector of uint)
+0:? bitFieldReverse (temp 2-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
-0:120 roundEven (global 2-component vector of float)
+0:120 roundEven (temp 2-component vector of float)
0:120 'inF0' (in 2-component vector of float)
-0:121 inverse sqrt (global 2-component vector of float)
+0:121 inverse sqrt (temp 2-component vector of float)
0:121 'inF0' (in 2-component vector of float)
0:122 clamp (temp 2-component vector of float)
0:122 'inF0' (in 2-component vector of float)
@@ -283,9 +283,9 @@ Shader version: 450
0:122 0.000000
0:122 Constant:
0:122 1.000000
-0:123 Sign (global 2-component vector of float)
+0:123 Sign (temp 2-component vector of float)
0:123 'inF0' (in 2-component vector of float)
-0:124 sine (global 2-component vector of float)
+0:124 sine (temp 2-component vector of float)
0:124 'inF0' (in 2-component vector of float)
0:125 Sequence
0:125 move second child to first child (temp 2-component vector of float)
@@ -296,22 +296,22 @@ Shader version: 450
0:125 'inF2' (in 2-component vector of float)
0:125 cosine (temp 2-component vector of float)
0:125 'inF0' (in 2-component vector of float)
-0:126 hyp. sine (global 2-component vector of float)
+0:126 hyp. sine (temp 2-component vector of float)
0:126 'inF0' (in 2-component vector of float)
-0:127 smoothstep (global 2-component vector of float)
+0:127 smoothstep (temp 2-component vector of float)
0:127 'inF0' (in 2-component vector of float)
0:127 'inF1' (in 2-component vector of float)
0:127 'inF2' (in 2-component vector of float)
-0:128 sqrt (global 2-component vector of float)
+0:128 sqrt (temp 2-component vector of float)
0:128 'inF0' (in 2-component vector of float)
-0:129 step (global 2-component vector of float)
+0:129 step (temp 2-component vector of float)
0:129 'inF0' (in 2-component vector of float)
0:129 'inF1' (in 2-component vector of float)
-0:130 tangent (global 2-component vector of float)
+0:130 tangent (temp 2-component vector of float)
0:130 'inF0' (in 2-component vector of float)
-0:131 hyp. tangent (global 2-component vector of float)
+0:131 hyp. tangent (temp 2-component vector of float)
0:131 'inF0' (in 2-component vector of float)
-0:133 trunc (global 2-component vector of float)
+0:133 trunc (temp 2-component vector of float)
0:133 'inF0' (in 2-component vector of float)
0:136 Branch: Return with expression
0:? Constant:
@@ -325,128 +325,128 @@ Shader version: 450
0:140 'inU0' (in 3-component vector of uint)
0:140 'inU1' (in 3-component vector of uint)
0:? Sequence
-0:141 all (global bool)
+0:141 all (temp bool)
0:141 'inF0' (in 3-component vector of float)
-0:142 Absolute value (global 3-component vector of float)
+0:142 Absolute value (temp 3-component vector of float)
0:142 'inF0' (in 3-component vector of float)
-0:143 arc cosine (global 3-component vector of float)
+0:143 arc cosine (temp 3-component vector of float)
0:143 'inF0' (in 3-component vector of float)
-0:144 any (global bool)
+0:144 any (temp bool)
0:144 'inF0' (in 3-component vector of float)
-0:145 arc sine (global 3-component vector of float)
+0:145 arc sine (temp 3-component vector of float)
0:145 'inF0' (in 3-component vector of float)
-0:146 floatBitsToInt (global 3-component vector of int)
+0:146 floatBitsToInt (temp 3-component vector of int)
0:146 'inF0' (in 3-component vector of float)
-0:147 floatBitsToUint (global 3-component vector of uint)
+0:147 floatBitsToUint (temp 3-component vector of uint)
0:147 'inF0' (in 3-component vector of float)
-0:148 intBitsToFloat (global 3-component vector of float)
+0:148 intBitsToFloat (temp 3-component vector of float)
0:148 'inU0' (in 3-component vector of uint)
-0:150 arc tangent (global 3-component vector of float)
+0:150 arc tangent (temp 3-component vector of float)
0:150 'inF0' (in 3-component vector of float)
-0:151 arc tangent (global 3-component vector of float)
+0:151 arc tangent (temp 3-component vector of float)
0:151 'inF0' (in 3-component vector of float)
0:151 'inF1' (in 3-component vector of float)
-0:152 Ceiling (global 3-component vector of float)
+0:152 Ceiling (temp 3-component vector of float)
0:152 'inF0' (in 3-component vector of float)
-0:153 clamp (global 3-component vector of float)
+0:153 clamp (temp 3-component vector of float)
0:153 'inF0' (in 3-component vector of float)
0:153 'inF1' (in 3-component vector of float)
0:153 'inF2' (in 3-component vector of float)
-0:154 cosine (global 3-component vector of float)
+0:154 cosine (temp 3-component vector of float)
0:154 'inF0' (in 3-component vector of float)
-0:155 hyp. cosine (global 3-component vector of float)
+0:155 hyp. cosine (temp 3-component vector of float)
0:155 'inF0' (in 3-component vector of float)
-0:? bitCount (global 3-component vector of uint)
+0:? bitCount (temp 3-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:? 5 (const uint)
-0:157 cross-product (global 3-component vector of float)
+0:157 cross-product (temp 3-component vector of float)
0:157 'inF0' (in 3-component vector of float)
0:157 'inF1' (in 3-component vector of float)
-0:158 degrees (global 3-component vector of float)
+0:158 degrees (temp 3-component vector of float)
0:158 'inF0' (in 3-component vector of float)
-0:159 distance (global float)
+0:159 distance (temp float)
0:159 'inF0' (in 3-component vector of float)
0:159 'inF1' (in 3-component vector of float)
-0:160 dot-product (global float)
+0:160 dot-product (temp float)
0:160 'inF0' (in 3-component vector of float)
0:160 'inF1' (in 3-component vector of float)
-0:164 exp (global 3-component vector of float)
+0:164 exp (temp 3-component vector of float)
0:164 'inF0' (in 3-component vector of float)
-0:165 exp2 (global 3-component vector of float)
+0:165 exp2 (temp 3-component vector of float)
0:165 'inF0' (in 3-component vector of float)
-0:166 face-forward (global 3-component vector of float)
+0:166 face-forward (temp 3-component vector of float)
0:166 'inF0' (in 3-component vector of float)
0:166 'inF1' (in 3-component vector of float)
0:166 'inF2' (in 3-component vector of float)
-0:167 findMSB (global int)
+0:167 findMSB (temp int)
0:167 Constant:
0:167 7 (const int)
-0:168 findLSB (global int)
+0:168 findLSB (temp int)
0:168 Constant:
0:168 7 (const int)
-0:169 Floor (global 3-component vector of float)
+0:169 Floor (temp 3-component vector of float)
0:169 'inF0' (in 3-component vector of float)
-0:171 mod (global 3-component vector of float)
+0:171 mod (temp 3-component vector of float)
0:171 'inF0' (in 3-component vector of float)
0:171 'inF1' (in 3-component vector of float)
-0:172 Fraction (global 3-component vector of float)
+0:172 Fraction (temp 3-component vector of float)
0:172 'inF0' (in 3-component vector of float)
-0:173 frexp (global 3-component vector of float)
+0:173 frexp (temp 3-component vector of float)
0:173 'inF0' (in 3-component vector of float)
0:173 'inF1' (in 3-component vector of float)
-0:174 isinf (global 3-component vector of bool)
+0:174 isinf (temp 3-component vector of bool)
0:174 'inF0' (in 3-component vector of float)
-0:175 isnan (global 3-component vector of bool)
+0:175 isnan (temp 3-component vector of bool)
0:175 'inF0' (in 3-component vector of float)
-0:176 ldexp (global 3-component vector of float)
+0:176 ldexp (temp 3-component vector of float)
0:176 'inF0' (in 3-component vector of float)
0:176 'inF1' (in 3-component vector of float)
-0:177 mix (global 3-component vector of float)
+0:177 mix (temp 3-component vector of float)
0:177 'inF0' (in 3-component vector of float)
0:177 'inF1' (in 3-component vector of float)
0:177 'inF2' (in 3-component vector of float)
-0:178 length (global float)
+0:178 length (temp float)
0:178 'inF0' (in 3-component vector of float)
-0:179 log (global 3-component vector of float)
+0:179 log (temp 3-component vector of float)
0:179 'inF0' (in 3-component vector of float)
0:180 vector-scale (temp 3-component vector of float)
0:180 log2 (temp 3-component vector of float)
0:180 'inF0' (in 3-component vector of float)
0:180 Constant:
0:180 0.301030
-0:181 log2 (global 3-component vector of float)
+0:181 log2 (temp 3-component vector of float)
0:181 'inF0' (in 3-component vector of float)
-0:182 max (global 3-component vector of float)
+0:182 max (temp 3-component vector of float)
0:182 'inF0' (in 3-component vector of float)
0:182 'inF1' (in 3-component vector of float)
-0:183 min (global 3-component vector of float)
+0:183 min (temp 3-component vector of float)
0:183 'inF0' (in 3-component vector of float)
0:183 'inF1' (in 3-component vector of float)
-0:185 normalize (global 3-component vector of float)
+0:185 normalize (temp 3-component vector of float)
0:185 'inF0' (in 3-component vector of float)
-0:186 pow (global 3-component vector of float)
+0:186 pow (temp 3-component vector of float)
0:186 'inF0' (in 3-component vector of float)
0:186 'inF1' (in 3-component vector of float)
-0:187 radians (global 3-component vector of float)
+0:187 radians (temp 3-component vector of float)
0:187 'inF0' (in 3-component vector of float)
-0:188 reflect (global 3-component vector of float)
+0:188 reflect (temp 3-component vector of float)
0:188 'inF0' (in 3-component vector of float)
0:188 'inF1' (in 3-component vector of float)
-0:189 refract (global 3-component vector of float)
+0:189 refract (temp 3-component vector of float)
0:189 'inF0' (in 3-component vector of float)
0:189 'inF1' (in 3-component vector of float)
0:189 Constant:
0:189 2.000000
-0:? bitFieldReverse (global 3-component vector of uint)
+0:? bitFieldReverse (temp 3-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
-0:191 roundEven (global 3-component vector of float)
+0:191 roundEven (temp 3-component vector of float)
0:191 'inF0' (in 3-component vector of float)
-0:192 inverse sqrt (global 3-component vector of float)
+0:192 inverse sqrt (temp 3-component vector of float)
0:192 'inF0' (in 3-component vector of float)
0:193 clamp (temp 3-component vector of float)
0:193 'inF0' (in 3-component vector of float)
@@ -454,9 +454,9 @@ Shader version: 450
0:193 0.000000
0:193 Constant:
0:193 1.000000
-0:194 Sign (global 3-component vector of float)
+0:194 Sign (temp 3-component vector of float)
0:194 'inF0' (in 3-component vector of float)
-0:195 sine (global 3-component vector of float)
+0:195 sine (temp 3-component vector of float)
0:195 'inF0' (in 3-component vector of float)
0:196 Sequence
0:196 move second child to first child (temp 3-component vector of float)
@@ -467,22 +467,22 @@ Shader version: 450
0:196 'inF2' (in 3-component vector of float)
0:196 cosine (temp 3-component vector of float)
0:196 'inF0' (in 3-component vector of float)
-0:197 hyp. sine (global 3-component vector of float)
+0:197 hyp. sine (temp 3-component vector of float)
0:197 'inF0' (in 3-component vector of float)
-0:198 smoothstep (global 3-component vector of float)
+0:198 smoothstep (temp 3-component vector of float)
0:198 'inF0' (in 3-component vector of float)
0:198 'inF1' (in 3-component vector of float)
0:198 'inF2' (in 3-component vector of float)
-0:199 sqrt (global 3-component vector of float)
+0:199 sqrt (temp 3-component vector of float)
0:199 'inF0' (in 3-component vector of float)
-0:200 step (global 3-component vector of float)
+0:200 step (temp 3-component vector of float)
0:200 'inF0' (in 3-component vector of float)
0:200 'inF1' (in 3-component vector of float)
-0:201 tangent (global 3-component vector of float)
+0:201 tangent (temp 3-component vector of float)
0:201 'inF0' (in 3-component vector of float)
-0:202 hyp. tangent (global 3-component vector of float)
+0:202 hyp. tangent (temp 3-component vector of float)
0:202 'inF0' (in 3-component vector of float)
-0:204 trunc (global 3-component vector of float)
+0:204 trunc (temp 3-component vector of float)
0:204 'inF0' (in 3-component vector of float)
0:207 Branch: Return with expression
0:? Constant:
@@ -497,49 +497,49 @@ Shader version: 450
0:211 'inU0' (in 4-component vector of uint)
0:211 'inU1' (in 4-component vector of uint)
0:? Sequence
-0:212 all (global bool)
+0:212 all (temp bool)
0:212 'inF0' (in 4-component vector of float)
-0:213 Absolute value (global 4-component vector of float)
+0:213 Absolute value (temp 4-component vector of float)
0:213 'inF0' (in 4-component vector of float)
-0:214 arc cosine (global 4-component vector of float)
+0:214 arc cosine (temp 4-component vector of float)
0:214 'inF0' (in 4-component vector of float)
-0:215 any (global bool)
+0:215 any (temp bool)
0:215 'inF0' (in 4-component vector of float)
-0:216 arc sine (global 4-component vector of float)
+0:216 arc sine (temp 4-component vector of float)
0:216 'inF0' (in 4-component vector of float)
-0:217 floatBitsToInt (global 4-component vector of int)
+0:217 floatBitsToInt (temp 4-component vector of int)
0:217 'inF0' (in 4-component vector of float)
-0:218 floatBitsToUint (global 4-component vector of uint)
+0:218 floatBitsToUint (temp 4-component vector of uint)
0:218 'inF0' (in 4-component vector of float)
-0:219 intBitsToFloat (global 4-component vector of float)
+0:219 intBitsToFloat (temp 4-component vector of float)
0:219 'inU0' (in 4-component vector of uint)
-0:221 arc tangent (global 4-component vector of float)
+0:221 arc tangent (temp 4-component vector of float)
0:221 'inF0' (in 4-component vector of float)
-0:222 arc tangent (global 4-component vector of float)
+0:222 arc tangent (temp 4-component vector of float)
0:222 'inF0' (in 4-component vector of float)
0:222 'inF1' (in 4-component vector of float)
-0:223 Ceiling (global 4-component vector of float)
+0:223 Ceiling (temp 4-component vector of float)
0:223 'inF0' (in 4-component vector of float)
-0:224 clamp (global 4-component vector of float)
+0:224 clamp (temp 4-component vector of float)
0:224 'inF0' (in 4-component vector of float)
0:224 'inF1' (in 4-component vector of float)
0:224 'inF2' (in 4-component vector of float)
-0:225 cosine (global 4-component vector of float)
+0:225 cosine (temp 4-component vector of float)
0:225 'inF0' (in 4-component vector of float)
-0:226 hyp. cosine (global 4-component vector of float)
+0:226 hyp. cosine (temp 4-component vector of float)
0:226 'inF0' (in 4-component vector of float)
-0:? bitCount (global 4-component vector of uint)
+0:? bitCount (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:? 5 (const uint)
0:? 2 (const uint)
-0:228 degrees (global 4-component vector of float)
+0:228 degrees (temp 4-component vector of float)
0:228 'inF0' (in 4-component vector of float)
-0:229 distance (global float)
+0:229 distance (temp float)
0:229 'inF0' (in 4-component vector of float)
0:229 'inF1' (in 4-component vector of float)
-0:230 dot-product (global float)
+0:230 dot-product (temp float)
0:230 'inF0' (in 4-component vector of float)
0:230 'inF1' (in 4-component vector of float)
0:231 Construct vec4 (temp 4-component vector of float)
@@ -562,82 +562,82 @@ Shader version: 450
0:231 'inF1' (in 4-component vector of float)
0:231 Constant:
0:231 3 (const int)
-0:235 exp (global 4-component vector of float)
+0:235 exp (temp 4-component vector of float)
0:235 'inF0' (in 4-component vector of float)
-0:236 exp2 (global 4-component vector of float)
+0:236 exp2 (temp 4-component vector of float)
0:236 'inF0' (in 4-component vector of float)
-0:237 face-forward (global 4-component vector of float)
+0:237 face-forward (temp 4-component vector of float)
0:237 'inF0' (in 4-component vector of float)
0:237 'inF1' (in 4-component vector of float)
0:237 'inF2' (in 4-component vector of float)
-0:238 findMSB (global int)
+0:238 findMSB (temp int)
0:238 Constant:
0:238 7 (const int)
-0:239 findLSB (global int)
+0:239 findLSB (temp int)
0:239 Constant:
0:239 7 (const int)
-0:240 Floor (global 4-component vector of float)
+0:240 Floor (temp 4-component vector of float)
0:240 'inF0' (in 4-component vector of float)
-0:242 mod (global 4-component vector of float)
+0:242 mod (temp 4-component vector of float)
0:242 'inF0' (in 4-component vector of float)
0:242 'inF1' (in 4-component vector of float)
-0:243 Fraction (global 4-component vector of float)
+0:243 Fraction (temp 4-component vector of float)
0:243 'inF0' (in 4-component vector of float)
-0:244 frexp (global 4-component vector of float)
+0:244 frexp (temp 4-component vector of float)
0:244 'inF0' (in 4-component vector of float)
0:244 'inF1' (in 4-component vector of float)
-0:245 isinf (global 4-component vector of bool)
+0:245 isinf (temp 4-component vector of bool)
0:245 'inF0' (in 4-component vector of float)
-0:246 isnan (global 4-component vector of bool)
+0:246 isnan (temp 4-component vector of bool)
0:246 'inF0' (in 4-component vector of float)
-0:247 ldexp (global 4-component vector of float)
+0:247 ldexp (temp 4-component vector of float)
0:247 'inF0' (in 4-component vector of float)
0:247 'inF1' (in 4-component vector of float)
-0:248 mix (global 4-component vector of float)
+0:248 mix (temp 4-component vector of float)
0:248 'inF0' (in 4-component vector of float)
0:248 'inF1' (in 4-component vector of float)
0:248 'inF2' (in 4-component vector of float)
-0:249 length (global float)
+0:249 length (temp float)
0:249 'inF0' (in 4-component vector of float)
-0:250 log (global 4-component vector of float)
+0:250 log (temp 4-component vector of float)
0:250 'inF0' (in 4-component vector of float)
0:251 vector-scale (temp 4-component vector of float)
0:251 log2 (temp 4-component vector of float)
0:251 'inF0' (in 4-component vector of float)
0:251 Constant:
0:251 0.301030
-0:252 log2 (global 4-component vector of float)
+0:252 log2 (temp 4-component vector of float)
0:252 'inF0' (in 4-component vector of float)
-0:253 max (global 4-component vector of float)
+0:253 max (temp 4-component vector of float)
0:253 'inF0' (in 4-component vector of float)
0:253 'inF1' (in 4-component vector of float)
-0:254 min (global 4-component vector of float)
+0:254 min (temp 4-component vector of float)
0:254 'inF0' (in 4-component vector of float)
0:254 'inF1' (in 4-component vector of float)
-0:256 normalize (global 4-component vector of float)
+0:256 normalize (temp 4-component vector of float)
0:256 'inF0' (in 4-component vector of float)
-0:257 pow (global 4-component vector of float)
+0:257 pow (temp 4-component vector of float)
0:257 'inF0' (in 4-component vector of float)
0:257 'inF1' (in 4-component vector of float)
-0:258 radians (global 4-component vector of float)
+0:258 radians (temp 4-component vector of float)
0:258 'inF0' (in 4-component vector of float)
-0:259 reflect (global 4-component vector of float)
+0:259 reflect (temp 4-component vector of float)
0:259 'inF0' (in 4-component vector of float)
0:259 'inF1' (in 4-component vector of float)
-0:260 refract (global 4-component vector of float)
+0:260 refract (temp 4-component vector of float)
0:260 'inF0' (in 4-component vector of float)
0:260 'inF1' (in 4-component vector of float)
0:260 Constant:
0:260 2.000000
-0:? bitFieldReverse (global 4-component vector of uint)
+0:? bitFieldReverse (temp 4-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
0:? 4 (const uint)
-0:262 roundEven (global 4-component vector of float)
+0:262 roundEven (temp 4-component vector of float)
0:262 'inF0' (in 4-component vector of float)
-0:263 inverse sqrt (global 4-component vector of float)
+0:263 inverse sqrt (temp 4-component vector of float)
0:263 'inF0' (in 4-component vector of float)
0:264 clamp (temp 4-component vector of float)
0:264 'inF0' (in 4-component vector of float)
@@ -645,9 +645,9 @@ Shader version: 450
0:264 0.000000
0:264 Constant:
0:264 1.000000
-0:265 Sign (global 4-component vector of float)
+0:265 Sign (temp 4-component vector of float)
0:265 'inF0' (in 4-component vector of float)
-0:266 sine (global 4-component vector of float)
+0:266 sine (temp 4-component vector of float)
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 float)
@@ -658,22 +658,22 @@ Shader version: 450
0:267 'inF2' (in 4-component vector of float)
0:267 cosine (temp 4-component vector of float)
0:267 'inF0' (in 4-component vector of float)
-0:268 hyp. sine (global 4-component vector of float)
+0:268 hyp. sine (temp 4-component vector of float)
0:268 'inF0' (in 4-component vector of float)
-0:269 smoothstep (global 4-component vector of float)
+0:269 smoothstep (temp 4-component vector of float)
0:269 'inF0' (in 4-component vector of float)
0:269 'inF1' (in 4-component vector of float)
0:269 'inF2' (in 4-component vector of float)
-0:270 sqrt (global 4-component vector of float)
+0:270 sqrt (temp 4-component vector of float)
0:270 'inF0' (in 4-component vector of float)
-0:271 step (global 4-component vector of float)
+0:271 step (temp 4-component vector of float)
0:271 'inF0' (in 4-component vector of float)
0:271 'inF1' (in 4-component vector of float)
-0:272 tangent (global 4-component vector of float)
+0:272 tangent (temp 4-component vector of float)
0:272 'inF0' (in 4-component vector of float)
-0:273 hyp. tangent (global 4-component vector of float)
+0:273 hyp. tangent (temp 4-component vector of float)
0:273 'inF0' (in 4-component vector of float)
-0:275 trunc (global 4-component vector of float)
+0:275 trunc (temp 4-component vector of float)
0:275 'inF0' (in 4-component vector of float)
0:278 Branch: Return with expression
0:? Constant:
@@ -687,85 +687,85 @@ Shader version: 450
0:336 'inF1' (in 2X2 matrix of float)
0:336 'inF2' (in 2X2 matrix of float)
0:? Sequence
-0:338 all (global bool)
+0:338 all (temp bool)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 Absolute value (global 2X2 matrix of float)
+0:338 Absolute value (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc cosine (global 2X2 matrix of float)
+0:338 arc cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 any (global bool)
+0:338 any (temp bool)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc sine (global 2X2 matrix of float)
+0:338 arc sine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc tangent (global 2X2 matrix of float)
+0:338 arc tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc tangent (global 2X2 matrix of float)
+0:338 arc tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 Ceiling (global 2X2 matrix of float)
+0:338 Ceiling (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 clamp (global 2X2 matrix of float)
+0:338 clamp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
0:338 'inF2' (in 2X2 matrix of float)
-0:338 cosine (global 2X2 matrix of float)
+0:338 cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 hyp. cosine (global 2X2 matrix of float)
+0:338 hyp. cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 degrees (global 2X2 matrix of float)
+0:338 degrees (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 determinant (global float)
+0:338 determinant (temp float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 exp (global 2X2 matrix of float)
+0:338 exp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 exp2 (global 2X2 matrix of float)
+0:338 exp2 (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 findMSB (global int)
+0:338 findMSB (temp int)
0:338 Constant:
0:338 7 (const int)
-0:338 findLSB (global int)
+0:338 findLSB (temp int)
0:338 Constant:
0:338 7 (const int)
-0:338 Floor (global 2X2 matrix of float)
+0:338 Floor (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 mod (global 2X2 matrix of float)
+0:338 mod (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 Fraction (global 2X2 matrix of float)
+0:338 Fraction (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 frexp (global 2X2 matrix of float)
+0:338 frexp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 ldexp (global 2X2 matrix of float)
+0:338 ldexp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 mix (global 2X2 matrix of float)
+0:338 mix (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
0:338 'inF2' (in 2X2 matrix of float)
-0:338 log (global 2X2 matrix of float)
+0:338 log (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 matrix-scale (temp 2X2 matrix of float)
0:338 log2 (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 Constant:
0:338 0.301030
-0:338 log2 (global 2X2 matrix of float)
+0:338 log2 (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 max (global 2X2 matrix of float)
+0:338 max (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 min (global 2X2 matrix of float)
+0:338 min (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 pow (global 2X2 matrix of float)
+0:338 pow (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 radians (global 2X2 matrix of float)
+0:338 radians (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 roundEven (global 2X2 matrix of float)
+0:338 roundEven (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 inverse sqrt (global 2X2 matrix of float)
+0:338 inverse sqrt (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 clamp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
@@ -773,9 +773,9 @@ Shader version: 450
0:338 0.000000
0:338 Constant:
0:338 1.000000
-0:338 Sign (global 2X2 matrix of float)
+0:338 Sign (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 sine (global 2X2 matrix of float)
+0:338 sine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 Sequence
0:338 move second child to first child (temp 2X2 matrix of float)
@@ -786,24 +786,24 @@ Shader version: 450
0:338 'inF2' (in 2X2 matrix of float)
0:338 cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 hyp. sine (global 2X2 matrix of float)
+0:338 hyp. sine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 smoothstep (global 2X2 matrix of float)
+0:338 smoothstep (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
0:338 'inF2' (in 2X2 matrix of float)
-0:338 sqrt (global 2X2 matrix of float)
+0:338 sqrt (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 step (global 2X2 matrix of float)
+0:338 step (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 tangent (global 2X2 matrix of float)
+0:338 tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 hyp. tangent (global 2X2 matrix of float)
+0:338 hyp. tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 transpose (global 2X2 matrix of float)
+0:338 transpose (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 trunc (global 2X2 matrix of float)
+0:338 trunc (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:341 Branch: Return with expression
0:? Constant:
@@ -817,85 +817,85 @@ Shader version: 450
0:345 'inF1' (in 3X3 matrix of float)
0:345 'inF2' (in 3X3 matrix of float)
0:? Sequence
-0:347 all (global bool)
+0:347 all (temp bool)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 Absolute value (global 3X3 matrix of float)
+0:347 Absolute value (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc cosine (global 3X3 matrix of float)
+0:347 arc cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 any (global bool)
+0:347 any (temp bool)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc sine (global 3X3 matrix of float)
+0:347 arc sine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc tangent (global 3X3 matrix of float)
+0:347 arc tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc tangent (global 3X3 matrix of float)
+0:347 arc tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 Ceiling (global 3X3 matrix of float)
+0:347 Ceiling (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 clamp (global 3X3 matrix of float)
+0:347 clamp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
0:347 'inF2' (in 3X3 matrix of float)
-0:347 cosine (global 3X3 matrix of float)
+0:347 cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 hyp. cosine (global 3X3 matrix of float)
+0:347 hyp. cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 degrees (global 3X3 matrix of float)
+0:347 degrees (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 determinant (global float)
+0:347 determinant (temp float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 exp (global 3X3 matrix of float)
+0:347 exp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 exp2 (global 3X3 matrix of float)
+0:347 exp2 (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 findMSB (global int)
+0:347 findMSB (temp int)
0:347 Constant:
0:347 7 (const int)
-0:347 findLSB (global int)
+0:347 findLSB (temp int)
0:347 Constant:
0:347 7 (const int)
-0:347 Floor (global 3X3 matrix of float)
+0:347 Floor (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 mod (global 3X3 matrix of float)
+0:347 mod (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 Fraction (global 3X3 matrix of float)
+0:347 Fraction (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 frexp (global 3X3 matrix of float)
+0:347 frexp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 ldexp (global 3X3 matrix of float)
+0:347 ldexp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 mix (global 3X3 matrix of float)
+0:347 mix (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
0:347 'inF2' (in 3X3 matrix of float)
-0:347 log (global 3X3 matrix of float)
+0:347 log (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 matrix-scale (temp 3X3 matrix of float)
0:347 log2 (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 Constant:
0:347 0.301030
-0:347 log2 (global 3X3 matrix of float)
+0:347 log2 (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 max (global 3X3 matrix of float)
+0:347 max (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 min (global 3X3 matrix of float)
+0:347 min (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 pow (global 3X3 matrix of float)
+0:347 pow (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 radians (global 3X3 matrix of float)
+0:347 radians (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 roundEven (global 3X3 matrix of float)
+0:347 roundEven (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 inverse sqrt (global 3X3 matrix of float)
+0:347 inverse sqrt (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 clamp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
@@ -903,9 +903,9 @@ Shader version: 450
0:347 0.000000
0:347 Constant:
0:347 1.000000
-0:347 Sign (global 3X3 matrix of float)
+0:347 Sign (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 sine (global 3X3 matrix of float)
+0:347 sine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 Sequence
0:347 move second child to first child (temp 3X3 matrix of float)
@@ -916,24 +916,24 @@ Shader version: 450
0:347 'inF2' (in 3X3 matrix of float)
0:347 cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 hyp. sine (global 3X3 matrix of float)
+0:347 hyp. sine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 smoothstep (global 3X3 matrix of float)
+0:347 smoothstep (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
0:347 'inF2' (in 3X3 matrix of float)
-0:347 sqrt (global 3X3 matrix of float)
+0:347 sqrt (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 step (global 3X3 matrix of float)
+0:347 step (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 tangent (global 3X3 matrix of float)
+0:347 tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 hyp. tangent (global 3X3 matrix of float)
+0:347 hyp. tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 transpose (global 3X3 matrix of float)
+0:347 transpose (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 trunc (global 3X3 matrix of float)
+0:347 trunc (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:350 Branch: Return with expression
0:? Constant:
@@ -952,85 +952,85 @@ Shader version: 450
0:354 'inF1' (in 4X4 matrix of float)
0:354 'inF2' (in 4X4 matrix of float)
0:? Sequence
-0:356 all (global bool)
+0:356 all (temp bool)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 Absolute value (global 4X4 matrix of float)
+0:356 Absolute value (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc cosine (global 4X4 matrix of float)
+0:356 arc cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 any (global bool)
+0:356 any (temp bool)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc sine (global 4X4 matrix of float)
+0:356 arc sine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc tangent (global 4X4 matrix of float)
+0:356 arc tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc tangent (global 4X4 matrix of float)
+0:356 arc tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 Ceiling (global 4X4 matrix of float)
+0:356 Ceiling (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 clamp (global 4X4 matrix of float)
+0:356 clamp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
0:356 'inF2' (in 4X4 matrix of float)
-0:356 cosine (global 4X4 matrix of float)
+0:356 cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 hyp. cosine (global 4X4 matrix of float)
+0:356 hyp. cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 degrees (global 4X4 matrix of float)
+0:356 degrees (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 determinant (global float)
+0:356 determinant (temp float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 exp (global 4X4 matrix of float)
+0:356 exp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 exp2 (global 4X4 matrix of float)
+0:356 exp2 (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 findMSB (global int)
+0:356 findMSB (temp int)
0:356 Constant:
0:356 7 (const int)
-0:356 findLSB (global int)
+0:356 findLSB (temp int)
0:356 Constant:
0:356 7 (const int)
-0:356 Floor (global 4X4 matrix of float)
+0:356 Floor (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 mod (global 4X4 matrix of float)
+0:356 mod (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 Fraction (global 4X4 matrix of float)
+0:356 Fraction (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 frexp (global 4X4 matrix of float)
+0:356 frexp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 ldexp (global 4X4 matrix of float)
+0:356 ldexp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 mix (global 4X4 matrix of float)
+0:356 mix (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
0:356 'inF2' (in 4X4 matrix of float)
-0:356 log (global 4X4 matrix of float)
+0:356 log (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 matrix-scale (temp 4X4 matrix of float)
0:356 log2 (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 Constant:
0:356 0.301030
-0:356 log2 (global 4X4 matrix of float)
+0:356 log2 (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 max (global 4X4 matrix of float)
+0:356 max (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 min (global 4X4 matrix of float)
+0:356 min (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 pow (global 4X4 matrix of float)
+0:356 pow (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 radians (global 4X4 matrix of float)
+0:356 radians (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 roundEven (global 4X4 matrix of float)
+0:356 roundEven (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 inverse sqrt (global 4X4 matrix of float)
+0:356 inverse sqrt (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 clamp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
@@ -1038,9 +1038,9 @@ Shader version: 450
0:356 0.000000
0:356 Constant:
0:356 1.000000
-0:356 Sign (global 4X4 matrix of float)
+0:356 Sign (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 sine (global 4X4 matrix of float)
+0:356 sine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 Sequence
0:356 move second child to first child (temp 4X4 matrix of float)
@@ -1051,24 +1051,24 @@ Shader version: 450
0:356 'inF2' (in 4X4 matrix of float)
0:356 cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 hyp. sine (global 4X4 matrix of float)
+0:356 hyp. sine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 smoothstep (global 4X4 matrix of float)
+0:356 smoothstep (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
0:356 'inF2' (in 4X4 matrix of float)
-0:356 sqrt (global 4X4 matrix of float)
+0:356 sqrt (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 step (global 4X4 matrix of float)
+0:356 step (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 tangent (global 4X4 matrix of float)
+0:356 tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 hyp. tangent (global 4X4 matrix of float)
+0:356 hyp. tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 transpose (global 4X4 matrix of float)
+0:356 transpose (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 trunc (global 4X4 matrix of float)
+0:356 trunc (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:359 Branch: Return with expression
0:? Constant:
@@ -1118,7 +1118,7 @@ Shader version: 450
0:378 Sequence
0:378 move second child to first child (temp float)
0:378 'r3' (temp float)
-0:378 dot-product (global float)
+0:378 dot-product (temp float)
0:378 'inFV0' (in 2-component vector of float)
0:378 'inFV1' (in 2-component vector of float)
0:378 Sequence
@@ -1181,7 +1181,7 @@ Shader version: 450
0:385 Sequence
0:385 move second child to first child (temp float)
0:385 'r3' (temp float)
-0:385 dot-product (global float)
+0:385 dot-product (temp float)
0:385 'inFV0' (in 3-component vector of float)
0:385 'inFV1' (in 3-component vector of float)
0:385 Sequence
@@ -1244,7 +1244,7 @@ Shader version: 450
0:392 Sequence
0:392 move second child to first child (temp float)
0:392 'r3' (temp float)
-0:392 dot-product (global float)
+0:392 dot-product (temp float)
0:392 'inFV0' (in 4-component vector of float)
0:392 'inFV1' (in 4-component vector of float)
0:392 Sequence
@@ -1322,13 +1322,13 @@ Shader version: 450
0:407 Sequence
0:407 move second child to first child (temp float)
0:407 'r05' (temp float)
-0:407 dot-product (global float)
+0:407 dot-product (temp float)
0:407 'inFV2' (in 2-component vector of float)
0:407 'inFV2' (in 2-component vector of float)
0:408 Sequence
0:408 move second child to first child (temp float)
0:408 'r06' (temp float)
-0:408 dot-product (global float)
+0:408 dot-product (temp float)
0:408 'inFV3' (in 3-component vector of float)
0:408 'inFV3' (in 3-component vector of float)
0:409 Sequence
@@ -1396,6 +1396,7 @@ Shader version: 450
Linked vertex stage:
+WARNING: Linking vertex stage: Entry point not found
Shader version: 450
0:? Sequence
@@ -1407,99 +1408,99 @@ Shader version: 450
0:2 'inU0' (in uint)
0:2 'inU1' (in uint)
0:? Sequence
-0:3 all (global bool)
+0:3 all (temp bool)
0:3 'inF0' (in float)
-0:4 Absolute value (global float)
+0:4 Absolute value (temp float)
0:4 'inF0' (in float)
-0:5 arc cosine (global float)
+0:5 arc cosine (temp float)
0:5 'inF0' (in float)
-0:6 any (global bool)
+0:6 any (temp bool)
0:6 'inF0' (in float)
-0:7 arc sine (global float)
+0:7 arc sine (temp float)
0:7 'inF0' (in float)
-0:8 floatBitsToInt (global int)
+0:8 floatBitsToInt (temp int)
0:8 'inF0' (in float)
-0:9 floatBitsToUint (global uint)
+0:9 floatBitsToUint (temp uint)
0:9 'inF0' (in float)
-0:10 intBitsToFloat (global float)
+0:10 intBitsToFloat (temp float)
0:10 'inU0' (in uint)
-0:12 arc tangent (global float)
+0:12 arc tangent (temp float)
0:12 'inF0' (in float)
-0:13 arc tangent (global float)
+0:13 arc tangent (temp float)
0:13 'inF0' (in float)
0:13 'inF1' (in float)
-0:14 Ceiling (global float)
+0:14 Ceiling (temp float)
0:14 'inF0' (in float)
-0:15 clamp (global float)
+0:15 clamp (temp float)
0:15 'inF0' (in float)
0:15 'inF1' (in float)
0:15 'inF2' (in float)
-0:16 cosine (global float)
+0:16 cosine (temp float)
0:16 'inF0' (in float)
-0:17 hyp. cosine (global float)
+0:17 hyp. cosine (temp float)
0:17 'inF0' (in float)
-0:18 bitCount (global uint)
+0:18 bitCount (temp uint)
0:18 Constant:
0:18 7 (const uint)
-0:19 degrees (global float)
+0:19 degrees (temp float)
0:19 'inF0' (in float)
-0:23 exp (global float)
+0:23 exp (temp float)
0:23 'inF0' (in float)
-0:24 exp2 (global float)
+0:24 exp2 (temp float)
0:24 'inF0' (in float)
-0:25 findMSB (global int)
+0:25 findMSB (temp int)
0:25 Constant:
0:25 7 (const int)
-0:26 findLSB (global int)
+0:26 findLSB (temp int)
0:26 Constant:
0:26 7 (const int)
-0:27 Floor (global float)
+0:27 Floor (temp float)
0:27 'inF0' (in float)
-0:29 mod (global float)
+0:29 mod (temp float)
0:29 'inF0' (in float)
0:29 'inF1' (in float)
-0:30 Fraction (global float)
+0:30 Fraction (temp float)
0:30 'inF0' (in float)
-0:31 frexp (global float)
+0:31 frexp (temp float)
0:31 'inF0' (in float)
0:31 'inF1' (in float)
-0:32 isinf (global bool)
+0:32 isinf (temp bool)
0:32 'inF0' (in float)
-0:33 isnan (global bool)
+0:33 isnan (temp bool)
0:33 'inF0' (in float)
-0:34 ldexp (global float)
+0:34 ldexp (temp float)
0:34 'inF0' (in float)
0:34 'inF1' (in float)
-0:35 mix (global float)
+0:35 mix (temp float)
0:35 'inF0' (in float)
0:35 'inF1' (in float)
0:35 'inF2' (in float)
-0:36 log (global float)
+0:36 log (temp float)
0:36 'inF0' (in float)
0:37 component-wise multiply (temp float)
0:37 log2 (temp float)
0:37 'inF0' (in float)
0:37 Constant:
0:37 0.301030
-0:38 log2 (global float)
+0:38 log2 (temp float)
0:38 'inF0' (in float)
-0:39 max (global float)
+0:39 max (temp float)
0:39 'inF0' (in float)
0:39 'inF1' (in float)
-0:40 min (global float)
+0:40 min (temp float)
0:40 'inF0' (in float)
0:40 'inF1' (in float)
-0:42 pow (global float)
+0:42 pow (temp float)
0:42 'inF0' (in float)
0:42 'inF1' (in float)
-0:43 radians (global float)
+0:43 radians (temp float)
0:43 'inF0' (in float)
-0:44 bitFieldReverse (global uint)
+0:44 bitFieldReverse (temp uint)
0:44 Constant:
0:44 2 (const uint)
-0:45 roundEven (global float)
+0:45 roundEven (temp float)
0:45 'inF0' (in float)
-0:46 inverse sqrt (global float)
+0:46 inverse sqrt (temp float)
0:46 'inF0' (in float)
0:47 clamp (temp float)
0:47 'inF0' (in float)
@@ -1507,9 +1508,9 @@ Shader version: 450
0:47 0.000000
0:47 Constant:
0:47 1.000000
-0:48 Sign (global float)
+0:48 Sign (temp float)
0:48 'inF0' (in float)
-0:49 sine (global float)
+0:49 sine (temp float)
0:49 'inF0' (in float)
0:50 Sequence
0:50 move second child to first child (temp float)
@@ -1520,22 +1521,22 @@ Shader version: 450
0:50 'inF2' (in float)
0:50 cosine (temp float)
0:50 'inF0' (in float)
-0:51 hyp. sine (global float)
+0:51 hyp. sine (temp float)
0:51 'inF0' (in float)
-0:52 smoothstep (global float)
+0:52 smoothstep (temp float)
0:52 'inF0' (in float)
0:52 'inF1' (in float)
0:52 'inF2' (in float)
-0:53 sqrt (global float)
+0:53 sqrt (temp float)
0:53 'inF0' (in float)
-0:54 step (global float)
+0:54 step (temp float)
0:54 'inF0' (in float)
0:54 'inF1' (in float)
-0:55 tangent (global float)
+0:55 tangent (temp float)
0:55 'inF0' (in float)
-0:56 hyp. tangent (global float)
+0:56 hyp. tangent (temp float)
0:56 'inF0' (in float)
-0:58 trunc (global float)
+0:58 trunc (temp float)
0:58 'inF0' (in float)
0:60 Branch: Return with expression
0:60 Constant:
@@ -1557,123 +1558,123 @@ Shader version: 450
0:70 'inU0' (in 2-component vector of uint)
0:70 'inU1' (in 2-component vector of uint)
0:? Sequence
-0:71 all (global bool)
+0:71 all (temp bool)
0:71 'inF0' (in 2-component vector of float)
-0:72 Absolute value (global 2-component vector of float)
+0:72 Absolute value (temp 2-component vector of float)
0:72 'inF0' (in 2-component vector of float)
-0:73 arc cosine (global 2-component vector of float)
+0:73 arc cosine (temp 2-component vector of float)
0:73 'inF0' (in 2-component vector of float)
-0:74 any (global bool)
+0:74 any (temp bool)
0:74 'inF0' (in 2-component vector of float)
-0:75 arc sine (global 2-component vector of float)
+0:75 arc sine (temp 2-component vector of float)
0:75 'inF0' (in 2-component vector of float)
-0:76 floatBitsToInt (global 2-component vector of int)
+0:76 floatBitsToInt (temp 2-component vector of int)
0:76 'inF0' (in 2-component vector of float)
-0:77 floatBitsToUint (global 2-component vector of uint)
+0:77 floatBitsToUint (temp 2-component vector of uint)
0:77 'inF0' (in 2-component vector of float)
-0:78 intBitsToFloat (global 2-component vector of float)
+0:78 intBitsToFloat (temp 2-component vector of float)
0:78 'inU0' (in 2-component vector of uint)
-0:80 arc tangent (global 2-component vector of float)
+0:80 arc tangent (temp 2-component vector of float)
0:80 'inF0' (in 2-component vector of float)
-0:81 arc tangent (global 2-component vector of float)
+0:81 arc tangent (temp 2-component vector of float)
0:81 'inF0' (in 2-component vector of float)
0:81 'inF1' (in 2-component vector of float)
-0:82 Ceiling (global 2-component vector of float)
+0:82 Ceiling (temp 2-component vector of float)
0:82 'inF0' (in 2-component vector of float)
-0:83 clamp (global 2-component vector of float)
+0:83 clamp (temp 2-component vector of float)
0:83 'inF0' (in 2-component vector of float)
0:83 'inF1' (in 2-component vector of float)
0:83 'inF2' (in 2-component vector of float)
-0:84 cosine (global 2-component vector of float)
+0:84 cosine (temp 2-component vector of float)
0:84 'inF0' (in 2-component vector of float)
-0:85 hyp. cosine (global 2-component vector of float)
+0:85 hyp. cosine (temp 2-component vector of float)
0:85 'inF0' (in 2-component vector of float)
-0:? bitCount (global 2-component vector of uint)
+0:? bitCount (temp 2-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
-0:87 degrees (global 2-component vector of float)
+0:87 degrees (temp 2-component vector of float)
0:87 'inF0' (in 2-component vector of float)
-0:88 distance (global float)
+0:88 distance (temp float)
0:88 'inF0' (in 2-component vector of float)
0:88 'inF1' (in 2-component vector of float)
-0:89 dot-product (global float)
+0:89 dot-product (temp float)
0:89 'inF0' (in 2-component vector of float)
0:89 'inF1' (in 2-component vector of float)
-0:93 exp (global 2-component vector of float)
+0:93 exp (temp 2-component vector of float)
0:93 'inF0' (in 2-component vector of float)
-0:94 exp2 (global 2-component vector of float)
+0:94 exp2 (temp 2-component vector of float)
0:94 'inF0' (in 2-component vector of float)
-0:95 face-forward (global 2-component vector of float)
+0:95 face-forward (temp 2-component vector of float)
0:95 'inF0' (in 2-component vector of float)
0:95 'inF1' (in 2-component vector of float)
0:95 'inF2' (in 2-component vector of float)
-0:96 findMSB (global int)
+0:96 findMSB (temp int)
0:96 Constant:
0:96 7 (const int)
-0:97 findLSB (global int)
+0:97 findLSB (temp int)
0:97 Constant:
0:97 7 (const int)
-0:98 Floor (global 2-component vector of float)
+0:98 Floor (temp 2-component vector of float)
0:98 'inF0' (in 2-component vector of float)
-0:100 mod (global 2-component vector of float)
+0:100 mod (temp 2-component vector of float)
0:100 'inF0' (in 2-component vector of float)
0:100 'inF1' (in 2-component vector of float)
-0:101 Fraction (global 2-component vector of float)
+0:101 Fraction (temp 2-component vector of float)
0:101 'inF0' (in 2-component vector of float)
-0:102 frexp (global 2-component vector of float)
+0:102 frexp (temp 2-component vector of float)
0:102 'inF0' (in 2-component vector of float)
0:102 'inF1' (in 2-component vector of float)
-0:103 isinf (global 2-component vector of bool)
+0:103 isinf (temp 2-component vector of bool)
0:103 'inF0' (in 2-component vector of float)
-0:104 isnan (global 2-component vector of bool)
+0:104 isnan (temp 2-component vector of bool)
0:104 'inF0' (in 2-component vector of float)
-0:105 ldexp (global 2-component vector of float)
+0:105 ldexp (temp 2-component vector of float)
0:105 'inF0' (in 2-component vector of float)
0:105 'inF1' (in 2-component vector of float)
-0:106 mix (global 2-component vector of float)
+0:106 mix (temp 2-component vector of float)
0:106 'inF0' (in 2-component vector of float)
0:106 'inF1' (in 2-component vector of float)
0:106 'inF2' (in 2-component vector of float)
-0:107 length (global float)
+0:107 length (temp float)
0:107 'inF0' (in 2-component vector of float)
-0:108 log (global 2-component vector of float)
+0:108 log (temp 2-component vector of float)
0:108 'inF0' (in 2-component vector of float)
0:109 vector-scale (temp 2-component vector of float)
0:109 log2 (temp 2-component vector of float)
0:109 'inF0' (in 2-component vector of float)
0:109 Constant:
0:109 0.301030
-0:110 log2 (global 2-component vector of float)
+0:110 log2 (temp 2-component vector of float)
0:110 'inF0' (in 2-component vector of float)
-0:111 max (global 2-component vector of float)
+0:111 max (temp 2-component vector of float)
0:111 'inF0' (in 2-component vector of float)
0:111 'inF1' (in 2-component vector of float)
-0:112 min (global 2-component vector of float)
+0:112 min (temp 2-component vector of float)
0:112 'inF0' (in 2-component vector of float)
0:112 'inF1' (in 2-component vector of float)
-0:114 normalize (global 2-component vector of float)
+0:114 normalize (temp 2-component vector of float)
0:114 'inF0' (in 2-component vector of float)
-0:115 pow (global 2-component vector of float)
+0:115 pow (temp 2-component vector of float)
0:115 'inF0' (in 2-component vector of float)
0:115 'inF1' (in 2-component vector of float)
-0:116 radians (global 2-component vector of float)
+0:116 radians (temp 2-component vector of float)
0:116 'inF0' (in 2-component vector of float)
-0:117 reflect (global 2-component vector of float)
+0:117 reflect (temp 2-component vector of float)
0:117 'inF0' (in 2-component vector of float)
0:117 'inF1' (in 2-component vector of float)
-0:118 refract (global 2-component vector of float)
+0:118 refract (temp 2-component vector of float)
0:118 'inF0' (in 2-component vector of float)
0:118 'inF1' (in 2-component vector of float)
0:118 Constant:
0:118 2.000000
-0:? bitFieldReverse (global 2-component vector of uint)
+0:? bitFieldReverse (temp 2-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
-0:120 roundEven (global 2-component vector of float)
+0:120 roundEven (temp 2-component vector of float)
0:120 'inF0' (in 2-component vector of float)
-0:121 inverse sqrt (global 2-component vector of float)
+0:121 inverse sqrt (temp 2-component vector of float)
0:121 'inF0' (in 2-component vector of float)
0:122 clamp (temp 2-component vector of float)
0:122 'inF0' (in 2-component vector of float)
@@ -1681,9 +1682,9 @@ Shader version: 450
0:122 0.000000
0:122 Constant:
0:122 1.000000
-0:123 Sign (global 2-component vector of float)
+0:123 Sign (temp 2-component vector of float)
0:123 'inF0' (in 2-component vector of float)
-0:124 sine (global 2-component vector of float)
+0:124 sine (temp 2-component vector of float)
0:124 'inF0' (in 2-component vector of float)
0:125 Sequence
0:125 move second child to first child (temp 2-component vector of float)
@@ -1694,22 +1695,22 @@ Shader version: 450
0:125 'inF2' (in 2-component vector of float)
0:125 cosine (temp 2-component vector of float)
0:125 'inF0' (in 2-component vector of float)
-0:126 hyp. sine (global 2-component vector of float)
+0:126 hyp. sine (temp 2-component vector of float)
0:126 'inF0' (in 2-component vector of float)
-0:127 smoothstep (global 2-component vector of float)
+0:127 smoothstep (temp 2-component vector of float)
0:127 'inF0' (in 2-component vector of float)
0:127 'inF1' (in 2-component vector of float)
0:127 'inF2' (in 2-component vector of float)
-0:128 sqrt (global 2-component vector of float)
+0:128 sqrt (temp 2-component vector of float)
0:128 'inF0' (in 2-component vector of float)
-0:129 step (global 2-component vector of float)
+0:129 step (temp 2-component vector of float)
0:129 'inF0' (in 2-component vector of float)
0:129 'inF1' (in 2-component vector of float)
-0:130 tangent (global 2-component vector of float)
+0:130 tangent (temp 2-component vector of float)
0:130 'inF0' (in 2-component vector of float)
-0:131 hyp. tangent (global 2-component vector of float)
+0:131 hyp. tangent (temp 2-component vector of float)
0:131 'inF0' (in 2-component vector of float)
-0:133 trunc (global 2-component vector of float)
+0:133 trunc (temp 2-component vector of float)
0:133 'inF0' (in 2-component vector of float)
0:136 Branch: Return with expression
0:? Constant:
@@ -1723,128 +1724,128 @@ Shader version: 450
0:140 'inU0' (in 3-component vector of uint)
0:140 'inU1' (in 3-component vector of uint)
0:? Sequence
-0:141 all (global bool)
+0:141 all (temp bool)
0:141 'inF0' (in 3-component vector of float)
-0:142 Absolute value (global 3-component vector of float)
+0:142 Absolute value (temp 3-component vector of float)
0:142 'inF0' (in 3-component vector of float)
-0:143 arc cosine (global 3-component vector of float)
+0:143 arc cosine (temp 3-component vector of float)
0:143 'inF0' (in 3-component vector of float)
-0:144 any (global bool)
+0:144 any (temp bool)
0:144 'inF0' (in 3-component vector of float)
-0:145 arc sine (global 3-component vector of float)
+0:145 arc sine (temp 3-component vector of float)
0:145 'inF0' (in 3-component vector of float)
-0:146 floatBitsToInt (global 3-component vector of int)
+0:146 floatBitsToInt (temp 3-component vector of int)
0:146 'inF0' (in 3-component vector of float)
-0:147 floatBitsToUint (global 3-component vector of uint)
+0:147 floatBitsToUint (temp 3-component vector of uint)
0:147 'inF0' (in 3-component vector of float)
-0:148 intBitsToFloat (global 3-component vector of float)
+0:148 intBitsToFloat (temp 3-component vector of float)
0:148 'inU0' (in 3-component vector of uint)
-0:150 arc tangent (global 3-component vector of float)
+0:150 arc tangent (temp 3-component vector of float)
0:150 'inF0' (in 3-component vector of float)
-0:151 arc tangent (global 3-component vector of float)
+0:151 arc tangent (temp 3-component vector of float)
0:151 'inF0' (in 3-component vector of float)
0:151 'inF1' (in 3-component vector of float)
-0:152 Ceiling (global 3-component vector of float)
+0:152 Ceiling (temp 3-component vector of float)
0:152 'inF0' (in 3-component vector of float)
-0:153 clamp (global 3-component vector of float)
+0:153 clamp (temp 3-component vector of float)
0:153 'inF0' (in 3-component vector of float)
0:153 'inF1' (in 3-component vector of float)
0:153 'inF2' (in 3-component vector of float)
-0:154 cosine (global 3-component vector of float)
+0:154 cosine (temp 3-component vector of float)
0:154 'inF0' (in 3-component vector of float)
-0:155 hyp. cosine (global 3-component vector of float)
+0:155 hyp. cosine (temp 3-component vector of float)
0:155 'inF0' (in 3-component vector of float)
-0:? bitCount (global 3-component vector of uint)
+0:? bitCount (temp 3-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:? 5 (const uint)
-0:157 cross-product (global 3-component vector of float)
+0:157 cross-product (temp 3-component vector of float)
0:157 'inF0' (in 3-component vector of float)
0:157 'inF1' (in 3-component vector of float)
-0:158 degrees (global 3-component vector of float)
+0:158 degrees (temp 3-component vector of float)
0:158 'inF0' (in 3-component vector of float)
-0:159 distance (global float)
+0:159 distance (temp float)
0:159 'inF0' (in 3-component vector of float)
0:159 'inF1' (in 3-component vector of float)
-0:160 dot-product (global float)
+0:160 dot-product (temp float)
0:160 'inF0' (in 3-component vector of float)
0:160 'inF1' (in 3-component vector of float)
-0:164 exp (global 3-component vector of float)
+0:164 exp (temp 3-component vector of float)
0:164 'inF0' (in 3-component vector of float)
-0:165 exp2 (global 3-component vector of float)
+0:165 exp2 (temp 3-component vector of float)
0:165 'inF0' (in 3-component vector of float)
-0:166 face-forward (global 3-component vector of float)
+0:166 face-forward (temp 3-component vector of float)
0:166 'inF0' (in 3-component vector of float)
0:166 'inF1' (in 3-component vector of float)
0:166 'inF2' (in 3-component vector of float)
-0:167 findMSB (global int)
+0:167 findMSB (temp int)
0:167 Constant:
0:167 7 (const int)
-0:168 findLSB (global int)
+0:168 findLSB (temp int)
0:168 Constant:
0:168 7 (const int)
-0:169 Floor (global 3-component vector of float)
+0:169 Floor (temp 3-component vector of float)
0:169 'inF0' (in 3-component vector of float)
-0:171 mod (global 3-component vector of float)
+0:171 mod (temp 3-component vector of float)
0:171 'inF0' (in 3-component vector of float)
0:171 'inF1' (in 3-component vector of float)
-0:172 Fraction (global 3-component vector of float)
+0:172 Fraction (temp 3-component vector of float)
0:172 'inF0' (in 3-component vector of float)
-0:173 frexp (global 3-component vector of float)
+0:173 frexp (temp 3-component vector of float)
0:173 'inF0' (in 3-component vector of float)
0:173 'inF1' (in 3-component vector of float)
-0:174 isinf (global 3-component vector of bool)
+0:174 isinf (temp 3-component vector of bool)
0:174 'inF0' (in 3-component vector of float)
-0:175 isnan (global 3-component vector of bool)
+0:175 isnan (temp 3-component vector of bool)
0:175 'inF0' (in 3-component vector of float)
-0:176 ldexp (global 3-component vector of float)
+0:176 ldexp (temp 3-component vector of float)
0:176 'inF0' (in 3-component vector of float)
0:176 'inF1' (in 3-component vector of float)
-0:177 mix (global 3-component vector of float)
+0:177 mix (temp 3-component vector of float)
0:177 'inF0' (in 3-component vector of float)
0:177 'inF1' (in 3-component vector of float)
0:177 'inF2' (in 3-component vector of float)
-0:178 length (global float)
+0:178 length (temp float)
0:178 'inF0' (in 3-component vector of float)
-0:179 log (global 3-component vector of float)
+0:179 log (temp 3-component vector of float)
0:179 'inF0' (in 3-component vector of float)
0:180 vector-scale (temp 3-component vector of float)
0:180 log2 (temp 3-component vector of float)
0:180 'inF0' (in 3-component vector of float)
0:180 Constant:
0:180 0.301030
-0:181 log2 (global 3-component vector of float)
+0:181 log2 (temp 3-component vector of float)
0:181 'inF0' (in 3-component vector of float)
-0:182 max (global 3-component vector of float)
+0:182 max (temp 3-component vector of float)
0:182 'inF0' (in 3-component vector of float)
0:182 'inF1' (in 3-component vector of float)
-0:183 min (global 3-component vector of float)
+0:183 min (temp 3-component vector of float)
0:183 'inF0' (in 3-component vector of float)
0:183 'inF1' (in 3-component vector of float)
-0:185 normalize (global 3-component vector of float)
+0:185 normalize (temp 3-component vector of float)
0:185 'inF0' (in 3-component vector of float)
-0:186 pow (global 3-component vector of float)
+0:186 pow (temp 3-component vector of float)
0:186 'inF0' (in 3-component vector of float)
0:186 'inF1' (in 3-component vector of float)
-0:187 radians (global 3-component vector of float)
+0:187 radians (temp 3-component vector of float)
0:187 'inF0' (in 3-component vector of float)
-0:188 reflect (global 3-component vector of float)
+0:188 reflect (temp 3-component vector of float)
0:188 'inF0' (in 3-component vector of float)
0:188 'inF1' (in 3-component vector of float)
-0:189 refract (global 3-component vector of float)
+0:189 refract (temp 3-component vector of float)
0:189 'inF0' (in 3-component vector of float)
0:189 'inF1' (in 3-component vector of float)
0:189 Constant:
0:189 2.000000
-0:? bitFieldReverse (global 3-component vector of uint)
+0:? bitFieldReverse (temp 3-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
-0:191 roundEven (global 3-component vector of float)
+0:191 roundEven (temp 3-component vector of float)
0:191 'inF0' (in 3-component vector of float)
-0:192 inverse sqrt (global 3-component vector of float)
+0:192 inverse sqrt (temp 3-component vector of float)
0:192 'inF0' (in 3-component vector of float)
0:193 clamp (temp 3-component vector of float)
0:193 'inF0' (in 3-component vector of float)
@@ -1852,9 +1853,9 @@ Shader version: 450
0:193 0.000000
0:193 Constant:
0:193 1.000000
-0:194 Sign (global 3-component vector of float)
+0:194 Sign (temp 3-component vector of float)
0:194 'inF0' (in 3-component vector of float)
-0:195 sine (global 3-component vector of float)
+0:195 sine (temp 3-component vector of float)
0:195 'inF0' (in 3-component vector of float)
0:196 Sequence
0:196 move second child to first child (temp 3-component vector of float)
@@ -1865,22 +1866,22 @@ Shader version: 450
0:196 'inF2' (in 3-component vector of float)
0:196 cosine (temp 3-component vector of float)
0:196 'inF0' (in 3-component vector of float)
-0:197 hyp. sine (global 3-component vector of float)
+0:197 hyp. sine (temp 3-component vector of float)
0:197 'inF0' (in 3-component vector of float)
-0:198 smoothstep (global 3-component vector of float)
+0:198 smoothstep (temp 3-component vector of float)
0:198 'inF0' (in 3-component vector of float)
0:198 'inF1' (in 3-component vector of float)
0:198 'inF2' (in 3-component vector of float)
-0:199 sqrt (global 3-component vector of float)
+0:199 sqrt (temp 3-component vector of float)
0:199 'inF0' (in 3-component vector of float)
-0:200 step (global 3-component vector of float)
+0:200 step (temp 3-component vector of float)
0:200 'inF0' (in 3-component vector of float)
0:200 'inF1' (in 3-component vector of float)
-0:201 tangent (global 3-component vector of float)
+0:201 tangent (temp 3-component vector of float)
0:201 'inF0' (in 3-component vector of float)
-0:202 hyp. tangent (global 3-component vector of float)
+0:202 hyp. tangent (temp 3-component vector of float)
0:202 'inF0' (in 3-component vector of float)
-0:204 trunc (global 3-component vector of float)
+0:204 trunc (temp 3-component vector of float)
0:204 'inF0' (in 3-component vector of float)
0:207 Branch: Return with expression
0:? Constant:
@@ -1895,49 +1896,49 @@ Shader version: 450
0:211 'inU0' (in 4-component vector of uint)
0:211 'inU1' (in 4-component vector of uint)
0:? Sequence
-0:212 all (global bool)
+0:212 all (temp bool)
0:212 'inF0' (in 4-component vector of float)
-0:213 Absolute value (global 4-component vector of float)
+0:213 Absolute value (temp 4-component vector of float)
0:213 'inF0' (in 4-component vector of float)
-0:214 arc cosine (global 4-component vector of float)
+0:214 arc cosine (temp 4-component vector of float)
0:214 'inF0' (in 4-component vector of float)
-0:215 any (global bool)
+0:215 any (temp bool)
0:215 'inF0' (in 4-component vector of float)
-0:216 arc sine (global 4-component vector of float)
+0:216 arc sine (temp 4-component vector of float)
0:216 'inF0' (in 4-component vector of float)
-0:217 floatBitsToInt (global 4-component vector of int)
+0:217 floatBitsToInt (temp 4-component vector of int)
0:217 'inF0' (in 4-component vector of float)
-0:218 floatBitsToUint (global 4-component vector of uint)
+0:218 floatBitsToUint (temp 4-component vector of uint)
0:218 'inF0' (in 4-component vector of float)
-0:219 intBitsToFloat (global 4-component vector of float)
+0:219 intBitsToFloat (temp 4-component vector of float)
0:219 'inU0' (in 4-component vector of uint)
-0:221 arc tangent (global 4-component vector of float)
+0:221 arc tangent (temp 4-component vector of float)
0:221 'inF0' (in 4-component vector of float)
-0:222 arc tangent (global 4-component vector of float)
+0:222 arc tangent (temp 4-component vector of float)
0:222 'inF0' (in 4-component vector of float)
0:222 'inF1' (in 4-component vector of float)
-0:223 Ceiling (global 4-component vector of float)
+0:223 Ceiling (temp 4-component vector of float)
0:223 'inF0' (in 4-component vector of float)
-0:224 clamp (global 4-component vector of float)
+0:224 clamp (temp 4-component vector of float)
0:224 'inF0' (in 4-component vector of float)
0:224 'inF1' (in 4-component vector of float)
0:224 'inF2' (in 4-component vector of float)
-0:225 cosine (global 4-component vector of float)
+0:225 cosine (temp 4-component vector of float)
0:225 'inF0' (in 4-component vector of float)
-0:226 hyp. cosine (global 4-component vector of float)
+0:226 hyp. cosine (temp 4-component vector of float)
0:226 'inF0' (in 4-component vector of float)
-0:? bitCount (global 4-component vector of uint)
+0:? bitCount (temp 4-component vector of uint)
0:? Constant:
0:? 7 (const uint)
0:? 3 (const uint)
0:? 5 (const uint)
0:? 2 (const uint)
-0:228 degrees (global 4-component vector of float)
+0:228 degrees (temp 4-component vector of float)
0:228 'inF0' (in 4-component vector of float)
-0:229 distance (global float)
+0:229 distance (temp float)
0:229 'inF0' (in 4-component vector of float)
0:229 'inF1' (in 4-component vector of float)
-0:230 dot-product (global float)
+0:230 dot-product (temp float)
0:230 'inF0' (in 4-component vector of float)
0:230 'inF1' (in 4-component vector of float)
0:231 Construct vec4 (temp 4-component vector of float)
@@ -1960,82 +1961,82 @@ Shader version: 450
0:231 'inF1' (in 4-component vector of float)
0:231 Constant:
0:231 3 (const int)
-0:235 exp (global 4-component vector of float)
+0:235 exp (temp 4-component vector of float)
0:235 'inF0' (in 4-component vector of float)
-0:236 exp2 (global 4-component vector of float)
+0:236 exp2 (temp 4-component vector of float)
0:236 'inF0' (in 4-component vector of float)
-0:237 face-forward (global 4-component vector of float)
+0:237 face-forward (temp 4-component vector of float)
0:237 'inF0' (in 4-component vector of float)
0:237 'inF1' (in 4-component vector of float)
0:237 'inF2' (in 4-component vector of float)
-0:238 findMSB (global int)
+0:238 findMSB (temp int)
0:238 Constant:
0:238 7 (const int)
-0:239 findLSB (global int)
+0:239 findLSB (temp int)
0:239 Constant:
0:239 7 (const int)
-0:240 Floor (global 4-component vector of float)
+0:240 Floor (temp 4-component vector of float)
0:240 'inF0' (in 4-component vector of float)
-0:242 mod (global 4-component vector of float)
+0:242 mod (temp 4-component vector of float)
0:242 'inF0' (in 4-component vector of float)
0:242 'inF1' (in 4-component vector of float)
-0:243 Fraction (global 4-component vector of float)
+0:243 Fraction (temp 4-component vector of float)
0:243 'inF0' (in 4-component vector of float)
-0:244 frexp (global 4-component vector of float)
+0:244 frexp (temp 4-component vector of float)
0:244 'inF0' (in 4-component vector of float)
0:244 'inF1' (in 4-component vector of float)
-0:245 isinf (global 4-component vector of bool)
+0:245 isinf (temp 4-component vector of bool)
0:245 'inF0' (in 4-component vector of float)
-0:246 isnan (global 4-component vector of bool)
+0:246 isnan (temp 4-component vector of bool)
0:246 'inF0' (in 4-component vector of float)
-0:247 ldexp (global 4-component vector of float)
+0:247 ldexp (temp 4-component vector of float)
0:247 'inF0' (in 4-component vector of float)
0:247 'inF1' (in 4-component vector of float)
-0:248 mix (global 4-component vector of float)
+0:248 mix (temp 4-component vector of float)
0:248 'inF0' (in 4-component vector of float)
0:248 'inF1' (in 4-component vector of float)
0:248 'inF2' (in 4-component vector of float)
-0:249 length (global float)
+0:249 length (temp float)
0:249 'inF0' (in 4-component vector of float)
-0:250 log (global 4-component vector of float)
+0:250 log (temp 4-component vector of float)
0:250 'inF0' (in 4-component vector of float)
0:251 vector-scale (temp 4-component vector of float)
0:251 log2 (temp 4-component vector of float)
0:251 'inF0' (in 4-component vector of float)
0:251 Constant:
0:251 0.301030
-0:252 log2 (global 4-component vector of float)
+0:252 log2 (temp 4-component vector of float)
0:252 'inF0' (in 4-component vector of float)
-0:253 max (global 4-component vector of float)
+0:253 max (temp 4-component vector of float)
0:253 'inF0' (in 4-component vector of float)
0:253 'inF1' (in 4-component vector of float)
-0:254 min (global 4-component vector of float)
+0:254 min (temp 4-component vector of float)
0:254 'inF0' (in 4-component vector of float)
0:254 'inF1' (in 4-component vector of float)
-0:256 normalize (global 4-component vector of float)
+0:256 normalize (temp 4-component vector of float)
0:256 'inF0' (in 4-component vector of float)
-0:257 pow (global 4-component vector of float)
+0:257 pow (temp 4-component vector of float)
0:257 'inF0' (in 4-component vector of float)
0:257 'inF1' (in 4-component vector of float)
-0:258 radians (global 4-component vector of float)
+0:258 radians (temp 4-component vector of float)
0:258 'inF0' (in 4-component vector of float)
-0:259 reflect (global 4-component vector of float)
+0:259 reflect (temp 4-component vector of float)
0:259 'inF0' (in 4-component vector of float)
0:259 'inF1' (in 4-component vector of float)
-0:260 refract (global 4-component vector of float)
+0:260 refract (temp 4-component vector of float)
0:260 'inF0' (in 4-component vector of float)
0:260 'inF1' (in 4-component vector of float)
0:260 Constant:
0:260 2.000000
-0:? bitFieldReverse (global 4-component vector of uint)
+0:? bitFieldReverse (temp 4-component vector of uint)
0:? Constant:
0:? 1 (const uint)
0:? 2 (const uint)
0:? 3 (const uint)
0:? 4 (const uint)
-0:262 roundEven (global 4-component vector of float)
+0:262 roundEven (temp 4-component vector of float)
0:262 'inF0' (in 4-component vector of float)
-0:263 inverse sqrt (global 4-component vector of float)
+0:263 inverse sqrt (temp 4-component vector of float)
0:263 'inF0' (in 4-component vector of float)
0:264 clamp (temp 4-component vector of float)
0:264 'inF0' (in 4-component vector of float)
@@ -2043,9 +2044,9 @@ Shader version: 450
0:264 0.000000
0:264 Constant:
0:264 1.000000
-0:265 Sign (global 4-component vector of float)
+0:265 Sign (temp 4-component vector of float)
0:265 'inF0' (in 4-component vector of float)
-0:266 sine (global 4-component vector of float)
+0:266 sine (temp 4-component vector of float)
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 float)
@@ -2056,22 +2057,22 @@ Shader version: 450
0:267 'inF2' (in 4-component vector of float)
0:267 cosine (temp 4-component vector of float)
0:267 'inF0' (in 4-component vector of float)
-0:268 hyp. sine (global 4-component vector of float)
+0:268 hyp. sine (temp 4-component vector of float)
0:268 'inF0' (in 4-component vector of float)
-0:269 smoothstep (global 4-component vector of float)
+0:269 smoothstep (temp 4-component vector of float)
0:269 'inF0' (in 4-component vector of float)
0:269 'inF1' (in 4-component vector of float)
0:269 'inF2' (in 4-component vector of float)
-0:270 sqrt (global 4-component vector of float)
+0:270 sqrt (temp 4-component vector of float)
0:270 'inF0' (in 4-component vector of float)
-0:271 step (global 4-component vector of float)
+0:271 step (temp 4-component vector of float)
0:271 'inF0' (in 4-component vector of float)
0:271 'inF1' (in 4-component vector of float)
-0:272 tangent (global 4-component vector of float)
+0:272 tangent (temp 4-component vector of float)
0:272 'inF0' (in 4-component vector of float)
-0:273 hyp. tangent (global 4-component vector of float)
+0:273 hyp. tangent (temp 4-component vector of float)
0:273 'inF0' (in 4-component vector of float)
-0:275 trunc (global 4-component vector of float)
+0:275 trunc (temp 4-component vector of float)
0:275 'inF0' (in 4-component vector of float)
0:278 Branch: Return with expression
0:? Constant:
@@ -2085,85 +2086,85 @@ Shader version: 450
0:336 'inF1' (in 2X2 matrix of float)
0:336 'inF2' (in 2X2 matrix of float)
0:? Sequence
-0:338 all (global bool)
+0:338 all (temp bool)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 Absolute value (global 2X2 matrix of float)
+0:338 Absolute value (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc cosine (global 2X2 matrix of float)
+0:338 arc cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 any (global bool)
+0:338 any (temp bool)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc sine (global 2X2 matrix of float)
+0:338 arc sine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc tangent (global 2X2 matrix of float)
+0:338 arc tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 arc tangent (global 2X2 matrix of float)
+0:338 arc tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 Ceiling (global 2X2 matrix of float)
+0:338 Ceiling (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 clamp (global 2X2 matrix of float)
+0:338 clamp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
0:338 'inF2' (in 2X2 matrix of float)
-0:338 cosine (global 2X2 matrix of float)
+0:338 cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 hyp. cosine (global 2X2 matrix of float)
+0:338 hyp. cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 degrees (global 2X2 matrix of float)
+0:338 degrees (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 determinant (global float)
+0:338 determinant (temp float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 exp (global 2X2 matrix of float)
+0:338 exp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 exp2 (global 2X2 matrix of float)
+0:338 exp2 (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 findMSB (global int)
+0:338 findMSB (temp int)
0:338 Constant:
0:338 7 (const int)
-0:338 findLSB (global int)
+0:338 findLSB (temp int)
0:338 Constant:
0:338 7 (const int)
-0:338 Floor (global 2X2 matrix of float)
+0:338 Floor (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 mod (global 2X2 matrix of float)
+0:338 mod (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 Fraction (global 2X2 matrix of float)
+0:338 Fraction (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 frexp (global 2X2 matrix of float)
+0:338 frexp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 ldexp (global 2X2 matrix of float)
+0:338 ldexp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 mix (global 2X2 matrix of float)
+0:338 mix (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
0:338 'inF2' (in 2X2 matrix of float)
-0:338 log (global 2X2 matrix of float)
+0:338 log (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 matrix-scale (temp 2X2 matrix of float)
0:338 log2 (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 Constant:
0:338 0.301030
-0:338 log2 (global 2X2 matrix of float)
+0:338 log2 (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 max (global 2X2 matrix of float)
+0:338 max (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 min (global 2X2 matrix of float)
+0:338 min (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 pow (global 2X2 matrix of float)
+0:338 pow (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 radians (global 2X2 matrix of float)
+0:338 radians (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 roundEven (global 2X2 matrix of float)
+0:338 roundEven (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 inverse sqrt (global 2X2 matrix of float)
+0:338 inverse sqrt (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 clamp (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
@@ -2171,9 +2172,9 @@ Shader version: 450
0:338 0.000000
0:338 Constant:
0:338 1.000000
-0:338 Sign (global 2X2 matrix of float)
+0:338 Sign (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 sine (global 2X2 matrix of float)
+0:338 sine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 Sequence
0:338 move second child to first child (temp 2X2 matrix of float)
@@ -2184,24 +2185,24 @@ Shader version: 450
0:338 'inF2' (in 2X2 matrix of float)
0:338 cosine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 hyp. sine (global 2X2 matrix of float)
+0:338 hyp. sine (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 smoothstep (global 2X2 matrix of float)
+0:338 smoothstep (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
0:338 'inF2' (in 2X2 matrix of float)
-0:338 sqrt (global 2X2 matrix of float)
+0:338 sqrt (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 step (global 2X2 matrix of float)
+0:338 step (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:338 'inF1' (in 2X2 matrix of float)
-0:338 tangent (global 2X2 matrix of float)
+0:338 tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 hyp. tangent (global 2X2 matrix of float)
+0:338 hyp. tangent (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 transpose (global 2X2 matrix of float)
+0:338 transpose (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
-0:338 trunc (global 2X2 matrix of float)
+0:338 trunc (temp 2X2 matrix of float)
0:338 'inF0' (in 2X2 matrix of float)
0:341 Branch: Return with expression
0:? Constant:
@@ -2215,85 +2216,85 @@ Shader version: 450
0:345 'inF1' (in 3X3 matrix of float)
0:345 'inF2' (in 3X3 matrix of float)
0:? Sequence
-0:347 all (global bool)
+0:347 all (temp bool)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 Absolute value (global 3X3 matrix of float)
+0:347 Absolute value (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc cosine (global 3X3 matrix of float)
+0:347 arc cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 any (global bool)
+0:347 any (temp bool)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc sine (global 3X3 matrix of float)
+0:347 arc sine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc tangent (global 3X3 matrix of float)
+0:347 arc tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 arc tangent (global 3X3 matrix of float)
+0:347 arc tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 Ceiling (global 3X3 matrix of float)
+0:347 Ceiling (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 clamp (global 3X3 matrix of float)
+0:347 clamp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
0:347 'inF2' (in 3X3 matrix of float)
-0:347 cosine (global 3X3 matrix of float)
+0:347 cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 hyp. cosine (global 3X3 matrix of float)
+0:347 hyp. cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 degrees (global 3X3 matrix of float)
+0:347 degrees (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 determinant (global float)
+0:347 determinant (temp float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 exp (global 3X3 matrix of float)
+0:347 exp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 exp2 (global 3X3 matrix of float)
+0:347 exp2 (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 findMSB (global int)
+0:347 findMSB (temp int)
0:347 Constant:
0:347 7 (const int)
-0:347 findLSB (global int)
+0:347 findLSB (temp int)
0:347 Constant:
0:347 7 (const int)
-0:347 Floor (global 3X3 matrix of float)
+0:347 Floor (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 mod (global 3X3 matrix of float)
+0:347 mod (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 Fraction (global 3X3 matrix of float)
+0:347 Fraction (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 frexp (global 3X3 matrix of float)
+0:347 frexp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 ldexp (global 3X3 matrix of float)
+0:347 ldexp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 mix (global 3X3 matrix of float)
+0:347 mix (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
0:347 'inF2' (in 3X3 matrix of float)
-0:347 log (global 3X3 matrix of float)
+0:347 log (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 matrix-scale (temp 3X3 matrix of float)
0:347 log2 (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 Constant:
0:347 0.301030
-0:347 log2 (global 3X3 matrix of float)
+0:347 log2 (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 max (global 3X3 matrix of float)
+0:347 max (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 min (global 3X3 matrix of float)
+0:347 min (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 pow (global 3X3 matrix of float)
+0:347 pow (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 radians (global 3X3 matrix of float)
+0:347 radians (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 roundEven (global 3X3 matrix of float)
+0:347 roundEven (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 inverse sqrt (global 3X3 matrix of float)
+0:347 inverse sqrt (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 clamp (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
@@ -2301,9 +2302,9 @@ Shader version: 450
0:347 0.000000
0:347 Constant:
0:347 1.000000
-0:347 Sign (global 3X3 matrix of float)
+0:347 Sign (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 sine (global 3X3 matrix of float)
+0:347 sine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 Sequence
0:347 move second child to first child (temp 3X3 matrix of float)
@@ -2314,24 +2315,24 @@ Shader version: 450
0:347 'inF2' (in 3X3 matrix of float)
0:347 cosine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 hyp. sine (global 3X3 matrix of float)
+0:347 hyp. sine (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 smoothstep (global 3X3 matrix of float)
+0:347 smoothstep (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
0:347 'inF2' (in 3X3 matrix of float)
-0:347 sqrt (global 3X3 matrix of float)
+0:347 sqrt (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 step (global 3X3 matrix of float)
+0:347 step (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:347 'inF1' (in 3X3 matrix of float)
-0:347 tangent (global 3X3 matrix of float)
+0:347 tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 hyp. tangent (global 3X3 matrix of float)
+0:347 hyp. tangent (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 transpose (global 3X3 matrix of float)
+0:347 transpose (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
-0:347 trunc (global 3X3 matrix of float)
+0:347 trunc (temp 3X3 matrix of float)
0:347 'inF0' (in 3X3 matrix of float)
0:350 Branch: Return with expression
0:? Constant:
@@ -2350,85 +2351,85 @@ Shader version: 450
0:354 'inF1' (in 4X4 matrix of float)
0:354 'inF2' (in 4X4 matrix of float)
0:? Sequence
-0:356 all (global bool)
+0:356 all (temp bool)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 Absolute value (global 4X4 matrix of float)
+0:356 Absolute value (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc cosine (global 4X4 matrix of float)
+0:356 arc cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 any (global bool)
+0:356 any (temp bool)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc sine (global 4X4 matrix of float)
+0:356 arc sine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc tangent (global 4X4 matrix of float)
+0:356 arc tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 arc tangent (global 4X4 matrix of float)
+0:356 arc tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 Ceiling (global 4X4 matrix of float)
+0:356 Ceiling (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 clamp (global 4X4 matrix of float)
+0:356 clamp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
0:356 'inF2' (in 4X4 matrix of float)
-0:356 cosine (global 4X4 matrix of float)
+0:356 cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 hyp. cosine (global 4X4 matrix of float)
+0:356 hyp. cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 degrees (global 4X4 matrix of float)
+0:356 degrees (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 determinant (global float)
+0:356 determinant (temp float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 exp (global 4X4 matrix of float)
+0:356 exp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 exp2 (global 4X4 matrix of float)
+0:356 exp2 (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 findMSB (global int)
+0:356 findMSB (temp int)
0:356 Constant:
0:356 7 (const int)
-0:356 findLSB (global int)
+0:356 findLSB (temp int)
0:356 Constant:
0:356 7 (const int)
-0:356 Floor (global 4X4 matrix of float)
+0:356 Floor (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 mod (global 4X4 matrix of float)
+0:356 mod (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 Fraction (global 4X4 matrix of float)
+0:356 Fraction (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 frexp (global 4X4 matrix of float)
+0:356 frexp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 ldexp (global 4X4 matrix of float)
+0:356 ldexp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 mix (global 4X4 matrix of float)
+0:356 mix (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
0:356 'inF2' (in 4X4 matrix of float)
-0:356 log (global 4X4 matrix of float)
+0:356 log (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 matrix-scale (temp 4X4 matrix of float)
0:356 log2 (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 Constant:
0:356 0.301030
-0:356 log2 (global 4X4 matrix of float)
+0:356 log2 (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 max (global 4X4 matrix of float)
+0:356 max (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 min (global 4X4 matrix of float)
+0:356 min (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 pow (global 4X4 matrix of float)
+0:356 pow (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 radians (global 4X4 matrix of float)
+0:356 radians (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 roundEven (global 4X4 matrix of float)
+0:356 roundEven (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 inverse sqrt (global 4X4 matrix of float)
+0:356 inverse sqrt (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 clamp (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
@@ -2436,9 +2437,9 @@ Shader version: 450
0:356 0.000000
0:356 Constant:
0:356 1.000000
-0:356 Sign (global 4X4 matrix of float)
+0:356 Sign (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 sine (global 4X4 matrix of float)
+0:356 sine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 Sequence
0:356 move second child to first child (temp 4X4 matrix of float)
@@ -2449,24 +2450,24 @@ Shader version: 450
0:356 'inF2' (in 4X4 matrix of float)
0:356 cosine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 hyp. sine (global 4X4 matrix of float)
+0:356 hyp. sine (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 smoothstep (global 4X4 matrix of float)
+0:356 smoothstep (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
0:356 'inF2' (in 4X4 matrix of float)
-0:356 sqrt (global 4X4 matrix of float)
+0:356 sqrt (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 step (global 4X4 matrix of float)
+0:356 step (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:356 'inF1' (in 4X4 matrix of float)
-0:356 tangent (global 4X4 matrix of float)
+0:356 tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 hyp. tangent (global 4X4 matrix of float)
+0:356 hyp. tangent (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 transpose (global 4X4 matrix of float)
+0:356 transpose (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
-0:356 trunc (global 4X4 matrix of float)
+0:356 trunc (temp 4X4 matrix of float)
0:356 'inF0' (in 4X4 matrix of float)
0:359 Branch: Return with expression
0:? Constant:
@@ -2516,7 +2517,7 @@ Shader version: 450
0:378 Sequence
0:378 move second child to first child (temp float)
0:378 'r3' (temp float)
-0:378 dot-product (global float)
+0:378 dot-product (temp float)
0:378 'inFV0' (in 2-component vector of float)
0:378 'inFV1' (in 2-component vector of float)
0:378 Sequence
@@ -2579,7 +2580,7 @@ Shader version: 450
0:385 Sequence
0:385 move second child to first child (temp float)
0:385 'r3' (temp float)
-0:385 dot-product (global float)
+0:385 dot-product (temp float)
0:385 'inFV0' (in 3-component vector of float)
0:385 'inFV1' (in 3-component vector of float)
0:385 Sequence
@@ -2642,7 +2643,7 @@ Shader version: 450
0:392 Sequence
0:392 move second child to first child (temp float)
0:392 'r3' (temp float)
-0:392 dot-product (global float)
+0:392 dot-product (temp float)
0:392 'inFV0' (in 4-component vector of float)
0:392 'inFV1' (in 4-component vector of float)
0:392 Sequence
@@ -2720,13 +2721,13 @@ Shader version: 450
0:407 Sequence
0:407 move second child to first child (temp float)
0:407 'r05' (temp float)
-0:407 dot-product (global float)
+0:407 dot-product (temp float)
0:407 'inFV2' (in 2-component vector of float)
0:407 'inFV2' (in 2-component vector of float)
0:408 Sequence
0:408 move second child to first child (temp float)
0:408 'r06' (temp float)
-0:408 dot-product (global float)
+0:408 dot-product (temp float)
0:408 'inFV3' (in 3-component vector of float)
0:408 'inFV3' (in 3-component vector of float)
0:409 Sequence
@@ -3011,6 +3012,7 @@ Shader version: 450
1059: 76 ConstantComposite 1058 1058 1058 1058
4(VertexShaderFunction): 2 Function None 3
5: Label
+ Return
FunctionEnd
16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10
11(inF0): 7(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out
index e8fab995..0c12435a 100755
--- a/Test/baseResults/hlsl.layout.frag.out
+++ b/Test/baseResults/hlsl.layout.frag.out
@@ -33,6 +33,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -119,6 +120,7 @@ gl_FragCoord origin is upper left
38: 17(int) SpecConstant 10
4(main): 2 Function None 3
5: Label
+ Return
FunctionEnd
11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index 9c1b4ad9..288a0f3f 100644
--- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -158,6 +158,8 @@ gl_FragCoord origin is upper left
0:54 1 (const int)
0:54 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex2dmsf4' (uniform texture2DMS)
0:? 'g_tTex2dmsi4' (uniform itexture2DMS)
@@ -165,9 +167,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -332,6 +332,8 @@ gl_FragCoord origin is upper left
0:54 1 (const int)
0:54 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex2dmsf4' (uniform texture2DMS)
0:? 'g_tTex2dmsi4' (uniform itexture2DMS)
@@ -339,9 +341,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out
index ed2951f7..8c4f7c8d 100644
--- a/Test/baseResults/hlsl.load.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -158,6 +158,8 @@ gl_FragCoord origin is upper left
0:70 1 (const int)
0:70 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -180,9 +182,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -347,6 +347,8 @@ gl_FragCoord origin is upper left
0:70 1 (const int)
0:70 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -369,9 +371,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out
index 3a4b3fca..c8e8eb63 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -209,6 +209,8 @@ gl_FragCoord origin is upper left
0:75 1 (const int)
0:75 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -231,9 +233,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -449,6 +449,8 @@ gl_FragCoord origin is upper left
0:75 1 (const int)
0:75 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -471,9 +473,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
index 9495c602..a86f0aea 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -195,6 +195,7 @@ Shader version: 450
0:69 0 (const int)
0:69 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -217,8 +218,7 @@ Shader version: 450
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Pos' (out 4-component vector of float Position)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked vertex stage:
@@ -420,6 +420,7 @@ Shader version: 450
0:69 0 (const int)
0:69 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -442,8 +443,7 @@ Shader version: 450
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Pos' (out 4-component vector of float Position)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
index 560d8f5d..c80ddcfe 100644
--- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -65,13 +65,13 @@ gl_FragCoord origin is upper left
0:37 1 (const int)
0:37 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer)
0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer)
0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer)
0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -143,13 +143,13 @@ gl_FragCoord origin is upper left
0:37 1 (const int)
0:37 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer)
0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer)
0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer)
0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
index 6d64b94c..c0cd1528 100644
--- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
@@ -68,13 +68,13 @@ gl_FragCoord origin is upper left
0:37 1 (const int)
0:37 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer)
0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer)
0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -149,13 +149,13 @@ gl_FragCoord origin is upper left
0:37 1 (const int)
0:37 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer)
0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer)
0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
index 069e05d0..9a14b658 100644
--- a/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -245,6 +245,8 @@ gl_FragCoord origin is upper left
0:75 1 (const int)
0:75 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -267,9 +269,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -521,6 +521,8 @@ gl_FragCoord origin is upper left
0:75 1 (const int)
0:75 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -543,9 +545,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index ed89ee8d..fb58eff3 100644
--- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -182,6 +182,8 @@ gl_FragCoord origin is upper left
0:68 1 (const int)
0:68 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -204,9 +206,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -395,6 +395,8 @@ gl_FragCoord origin is upper left
0:68 1 (const int)
0:68 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -417,9 +419,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
index 7b263727..e9cc3940 100644
--- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
@@ -43,11 +43,11 @@ gl_FragCoord origin is upper left
0:31 0 (const int)
0:31 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -97,11 +97,11 @@ gl_FragCoord origin is upper left
0:31 0 (const int)
0:31 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
index 8ac94d08..a81ddf57 100644
--- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
@@ -74,6 +74,8 @@ gl_FragCoord origin is upper left
0:56 1 (const int)
0:56 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -90,9 +92,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -173,6 +173,8 @@ gl_FragCoord origin is upper left
0:56 1 (const int)
0:56 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -189,9 +191,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
index ca590157..b5435bac 100644
--- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
@@ -92,6 +92,8 @@ gl_FragCoord origin is upper left
0:61 1 (const int)
0:61 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -108,9 +110,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -209,6 +209,8 @@ gl_FragCoord origin is upper left
0:61 1 (const int)
0:61 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -225,9 +227,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out
new file mode 100644
index 00000000..d9ae7d5b
--- /dev/null
+++ b/Test/baseResults/hlsl.logical.binary.frag.out
@@ -0,0 +1,220 @@
+hlsl.logical.binary.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:12 Function Parameters:
+0:? Sequence
+0:13 Test condition and select (temp void)
+0:13 Condition
+0:13 logical-and (temp bool)
+0:13 Convert int to bool (temp bool)
+0:13 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:13 Constant:
+0:13 0 (const uint)
+0:13 Convert int to bool (temp bool)
+0:13 Convert float to int (temp int)
+0:13 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:13 Constant:
+0:13 2 (const uint)
+0:13 true case is null
+0:14 Test condition and select (temp void)
+0:14 Condition
+0:14 logical-or (temp bool)
+0:14 Convert int to bool (temp bool)
+0:14 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:14 Constant:
+0:14 0 (const uint)
+0:14 Convert int to bool (temp bool)
+0:14 Convert float to int (temp int)
+0:14 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:14 Constant:
+0:14 2 (const uint)
+0:14 true case is null
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 Color: direct index for structure (temp 4-component vector of float)
+0:17 'psout' (temp structure{temp 4-component vector of float Color})
+0:17 Constant:
+0:17 0 (const int)
+0:17 Constant:
+0:17 1.000000
+0:17 1.000000
+0:17 1.000000
+0:17 1.000000
+0:18 Sequence
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:18 Color: direct index for structure (temp 4-component vector of float)
+0:18 'psout' (temp structure{temp 4-component vector of float Color})
+0:18 Constant:
+0:18 0 (const int)
+0:18 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:12 Function Parameters:
+0:? Sequence
+0:13 Test condition and select (temp void)
+0:13 Condition
+0:13 logical-and (temp bool)
+0:13 Convert int to bool (temp bool)
+0:13 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:13 Constant:
+0:13 0 (const uint)
+0:13 Convert int to bool (temp bool)
+0:13 Convert float to int (temp int)
+0:13 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:13 Constant:
+0:13 2 (const uint)
+0:13 true case is null
+0:14 Test condition and select (temp void)
+0:14 Condition
+0:14 logical-or (temp bool)
+0:14 Convert int to bool (temp bool)
+0:14 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:14 Constant:
+0:14 0 (const uint)
+0:14 Convert int to bool (temp bool)
+0:14 Convert float to int (temp int)
+0:14 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:14 Constant:
+0:14 2 (const uint)
+0:14 true case is null
+0:17 move second child to first child (temp 4-component vector of float)
+0:17 Color: direct index for structure (temp 4-component vector of float)
+0:17 'psout' (temp structure{temp 4-component vector of float Color})
+0:17 Constant:
+0:17 0 (const int)
+0:17 Constant:
+0:17 1.000000
+0:17 1.000000
+0:17 1.000000
+0:17 1.000000
+0:18 Sequence
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:18 Color: direct index for structure (temp 4-component vector of float)
+0:18 'psout' (temp structure{temp 4-component vector of float Color})
+0:18 Constant:
+0:18 0 (const int)
+0:18 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 57
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 53
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 11 "$Global"
+ MemberName 11($Global) 0 "ival"
+ MemberName 11($Global) 1 "ival4"
+ MemberName 11($Global) 2 "fval"
+ MemberName 11($Global) 3 "fval4"
+ Name 13 ""
+ Name 45 "PS_OUTPUT"
+ MemberName 45(PS_OUTPUT) 0 "Color"
+ Name 47 "psout"
+ Name 53 "Color"
+ MemberDecorate 11($Global) 0 Offset 0
+ MemberDecorate 11($Global) 1 Offset 16
+ MemberDecorate 11($Global) 2 Offset 32
+ MemberDecorate 11($Global) 3 Offset 48
+ Decorate 11($Global) Block
+ Decorate 13 DescriptorSet 0
+ Decorate 53(Color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypeInt 32 1
+ 8: TypeVector 7(int) 4
+ 9: TypeFloat 32
+ 10: TypeVector 9(float) 4
+ 11($Global): TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4)
+ 12: TypePointer Uniform 11($Global)
+ 13: 12(ptr) Variable Uniform
+ 14: 7(int) Constant 0
+ 15: TypePointer Uniform 7(int)
+ 18: TypeInt 32 0
+ 19: 18(int) Constant 0
+ 23: 7(int) Constant 2
+ 24: TypePointer Uniform 9(float)
+ 45(PS_OUTPUT): TypeStruct 10(fvec4)
+ 46: TypePointer Function 45(PS_OUTPUT)
+ 48: 9(float) Constant 1065353216
+ 49: 10(fvec4) ConstantComposite 48 48 48 48
+ 50: TypePointer Function 10(fvec4)
+ 52: TypePointer Output 10(fvec4)
+ 53(Color): 52(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 47(psout): 46(ptr) Variable Function
+ 16: 15(ptr) AccessChain 13 14
+ 17: 7(int) Load 16
+ 20: 6(bool) INotEqual 17 19
+ SelectionMerge 22 None
+ BranchConditional 20 21 22
+ 21: Label
+ 25: 24(ptr) AccessChain 13 23
+ 26: 9(float) Load 25
+ 27: 7(int) ConvertFToS 26
+ 28: 6(bool) INotEqual 27 19
+ Branch 22
+ 22: Label
+ 29: 6(bool) Phi 20 5 28 21
+ SelectionMerge 31 None
+ BranchConditional 29 30 31
+ 30: Label
+ Branch 31
+ 31: Label
+ 32: 15(ptr) AccessChain 13 14
+ 33: 7(int) Load 32
+ 34: 6(bool) INotEqual 33 19
+ 35: 6(bool) LogicalNot 34
+ SelectionMerge 37 None
+ BranchConditional 35 36 37
+ 36: Label
+ 38: 24(ptr) AccessChain 13 23
+ 39: 9(float) Load 38
+ 40: 7(int) ConvertFToS 39
+ 41: 6(bool) INotEqual 40 19
+ Branch 37
+ 37: Label
+ 42: 6(bool) Phi 34 31 41 36
+ SelectionMerge 44 None
+ BranchConditional 42 43 44
+ 43: Label
+ Branch 44
+ 44: Label
+ 51: 50(ptr) AccessChain 47(psout) 14
+ Store 51 49
+ 54: 50(ptr) AccessChain 47(psout) 14
+ 55: 10(fvec4) Load 54
+ Store 53(Color) 55
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.logical.binary.vec.frag.out b/Test/baseResults/hlsl.logical.binary.vec.frag.out
new file mode 100644
index 00000000..32b5a385
--- /dev/null
+++ b/Test/baseResults/hlsl.logical.binary.vec.frag.out
@@ -0,0 +1,412 @@
+hlsl.logical.binary.vec.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:10 Function Parameters:
+0:? Sequence
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of bool)
+0:11 'r00' (temp 4-component vector of bool)
+0:11 Negate conditional (temp 4-component vector of bool)
+0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:11 Constant:
+0:11 0 (const uint)
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of bool)
+0:12 'r01' (temp 4-component vector of bool)
+0:12 logical-and (temp 4-component vector of bool)
+0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:12 Constant:
+0:12 0 (const uint)
+0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:12 Constant:
+0:12 1 (const uint)
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of bool)
+0:13 'r02' (temp 4-component vector of bool)
+0:13 logical-or (temp 4-component vector of bool)
+0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:13 Constant:
+0:13 0 (const uint)
+0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:13 Constant:
+0:13 1 (const uint)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of bool)
+0:15 'r10' (temp 4-component vector of bool)
+0:15 logical-and (temp 4-component vector of bool)
+0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
+0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:15 Constant:
+0:15 2 (const uint)
+0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:15 Constant:
+0:15 1 (const uint)
+0:16 Sequence
+0:16 move second child to first child (temp 4-component vector of bool)
+0:16 'r11' (temp 4-component vector of bool)
+0:16 logical-or (temp 4-component vector of bool)
+0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
+0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:16 Constant:
+0:16 2 (const uint)
+0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:16 Constant:
+0:16 1 (const uint)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of bool)
+0:18 'r20' (temp 4-component vector of bool)
+0:18 logical-and (temp 4-component vector of bool)
+0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:18 Constant:
+0:18 0 (const uint)
+0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
+0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:18 Constant:
+0:18 3 (const uint)
+0:19 Sequence
+0:19 move second child to first child (temp 4-component vector of bool)
+0:19 'r21' (temp 4-component vector of bool)
+0:19 logical-or (temp 4-component vector of bool)
+0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:19 Constant:
+0:19 0 (const uint)
+0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
+0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:19 Constant:
+0:19 3 (const uint)
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 Color: direct index for structure (temp 4-component vector of float)
+0:22 'psout' (temp structure{temp 4-component vector of float Color})
+0:22 Constant:
+0:22 0 (const int)
+0:22 Convert bool to float (temp 4-component vector of float)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 'r00' (temp 4-component vector of bool)
+0:22 'r01' (temp 4-component vector of bool)
+0:22 'r02' (temp 4-component vector of bool)
+0:22 'r10' (temp 4-component vector of bool)
+0:22 'r11' (temp 4-component vector of bool)
+0:22 'r20' (temp 4-component vector of bool)
+0:22 'r21' (temp 4-component vector of bool)
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:23 Color: direct index for structure (temp 4-component vector of float)
+0:23 'psout' (temp structure{temp 4-component vector of float Color})
+0:23 Constant:
+0:23 0 (const int)
+0:23 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:10 Function Parameters:
+0:? Sequence
+0:11 Sequence
+0:11 move second child to first child (temp 4-component vector of bool)
+0:11 'r00' (temp 4-component vector of bool)
+0:11 Negate conditional (temp 4-component vector of bool)
+0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:11 Constant:
+0:11 0 (const uint)
+0:12 Sequence
+0:12 move second child to first child (temp 4-component vector of bool)
+0:12 'r01' (temp 4-component vector of bool)
+0:12 logical-and (temp 4-component vector of bool)
+0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:12 Constant:
+0:12 0 (const uint)
+0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:12 Constant:
+0:12 1 (const uint)
+0:13 Sequence
+0:13 move second child to first child (temp 4-component vector of bool)
+0:13 'r02' (temp 4-component vector of bool)
+0:13 logical-or (temp 4-component vector of bool)
+0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:13 Constant:
+0:13 0 (const uint)
+0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:13 Constant:
+0:13 1 (const uint)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of bool)
+0:15 'r10' (temp 4-component vector of bool)
+0:15 logical-and (temp 4-component vector of bool)
+0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
+0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:15 Constant:
+0:15 2 (const uint)
+0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:15 Constant:
+0:15 1 (const uint)
+0:16 Sequence
+0:16 move second child to first child (temp 4-component vector of bool)
+0:16 'r11' (temp 4-component vector of bool)
+0:16 logical-or (temp 4-component vector of bool)
+0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
+0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:16 Constant:
+0:16 2 (const uint)
+0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:16 Constant:
+0:16 1 (const uint)
+0:18 Sequence
+0:18 move second child to first child (temp 4-component vector of bool)
+0:18 'r20' (temp 4-component vector of bool)
+0:18 logical-and (temp 4-component vector of bool)
+0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:18 Constant:
+0:18 0 (const uint)
+0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
+0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:18 Constant:
+0:18 3 (const uint)
+0:19 Sequence
+0:19 move second child to first child (temp 4-component vector of bool)
+0:19 'r21' (temp 4-component vector of bool)
+0:19 logical-or (temp 4-component vector of bool)
+0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:19 Constant:
+0:19 0 (const uint)
+0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
+0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+0:19 Constant:
+0:19 3 (const uint)
+0:22 move second child to first child (temp 4-component vector of float)
+0:22 Color: direct index for structure (temp 4-component vector of float)
+0:22 'psout' (temp structure{temp 4-component vector of float Color})
+0:22 Constant:
+0:22 0 (const int)
+0:22 Convert bool to float (temp 4-component vector of float)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 logical-or (temp 4-component vector of bool)
+0:22 'r00' (temp 4-component vector of bool)
+0:22 'r01' (temp 4-component vector of bool)
+0:22 'r02' (temp 4-component vector of bool)
+0:22 'r10' (temp 4-component vector of bool)
+0:22 'r11' (temp 4-component vector of bool)
+0:22 'r20' (temp 4-component vector of bool)
+0:22 'r21' (temp 4-component vector of bool)
+0:23 Sequence
+0:23 Sequence
+0:23 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:23 Color: direct index for structure (temp 4-component vector of float)
+0:23 'psout' (temp structure{temp 4-component vector of float Color})
+0:23 Constant:
+0:23 0 (const int)
+0:23 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 115
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 111
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 9 "r00"
+ Name 12 "$Global"
+ MemberName 12($Global) 0 "b4a"
+ MemberName 12($Global) 1 "b4b"
+ MemberName 12($Global) 2 "b1a"
+ MemberName 12($Global) 3 "b1b"
+ Name 14 ""
+ Name 24 "r01"
+ Name 33 "r02"
+ Name 41 "r10"
+ Name 52 "r11"
+ Name 61 "r20"
+ Name 73 "r21"
+ Name 87 "PS_OUTPUT"
+ MemberName 87(PS_OUTPUT) 0 "Color"
+ Name 89 "psout"
+ Name 111 "Color"
+ MemberDecorate 12($Global) 0 Offset 0
+ MemberDecorate 12($Global) 1 Offset 16
+ MemberDecorate 12($Global) 2 Offset 32
+ MemberDecorate 12($Global) 3 Offset 36
+ Decorate 12($Global) Block
+ Decorate 14 DescriptorSet 0
+ Decorate 111(Color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeBool
+ 7: TypeVector 6(bool) 4
+ 8: TypePointer Function 7(bvec4)
+ 10: TypeInt 32 0
+ 11: TypeVector 10(int) 4
+ 12($Global): TypeStruct 11(ivec4) 11(ivec4) 10(int) 10(int)
+ 13: TypePointer Uniform 12($Global)
+ 14: 13(ptr) Variable Uniform
+ 15: TypeInt 32 1
+ 16: 15(int) Constant 0
+ 17: TypePointer Uniform 11(ivec4)
+ 20: 10(int) Constant 0
+ 21: 11(ivec4) ConstantComposite 20 20 20 20
+ 28: 15(int) Constant 1
+ 42: 15(int) Constant 2
+ 43: TypePointer Uniform 10(int)
+ 67: 15(int) Constant 3
+ 85: TypeFloat 32
+ 86: TypeVector 85(float) 4
+ 87(PS_OUTPUT): TypeStruct 86(fvec4)
+ 88: TypePointer Function 87(PS_OUTPUT)
+ 103: 85(float) Constant 0
+ 104: 85(float) Constant 1065353216
+ 105: 86(fvec4) ConstantComposite 103 103 103 103
+ 106: 86(fvec4) ConstantComposite 104 104 104 104
+ 108: TypePointer Function 86(fvec4)
+ 110: TypePointer Output 86(fvec4)
+ 111(Color): 110(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(r00): 8(ptr) Variable Function
+ 24(r01): 8(ptr) Variable Function
+ 33(r02): 8(ptr) Variable Function
+ 41(r10): 8(ptr) Variable Function
+ 52(r11): 8(ptr) Variable Function
+ 61(r20): 8(ptr) Variable Function
+ 73(r21): 8(ptr) Variable Function
+ 89(psout): 88(ptr) Variable Function
+ 18: 17(ptr) AccessChain 14 16
+ 19: 11(ivec4) Load 18
+ 22: 7(bvec4) INotEqual 19 21
+ 23: 7(bvec4) LogicalNot 22
+ Store 9(r00) 23
+ 25: 17(ptr) AccessChain 14 16
+ 26: 11(ivec4) Load 25
+ 27: 7(bvec4) INotEqual 26 21
+ 29: 17(ptr) AccessChain 14 28
+ 30: 11(ivec4) Load 29
+ 31: 7(bvec4) INotEqual 30 21
+ 32: 7(bvec4) LogicalAnd 27 31
+ Store 24(r01) 32
+ 34: 17(ptr) AccessChain 14 16
+ 35: 11(ivec4) Load 34
+ 36: 7(bvec4) INotEqual 35 21
+ 37: 17(ptr) AccessChain 14 28
+ 38: 11(ivec4) Load 37
+ 39: 7(bvec4) INotEqual 38 21
+ 40: 7(bvec4) LogicalOr 36 39
+ Store 33(r02) 40
+ 44: 43(ptr) AccessChain 14 42
+ 45: 10(int) Load 44
+ 46: 6(bool) INotEqual 45 20
+ 47: 7(bvec4) CompositeConstruct 46 46 46 46
+ 48: 17(ptr) AccessChain 14 28
+ 49: 11(ivec4) Load 48
+ 50: 7(bvec4) INotEqual 49 21
+ 51: 7(bvec4) LogicalAnd 47 50
+ Store 41(r10) 51
+ 53: 43(ptr) AccessChain 14 42
+ 54: 10(int) Load 53
+ 55: 6(bool) INotEqual 54 20
+ 56: 7(bvec4) CompositeConstruct 55 55 55 55
+ 57: 17(ptr) AccessChain 14 28
+ 58: 11(ivec4) Load 57
+ 59: 7(bvec4) INotEqual 58 21
+ 60: 7(bvec4) LogicalOr 56 59
+ Store 52(r11) 60
+ 62: 17(ptr) AccessChain 14 16
+ 63: 11(ivec4) Load 62
+ 64: 7(bvec4) INotEqual 63 21
+ SelectionMerge 66 None
+ BranchConditional 64 65 66
+ 65: Label
+ 68: 43(ptr) AccessChain 14 67
+ 69: 10(int) Load 68
+ 70: 6(bool) INotEqual 69 20
+ 71: 7(bvec4) CompositeConstruct 70 70 70 70
+ Branch 66
+ 66: Label
+ 72: 6(bool) Phi 64 5 71 65
+ Store 61(r20) 72
+ 74: 17(ptr) AccessChain 14 16
+ 75: 11(ivec4) Load 74
+ 76: 7(bvec4) INotEqual 75 21
+ 77: 6(bool) LogicalNot 76
+ SelectionMerge 79 None
+ BranchConditional 77 78 79
+ 78: Label
+ 80: 43(ptr) AccessChain 14 67
+ 81: 10(int) Load 80
+ 82: 6(bool) INotEqual 81 20
+ 83: 7(bvec4) CompositeConstruct 82 82 82 82
+ Branch 79
+ 79: Label
+ 84: 6(bool) Phi 76 66 83 78
+ Store 73(r21) 84
+ 90: 7(bvec4) Load 9(r00)
+ 91: 7(bvec4) Load 24(r01)
+ 92: 7(bvec4) LogicalOr 90 91
+ 93: 7(bvec4) Load 33(r02)
+ 94: 7(bvec4) LogicalOr 92 93
+ 95: 7(bvec4) Load 41(r10)
+ 96: 7(bvec4) LogicalOr 94 95
+ 97: 7(bvec4) Load 52(r11)
+ 98: 7(bvec4) LogicalOr 96 97
+ 99: 7(bvec4) Load 61(r20)
+ 100: 7(bvec4) LogicalOr 98 99
+ 101: 7(bvec4) Load 73(r21)
+ 102: 7(bvec4) LogicalOr 100 101
+ 107: 86(fvec4) Select 102 106 105
+ 109: 108(ptr) AccessChain 89(psout) 16
+ Store 109 107
+ 112: 108(ptr) AccessChain 89(psout) 16
+ 113: 86(fvec4) Load 112
+ Store 111(Color) 113
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out
new file mode 100644
index 00000000..1aaa69a2
--- /dev/null
+++ b/Test/baseResults/hlsl.logical.unary.frag.out
@@ -0,0 +1,292 @@
+hlsl.logical.unary.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:12 Function Parameters:
+0:? Sequence
+0:13 Negate conditional (temp bool)
+0:13 Convert int to bool (temp bool)
+0:13 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:13 Constant:
+0:13 0 (const uint)
+0:14 Negate conditional (temp 4-component vector of bool)
+0:14 Convert int to bool (temp 4-component vector of bool)
+0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int)
+0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:14 Constant:
+0:14 1 (const uint)
+0:16 Negate conditional (temp bool)
+0:16 Convert float to bool (temp bool)
+0:16 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:16 Constant:
+0:16 2 (const uint)
+0:17 Negate conditional (temp 4-component vector of bool)
+0:17 Convert float to bool (temp 4-component vector of bool)
+0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float)
+0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:17 Constant:
+0:17 3 (const uint)
+0:19 Test condition and select (temp void)
+0:19 Condition
+0:19 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:19 Constant:
+0:19 0 (const uint)
+0:19 true case is null
+0:20 Test condition and select (temp void)
+0:20 Condition
+0:20 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:20 Constant:
+0:20 2 (const uint)
+0:20 true case is null
+0:21 Test condition and select (temp void)
+0:21 Condition
+0:21 Negate conditional (temp bool)
+0:21 Convert int to bool (temp bool)
+0:21 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:21 Constant:
+0:21 0 (const uint)
+0:21 true case is null
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Negate conditional (temp bool)
+0:22 Convert float to bool (temp bool)
+0:22 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:22 Constant:
+0:22 2 (const uint)
+0:22 true case is null
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 Color: direct index for structure (temp 4-component vector of float)
+0:25 'psout' (temp structure{temp 4-component vector of float Color})
+0:25 Constant:
+0:25 0 (const int)
+0:25 Constant:
+0:25 1.000000
+0:25 1.000000
+0:25 1.000000
+0:25 1.000000
+0:26 Sequence
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:26 Color: direct index for structure (temp 4-component vector of float)
+0:26 'psout' (temp structure{temp 4-component vector of float Color})
+0:26 Constant:
+0:26 0 (const int)
+0:26 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:12 Function Parameters:
+0:? Sequence
+0:13 Negate conditional (temp bool)
+0:13 Convert int to bool (temp bool)
+0:13 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:13 Constant:
+0:13 0 (const uint)
+0:14 Negate conditional (temp 4-component vector of bool)
+0:14 Convert int to bool (temp 4-component vector of bool)
+0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int)
+0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:14 Constant:
+0:14 1 (const uint)
+0:16 Negate conditional (temp bool)
+0:16 Convert float to bool (temp bool)
+0:16 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:16 Constant:
+0:16 2 (const uint)
+0:17 Negate conditional (temp 4-component vector of bool)
+0:17 Convert float to bool (temp 4-component vector of bool)
+0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float)
+0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:17 Constant:
+0:17 3 (const uint)
+0:19 Test condition and select (temp void)
+0:19 Condition
+0:19 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:19 Constant:
+0:19 0 (const uint)
+0:19 true case is null
+0:20 Test condition and select (temp void)
+0:20 Condition
+0:20 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:20 Constant:
+0:20 2 (const uint)
+0:20 true case is null
+0:21 Test condition and select (temp void)
+0:21 Condition
+0:21 Negate conditional (temp bool)
+0:21 Convert int to bool (temp bool)
+0:21 ival: direct index for structure (layout(offset=0 ) uniform int)
+0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:21 Constant:
+0:21 0 (const uint)
+0:21 true case is null
+0:22 Test condition and select (temp void)
+0:22 Condition
+0:22 Negate conditional (temp bool)
+0:22 Convert float to bool (temp bool)
+0:22 fval: direct index for structure (layout(offset=32 ) uniform float)
+0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+0:22 Constant:
+0:22 2 (const uint)
+0:22 true case is null
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 Color: direct index for structure (temp 4-component vector of float)
+0:25 'psout' (temp structure{temp 4-component vector of float Color})
+0:25 Constant:
+0:25 0 (const int)
+0:25 Constant:
+0:25 1.000000
+0:25 1.000000
+0:25 1.000000
+0:25 1.000000
+0:26 Sequence
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:26 Color: direct index for structure (temp 4-component vector of float)
+0:26 'psout' (temp structure{temp 4-component vector of float Color})
+0:26 Constant:
+0:26 0 (const int)
+0:26 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 77
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 73
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 10 "$Global"
+ MemberName 10($Global) 0 "ival"
+ MemberName 10($Global) 1 "ival4"
+ MemberName 10($Global) 2 "fval"
+ MemberName 10($Global) 3 "fval4"
+ Name 12 ""
+ Name 65 "PS_OUTPUT"
+ MemberName 65(PS_OUTPUT) 0 "Color"
+ Name 67 "psout"
+ Name 73 "Color"
+ MemberDecorate 10($Global) 0 Offset 0
+ MemberDecorate 10($Global) 1 Offset 16
+ MemberDecorate 10($Global) 2 Offset 32
+ MemberDecorate 10($Global) 3 Offset 48
+ Decorate 10($Global) Block
+ Decorate 12 DescriptorSet 0
+ Decorate 73(Color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeVector 6(int) 4
+ 8: TypeFloat 32
+ 9: TypeVector 8(float) 4
+ 10($Global): TypeStruct 6(int) 7(ivec4) 8(float) 9(fvec4)
+ 11: TypePointer Uniform 10($Global)
+ 12: 11(ptr) Variable Uniform
+ 13: 6(int) Constant 0
+ 14: TypePointer Uniform 6(int)
+ 17: TypeBool
+ 18: TypeInt 32 0
+ 19: 18(int) Constant 0
+ 22: 6(int) Constant 1
+ 23: TypePointer Uniform 7(ivec4)
+ 26: TypeVector 17(bool) 4
+ 27: TypeVector 18(int) 4
+ 28: 27(ivec4) ConstantComposite 19 19 19 19
+ 31: 6(int) Constant 2
+ 32: TypePointer Uniform 8(float)
+ 35: 8(float) Constant 0
+ 38: 6(int) Constant 3
+ 39: TypePointer Uniform 9(fvec4)
+ 42: 9(fvec4) ConstantComposite 35 35 35 35
+ 65(PS_OUTPUT): TypeStruct 9(fvec4)
+ 66: TypePointer Function 65(PS_OUTPUT)
+ 68: 8(float) Constant 1065353216
+ 69: 9(fvec4) ConstantComposite 68 68 68 68
+ 70: TypePointer Function 9(fvec4)
+ 72: TypePointer Output 9(fvec4)
+ 73(Color): 72(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 67(psout): 66(ptr) Variable Function
+ 15: 14(ptr) AccessChain 12 13
+ 16: 6(int) Load 15
+ 20: 17(bool) INotEqual 16 19
+ 21: 17(bool) LogicalNot 20
+ 24: 23(ptr) AccessChain 12 22
+ 25: 7(ivec4) Load 24
+ 29: 26(bvec4) INotEqual 25 28
+ 30: 26(bvec4) LogicalNot 29
+ 33: 32(ptr) AccessChain 12 31
+ 34: 8(float) Load 33
+ 36: 17(bool) FOrdNotEqual 34 35
+ 37: 17(bool) LogicalNot 36
+ 40: 39(ptr) AccessChain 12 38
+ 41: 9(fvec4) Load 40
+ 43: 26(bvec4) FOrdNotEqual 41 42
+ 44: 26(bvec4) LogicalNot 43
+ 45: 14(ptr) AccessChain 12 13
+ 46: 6(int) Load 45
+ SelectionMerge 48 None
+ BranchConditional 46 47 48
+ 47: Label
+ Branch 48
+ 48: Label
+ 49: 32(ptr) AccessChain 12 31
+ 50: 8(float) Load 49
+ SelectionMerge 52 None
+ BranchConditional 50 51 52
+ 51: Label
+ Branch 52
+ 52: Label
+ 53: 14(ptr) AccessChain 12 13
+ 54: 6(int) Load 53
+ 55: 17(bool) INotEqual 54 19
+ 56: 17(bool) LogicalNot 55
+ SelectionMerge 58 None
+ BranchConditional 56 57 58
+ 57: Label
+ Branch 58
+ 58: Label
+ 59: 32(ptr) AccessChain 12 31
+ 60: 8(float) Load 59
+ 61: 17(bool) FOrdNotEqual 60 35
+ 62: 17(bool) LogicalNot 61
+ SelectionMerge 64 None
+ BranchConditional 62 63 64
+ 63: Label
+ Branch 64
+ 64: Label
+ 71: 70(ptr) AccessChain 67(psout) 13
+ Store 71 69
+ 74: 70(ptr) AccessChain 67(psout) 13
+ 75: 9(fvec4) Load 74
+ Store 73(Color) 75
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.matNx1.frag.out b/Test/baseResults/hlsl.matNx1.frag.out
new file mode 100644
index 00000000..f9dd65f9
--- /dev/null
+++ b/Test/baseResults/hlsl.matNx1.frag.out
@@ -0,0 +1,261 @@
+hlsl.matNx1.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: TestMatNx1( (temp void)
+0:3 Function Parameters:
+0:? Sequence
+0:13 Sequence
+0:13 move second child to first child (temp 1X1 matrix of float)
+0:13 'r00' (temp 1X1 matrix of float)
+0:13 transpose (temp 1X1 matrix of float)
+0:13 'f1x1' (temp 1X1 matrix of float)
+0:14 Sequence
+0:14 move second child to first child (temp 1X2 matrix of float)
+0:14 'r01' (temp 1X2 matrix of float)
+0:14 transpose (temp 1X2 matrix of float)
+0:14 'f2x1' (temp 2X1 matrix of float)
+0:15 Sequence
+0:15 move second child to first child (temp 1X3 matrix of float)
+0:15 'r02' (temp 1X3 matrix of float)
+0:15 transpose (temp 1X3 matrix of float)
+0:15 'f3x1' (temp 3X1 matrix of float)
+0:16 Sequence
+0:16 move second child to first child (temp 1X4 matrix of float)
+0:16 'r03' (temp 1X4 matrix of float)
+0:16 transpose (temp 1X4 matrix of float)
+0:16 'f4x1' (temp 4X1 matrix of float)
+0:18 Sequence
+0:18 move second child to first child (temp 1X1 matrix of float)
+0:18 'r10' (temp 1X1 matrix of float)
+0:18 transpose (temp 1X1 matrix of float)
+0:18 'f1x1' (temp 1X1 matrix of float)
+0:19 Sequence
+0:19 move second child to first child (temp 2X1 matrix of float)
+0:19 'r11' (temp 2X1 matrix of float)
+0:19 transpose (temp 2X1 matrix of float)
+0:19 'f1x2' (temp 1X2 matrix of float)
+0:20 Sequence
+0:20 move second child to first child (temp 3X1 matrix of float)
+0:20 'r12' (temp 3X1 matrix of float)
+0:20 transpose (temp 3X1 matrix of float)
+0:20 'f1x3' (temp 1X3 matrix of float)
+0:21 Sequence
+0:21 move second child to first child (temp 4X1 matrix of float)
+0:21 'r13' (temp 4X1 matrix of float)
+0:21 transpose (temp 4X1 matrix of float)
+0:21 'f1x4' (temp 1X4 matrix of float)
+0:27 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:27 Function Parameters:
+0:? Sequence
+0:29 move second child to first child (temp 4-component vector of float)
+0:29 color: direct index for structure (temp 4-component vector of float)
+0:29 'ps_output' (temp structure{temp 4-component vector of float color})
+0:29 Constant:
+0:29 0 (const int)
+0:29 Constant:
+0:29 1.000000
+0:29 1.000000
+0:29 1.000000
+0:29 1.000000
+0:30 Sequence
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 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 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: TestMatNx1( (temp void)
+0:3 Function Parameters:
+0:? Sequence
+0:13 Sequence
+0:13 move second child to first child (temp 1X1 matrix of float)
+0:13 'r00' (temp 1X1 matrix of float)
+0:13 transpose (temp 1X1 matrix of float)
+0:13 'f1x1' (temp 1X1 matrix of float)
+0:14 Sequence
+0:14 move second child to first child (temp 1X2 matrix of float)
+0:14 'r01' (temp 1X2 matrix of float)
+0:14 transpose (temp 1X2 matrix of float)
+0:14 'f2x1' (temp 2X1 matrix of float)
+0:15 Sequence
+0:15 move second child to first child (temp 1X3 matrix of float)
+0:15 'r02' (temp 1X3 matrix of float)
+0:15 transpose (temp 1X3 matrix of float)
+0:15 'f3x1' (temp 3X1 matrix of float)
+0:16 Sequence
+0:16 move second child to first child (temp 1X4 matrix of float)
+0:16 'r03' (temp 1X4 matrix of float)
+0:16 transpose (temp 1X4 matrix of float)
+0:16 'f4x1' (temp 4X1 matrix of float)
+0:18 Sequence
+0:18 move second child to first child (temp 1X1 matrix of float)
+0:18 'r10' (temp 1X1 matrix of float)
+0:18 transpose (temp 1X1 matrix of float)
+0:18 'f1x1' (temp 1X1 matrix of float)
+0:19 Sequence
+0:19 move second child to first child (temp 2X1 matrix of float)
+0:19 'r11' (temp 2X1 matrix of float)
+0:19 transpose (temp 2X1 matrix of float)
+0:19 'f1x2' (temp 1X2 matrix of float)
+0:20 Sequence
+0:20 move second child to first child (temp 3X1 matrix of float)
+0:20 'r12' (temp 3X1 matrix of float)
+0:20 transpose (temp 3X1 matrix of float)
+0:20 'f1x3' (temp 1X3 matrix of float)
+0:21 Sequence
+0:21 move second child to first child (temp 4X1 matrix of float)
+0:21 'r13' (temp 4X1 matrix of float)
+0:21 transpose (temp 4X1 matrix of float)
+0:21 'f1x4' (temp 1X4 matrix of float)
+0:27 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:27 Function Parameters:
+0:? Sequence
+0:29 move second child to first child (temp 4-component vector of float)
+0:29 color: direct index for structure (temp 4-component vector of float)
+0:29 'ps_output' (temp structure{temp 4-component vector of float color})
+0:29 Constant:
+0:29 0 (const int)
+0:29 Constant:
+0:29 1.000000
+0:29 1.000000
+0:29 1.000000
+0:29 1.000000
+0:30 Sequence
+0:30 Sequence
+0:30 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 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 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 72
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 68
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 6 "TestMatNx1("
+ Name 12 "r00"
+ Name 13 "f1x1"
+ Name 19 "r01"
+ Name 22 "f2x1"
+ Name 28 "r02"
+ Name 31 "f3x1"
+ Name 37 "r03"
+ Name 40 "f4x1"
+ Name 43 "r10"
+ Name 46 "r11"
+ Name 47 "f1x2"
+ Name 50 "r12"
+ Name 51 "f1x3"
+ Name 54 "r13"
+ Name 55 "f1x4"
+ Name 58 "PS_OUTPUT"
+ MemberName 58(PS_OUTPUT) 0 "color"
+ Name 60 "ps_output"
+ Name 68 "color"
+ Decorate 68(color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 8: TypeFloat 32
+ 9: TypeVector 8(float) 1
+ 10: TypeMatrix 9(fvec) 1
+ 11: TypePointer Function 10
+ 16: TypeVector 8(float) 2
+ 17: TypeMatrix 16(fvec2) 1
+ 18: TypePointer Function 17
+ 20: TypeMatrix 9(fvec) 2
+ 21: TypePointer Function 20
+ 25: TypeVector 8(float) 3
+ 26: TypeMatrix 25(fvec3) 1
+ 27: TypePointer Function 26
+ 29: TypeMatrix 9(fvec) 3
+ 30: TypePointer Function 29
+ 34: TypeVector 8(float) 4
+ 35: TypeMatrix 34(fvec4) 1
+ 36: TypePointer Function 35
+ 38: TypeMatrix 9(fvec) 4
+ 39: TypePointer Function 38
+ 58(PS_OUTPUT): TypeStruct 34(fvec4)
+ 59: TypePointer Function 58(PS_OUTPUT)
+ 61: TypeInt 32 1
+ 62: 61(int) Constant 0
+ 63: 8(float) Constant 1065353216
+ 64: 34(fvec4) ConstantComposite 63 63 63 63
+ 65: TypePointer Function 34(fvec4)
+ 67: TypePointer Output 34(fvec4)
+ 68(color): 67(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 60(ps_output): 59(ptr) Variable Function
+ 66: 65(ptr) AccessChain 60(ps_output) 62
+ Store 66 64
+ 69: 65(ptr) AccessChain 60(ps_output) 62
+ 70: 34(fvec4) Load 69
+ Store 68(color) 70
+ Return
+ FunctionEnd
+ 6(TestMatNx1(): 2 Function None 3
+ 7: Label
+ 12(r00): 11(ptr) Variable Function
+ 13(f1x1): 11(ptr) Variable Function
+ 19(r01): 18(ptr) Variable Function
+ 22(f2x1): 21(ptr) Variable Function
+ 28(r02): 27(ptr) Variable Function
+ 31(f3x1): 30(ptr) Variable Function
+ 37(r03): 36(ptr) Variable Function
+ 40(f4x1): 39(ptr) Variable Function
+ 43(r10): 11(ptr) Variable Function
+ 46(r11): 21(ptr) Variable Function
+ 47(f1x2): 18(ptr) Variable Function
+ 50(r12): 30(ptr) Variable Function
+ 51(f1x3): 27(ptr) Variable Function
+ 54(r13): 39(ptr) Variable Function
+ 55(f1x4): 36(ptr) Variable Function
+ 14: 10 Load 13(f1x1)
+ 15: 10 Transpose 14
+ Store 12(r00) 15
+ 23: 20 Load 22(f2x1)
+ 24: 17 Transpose 23
+ Store 19(r01) 24
+ 32: 29 Load 31(f3x1)
+ 33: 26 Transpose 32
+ Store 28(r02) 33
+ 41: 38 Load 40(f4x1)
+ 42: 35 Transpose 41
+ Store 37(r03) 42
+ 44: 10 Load 13(f1x1)
+ 45: 10 Transpose 44
+ Store 43(r10) 45
+ 48: 17 Load 47(f1x2)
+ 49: 20 Transpose 48
+ Store 46(r11) 49
+ 52: 26 Load 51(f1x3)
+ 53: 29 Transpose 52
+ Store 50(r12) 53
+ 56: 35 Load 55(f1x4)
+ 57: 38 Transpose 56
+ Store 54(r13) 57
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.matType.bool.frag.out b/Test/baseResults/hlsl.matType.bool.frag.out
new file mode 100644
index 00000000..e24c8784
--- /dev/null
+++ b/Test/baseResults/hlsl.matType.bool.frag.out
@@ -0,0 +1,419 @@
+hlsl.matType.bool.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: TestBoolMatTypes( (temp void)
+0:3 Function Parameters:
+0:? Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 1X1 matrix of bool)
+0:25 'r00' (temp 1X1 matrix of bool)
+0:25 transpose (temp 1X1 matrix of bool)
+0:25 'b1x1' (temp 1X1 matrix of bool)
+0:26 Sequence
+0:26 move second child to first child (temp 1X2 matrix of bool)
+0:26 'r01' (temp 1X2 matrix of bool)
+0:26 transpose (temp 1X2 matrix of bool)
+0:26 'b2x1' (temp 2X1 matrix of bool)
+0:27 Sequence
+0:27 move second child to first child (temp 1X3 matrix of bool)
+0:27 'r02' (temp 1X3 matrix of bool)
+0:27 transpose (temp 1X3 matrix of bool)
+0:27 'b3x1' (temp 3X1 matrix of bool)
+0:28 Sequence
+0:28 move second child to first child (temp 1X4 matrix of bool)
+0:28 'r03' (temp 1X4 matrix of bool)
+0:28 transpose (temp 1X4 matrix of bool)
+0:28 'b4x1' (temp 4X1 matrix of bool)
+0:30 Sequence
+0:30 move second child to first child (temp 2X1 matrix of bool)
+0:30 'r10' (temp 2X1 matrix of bool)
+0:30 transpose (temp 2X1 matrix of bool)
+0:30 'b1x2' (temp 1X2 matrix of bool)
+0:31 Sequence
+0:31 move second child to first child (temp 2X2 matrix of bool)
+0:31 'r11' (temp 2X2 matrix of bool)
+0:31 transpose (temp 2X2 matrix of bool)
+0:31 'b2x2' (temp 2X2 matrix of bool)
+0:32 Sequence
+0:32 move second child to first child (temp 2X3 matrix of bool)
+0:32 'r12' (temp 2X3 matrix of bool)
+0:32 transpose (temp 2X3 matrix of bool)
+0:32 'b3x2' (temp 3X2 matrix of bool)
+0:33 Sequence
+0:33 move second child to first child (temp 2X4 matrix of bool)
+0:33 'r13' (temp 2X4 matrix of bool)
+0:33 transpose (temp 2X4 matrix of bool)
+0:33 'b4x2' (temp 4X2 matrix of bool)
+0:35 Sequence
+0:35 move second child to first child (temp 3X1 matrix of bool)
+0:35 'r20' (temp 3X1 matrix of bool)
+0:35 transpose (temp 3X1 matrix of bool)
+0:35 'b1x3' (temp 1X3 matrix of bool)
+0:36 Sequence
+0:36 move second child to first child (temp 3X2 matrix of bool)
+0:36 'r21' (temp 3X2 matrix of bool)
+0:36 transpose (temp 3X2 matrix of bool)
+0:36 'b2x3' (temp 2X3 matrix of bool)
+0:37 Sequence
+0:37 move second child to first child (temp 3X3 matrix of bool)
+0:37 'r22' (temp 3X3 matrix of bool)
+0:37 transpose (temp 3X3 matrix of bool)
+0:37 'b3x3' (temp 3X3 matrix of bool)
+0:38 Sequence
+0:38 move second child to first child (temp 3X4 matrix of bool)
+0:38 'r23' (temp 3X4 matrix of bool)
+0:38 transpose (temp 3X4 matrix of bool)
+0:38 'b4x3' (temp 4X3 matrix of bool)
+0:40 Sequence
+0:40 move second child to first child (temp 4X1 matrix of bool)
+0:40 'r30' (temp 4X1 matrix of bool)
+0:40 transpose (temp 4X1 matrix of bool)
+0:40 'b1x4' (temp 1X4 matrix of bool)
+0:41 Sequence
+0:41 move second child to first child (temp 4X2 matrix of bool)
+0:41 'r31' (temp 4X2 matrix of bool)
+0:41 transpose (temp 4X2 matrix of bool)
+0:41 'b2x4' (temp 2X4 matrix of bool)
+0:42 Sequence
+0:42 move second child to first child (temp 4X3 matrix of bool)
+0:42 'r32' (temp 4X3 matrix of bool)
+0:42 transpose (temp 4X3 matrix of bool)
+0:42 'b3x4' (temp 3X4 matrix of bool)
+0:43 Sequence
+0:43 move second child to first child (temp 4X4 matrix of bool)
+0:43 'r33' (temp 4X4 matrix of bool)
+0:43 transpose (temp 4X4 matrix of bool)
+0:43 'b4x4' (temp 4X4 matrix of bool)
+0:49 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:49 Function Parameters:
+0:? Sequence
+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 'ps_output' (temp structure{temp 4-component vector of float color})
+0:51 Constant:
+0:51 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:52 Sequence
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:52 color: direct index for structure (temp 4-component vector of float)
+0:52 'ps_output' (temp structure{temp 4-component vector of float color})
+0:52 Constant:
+0:52 0 (const int)
+0:52 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: TestBoolMatTypes( (temp void)
+0:3 Function Parameters:
+0:? Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 1X1 matrix of bool)
+0:25 'r00' (temp 1X1 matrix of bool)
+0:25 transpose (temp 1X1 matrix of bool)
+0:25 'b1x1' (temp 1X1 matrix of bool)
+0:26 Sequence
+0:26 move second child to first child (temp 1X2 matrix of bool)
+0:26 'r01' (temp 1X2 matrix of bool)
+0:26 transpose (temp 1X2 matrix of bool)
+0:26 'b2x1' (temp 2X1 matrix of bool)
+0:27 Sequence
+0:27 move second child to first child (temp 1X3 matrix of bool)
+0:27 'r02' (temp 1X3 matrix of bool)
+0:27 transpose (temp 1X3 matrix of bool)
+0:27 'b3x1' (temp 3X1 matrix of bool)
+0:28 Sequence
+0:28 move second child to first child (temp 1X4 matrix of bool)
+0:28 'r03' (temp 1X4 matrix of bool)
+0:28 transpose (temp 1X4 matrix of bool)
+0:28 'b4x1' (temp 4X1 matrix of bool)
+0:30 Sequence
+0:30 move second child to first child (temp 2X1 matrix of bool)
+0:30 'r10' (temp 2X1 matrix of bool)
+0:30 transpose (temp 2X1 matrix of bool)
+0:30 'b1x2' (temp 1X2 matrix of bool)
+0:31 Sequence
+0:31 move second child to first child (temp 2X2 matrix of bool)
+0:31 'r11' (temp 2X2 matrix of bool)
+0:31 transpose (temp 2X2 matrix of bool)
+0:31 'b2x2' (temp 2X2 matrix of bool)
+0:32 Sequence
+0:32 move second child to first child (temp 2X3 matrix of bool)
+0:32 'r12' (temp 2X3 matrix of bool)
+0:32 transpose (temp 2X3 matrix of bool)
+0:32 'b3x2' (temp 3X2 matrix of bool)
+0:33 Sequence
+0:33 move second child to first child (temp 2X4 matrix of bool)
+0:33 'r13' (temp 2X4 matrix of bool)
+0:33 transpose (temp 2X4 matrix of bool)
+0:33 'b4x2' (temp 4X2 matrix of bool)
+0:35 Sequence
+0:35 move second child to first child (temp 3X1 matrix of bool)
+0:35 'r20' (temp 3X1 matrix of bool)
+0:35 transpose (temp 3X1 matrix of bool)
+0:35 'b1x3' (temp 1X3 matrix of bool)
+0:36 Sequence
+0:36 move second child to first child (temp 3X2 matrix of bool)
+0:36 'r21' (temp 3X2 matrix of bool)
+0:36 transpose (temp 3X2 matrix of bool)
+0:36 'b2x3' (temp 2X3 matrix of bool)
+0:37 Sequence
+0:37 move second child to first child (temp 3X3 matrix of bool)
+0:37 'r22' (temp 3X3 matrix of bool)
+0:37 transpose (temp 3X3 matrix of bool)
+0:37 'b3x3' (temp 3X3 matrix of bool)
+0:38 Sequence
+0:38 move second child to first child (temp 3X4 matrix of bool)
+0:38 'r23' (temp 3X4 matrix of bool)
+0:38 transpose (temp 3X4 matrix of bool)
+0:38 'b4x3' (temp 4X3 matrix of bool)
+0:40 Sequence
+0:40 move second child to first child (temp 4X1 matrix of bool)
+0:40 'r30' (temp 4X1 matrix of bool)
+0:40 transpose (temp 4X1 matrix of bool)
+0:40 'b1x4' (temp 1X4 matrix of bool)
+0:41 Sequence
+0:41 move second child to first child (temp 4X2 matrix of bool)
+0:41 'r31' (temp 4X2 matrix of bool)
+0:41 transpose (temp 4X2 matrix of bool)
+0:41 'b2x4' (temp 2X4 matrix of bool)
+0:42 Sequence
+0:42 move second child to first child (temp 4X3 matrix of bool)
+0:42 'r32' (temp 4X3 matrix of bool)
+0:42 transpose (temp 4X3 matrix of bool)
+0:42 'b3x4' (temp 3X4 matrix of bool)
+0:43 Sequence
+0:43 move second child to first child (temp 4X4 matrix of bool)
+0:43 'r33' (temp 4X4 matrix of bool)
+0:43 transpose (temp 4X4 matrix of bool)
+0:43 'b4x4' (temp 4X4 matrix of bool)
+0:49 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:49 Function Parameters:
+0:? Sequence
+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 'ps_output' (temp structure{temp 4-component vector of float color})
+0:51 Constant:
+0:51 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:52 Sequence
+0:52 Sequence
+0:52 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:52 color: direct index for structure (temp 4-component vector of float)
+0:52 'ps_output' (temp structure{temp 4-component vector of float color})
+0:52 Constant:
+0:52 0 (const int)
+0:52 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 125
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 121
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 6 "TestBoolMatTypes("
+ Name 12 "r00"
+ Name 13 "b1x1"
+ Name 19 "r01"
+ Name 22 "b2x1"
+ Name 28 "r02"
+ Name 31 "b3x1"
+ Name 37 "r03"
+ Name 40 "b4x1"
+ Name 43 "r10"
+ Name 44 "b1x2"
+ Name 49 "r11"
+ Name 50 "b2x2"
+ Name 55 "r12"
+ Name 58 "b3x2"
+ Name 63 "r13"
+ Name 66 "b4x2"
+ Name 69 "r20"
+ Name 70 "b1x3"
+ Name 73 "r21"
+ Name 74 "b2x3"
+ Name 79 "r22"
+ Name 80 "b3x3"
+ Name 85 "r23"
+ Name 88 "b4x3"
+ Name 91 "r30"
+ Name 92 "b1x4"
+ Name 95 "r31"
+ Name 96 "b2x4"
+ Name 99 "r32"
+ Name 100 "b3x4"
+ Name 105 "r33"
+ Name 106 "b4x4"
+ Name 111 "PS_OUTPUT"
+ MemberName 111(PS_OUTPUT) 0 "color"
+ Name 113 "ps_output"
+ Name 121 "color"
+ Decorate 121(color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 8: TypeBool
+ 9: TypeVector 8(bool) 1
+ 10: TypeMatrix 9(bvec) 1
+ 11: TypePointer Function 10
+ 16: TypeVector 8(bool) 2
+ 17: TypeMatrix 16(bvec2) 1
+ 18: TypePointer Function 17
+ 20: TypeMatrix 9(bvec) 2
+ 21: TypePointer Function 20
+ 25: TypeVector 8(bool) 3
+ 26: TypeMatrix 25(bvec3) 1
+ 27: TypePointer Function 26
+ 29: TypeMatrix 9(bvec) 3
+ 30: TypePointer Function 29
+ 34: TypeVector 8(bool) 4
+ 35: TypeMatrix 34(bvec4) 1
+ 36: TypePointer Function 35
+ 38: TypeMatrix 9(bvec) 4
+ 39: TypePointer Function 38
+ 47: TypeMatrix 16(bvec2) 2
+ 48: TypePointer Function 47
+ 53: TypeMatrix 25(bvec3) 2
+ 54: TypePointer Function 53
+ 56: TypeMatrix 16(bvec2) 3
+ 57: TypePointer Function 56
+ 61: TypeMatrix 34(bvec4) 2
+ 62: TypePointer Function 61
+ 64: TypeMatrix 16(bvec2) 4
+ 65: TypePointer Function 64
+ 77: TypeMatrix 25(bvec3) 3
+ 78: TypePointer Function 77
+ 83: TypeMatrix 34(bvec4) 3
+ 84: TypePointer Function 83
+ 86: TypeMatrix 25(bvec3) 4
+ 87: TypePointer Function 86
+ 103: TypeMatrix 34(bvec4) 4
+ 104: TypePointer Function 103
+ 109: TypeFloat 32
+ 110: TypeVector 109(float) 4
+ 111(PS_OUTPUT): TypeStruct 110(fvec4)
+ 112: TypePointer Function 111(PS_OUTPUT)
+ 114: TypeInt 32 1
+ 115: 114(int) Constant 0
+ 116: 109(float) Constant 0
+ 117: 110(fvec4) ConstantComposite 116 116 116 116
+ 118: TypePointer Function 110(fvec4)
+ 120: TypePointer Output 110(fvec4)
+ 121(color): 120(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 113(ps_output): 112(ptr) Variable Function
+ 119: 118(ptr) AccessChain 113(ps_output) 115
+ Store 119 117
+ 122: 118(ptr) AccessChain 113(ps_output) 115
+ 123: 110(fvec4) Load 122
+ Store 121(color) 123
+ Return
+ FunctionEnd
+6(TestBoolMatTypes(): 2 Function None 3
+ 7: Label
+ 12(r00): 11(ptr) Variable Function
+ 13(b1x1): 11(ptr) Variable Function
+ 19(r01): 18(ptr) Variable Function
+ 22(b2x1): 21(ptr) Variable Function
+ 28(r02): 27(ptr) Variable Function
+ 31(b3x1): 30(ptr) Variable Function
+ 37(r03): 36(ptr) Variable Function
+ 40(b4x1): 39(ptr) Variable Function
+ 43(r10): 21(ptr) Variable Function
+ 44(b1x2): 18(ptr) Variable Function
+ 49(r11): 48(ptr) Variable Function
+ 50(b2x2): 48(ptr) Variable Function
+ 55(r12): 54(ptr) Variable Function
+ 58(b3x2): 57(ptr) Variable Function
+ 63(r13): 62(ptr) Variable Function
+ 66(b4x2): 65(ptr) Variable Function
+ 69(r20): 30(ptr) Variable Function
+ 70(b1x3): 27(ptr) Variable Function
+ 73(r21): 57(ptr) Variable Function
+ 74(b2x3): 54(ptr) Variable Function
+ 79(r22): 78(ptr) Variable Function
+ 80(b3x3): 78(ptr) Variable Function
+ 85(r23): 84(ptr) Variable Function
+ 88(b4x3): 87(ptr) Variable Function
+ 91(r30): 39(ptr) Variable Function
+ 92(b1x4): 36(ptr) Variable Function
+ 95(r31): 65(ptr) Variable Function
+ 96(b2x4): 62(ptr) Variable Function
+ 99(r32): 87(ptr) Variable Function
+ 100(b3x4): 84(ptr) Variable Function
+ 105(r33): 104(ptr) Variable Function
+ 106(b4x4): 104(ptr) Variable Function
+ 14: 10 Load 13(b1x1)
+ 15: 10 Transpose 14
+ Store 12(r00) 15
+ 23: 20 Load 22(b2x1)
+ 24: 17 Transpose 23
+ Store 19(r01) 24
+ 32: 29 Load 31(b3x1)
+ 33: 26 Transpose 32
+ Store 28(r02) 33
+ 41: 38 Load 40(b4x1)
+ 42: 35 Transpose 41
+ Store 37(r03) 42
+ 45: 17 Load 44(b1x2)
+ 46: 20 Transpose 45
+ Store 43(r10) 46
+ 51: 47 Load 50(b2x2)
+ 52: 47 Transpose 51
+ Store 49(r11) 52
+ 59: 56 Load 58(b3x2)
+ 60: 53 Transpose 59
+ Store 55(r12) 60
+ 67: 64 Load 66(b4x2)
+ 68: 61 Transpose 67
+ Store 63(r13) 68
+ 71: 26 Load 70(b1x3)
+ 72: 29 Transpose 71
+ Store 69(r20) 72
+ 75: 53 Load 74(b2x3)
+ 76: 56 Transpose 75
+ Store 73(r21) 76
+ 81: 77 Load 80(b3x3)
+ 82: 77 Transpose 81
+ Store 79(r22) 82
+ 89: 86 Load 88(b4x3)
+ 90: 83 Transpose 89
+ Store 85(r23) 90
+ 93: 35 Load 92(b1x4)
+ 94: 38 Transpose 93
+ Store 91(r30) 94
+ 97: 61 Load 96(b2x4)
+ 98: 64 Transpose 97
+ Store 95(r31) 98
+ 101: 83 Load 100(b3x4)
+ 102: 86 Transpose 101
+ Store 99(r32) 102
+ 107: 103 Load 106(b4x4)
+ 108: 103 Transpose 107
+ Store 105(r33) 108
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out
index 0066a1de..038ca738 100755
--- a/Test/baseResults/hlsl.matType.frag.out
+++ b/Test/baseResults/hlsl.matType.frag.out
@@ -10,11 +10,12 @@ gl_FragCoord origin is upper left
0:10 Branch: Return with expression
0:10 'inFloat1' (in 1-component vector of float)
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44})
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -27,7 +28,7 @@ gl_FragCoord origin is upper left
0:10 Branch: Return with expression
0:10 'inFloat1' (in 1-component vector of float)
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44})
// Module Version 10000
// Generated by (magic number): 80001
@@ -51,6 +52,22 @@ gl_FragCoord origin is upper left
MemberName 27($Global) 4 "dmat23"
MemberName 27($Global) 5 "int44"
Name 29 ""
+ MemberDecorate 27($Global) 0 Offset 0
+ MemberDecorate 27($Global) 1 RowMajor
+ MemberDecorate 27($Global) 1 Offset 16
+ MemberDecorate 27($Global) 1 MatrixStride 16
+ MemberDecorate 27($Global) 2 RowMajor
+ MemberDecorate 27($Global) 2 Offset 32
+ MemberDecorate 27($Global) 2 MatrixStride 16
+ MemberDecorate 27($Global) 3 RowMajor
+ MemberDecorate 27($Global) 3 Offset 48
+ MemberDecorate 27($Global) 3 MatrixStride 16
+ MemberDecorate 27($Global) 4 RowMajor
+ MemberDecorate 27($Global) 4 Offset 80
+ MemberDecorate 27($Global) 4 MatrixStride 16
+ MemberDecorate 27($Global) 5 RowMajor
+ MemberDecorate 27($Global) 5 Offset 128
+ MemberDecorate 27($Global) 5 MatrixStride 16
Decorate 27($Global) Block
Decorate 29 DescriptorSet 0
2: TypeVoid
@@ -74,6 +91,7 @@ gl_FragCoord origin is upper left
29: 28(ptr) Variable Uniform
4(PixelShaderFunction): 2 Function None 3
5: Label
+ Return
FunctionEnd
11(ShaderFunction(vf1;f1;): 6(float) Function None 8
9(inFloat1): 7(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.matType.int.frag.out b/Test/baseResults/hlsl.matType.int.frag.out
new file mode 100644
index 00000000..d7ffb0f7
--- /dev/null
+++ b/Test/baseResults/hlsl.matType.int.frag.out
@@ -0,0 +1,738 @@
+hlsl.matType.int.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: TestIntMatTypes( (temp void)
+0:3 Function Parameters:
+0:? Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 1X1 matrix of int)
+0:25 'r00' (temp 1X1 matrix of int)
+0:25 transpose (temp 1X1 matrix of int)
+0:25 'i1x1' (temp 1X1 matrix of int)
+0:26 Sequence
+0:26 move second child to first child (temp 1X2 matrix of int)
+0:26 'r01' (temp 1X2 matrix of int)
+0:26 transpose (temp 1X2 matrix of int)
+0:26 'i2x1' (temp 2X1 matrix of int)
+0:27 Sequence
+0:27 move second child to first child (temp 1X3 matrix of int)
+0:27 'r02' (temp 1X3 matrix of int)
+0:27 transpose (temp 1X3 matrix of int)
+0:27 'i3x1' (temp 3X1 matrix of int)
+0:28 Sequence
+0:28 move second child to first child (temp 1X4 matrix of int)
+0:28 'r03' (temp 1X4 matrix of int)
+0:28 transpose (temp 1X4 matrix of int)
+0:28 'i4x1' (temp 4X1 matrix of int)
+0:30 Sequence
+0:30 move second child to first child (temp 2X1 matrix of int)
+0:30 'r10' (temp 2X1 matrix of int)
+0:30 transpose (temp 2X1 matrix of int)
+0:30 'i1x2' (temp 1X2 matrix of int)
+0:31 Sequence
+0:31 move second child to first child (temp 2X2 matrix of int)
+0:31 'r11' (temp 2X2 matrix of int)
+0:31 transpose (temp 2X2 matrix of int)
+0:31 'i2x2' (temp 2X2 matrix of int)
+0:32 Sequence
+0:32 move second child to first child (temp 2X3 matrix of int)
+0:32 'r12' (temp 2X3 matrix of int)
+0:32 transpose (temp 2X3 matrix of int)
+0:32 'i3x2' (temp 3X2 matrix of int)
+0:33 Sequence
+0:33 move second child to first child (temp 2X4 matrix of int)
+0:33 'r13' (temp 2X4 matrix of int)
+0:33 transpose (temp 2X4 matrix of int)
+0:33 'i4x2' (temp 4X2 matrix of int)
+0:35 Sequence
+0:35 move second child to first child (temp 3X1 matrix of int)
+0:35 'r20' (temp 3X1 matrix of int)
+0:35 transpose (temp 3X1 matrix of int)
+0:35 'i1x3' (temp 1X3 matrix of int)
+0:36 Sequence
+0:36 move second child to first child (temp 3X2 matrix of int)
+0:36 'r21' (temp 3X2 matrix of int)
+0:36 transpose (temp 3X2 matrix of int)
+0:36 'i2x3' (temp 2X3 matrix of int)
+0:37 Sequence
+0:37 move second child to first child (temp 3X3 matrix of int)
+0:37 'r22' (temp 3X3 matrix of int)
+0:37 transpose (temp 3X3 matrix of int)
+0:37 'i3x3' (temp 3X3 matrix of int)
+0:38 Sequence
+0:38 move second child to first child (temp 3X4 matrix of int)
+0:38 'r23' (temp 3X4 matrix of int)
+0:38 transpose (temp 3X4 matrix of int)
+0:38 'i4x3' (temp 4X3 matrix of int)
+0:40 Sequence
+0:40 move second child to first child (temp 4X1 matrix of int)
+0:40 'r30' (temp 4X1 matrix of int)
+0:40 transpose (temp 4X1 matrix of int)
+0:40 'i1x4' (temp 1X4 matrix of int)
+0:41 Sequence
+0:41 move second child to first child (temp 4X2 matrix of int)
+0:41 'r31' (temp 4X2 matrix of int)
+0:41 transpose (temp 4X2 matrix of int)
+0:41 'i2x4' (temp 2X4 matrix of int)
+0:42 Sequence
+0:42 move second child to first child (temp 4X3 matrix of int)
+0:42 'r32' (temp 4X3 matrix of int)
+0:42 transpose (temp 4X3 matrix of int)
+0:42 'i3x4' (temp 3X4 matrix of int)
+0:43 Sequence
+0:43 move second child to first child (temp 4X4 matrix of int)
+0:43 'r33' (temp 4X4 matrix of int)
+0:43 transpose (temp 4X4 matrix of int)
+0:43 'i4x4' (temp 4X4 matrix of int)
+0:47 Function Definition: TestUintMatTypes( (temp void)
+0:47 Function Parameters:
+0:? Sequence
+0:69 Sequence
+0:69 move second child to first child (temp 1X1 matrix of uint)
+0:69 'r00' (temp 1X1 matrix of uint)
+0:69 transpose (temp 1X1 matrix of uint)
+0:69 'u1x1' (temp 1X1 matrix of uint)
+0:70 Sequence
+0:70 move second child to first child (temp 1X2 matrix of uint)
+0:70 'r01' (temp 1X2 matrix of uint)
+0:70 transpose (temp 1X2 matrix of uint)
+0:70 'u2x1' (temp 2X1 matrix of uint)
+0:71 Sequence
+0:71 move second child to first child (temp 1X3 matrix of uint)
+0:71 'r02' (temp 1X3 matrix of uint)
+0:71 transpose (temp 1X3 matrix of uint)
+0:71 'u3x1' (temp 3X1 matrix of uint)
+0:72 Sequence
+0:72 move second child to first child (temp 1X4 matrix of uint)
+0:72 'r03' (temp 1X4 matrix of uint)
+0:72 transpose (temp 1X4 matrix of uint)
+0:72 'u4x1' (temp 4X1 matrix of uint)
+0:74 Sequence
+0:74 move second child to first child (temp 2X1 matrix of uint)
+0:74 'r10' (temp 2X1 matrix of uint)
+0:74 transpose (temp 2X1 matrix of uint)
+0:74 'u1x2' (temp 1X2 matrix of uint)
+0:75 Sequence
+0:75 move second child to first child (temp 2X2 matrix of uint)
+0:75 'r11' (temp 2X2 matrix of uint)
+0:75 transpose (temp 2X2 matrix of uint)
+0:75 'u2x2' (temp 2X2 matrix of uint)
+0:76 Sequence
+0:76 move second child to first child (temp 2X3 matrix of uint)
+0:76 'r12' (temp 2X3 matrix of uint)
+0:76 transpose (temp 2X3 matrix of uint)
+0:76 'u3x2' (temp 3X2 matrix of uint)
+0:77 Sequence
+0:77 move second child to first child (temp 2X4 matrix of uint)
+0:77 'r13' (temp 2X4 matrix of uint)
+0:77 transpose (temp 2X4 matrix of uint)
+0:77 'u4x2' (temp 4X2 matrix of uint)
+0:79 Sequence
+0:79 move second child to first child (temp 3X1 matrix of uint)
+0:79 'r20' (temp 3X1 matrix of uint)
+0:79 transpose (temp 3X1 matrix of uint)
+0:79 'u1x3' (temp 1X3 matrix of uint)
+0:80 Sequence
+0:80 move second child to first child (temp 3X2 matrix of uint)
+0:80 'r21' (temp 3X2 matrix of uint)
+0:80 transpose (temp 3X2 matrix of uint)
+0:80 'u2x3' (temp 2X3 matrix of uint)
+0:81 Sequence
+0:81 move second child to first child (temp 3X3 matrix of uint)
+0:81 'r22' (temp 3X3 matrix of uint)
+0:81 transpose (temp 3X3 matrix of uint)
+0:81 'u3x3' (temp 3X3 matrix of uint)
+0:82 Sequence
+0:82 move second child to first child (temp 3X4 matrix of uint)
+0:82 'r23' (temp 3X4 matrix of uint)
+0:82 transpose (temp 3X4 matrix of uint)
+0:82 'u4x3' (temp 4X3 matrix of uint)
+0:84 Sequence
+0:84 move second child to first child (temp 4X1 matrix of uint)
+0:84 'r30' (temp 4X1 matrix of uint)
+0:84 transpose (temp 4X1 matrix of uint)
+0:84 'u1x4' (temp 1X4 matrix of uint)
+0:85 Sequence
+0:85 move second child to first child (temp 4X2 matrix of uint)
+0:85 'r31' (temp 4X2 matrix of uint)
+0:85 transpose (temp 4X2 matrix of uint)
+0:85 'u2x4' (temp 2X4 matrix of uint)
+0:86 Sequence
+0:86 move second child to first child (temp 4X3 matrix of uint)
+0:86 'r32' (temp 4X3 matrix of uint)
+0:86 transpose (temp 4X3 matrix of uint)
+0:86 'u3x4' (temp 3X4 matrix of uint)
+0:87 Sequence
+0:87 move second child to first child (temp 4X4 matrix of uint)
+0:87 'r33' (temp 4X4 matrix of uint)
+0:87 transpose (temp 4X4 matrix of uint)
+0:87 'u4x4' (temp 4X4 matrix of uint)
+0:93 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:93 Function Parameters:
+0:? Sequence
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 color: direct index for structure (temp 4-component vector of float)
+0:95 'ps_output' (temp structure{temp 4-component vector of float color})
+0:95 Constant:
+0:95 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:96 Sequence
+0:96 Sequence
+0:96 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:96 color: direct index for structure (temp 4-component vector of float)
+0:96 'ps_output' (temp structure{temp 4-component vector of float color})
+0:96 Constant:
+0:96 0 (const int)
+0:96 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: TestIntMatTypes( (temp void)
+0:3 Function Parameters:
+0:? Sequence
+0:25 Sequence
+0:25 move second child to first child (temp 1X1 matrix of int)
+0:25 'r00' (temp 1X1 matrix of int)
+0:25 transpose (temp 1X1 matrix of int)
+0:25 'i1x1' (temp 1X1 matrix of int)
+0:26 Sequence
+0:26 move second child to first child (temp 1X2 matrix of int)
+0:26 'r01' (temp 1X2 matrix of int)
+0:26 transpose (temp 1X2 matrix of int)
+0:26 'i2x1' (temp 2X1 matrix of int)
+0:27 Sequence
+0:27 move second child to first child (temp 1X3 matrix of int)
+0:27 'r02' (temp 1X3 matrix of int)
+0:27 transpose (temp 1X3 matrix of int)
+0:27 'i3x1' (temp 3X1 matrix of int)
+0:28 Sequence
+0:28 move second child to first child (temp 1X4 matrix of int)
+0:28 'r03' (temp 1X4 matrix of int)
+0:28 transpose (temp 1X4 matrix of int)
+0:28 'i4x1' (temp 4X1 matrix of int)
+0:30 Sequence
+0:30 move second child to first child (temp 2X1 matrix of int)
+0:30 'r10' (temp 2X1 matrix of int)
+0:30 transpose (temp 2X1 matrix of int)
+0:30 'i1x2' (temp 1X2 matrix of int)
+0:31 Sequence
+0:31 move second child to first child (temp 2X2 matrix of int)
+0:31 'r11' (temp 2X2 matrix of int)
+0:31 transpose (temp 2X2 matrix of int)
+0:31 'i2x2' (temp 2X2 matrix of int)
+0:32 Sequence
+0:32 move second child to first child (temp 2X3 matrix of int)
+0:32 'r12' (temp 2X3 matrix of int)
+0:32 transpose (temp 2X3 matrix of int)
+0:32 'i3x2' (temp 3X2 matrix of int)
+0:33 Sequence
+0:33 move second child to first child (temp 2X4 matrix of int)
+0:33 'r13' (temp 2X4 matrix of int)
+0:33 transpose (temp 2X4 matrix of int)
+0:33 'i4x2' (temp 4X2 matrix of int)
+0:35 Sequence
+0:35 move second child to first child (temp 3X1 matrix of int)
+0:35 'r20' (temp 3X1 matrix of int)
+0:35 transpose (temp 3X1 matrix of int)
+0:35 'i1x3' (temp 1X3 matrix of int)
+0:36 Sequence
+0:36 move second child to first child (temp 3X2 matrix of int)
+0:36 'r21' (temp 3X2 matrix of int)
+0:36 transpose (temp 3X2 matrix of int)
+0:36 'i2x3' (temp 2X3 matrix of int)
+0:37 Sequence
+0:37 move second child to first child (temp 3X3 matrix of int)
+0:37 'r22' (temp 3X3 matrix of int)
+0:37 transpose (temp 3X3 matrix of int)
+0:37 'i3x3' (temp 3X3 matrix of int)
+0:38 Sequence
+0:38 move second child to first child (temp 3X4 matrix of int)
+0:38 'r23' (temp 3X4 matrix of int)
+0:38 transpose (temp 3X4 matrix of int)
+0:38 'i4x3' (temp 4X3 matrix of int)
+0:40 Sequence
+0:40 move second child to first child (temp 4X1 matrix of int)
+0:40 'r30' (temp 4X1 matrix of int)
+0:40 transpose (temp 4X1 matrix of int)
+0:40 'i1x4' (temp 1X4 matrix of int)
+0:41 Sequence
+0:41 move second child to first child (temp 4X2 matrix of int)
+0:41 'r31' (temp 4X2 matrix of int)
+0:41 transpose (temp 4X2 matrix of int)
+0:41 'i2x4' (temp 2X4 matrix of int)
+0:42 Sequence
+0:42 move second child to first child (temp 4X3 matrix of int)
+0:42 'r32' (temp 4X3 matrix of int)
+0:42 transpose (temp 4X3 matrix of int)
+0:42 'i3x4' (temp 3X4 matrix of int)
+0:43 Sequence
+0:43 move second child to first child (temp 4X4 matrix of int)
+0:43 'r33' (temp 4X4 matrix of int)
+0:43 transpose (temp 4X4 matrix of int)
+0:43 'i4x4' (temp 4X4 matrix of int)
+0:47 Function Definition: TestUintMatTypes( (temp void)
+0:47 Function Parameters:
+0:? Sequence
+0:69 Sequence
+0:69 move second child to first child (temp 1X1 matrix of uint)
+0:69 'r00' (temp 1X1 matrix of uint)
+0:69 transpose (temp 1X1 matrix of uint)
+0:69 'u1x1' (temp 1X1 matrix of uint)
+0:70 Sequence
+0:70 move second child to first child (temp 1X2 matrix of uint)
+0:70 'r01' (temp 1X2 matrix of uint)
+0:70 transpose (temp 1X2 matrix of uint)
+0:70 'u2x1' (temp 2X1 matrix of uint)
+0:71 Sequence
+0:71 move second child to first child (temp 1X3 matrix of uint)
+0:71 'r02' (temp 1X3 matrix of uint)
+0:71 transpose (temp 1X3 matrix of uint)
+0:71 'u3x1' (temp 3X1 matrix of uint)
+0:72 Sequence
+0:72 move second child to first child (temp 1X4 matrix of uint)
+0:72 'r03' (temp 1X4 matrix of uint)
+0:72 transpose (temp 1X4 matrix of uint)
+0:72 'u4x1' (temp 4X1 matrix of uint)
+0:74 Sequence
+0:74 move second child to first child (temp 2X1 matrix of uint)
+0:74 'r10' (temp 2X1 matrix of uint)
+0:74 transpose (temp 2X1 matrix of uint)
+0:74 'u1x2' (temp 1X2 matrix of uint)
+0:75 Sequence
+0:75 move second child to first child (temp 2X2 matrix of uint)
+0:75 'r11' (temp 2X2 matrix of uint)
+0:75 transpose (temp 2X2 matrix of uint)
+0:75 'u2x2' (temp 2X2 matrix of uint)
+0:76 Sequence
+0:76 move second child to first child (temp 2X3 matrix of uint)
+0:76 'r12' (temp 2X3 matrix of uint)
+0:76 transpose (temp 2X3 matrix of uint)
+0:76 'u3x2' (temp 3X2 matrix of uint)
+0:77 Sequence
+0:77 move second child to first child (temp 2X4 matrix of uint)
+0:77 'r13' (temp 2X4 matrix of uint)
+0:77 transpose (temp 2X4 matrix of uint)
+0:77 'u4x2' (temp 4X2 matrix of uint)
+0:79 Sequence
+0:79 move second child to first child (temp 3X1 matrix of uint)
+0:79 'r20' (temp 3X1 matrix of uint)
+0:79 transpose (temp 3X1 matrix of uint)
+0:79 'u1x3' (temp 1X3 matrix of uint)
+0:80 Sequence
+0:80 move second child to first child (temp 3X2 matrix of uint)
+0:80 'r21' (temp 3X2 matrix of uint)
+0:80 transpose (temp 3X2 matrix of uint)
+0:80 'u2x3' (temp 2X3 matrix of uint)
+0:81 Sequence
+0:81 move second child to first child (temp 3X3 matrix of uint)
+0:81 'r22' (temp 3X3 matrix of uint)
+0:81 transpose (temp 3X3 matrix of uint)
+0:81 'u3x3' (temp 3X3 matrix of uint)
+0:82 Sequence
+0:82 move second child to first child (temp 3X4 matrix of uint)
+0:82 'r23' (temp 3X4 matrix of uint)
+0:82 transpose (temp 3X4 matrix of uint)
+0:82 'u4x3' (temp 4X3 matrix of uint)
+0:84 Sequence
+0:84 move second child to first child (temp 4X1 matrix of uint)
+0:84 'r30' (temp 4X1 matrix of uint)
+0:84 transpose (temp 4X1 matrix of uint)
+0:84 'u1x4' (temp 1X4 matrix of uint)
+0:85 Sequence
+0:85 move second child to first child (temp 4X2 matrix of uint)
+0:85 'r31' (temp 4X2 matrix of uint)
+0:85 transpose (temp 4X2 matrix of uint)
+0:85 'u2x4' (temp 2X4 matrix of uint)
+0:86 Sequence
+0:86 move second child to first child (temp 4X3 matrix of uint)
+0:86 'r32' (temp 4X3 matrix of uint)
+0:86 transpose (temp 4X3 matrix of uint)
+0:86 'u3x4' (temp 3X4 matrix of uint)
+0:87 Sequence
+0:87 move second child to first child (temp 4X4 matrix of uint)
+0:87 'r33' (temp 4X4 matrix of uint)
+0:87 transpose (temp 4X4 matrix of uint)
+0:87 'u4x4' (temp 4X4 matrix of uint)
+0:93 Function Definition: main( (temp structure{temp 4-component vector of float color})
+0:93 Function Parameters:
+0:? Sequence
+0:95 move second child to first child (temp 4-component vector of float)
+0:95 color: direct index for structure (temp 4-component vector of float)
+0:95 'ps_output' (temp structure{temp 4-component vector of float color})
+0:95 Constant:
+0:95 0 (const int)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:96 Sequence
+0:96 Sequence
+0:96 move second child to first child (temp 4-component vector of float)
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+0:96 color: direct index for structure (temp 4-component vector of float)
+0:96 'ps_output' (temp structure{temp 4-component vector of float color})
+0:96 Constant:
+0:96 0 (const int)
+0:96 Branch: Return
+0:? Linker Objects
+0:? 'color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 227
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 223
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 6 "TestIntMatTypes("
+ Name 8 "TestUintMatTypes("
+ Name 14 "r00"
+ Name 15 "i1x1"
+ Name 21 "r01"
+ Name 24 "i2x1"
+ Name 30 "r02"
+ Name 33 "i3x1"
+ Name 39 "r03"
+ Name 42 "i4x1"
+ Name 45 "r10"
+ Name 46 "i1x2"
+ Name 51 "r11"
+ Name 52 "i2x2"
+ Name 57 "r12"
+ Name 60 "i3x2"
+ Name 65 "r13"
+ Name 68 "i4x2"
+ Name 71 "r20"
+ Name 72 "i1x3"
+ Name 75 "r21"
+ Name 76 "i2x3"
+ Name 81 "r22"
+ Name 82 "i3x3"
+ Name 87 "r23"
+ Name 90 "i4x3"
+ Name 93 "r30"
+ Name 94 "i1x4"
+ Name 97 "r31"
+ Name 98 "i2x4"
+ Name 101 "r32"
+ Name 102 "i3x4"
+ Name 107 "r33"
+ Name 108 "i4x4"
+ Name 115 "r00"
+ Name 116 "u1x1"
+ Name 122 "r01"
+ Name 125 "u2x1"
+ Name 131 "r02"
+ Name 134 "u3x1"
+ Name 140 "r03"
+ Name 143 "u4x1"
+ Name 146 "r10"
+ Name 147 "u1x2"
+ Name 152 "r11"
+ Name 153 "u2x2"
+ Name 158 "r12"
+ Name 161 "u3x2"
+ Name 166 "r13"
+ Name 169 "u4x2"
+ Name 172 "r20"
+ Name 173 "u1x3"
+ Name 176 "r21"
+ Name 177 "u2x3"
+ Name 182 "r22"
+ Name 183 "u3x3"
+ Name 188 "r23"
+ Name 191 "u4x3"
+ Name 194 "r30"
+ Name 195 "u1x4"
+ Name 198 "r31"
+ Name 199 "u2x4"
+ Name 202 "r32"
+ Name 203 "u3x4"
+ Name 208 "r33"
+ Name 209 "u4x4"
+ Name 214 "PS_OUTPUT"
+ MemberName 214(PS_OUTPUT) 0 "color"
+ Name 216 "ps_output"
+ Name 223 "color"
+ Decorate 223(color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 10: TypeInt 32 1
+ 11: TypeVector 10(int) 1
+ 12: TypeMatrix 11(ivec) 1
+ 13: TypePointer Function 12
+ 18: TypeVector 10(int) 2
+ 19: TypeMatrix 18(ivec2) 1
+ 20: TypePointer Function 19
+ 22: TypeMatrix 11(ivec) 2
+ 23: TypePointer Function 22
+ 27: TypeVector 10(int) 3
+ 28: TypeMatrix 27(ivec3) 1
+ 29: TypePointer Function 28
+ 31: TypeMatrix 11(ivec) 3
+ 32: TypePointer Function 31
+ 36: TypeVector 10(int) 4
+ 37: TypeMatrix 36(ivec4) 1
+ 38: TypePointer Function 37
+ 40: TypeMatrix 11(ivec) 4
+ 41: TypePointer Function 40
+ 49: TypeMatrix 18(ivec2) 2
+ 50: TypePointer Function 49
+ 55: TypeMatrix 27(ivec3) 2
+ 56: TypePointer Function 55
+ 58: TypeMatrix 18(ivec2) 3
+ 59: TypePointer Function 58
+ 63: TypeMatrix 36(ivec4) 2
+ 64: TypePointer Function 63
+ 66: TypeMatrix 18(ivec2) 4
+ 67: TypePointer Function 66
+ 79: TypeMatrix 27(ivec3) 3
+ 80: TypePointer Function 79
+ 85: TypeMatrix 36(ivec4) 3
+ 86: TypePointer Function 85
+ 88: TypeMatrix 27(ivec3) 4
+ 89: TypePointer Function 88
+ 105: TypeMatrix 36(ivec4) 4
+ 106: TypePointer Function 105
+ 111: TypeInt 32 0
+ 112: TypeVector 111(int) 1
+ 113: TypeMatrix 112(ivec) 1
+ 114: TypePointer Function 113
+ 119: TypeVector 111(int) 2
+ 120: TypeMatrix 119(ivec2) 1
+ 121: TypePointer Function 120
+ 123: TypeMatrix 112(ivec) 2
+ 124: TypePointer Function 123
+ 128: TypeVector 111(int) 3
+ 129: TypeMatrix 128(ivec3) 1
+ 130: TypePointer Function 129
+ 132: TypeMatrix 112(ivec) 3
+ 133: TypePointer Function 132
+ 137: TypeVector 111(int) 4
+ 138: TypeMatrix 137(ivec4) 1
+ 139: TypePointer Function 138
+ 141: TypeMatrix 112(ivec) 4
+ 142: TypePointer Function 141
+ 150: TypeMatrix 119(ivec2) 2
+ 151: TypePointer Function 150
+ 156: TypeMatrix 128(ivec3) 2
+ 157: TypePointer Function 156
+ 159: TypeMatrix 119(ivec2) 3
+ 160: TypePointer Function 159
+ 164: TypeMatrix 137(ivec4) 2
+ 165: TypePointer Function 164
+ 167: TypeMatrix 119(ivec2) 4
+ 168: TypePointer Function 167
+ 180: TypeMatrix 128(ivec3) 3
+ 181: TypePointer Function 180
+ 186: TypeMatrix 137(ivec4) 3
+ 187: TypePointer Function 186
+ 189: TypeMatrix 128(ivec3) 4
+ 190: TypePointer Function 189
+ 206: TypeMatrix 137(ivec4) 4
+ 207: TypePointer Function 206
+ 212: TypeFloat 32
+ 213: TypeVector 212(float) 4
+ 214(PS_OUTPUT): TypeStruct 213(fvec4)
+ 215: TypePointer Function 214(PS_OUTPUT)
+ 217: 10(int) Constant 0
+ 218: 212(float) Constant 0
+ 219: 213(fvec4) ConstantComposite 218 218 218 218
+ 220: TypePointer Function 213(fvec4)
+ 222: TypePointer Output 213(fvec4)
+ 223(color): 222(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 216(ps_output): 215(ptr) Variable Function
+ 221: 220(ptr) AccessChain 216(ps_output) 217
+ Store 221 219
+ 224: 220(ptr) AccessChain 216(ps_output) 217
+ 225: 213(fvec4) Load 224
+ Store 223(color) 225
+ Return
+ FunctionEnd
+6(TestIntMatTypes(): 2 Function None 3
+ 7: Label
+ 14(r00): 13(ptr) Variable Function
+ 15(i1x1): 13(ptr) Variable Function
+ 21(r01): 20(ptr) Variable Function
+ 24(i2x1): 23(ptr) Variable Function
+ 30(r02): 29(ptr) Variable Function
+ 33(i3x1): 32(ptr) Variable Function
+ 39(r03): 38(ptr) Variable Function
+ 42(i4x1): 41(ptr) Variable Function
+ 45(r10): 23(ptr) Variable Function
+ 46(i1x2): 20(ptr) Variable Function
+ 51(r11): 50(ptr) Variable Function
+ 52(i2x2): 50(ptr) Variable Function
+ 57(r12): 56(ptr) Variable Function
+ 60(i3x2): 59(ptr) Variable Function
+ 65(r13): 64(ptr) Variable Function
+ 68(i4x2): 67(ptr) Variable Function
+ 71(r20): 32(ptr) Variable Function
+ 72(i1x3): 29(ptr) Variable Function
+ 75(r21): 59(ptr) Variable Function
+ 76(i2x3): 56(ptr) Variable Function
+ 81(r22): 80(ptr) Variable Function
+ 82(i3x3): 80(ptr) Variable Function
+ 87(r23): 86(ptr) Variable Function
+ 90(i4x3): 89(ptr) Variable Function
+ 93(r30): 41(ptr) Variable Function
+ 94(i1x4): 38(ptr) Variable Function
+ 97(r31): 67(ptr) Variable Function
+ 98(i2x4): 64(ptr) Variable Function
+ 101(r32): 89(ptr) Variable Function
+ 102(i3x4): 86(ptr) Variable Function
+ 107(r33): 106(ptr) Variable Function
+ 108(i4x4): 106(ptr) Variable Function
+ 16: 12 Load 15(i1x1)
+ 17: 12 Transpose 16
+ Store 14(r00) 17
+ 25: 22 Load 24(i2x1)
+ 26: 19 Transpose 25
+ Store 21(r01) 26
+ 34: 31 Load 33(i3x1)
+ 35: 28 Transpose 34
+ Store 30(r02) 35
+ 43: 40 Load 42(i4x1)
+ 44: 37 Transpose 43
+ Store 39(r03) 44
+ 47: 19 Load 46(i1x2)
+ 48: 22 Transpose 47
+ Store 45(r10) 48
+ 53: 49 Load 52(i2x2)
+ 54: 49 Transpose 53
+ Store 51(r11) 54
+ 61: 58 Load 60(i3x2)
+ 62: 55 Transpose 61
+ Store 57(r12) 62
+ 69: 66 Load 68(i4x2)
+ 70: 63 Transpose 69
+ Store 65(r13) 70
+ 73: 28 Load 72(i1x3)
+ 74: 31 Transpose 73
+ Store 71(r20) 74
+ 77: 55 Load 76(i2x3)
+ 78: 58 Transpose 77
+ Store 75(r21) 78
+ 83: 79 Load 82(i3x3)
+ 84: 79 Transpose 83
+ Store 81(r22) 84
+ 91: 88 Load 90(i4x3)
+ 92: 85 Transpose 91
+ Store 87(r23) 92
+ 95: 37 Load 94(i1x4)
+ 96: 40 Transpose 95
+ Store 93(r30) 96
+ 99: 63 Load 98(i2x4)
+ 100: 66 Transpose 99
+ Store 97(r31) 100
+ 103: 85 Load 102(i3x4)
+ 104: 88 Transpose 103
+ Store 101(r32) 104
+ 109: 105 Load 108(i4x4)
+ 110: 105 Transpose 109
+ Store 107(r33) 110
+ Return
+ FunctionEnd
+8(TestUintMatTypes(): 2 Function None 3
+ 9: Label
+ 115(r00): 114(ptr) Variable Function
+ 116(u1x1): 114(ptr) Variable Function
+ 122(r01): 121(ptr) Variable Function
+ 125(u2x1): 124(ptr) Variable Function
+ 131(r02): 130(ptr) Variable Function
+ 134(u3x1): 133(ptr) Variable Function
+ 140(r03): 139(ptr) Variable Function
+ 143(u4x1): 142(ptr) Variable Function
+ 146(r10): 124(ptr) Variable Function
+ 147(u1x2): 121(ptr) Variable Function
+ 152(r11): 151(ptr) Variable Function
+ 153(u2x2): 151(ptr) Variable Function
+ 158(r12): 157(ptr) Variable Function
+ 161(u3x2): 160(ptr) Variable Function
+ 166(r13): 165(ptr) Variable Function
+ 169(u4x2): 168(ptr) Variable Function
+ 172(r20): 133(ptr) Variable Function
+ 173(u1x3): 130(ptr) Variable Function
+ 176(r21): 160(ptr) Variable Function
+ 177(u2x3): 157(ptr) Variable Function
+ 182(r22): 181(ptr) Variable Function
+ 183(u3x3): 181(ptr) Variable Function
+ 188(r23): 187(ptr) Variable Function
+ 191(u4x3): 190(ptr) Variable Function
+ 194(r30): 142(ptr) Variable Function
+ 195(u1x4): 139(ptr) Variable Function
+ 198(r31): 168(ptr) Variable Function
+ 199(u2x4): 165(ptr) Variable Function
+ 202(r32): 190(ptr) Variable Function
+ 203(u3x4): 187(ptr) Variable Function
+ 208(r33): 207(ptr) Variable Function
+ 209(u4x4): 207(ptr) Variable Function
+ 117: 113 Load 116(u1x1)
+ 118: 113 Transpose 117
+ Store 115(r00) 118
+ 126: 123 Load 125(u2x1)
+ 127: 120 Transpose 126
+ Store 122(r01) 127
+ 135: 132 Load 134(u3x1)
+ 136: 129 Transpose 135
+ Store 131(r02) 136
+ 144: 141 Load 143(u4x1)
+ 145: 138 Transpose 144
+ Store 140(r03) 145
+ 148: 120 Load 147(u1x2)
+ 149: 123 Transpose 148
+ Store 146(r10) 149
+ 154: 150 Load 153(u2x2)
+ 155: 150 Transpose 154
+ Store 152(r11) 155
+ 162: 159 Load 161(u3x2)
+ 163: 156 Transpose 162
+ Store 158(r12) 163
+ 170: 167 Load 169(u4x2)
+ 171: 164 Transpose 170
+ Store 166(r13) 171
+ 174: 129 Load 173(u1x3)
+ 175: 132 Transpose 174
+ Store 172(r20) 175
+ 178: 156 Load 177(u2x3)
+ 179: 159 Transpose 178
+ Store 176(r21) 179
+ 184: 180 Load 183(u3x3)
+ 185: 180 Transpose 184
+ Store 182(r22) 185
+ 192: 189 Load 191(u4x3)
+ 193: 186 Transpose 192
+ Store 188(r23) 193
+ 196: 138 Load 195(u1x4)
+ 197: 141 Transpose 196
+ Store 194(r30) 197
+ 200: 164 Load 199(u2x4)
+ 201: 167 Transpose 200
+ Store 198(r31) 201
+ 204: 186 Load 203(u3x4)
+ 205: 189 Transpose 204
+ Store 202(r32) 205
+ 210: 206 Load 209(u4x4)
+ 211: 206 Transpose 210
+ Store 208(r33) 211
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out
index 8c637c14..420ba9f5 100644
--- a/Test/baseResults/hlsl.matrixindex.frag.out
+++ b/Test/baseResults/hlsl.matrixindex.frag.out
@@ -128,7 +128,7 @@ gl_FragCoord origin is upper left
0:48 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
Linked fragment stage:
@@ -263,7 +263,7 @@ gl_FragCoord origin is upper left
0:48 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out
index 53646bb1..8995af35 100755
--- a/Test/baseResults/hlsl.max.frag.out
+++ b/Test/baseResults/hlsl.max.frag.out
@@ -10,7 +10,7 @@ gl_FragCoord origin is upper left
0:3 Sequence
0:3 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:3 max (global 4-component vector of float)
+0:3 max (temp 4-component vector of float)
0:3 'input1' (layout(location=0 ) in 4-component vector of float)
0:3 'input2' (layout(location=1 ) in 4-component vector of float)
0:3 Branch: Return
@@ -34,7 +34,7 @@ gl_FragCoord origin is upper left
0:3 Sequence
0:3 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:3 max (global 4-component vector of float)
+0:3 max (temp 4-component vector of float)
0:3 'input1' (layout(location=0 ) in 4-component vector of float)
0:3 'input2' (layout(location=1 ) in 4-component vector of float)
0:3 Branch: Return
diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out
new file mode 100644
index 00000000..84c7a8c8
--- /dev/null
+++ b/Test/baseResults/hlsl.mintypes.frag.out
@@ -0,0 +1,224 @@
+hlsl.mintypes.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:9 Function Parameters:
+0:? Sequence
+0:40 add (temp mediump 2-component vector of float)
+0:40 'mf16_2' (temp mediump 2-component vector of float)
+0:40 'mf16' (temp mediump float)
+0:41 add (temp mediump 2-component vector of float)
+0:41 'mf10_2' (temp mediump 2-component vector of float)
+0:41 'mf10' (temp mediump float)
+0:42 add (temp mediump 2-component vector of int)
+0:42 'mi16_2' (temp mediump 2-component vector of int)
+0:42 'mi16' (temp mediump int)
+0:43 add (temp mediump 2-component vector of int)
+0:43 'mi12_2' (temp mediump 2-component vector of int)
+0:43 'mi12' (temp mediump int)
+0:44 add (temp mediump 2-component vector of uint)
+0:44 'mu16_2' (temp mediump 2-component vector of uint)
+0:44 'mu16' (temp mediump uint)
+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})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:48 Sequence
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 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})
+0:48 Constant:
+0:48 0 (const int)
+0:48 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:9 Function Parameters:
+0:? Sequence
+0:40 add (temp mediump 2-component vector of float)
+0:40 'mf16_2' (temp mediump 2-component vector of float)
+0:40 'mf16' (temp mediump float)
+0:41 add (temp mediump 2-component vector of float)
+0:41 'mf10_2' (temp mediump 2-component vector of float)
+0:41 'mf10' (temp mediump float)
+0:42 add (temp mediump 2-component vector of int)
+0:42 'mi16_2' (temp mediump 2-component vector of int)
+0:42 'mi16' (temp mediump int)
+0:43 add (temp mediump 2-component vector of int)
+0:43 'mi12_2' (temp mediump 2-component vector of int)
+0:43 'mi12' (temp mediump int)
+0:44 add (temp mediump 2-component vector of uint)
+0:44 'mu16_2' (temp mediump 2-component vector of uint)
+0:44 'mu16' (temp mediump uint)
+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})
+0:47 Constant:
+0:47 0 (const int)
+0:47 Constant:
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:47 0.000000
+0:48 Sequence
+0:48 Sequence
+0:48 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 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})
+0:48 Constant:
+0:48 0 (const int)
+0:48 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 65
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 58
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 9 "mf16_2"
+ Name 12 "mf16"
+ Name 16 "mf10_2"
+ Name 18 "mf10"
+ Name 25 "mi16_2"
+ Name 28 "mi16"
+ Name 32 "mi12_2"
+ Name 34 "mi12"
+ Name 41 "mu16_2"
+ Name 44 "mu16"
+ Name 49 "PS_OUTPUT"
+ MemberName 49(PS_OUTPUT) 0 "Color"
+ Name 51 "psout"
+ Name 58 "Color"
+ Name 62 "$Global"
+ MemberName 62($Global) 0 "b1a"
+ MemberName 62($Global) 1 "b1b"
+ Name 64 ""
+ Decorate 9(mf16_2) RelaxedPrecision
+ Decorate 10 RelaxedPrecision
+ Decorate 12(mf16) RelaxedPrecision
+ Decorate 13 RelaxedPrecision
+ Decorate 14 RelaxedPrecision
+ Decorate 15 RelaxedPrecision
+ Decorate 16(mf10_2) RelaxedPrecision
+ Decorate 17 RelaxedPrecision
+ Decorate 18(mf10) RelaxedPrecision
+ Decorate 19 RelaxedPrecision
+ Decorate 20 RelaxedPrecision
+ Decorate 21 RelaxedPrecision
+ Decorate 25(mi16_2) RelaxedPrecision
+ Decorate 26 RelaxedPrecision
+ Decorate 28(mi16) RelaxedPrecision
+ Decorate 29 RelaxedPrecision
+ Decorate 30 RelaxedPrecision
+ Decorate 31 RelaxedPrecision
+ Decorate 32(mi12_2) RelaxedPrecision
+ Decorate 33 RelaxedPrecision
+ Decorate 34(mi12) RelaxedPrecision
+ Decorate 35 RelaxedPrecision
+ Decorate 36 RelaxedPrecision
+ Decorate 37 RelaxedPrecision
+ Decorate 41(mu16_2) RelaxedPrecision
+ Decorate 42 RelaxedPrecision
+ Decorate 44(mu16) RelaxedPrecision
+ Decorate 45 RelaxedPrecision
+ Decorate 46 RelaxedPrecision
+ Decorate 47 RelaxedPrecision
+ Decorate 58(Color) Location 0
+ MemberDecorate 62($Global) 0 RelaxedPrecision
+ MemberDecorate 62($Global) 0 Offset 0
+ MemberDecorate 62($Global) 1 RelaxedPrecision
+ MemberDecorate 62($Global) 1 Offset 4
+ Decorate 62($Global) Block
+ Decorate 64 DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 2
+ 8: TypePointer Function 7(fvec2)
+ 11: TypePointer Function 6(float)
+ 22: TypeInt 32 1
+ 23: TypeVector 22(int) 2
+ 24: TypePointer Function 23(ivec2)
+ 27: TypePointer Function 22(int)
+ 38: TypeInt 32 0
+ 39: TypeVector 38(int) 2
+ 40: TypePointer Function 39(ivec2)
+ 43: TypePointer Function 38(int)
+ 48: TypeVector 6(float) 4
+ 49(PS_OUTPUT): TypeStruct 48(fvec4)
+ 50: TypePointer Function 49(PS_OUTPUT)
+ 52: 22(int) Constant 0
+ 53: 6(float) Constant 0
+ 54: 48(fvec4) ConstantComposite 53 53 53 53
+ 55: TypePointer Function 48(fvec4)
+ 57: TypePointer Output 48(fvec4)
+ 58(Color): 57(ptr) Variable Output
+ 62($Global): TypeStruct 6(float) 6(float)
+ 63: TypePointer Uniform 62($Global)
+ 64: 63(ptr) Variable Uniform
+ 4(main): 2 Function None 3
+ 5: Label
+ 9(mf16_2): 8(ptr) Variable Function
+ 12(mf16): 11(ptr) Variable Function
+ 16(mf10_2): 8(ptr) Variable Function
+ 18(mf10): 11(ptr) Variable Function
+ 25(mi16_2): 24(ptr) Variable Function
+ 28(mi16): 27(ptr) Variable Function
+ 32(mi12_2): 24(ptr) Variable Function
+ 34(mi12): 27(ptr) Variable Function
+ 41(mu16_2): 40(ptr) Variable Function
+ 44(mu16): 43(ptr) Variable Function
+ 51(psout): 50(ptr) Variable Function
+ 10: 7(fvec2) Load 9(mf16_2)
+ 13: 6(float) Load 12(mf16)
+ 14: 7(fvec2) CompositeConstruct 13 13
+ 15: 7(fvec2) FAdd 10 14
+ 17: 7(fvec2) Load 16(mf10_2)
+ 19: 6(float) Load 18(mf10)
+ 20: 7(fvec2) CompositeConstruct 19 19
+ 21: 7(fvec2) FAdd 17 20
+ 26: 23(ivec2) Load 25(mi16_2)
+ 29: 22(int) Load 28(mi16)
+ 30: 23(ivec2) CompositeConstruct 29 29
+ 31: 23(ivec2) IAdd 26 30
+ 33: 23(ivec2) Load 32(mi12_2)
+ 35: 22(int) Load 34(mi12)
+ 36: 23(ivec2) CompositeConstruct 35 35
+ 37: 23(ivec2) IAdd 33 36
+ 42: 39(ivec2) Load 41(mu16_2)
+ 45: 38(int) Load 44(mu16)
+ 46: 39(ivec2) CompositeConstruct 45 45
+ 47: 39(ivec2) IAdd 42 46
+ 56: 55(ptr) AccessChain 51(psout) 52
+ Store 56 54
+ 59: 55(ptr) AccessChain 51(psout) 52
+ 60: 48(fvec4) Load 59
+ Store 58(Color) 60
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out
index 8f8c42ae..f0d05abd 100755
--- a/Test/baseResults/hlsl.multiEntry.vert.out
+++ b/Test/baseResults/hlsl.multiEntry.vert.out
@@ -21,9 +21,9 @@ Shader version: 450
0:10 'Index' (in uint VertexIndex)
0:10 Branch: Return
0:? Linker Objects
-0:? 'Position' (layout(rgba32f ) uniform samplerBuffer)
0:? '@entryPointOutput' (out 4-component vector of float Position)
0:? 'Index' (in uint VertexIndex)
+0:? 'Position' (layout(rgba32f ) uniform samplerBuffer)
Linked vertex stage:
@@ -51,9 +51,9 @@ Shader version: 450
0:10 'Index' (in uint VertexIndex)
0:10 Branch: Return
0:? Linker Objects
-0:? 'Position' (layout(rgba32f ) uniform samplerBuffer)
0:? '@entryPointOutput' (out 4-component vector of float Position)
0:? 'Index' (in uint VertexIndex)
+0:? 'Position' (layout(rgba32f ) uniform samplerBuffer)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.numthreads.comp.out b/Test/baseResults/hlsl.numthreads.comp.out
new file mode 100644
index 00000000..76e95c8f
--- /dev/null
+++ b/Test/baseResults/hlsl.numthreads.comp.out
@@ -0,0 +1,60 @@
+hlsl.numthreads.comp
+Shader version: 450
+local_size = (4, 4, 2)
+0:? Sequence
+0:4 Function Definition: main(vu3; (temp void)
+0:4 Function Parameters:
+0:4 'tid' (in 3-component vector of uint)
+0:9 Function Definition: main_aux1(vu3; (temp void)
+0:9 Function Parameters:
+0:9 'tid' (in 3-component vector of uint LocalInvocationID)
+0:? Linker Objects
+0:? 'tid' (in 3-component vector of uint LocalInvocationID)
+
+
+Linked compute stage:
+
+
+Shader version: 450
+local_size = (4, 4, 2)
+0:? Sequence
+0:4 Function Definition: main(vu3; (temp void)
+0:4 Function Parameters:
+0:4 'tid' (in 3-component vector of uint)
+0:9 Function Definition: main_aux1(vu3; (temp void)
+0:9 Function Parameters:
+0:9 'tid' (in 3-component vector of uint LocalInvocationID)
+0:? Linker Objects
+0:? 'tid' (in 3-component vector of uint LocalInvocationID)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 15
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main_aux1" 14
+ ExecutionMode 4 LocalSize 4 4 2
+ Name 4 "main_aux1"
+ Name 11 "main(vu3;"
+ Name 10 "tid"
+ Name 14 "tid"
+ Decorate 14(tid) BuiltIn LocalInvocationId
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 3
+ 8: TypePointer Function 7(ivec3)
+ 9: TypeFunction 2 8(ptr)
+ 13: TypePointer Input 7(ivec3)
+ 14(tid): 13(ptr) Variable Input
+ 4(main_aux1): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
+ 11(main(vu3;): 2 Function None 9
+ 10(tid): 8(ptr) FunctionParameter
+ 12: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.partialInit.frag.out b/Test/baseResults/hlsl.partialInit.frag.out
new file mode 100755
index 00000000..5bf838a4
--- /dev/null
+++ b/Test/baseResults/hlsl.partialInit.frag.out
@@ -0,0 +1,418 @@
+hlsl.partialInit.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'gv' (global 4-component vector of float)
+0:8 Constant:
+0:8 0.000000
+0:8 0.000000
+0:8 1.000000
+0:8 0.000000
+0:9 Sequence
+0:9 move second child to first child (temp 3-element array of float)
+0:9 'gfa' (global 3-element array of float)
+0:9 Constant:
+0:9 0.000000
+0:9 0.000000
+0:9 0.000000
+0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:18 Function Parameters:
+0:18 'input' (layout(location=0 ) in 4-component vector of float)
+0:? Sequence
+0:19 Sequence
+0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:19 Constant:
+0:19 3 (const int)
+0:19 0.000000
+0:19 false (const bool)
+0:19 0.000000
+0:19 0.000000
+0:19 0.000000
+0:19 0.000000
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 v: direct index for structure (temp 4-component vector of float)
+0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:21 Constant:
+0:21 3 (const int)
+0:21 vector-scale (temp 4-component vector of float)
+0:21 'gv' (global 4-component vector of float)
+0:21 direct index (temp float)
+0:21 'gfa' (global 3-element array of float)
+0:21 Constant:
+0:21 2 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:22 Constant:
+0:22 0 (const int)
+0:22 0.000000
+0:22 false (const bool)
+0:22 0.000000
+0:22 0.000000
+0:22 0.000000
+0:22 0.000000
+0:23 Sequence
+0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:23 Constant:
+0:23 0 (const int)
+0:23 0.000000
+0:23 false (const bool)
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:24 Constant:
+0:24 0 (const int)
+0:24 0.000000
+0:24 false (const bool)
+0:24 0.000000
+0:24 0.000000
+0:24 0.000000
+0:24 0.000000
+0:25 move second child to first child (temp bool)
+0:25 c: direct index for structure (temp bool)
+0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:25 Constant:
+0:25 2 (const int)
+0:25 c: direct index for structure (temp bool)
+0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:25 Constant:
+0:25 2 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
+0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
+0:26 Constant:
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0 (const int)
+0:26 0.000000
+0:26 false (const bool)
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 false (const bool)
+0:28 Sequence
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:? 'a' (layout(location=0 ) out int)
+0:28 a: direct index for structure (temp int)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 0 (const int)
+0:28 move second child to first child (temp float)
+0:? 'b' (layout(location=1 ) out float)
+0:28 b: direct index for structure (temp float)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 1 (const int)
+0:28 move second child to first child (temp bool)
+0:? 'c' (layout(location=2 ) out bool)
+0:28 c: direct index for structure (temp bool)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 2 (const int)
+0:28 move second child to first child (temp 4-component vector of float)
+0:? 'v' (layout(location=3 ) out 4-component vector of float)
+0:28 v: direct index for structure (temp 4-component vector of float)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 3 (const int)
+0:28 Branch: Return
+0:? Linker Objects
+0:? 'a' (layout(location=0 ) out int)
+0:? 'b' (layout(location=1 ) out float)
+0:? 'c' (layout(location=2 ) out bool)
+0:? 'v' (layout(location=3 ) out 4-component vector of float)
+0:? 'input' (layout(location=0 ) in 4-component vector of float)
+0:? 'gv' (global 4-component vector of float)
+0:? 'gfa' (global 3-element array of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:8 Sequence
+0:8 move second child to first child (temp 4-component vector of float)
+0:8 'gv' (global 4-component vector of float)
+0:8 Constant:
+0:8 0.000000
+0:8 0.000000
+0:8 1.000000
+0:8 0.000000
+0:9 Sequence
+0:9 move second child to first child (temp 3-element array of float)
+0:9 'gfa' (global 3-element array of float)
+0:9 Constant:
+0:9 0.000000
+0:9 0.000000
+0:9 0.000000
+0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:18 Function Parameters:
+0:18 'input' (layout(location=0 ) in 4-component vector of float)
+0:? Sequence
+0:19 Sequence
+0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:19 Constant:
+0:19 3 (const int)
+0:19 0.000000
+0:19 false (const bool)
+0:19 0.000000
+0:19 0.000000
+0:19 0.000000
+0:19 0.000000
+0:21 move second child to first child (temp 4-component vector of float)
+0:21 v: direct index for structure (temp 4-component vector of float)
+0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:21 Constant:
+0:21 3 (const int)
+0:21 vector-scale (temp 4-component vector of float)
+0:21 'gv' (global 4-component vector of float)
+0:21 direct index (temp float)
+0:21 'gfa' (global 3-element array of float)
+0:21 Constant:
+0:21 2 (const int)
+0:22 Sequence
+0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:22 Constant:
+0:22 0 (const int)
+0:22 0.000000
+0:22 false (const bool)
+0:22 0.000000
+0:22 0.000000
+0:22 0.000000
+0:22 0.000000
+0:23 Sequence
+0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:23 Constant:
+0:23 0 (const int)
+0:23 0.000000
+0:23 false (const bool)
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:23 0.000000
+0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:24 Constant:
+0:24 0 (const int)
+0:24 0.000000
+0:24 false (const bool)
+0:24 0.000000
+0:24 0.000000
+0:24 0.000000
+0:24 0.000000
+0:25 move second child to first child (temp bool)
+0:25 c: direct index for structure (temp bool)
+0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:25 Constant:
+0:25 2 (const int)
+0:25 c: direct index for structure (temp bool)
+0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:25 Constant:
+0:25 2 (const int)
+0:26 Sequence
+0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
+0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
+0:26 Constant:
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0 (const int)
+0:26 0.000000
+0:26 false (const bool)
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 0.000000
+0:26 false (const bool)
+0:28 Sequence
+0:28 Sequence
+0:28 move second child to first child (temp int)
+0:? 'a' (layout(location=0 ) out int)
+0:28 a: direct index for structure (temp int)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 0 (const int)
+0:28 move second child to first child (temp float)
+0:? 'b' (layout(location=1 ) out float)
+0:28 b: direct index for structure (temp float)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 1 (const int)
+0:28 move second child to first child (temp bool)
+0:? 'c' (layout(location=2 ) out bool)
+0:28 c: direct index for structure (temp bool)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 2 (const int)
+0:28 move second child to first child (temp 4-component vector of float)
+0:? 'v' (layout(location=3 ) out 4-component vector of float)
+0:28 v: direct index for structure (temp 4-component vector of float)
+0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
+0:28 Constant:
+0:28 3 (const int)
+0:28 Branch: Return
+0:? Linker Objects
+0:? 'a' (layout(location=0 ) out int)
+0:? 'b' (layout(location=1 ) out float)
+0:? 'c' (layout(location=2 ) out bool)
+0:? 'v' (layout(location=3 ) out 4-component vector of float)
+0:? 'input' (layout(location=0 ) in 4-component vector of float)
+0:? 'gv' (global 4-component vector of float)
+0:? 'gfa' (global 3-element array of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 75
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "PixelShaderFunction" 54 59 65 69 74
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "PixelShaderFunction"
+ Name 9 "gv"
+ Name 17 "gfa"
+ Name 21 "outs"
+ MemberName 21(outs) 0 "a"
+ MemberName 21(outs) 1 "b"
+ MemberName 21(outs) 2 "c"
+ MemberName 21(outs) 3 "v"
+ Name 23 "o2"
+ Name 28 "o4"
+ Name 37 "o1"
+ Name 40 "o3"
+ Name 47 "Nest"
+ MemberName 47(Nest) 0 "m"
+ MemberName 47(Nest) 1 "os"
+ MemberName 47(Nest) 2 "b"
+ Name 49 "nest"
+ Name 54 "a"
+ Name 59 "b"
+ Name 65 "c"
+ Name 69 "v"
+ Name 74 "input"
+ Decorate 54(a) Location 0
+ Decorate 59(b) Location 1
+ Decorate 65(c) Location 2
+ Decorate 69(v) Location 3
+ Decorate 74(input) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypeVector 6(float) 4
+ 8: TypePointer Private 7(fvec4)
+ 9(gv): 8(ptr) Variable Private
+ 10: 6(float) Constant 0
+ 11: 6(float) Constant 1065353216
+ 12: 7(fvec4) ConstantComposite 10 10 11 10
+ 13: TypeInt 32 0
+ 14: 13(int) Constant 3
+ 15: TypeArray 6(float) 14
+ 16: TypePointer Private 15
+ 17(gfa): 16(ptr) Variable Private
+ 18: 15 ConstantComposite 10 10 10
+ 19: TypeInt 32 1
+ 20: TypeBool
+ 21(outs): TypeStruct 19(int) 6(float) 20(bool) 7(fvec4)
+ 22: TypePointer Function 21(outs)
+ 24: 19(int) Constant 3
+ 25: 20(bool) ConstantFalse
+ 26: 7(fvec4) ConstantComposite 10 10 10 10
+ 27: 21(outs) ConstantComposite 24 10 25 26
+ 30: 19(int) Constant 2
+ 31: TypePointer Private 6(float)
+ 35: TypePointer Function 7(fvec4)
+ 38: 19(int) Constant 0
+ 39: 21(outs) ConstantComposite 38 10 25 26
+ 41: TypePointer Function 20(bool)
+ 45: TypeVector 6(float) 3
+ 46: TypeMatrix 45(fvec3) 4
+ 47(Nest): TypeStruct 46 21(outs) 20(bool)
+ 48: TypePointer Function 47(Nest)
+ 50: 45(fvec3) ConstantComposite 10 10 10
+ 51: 46 ConstantComposite 50 50 50 50
+ 52: 47(Nest) ConstantComposite 51 39 25
+ 53: TypePointer Output 19(int)
+ 54(a): 53(ptr) Variable Output
+ 55: TypePointer Function 19(int)
+ 58: TypePointer Output 6(float)
+ 59(b): 58(ptr) Variable Output
+ 60: 19(int) Constant 1
+ 61: TypePointer Function 6(float)
+ 64: TypePointer Output 20(bool)
+ 65(c): 64(ptr) Variable Output
+ 68: TypePointer Output 7(fvec4)
+ 69(v): 68(ptr) Variable Output
+ 73: TypePointer Input 7(fvec4)
+ 74(input): 73(ptr) Variable Input
+4(PixelShaderFunction): 2 Function None 3
+ 5: Label
+ 23(o2): 22(ptr) Variable Function
+ 28(o4): 22(ptr) Variable Function
+ 37(o1): 22(ptr) Variable Function
+ 40(o3): 22(ptr) Variable Function
+ 49(nest): 48(ptr) Variable Function
+ Store 9(gv) 12
+ Store 17(gfa) 18
+ Store 23(o2) 27
+ 29: 7(fvec4) Load 9(gv)
+ 32: 31(ptr) AccessChain 17(gfa) 30
+ 33: 6(float) Load 32
+ 34: 7(fvec4) VectorTimesScalar 29 33
+ 36: 35(ptr) AccessChain 28(o4) 24
+ Store 36 34
+ Store 37(o1) 39
+ Store 40(o3) 39
+ Store 28(o4) 39
+ 42: 41(ptr) AccessChain 37(o1) 30
+ 43: 20(bool) Load 42
+ 44: 41(ptr) AccessChain 28(o4) 30
+ Store 44 43
+ Store 49(nest) 52
+ 56: 55(ptr) AccessChain 28(o4) 38
+ 57: 19(int) Load 56
+ Store 54(a) 57
+ 62: 61(ptr) AccessChain 28(o4) 60
+ 63: 6(float) Load 62
+ Store 59(b) 63
+ 66: 41(ptr) AccessChain 28(o4) 30
+ 67: 20(bool) Load 66
+ Store 65(c) 67
+ 70: 35(ptr) AccessChain 28(o4) 24
+ 71: 7(fvec4) Load 70
+ Store 69(v) 71
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out
index e9205cfe..cd2af746 100644
--- a/Test/baseResults/hlsl.precise.frag.out
+++ b/Test/baseResults/hlsl.precise.frag.out
@@ -29,8 +29,8 @@ gl_FragCoord origin is upper left
0:12 0 (const int)
0:12 Branch: Return
0:? Linker Objects
-0:? 'precisefloat' (noContraction global float)
0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float)
+0:? 'precisefloat' (noContraction global float)
Linked fragment stage:
@@ -66,8 +66,8 @@ gl_FragCoord origin is upper left
0:12 0 (const int)
0:12 Branch: Return
0:? Linker Objects
-0:? 'precisefloat' (noContraction global float)
0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float)
+0:? 'precisefloat' (noContraction global float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out
new file mode 100644
index 00000000..2c7425e1
--- /dev/null
+++ b/Test/baseResults/hlsl.promote.binary.frag.out
@@ -0,0 +1,280 @@
+hlsl.promote.binary.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:14 Function Parameters:
+0:? Sequence
+0:15 mod (temp float)
+0:15 Convert int to float (temp float)
+0:15 ival: direct index for structure (layout(offset=32 ) uniform int)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:15 Constant:
+0:15 2 (const uint)
+0:15 fval: direct index for structure (layout(offset=64 ) uniform float)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:15 Constant:
+0:15 4 (const uint)
+0:16 mod (temp 4-component vector of float)
+0:16 Convert int to float (temp 4-component vector of float)
+0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:16 Constant:
+0:16 3 (const uint)
+0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:16 Constant:
+0:16 5 (const uint)
+0:18 mod (temp float)
+0:18 Convert bool to float (temp float)
+0:18 bval: direct index for structure (layout(offset=0 ) uniform bool)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:18 Constant:
+0:18 0 (const uint)
+0:18 fval: direct index for structure (layout(offset=64 ) uniform float)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:18 Constant:
+0:18 4 (const uint)
+0:19 mod (temp 4-component vector of float)
+0:19 Convert bool to float (temp 4-component vector of float)
+0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:19 Constant:
+0:19 1 (const uint)
+0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:19 Constant:
+0:19 5 (const uint)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'l_int' (temp int)
+0:21 Constant:
+0:21 1 (const int)
+0:22 mod second child into first child (temp int)
+0:22 'l_int' (temp int)
+0:22 Convert float to int (temp int)
+0:22 fval: direct index for structure (layout(offset=64 ) uniform float)
+0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:22 Constant:
+0:22 4 (const uint)
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 Color: direct index for structure (temp 4-component vector of float)
+0:25 'psout' (temp structure{temp 4-component vector of float Color})
+0:25 Constant:
+0:25 0 (const int)
+0:25 Constant:
+0:25 0.000000
+0:25 0.000000
+0:25 0.000000
+0:25 0.000000
+0:26 Sequence
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:26 Color: direct index for structure (temp 4-component vector of float)
+0:26 'psout' (temp structure{temp 4-component vector of float Color})
+0:26 Constant:
+0:26 0 (const int)
+0:26 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:14 Function Parameters:
+0:? Sequence
+0:15 mod (temp float)
+0:15 Convert int to float (temp float)
+0:15 ival: direct index for structure (layout(offset=32 ) uniform int)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:15 Constant:
+0:15 2 (const uint)
+0:15 fval: direct index for structure (layout(offset=64 ) uniform float)
+0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:15 Constant:
+0:15 4 (const uint)
+0:16 mod (temp 4-component vector of float)
+0:16 Convert int to float (temp 4-component vector of float)
+0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:16 Constant:
+0:16 3 (const uint)
+0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
+0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:16 Constant:
+0:16 5 (const uint)
+0:18 mod (temp float)
+0:18 Convert bool to float (temp float)
+0:18 bval: direct index for structure (layout(offset=0 ) uniform bool)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:18 Constant:
+0:18 0 (const uint)
+0:18 fval: direct index for structure (layout(offset=64 ) uniform float)
+0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:18 Constant:
+0:18 4 (const uint)
+0:19 mod (temp 4-component vector of float)
+0:19 Convert bool to float (temp 4-component vector of float)
+0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:19 Constant:
+0:19 1 (const uint)
+0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
+0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:19 Constant:
+0:19 5 (const uint)
+0:21 Sequence
+0:21 move second child to first child (temp int)
+0:21 'l_int' (temp int)
+0:21 Constant:
+0:21 1 (const int)
+0:22 mod second child into first child (temp int)
+0:22 'l_int' (temp int)
+0:22 Convert float to int (temp int)
+0:22 fval: direct index for structure (layout(offset=64 ) uniform float)
+0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+0:22 Constant:
+0:22 4 (const uint)
+0:25 move second child to first child (temp 4-component vector of float)
+0:25 Color: direct index for structure (temp 4-component vector of float)
+0:25 'psout' (temp structure{temp 4-component vector of float Color})
+0:25 Constant:
+0:25 0 (const int)
+0:25 Constant:
+0:25 0.000000
+0:25 0.000000
+0:25 0.000000
+0:25 0.000000
+0:26 Sequence
+0:26 Sequence
+0:26 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:26 Color: direct index for structure (temp 4-component vector of float)
+0:26 'psout' (temp structure{temp 4-component vector of float Color})
+0:26 Constant:
+0:26 0 (const int)
+0:26 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 78
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 74
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 12 "$Global"
+ MemberName 12($Global) 0 "bval"
+ MemberName 12($Global) 1 "bval4"
+ MemberName 12($Global) 2 "ival"
+ MemberName 12($Global) 3 "ival4"
+ MemberName 12($Global) 4 "fval"
+ MemberName 12($Global) 5 "fval4"
+ Name 14 ""
+ Name 62 "l_int"
+ Name 68 "PS_OUTPUT"
+ MemberName 68(PS_OUTPUT) 0 "Color"
+ Name 70 "psout"
+ Name 74 "Color"
+ MemberDecorate 12($Global) 0 Offset 0
+ MemberDecorate 12($Global) 1 Offset 16
+ MemberDecorate 12($Global) 2 Offset 32
+ MemberDecorate 12($Global) 3 Offset 48
+ MemberDecorate 12($Global) 4 Offset 64
+ MemberDecorate 12($Global) 5 Offset 80
+ Decorate 12($Global) Block
+ Decorate 14 DescriptorSet 0
+ Decorate 74(Color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: TypeVector 6(int) 4
+ 8: TypeInt 32 1
+ 9: TypeVector 8(int) 4
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 4
+ 12($Global): TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4)
+ 13: TypePointer Uniform 12($Global)
+ 14: 13(ptr) Variable Uniform
+ 15: 8(int) Constant 2
+ 16: TypePointer Uniform 8(int)
+ 20: 8(int) Constant 4
+ 21: TypePointer Uniform 10(float)
+ 25: 8(int) Constant 3
+ 26: TypePointer Uniform 9(ivec4)
+ 30: 8(int) Constant 5
+ 31: TypePointer Uniform 11(fvec4)
+ 35: 8(int) Constant 0
+ 36: TypePointer Uniform 6(int)
+ 39: TypeBool
+ 40: 6(int) Constant 0
+ 42: 10(float) Constant 0
+ 43: 10(float) Constant 1065353216
+ 48: 8(int) Constant 1
+ 49: TypePointer Uniform 7(ivec4)
+ 52: TypeVector 39(bool) 4
+ 53: 7(ivec4) ConstantComposite 40 40 40 40
+ 55: 11(fvec4) ConstantComposite 42 42 42 42
+ 56: 11(fvec4) ConstantComposite 43 43 43 43
+ 61: TypePointer Function 8(int)
+ 68(PS_OUTPUT): TypeStruct 11(fvec4)
+ 69: TypePointer Function 68(PS_OUTPUT)
+ 71: TypePointer Function 11(fvec4)
+ 73: TypePointer Output 11(fvec4)
+ 74(Color): 73(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 62(l_int): 61(ptr) Variable Function
+ 70(psout): 69(ptr) Variable Function
+ 17: 16(ptr) AccessChain 14 15
+ 18: 8(int) Load 17
+ 19: 10(float) ConvertSToF 18
+ 22: 21(ptr) AccessChain 14 20
+ 23: 10(float) Load 22
+ 24: 10(float) FMod 19 23
+ 27: 26(ptr) AccessChain 14 25
+ 28: 9(ivec4) Load 27
+ 29: 11(fvec4) ConvertSToF 28
+ 32: 31(ptr) AccessChain 14 30
+ 33: 11(fvec4) Load 32
+ 34: 11(fvec4) FMod 29 33
+ 37: 36(ptr) AccessChain 14 35
+ 38: 6(int) Load 37
+ 41: 39(bool) INotEqual 38 40
+ 44: 10(float) Select 41 43 42
+ 45: 21(ptr) AccessChain 14 20
+ 46: 10(float) Load 45
+ 47: 10(float) FMod 44 46
+ 50: 49(ptr) AccessChain 14 48
+ 51: 7(ivec4) Load 50
+ 54: 52(bvec4) INotEqual 51 53
+ 57: 11(fvec4) Select 54 56 55
+ 58: 31(ptr) AccessChain 14 30
+ 59: 11(fvec4) Load 58
+ 60: 11(fvec4) FMod 57 59
+ Store 62(l_int) 48
+ 63: 21(ptr) AccessChain 14 20
+ 64: 10(float) Load 63
+ 65: 8(int) ConvertFToS 64
+ 66: 8(int) Load 62(l_int)
+ 67: 8(int) SMod 66 65
+ Store 62(l_int) 67
+ 72: 71(ptr) AccessChain 70(psout) 35
+ Store 72 55
+ 75: 71(ptr) AccessChain 70(psout) 35
+ 76: 11(fvec4) Load 75
+ Store 74(Color) 76
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.promote.vec1.frag.out b/Test/baseResults/hlsl.promote.vec1.frag.out
new file mode 100644
index 00000000..9179dbcc
--- /dev/null
+++ b/Test/baseResults/hlsl.promote.vec1.frag.out
@@ -0,0 +1,118 @@
+hlsl.promote.vec1.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: main( (temp 4-component vector of float)
+0:3 Function Parameters:
+0:? Sequence
+0:7 move second child to first child (temp float)
+0:7 'f1a' (temp float)
+0:7 Construct float (temp float)
+0:7 'f1b' (temp 1-component vector of float)
+0:8 move second child to first child (temp 1-component vector of float)
+0:8 'f1b' (temp 1-component vector of float)
+0:8 Construct float (temp 1-component vector of float)
+0:8 'f1a' (temp float)
+0:11 step (temp 3-component vector of float)
+0:11 Constant:
+0:11 0.000000
+0:11 0.000000
+0:11 0.000000
+0:11 'f3' (temp 3-component vector of float)
+0:13 sine (temp float)
+0:13 Construct float (in float)
+0:13 'f1b' (temp 1-component vector of float)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:15 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:3 Function Definition: main( (temp 4-component vector of float)
+0:3 Function Parameters:
+0:? Sequence
+0:7 move second child to first child (temp float)
+0:7 'f1a' (temp float)
+0:7 Construct float (temp float)
+0:7 'f1b' (temp 1-component vector of float)
+0:8 move second child to first child (temp 1-component vector of float)
+0:8 'f1b' (temp 1-component vector of float)
+0:8 Construct float (temp 1-component vector of float)
+0:8 'f1a' (temp float)
+0:11 step (temp 3-component vector of float)
+0:11 Constant:
+0:11 0.000000
+0:11 0.000000
+0:11 0.000000
+0:11 'f3' (temp 3-component vector of float)
+0:13 sine (temp float)
+0:13 Construct float (in float)
+0:13 'f1b' (temp 1-component vector of float)
+0:15 Sequence
+0:15 move second child to first child (temp 4-component vector of float)
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+0:? Constant:
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:? 0.000000
+0:15 Branch: Return
+0:? Linker Objects
+0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 26
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 23
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 8 "f1a"
+ Name 9 "f1b"
+ Name 16 "f3"
+ Name 23 "@entryPointOutput"
+ Decorate 23(@entryPointOutput) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 12: TypeVector 6(float) 3
+ 13: 6(float) Constant 0
+ 14: 12(fvec3) ConstantComposite 13 13 13
+ 15: TypePointer Function 12(fvec3)
+ 21: TypeVector 6(float) 4
+ 22: TypePointer Output 21(fvec4)
+23(@entryPointOutput): 22(ptr) Variable Output
+ 24: 21(fvec4) ConstantComposite 13 13 13 13
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(f1a): 7(ptr) Variable Function
+ 9(f1b): 7(ptr) Variable Function
+ 16(f3): 15(ptr) Variable Function
+ 10: 6(float) Load 9(f1b)
+ Store 8(f1a) 10
+ 11: 6(float) Load 8(f1a)
+ Store 9(f1b) 11
+ 17: 12(fvec3) Load 16(f3)
+ 18: 12(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 14 17
+ 19: 6(float) Load 9(f1b)
+ 20: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 19
+ Store 23(@entryPointOutput) 24
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out
index e3df54ff..01ced169 100644
--- a/Test/baseResults/hlsl.promotions.frag.out
+++ b/Test/baseResults/hlsl.promotions.frag.out
@@ -782,8 +782,8 @@ gl_FragCoord origin is upper left
0:200 0 (const int)
0:200 Branch: Return
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
Linked fragment stage:
@@ -1572,8 +1572,8 @@ gl_FragCoord origin is upper left
0:200 0 (const int)
0:200 Branch: Return
0:? Linker Objects
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out
new file mode 100644
index 00000000..123bd4cb
--- /dev/null
+++ b/Test/baseResults/hlsl.rw.atomics.frag.out
@@ -0,0 +1,5261 @@
+hlsl.rw.atomics.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:45 Function Parameters:
+0:? Sequence
+0:50 imageAtomicAdd (temp int)
+0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:50 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:50 Constant:
+0:50 5 (const uint)
+0:50 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:50 Constant:
+0:50 8 (const uint)
+0:51 move second child to first child (temp int)
+0:51 'out_i1' (temp int)
+0:51 imageAtomicAdd (temp int)
+0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:51 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:51 Constant:
+0:51 5 (const uint)
+0:51 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:51 Constant:
+0:51 5 (const uint)
+0:52 imageAtomicAnd (temp int)
+0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:52 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:52 Constant:
+0:52 5 (const uint)
+0:52 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:52 Constant:
+0:52 8 (const uint)
+0:53 move second child to first child (temp int)
+0:53 'out_i1' (temp int)
+0:53 imageAtomicAnd (temp int)
+0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:53 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:53 Constant:
+0:53 5 (const uint)
+0:53 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:53 Constant:
+0:53 5 (const uint)
+0:54 move second child to first child (temp int)
+0:54 'out_i1' (temp int)
+0:54 imageAtomicCompSwap (temp int)
+0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:54 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:54 Constant:
+0:54 5 (const uint)
+0:54 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:54 Constant:
+0:54 8 (const uint)
+0:54 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:54 Constant:
+0:54 9 (const uint)
+0:55 move second child to first child (temp int)
+0:55 'out_i1' (temp int)
+0:55 imageAtomicExchange (temp int)
+0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:55 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:55 Constant:
+0:55 5 (const uint)
+0:55 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:55 Constant:
+0:55 5 (const uint)
+0:56 imageAtomicMax (temp int)
+0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:56 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:56 Constant:
+0:56 5 (const uint)
+0:56 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:56 Constant:
+0:56 8 (const uint)
+0:57 move second child to first child (temp int)
+0:57 'out_i1' (temp int)
+0:57 imageAtomicMax (temp int)
+0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:57 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:57 Constant:
+0:57 5 (const uint)
+0:57 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:57 Constant:
+0:57 5 (const uint)
+0:58 imageAtomicMin (temp int)
+0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:58 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:58 Constant:
+0:58 5 (const uint)
+0:58 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:58 Constant:
+0:58 8 (const uint)
+0:59 move second child to first child (temp int)
+0:59 'out_i1' (temp int)
+0:59 imageAtomicMin (temp int)
+0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:59 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:59 Constant:
+0:59 5 (const uint)
+0:59 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:59 Constant:
+0:59 5 (const uint)
+0:60 imageAtomicOr (temp int)
+0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:60 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:60 Constant:
+0:60 5 (const uint)
+0:60 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:60 Constant:
+0:60 8 (const uint)
+0:61 move second child to first child (temp int)
+0:61 'out_i1' (temp int)
+0:61 imageAtomicOr (temp int)
+0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:61 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:61 Constant:
+0:61 5 (const uint)
+0:61 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:61 Constant:
+0:61 5 (const uint)
+0:62 imageAtomicXor (temp int)
+0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:62 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:62 Constant:
+0:62 5 (const uint)
+0:62 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:62 Constant:
+0:62 8 (const uint)
+0:63 move second child to first child (temp int)
+0:63 'out_i1' (temp int)
+0:63 imageAtomicXor (temp int)
+0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:63 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:63 Constant:
+0:63 5 (const uint)
+0:63 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:63 Constant:
+0:63 5 (const uint)
+0:66 imageAtomicAdd (temp uint)
+0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:66 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:66 Constant:
+0:66 0 (const uint)
+0:66 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:66 Constant:
+0:66 0 (const uint)
+0:67 move second child to first child (temp uint)
+0:67 'out_u1' (temp uint)
+0:67 imageAtomicAdd (temp uint)
+0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:67 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:67 Constant:
+0:67 0 (const uint)
+0:67 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:67 Constant:
+0:67 0 (const uint)
+0:68 imageAtomicAnd (temp uint)
+0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:68 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:68 Constant:
+0:68 0 (const uint)
+0:68 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:68 Constant:
+0:68 0 (const uint)
+0:69 move second child to first child (temp uint)
+0:69 'out_u1' (temp uint)
+0:69 imageAtomicAnd (temp uint)
+0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:69 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:69 Constant:
+0:69 0 (const uint)
+0:69 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:69 Constant:
+0:69 0 (const uint)
+0:70 move second child to first child (temp uint)
+0:70 'out_u1' (temp uint)
+0:70 imageAtomicCompSwap (temp uint)
+0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:70 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:70 Constant:
+0:70 0 (const uint)
+0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:70 Constant:
+0:70 3 (const uint)
+0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:70 Constant:
+0:70 4 (const uint)
+0:71 move second child to first child (temp uint)
+0:71 'out_u1' (temp uint)
+0:71 imageAtomicExchange (temp uint)
+0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:71 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:71 Constant:
+0:71 0 (const uint)
+0:71 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:71 Constant:
+0:71 0 (const uint)
+0:72 imageAtomicMax (temp uint)
+0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:72 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:72 Constant:
+0:72 0 (const uint)
+0:72 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:72 Constant:
+0:72 0 (const uint)
+0:73 move second child to first child (temp uint)
+0:73 'out_u1' (temp uint)
+0:73 imageAtomicMax (temp uint)
+0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:73 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:73 Constant:
+0:73 0 (const uint)
+0:73 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:73 Constant:
+0:73 0 (const uint)
+0:74 imageAtomicMin (temp uint)
+0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:74 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:74 Constant:
+0:74 0 (const uint)
+0:74 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:74 Constant:
+0:74 0 (const uint)
+0:75 move second child to first child (temp uint)
+0:75 'out_u1' (temp uint)
+0:75 imageAtomicMin (temp uint)
+0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:75 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:75 Constant:
+0:75 0 (const uint)
+0:75 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:75 Constant:
+0:75 0 (const uint)
+0:76 imageAtomicOr (temp uint)
+0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:76 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:76 Constant:
+0:76 0 (const uint)
+0:76 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:76 Constant:
+0:76 0 (const uint)
+0:77 move second child to first child (temp uint)
+0:77 'out_u1' (temp uint)
+0:77 imageAtomicOr (temp uint)
+0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:77 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:77 Constant:
+0:77 0 (const uint)
+0:77 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:77 Constant:
+0:77 0 (const uint)
+0:78 imageAtomicXor (temp uint)
+0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:78 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:78 Constant:
+0:78 0 (const uint)
+0:78 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:78 Constant:
+0:78 0 (const uint)
+0:79 move second child to first child (temp uint)
+0:79 'out_u1' (temp uint)
+0:79 imageAtomicXor (temp uint)
+0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:79 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:79 Constant:
+0:79 0 (const uint)
+0:79 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:79 Constant:
+0:79 0 (const uint)
+0:82 imageAtomicAdd (temp int)
+0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:82 Constant:
+0:82 6 (const uint)
+0:82 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:82 Constant:
+0:82 8 (const uint)
+0:83 move second child to first child (temp int)
+0:83 'out_i1' (temp int)
+0:83 imageAtomicAdd (temp int)
+0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:83 Constant:
+0:83 6 (const uint)
+0:83 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:83 Constant:
+0:83 5 (const uint)
+0:84 imageAtomicAnd (temp int)
+0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:84 Constant:
+0:84 6 (const uint)
+0:84 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:84 Constant:
+0:84 8 (const uint)
+0:85 move second child to first child (temp int)
+0:85 'out_i1' (temp int)
+0:85 imageAtomicAnd (temp int)
+0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:85 Constant:
+0:85 6 (const uint)
+0:85 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:85 Constant:
+0:85 5 (const uint)
+0:86 move second child to first child (temp int)
+0:86 'out_i1' (temp int)
+0:86 imageAtomicCompSwap (temp int)
+0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:86 Constant:
+0:86 6 (const uint)
+0:86 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:86 Constant:
+0:86 8 (const uint)
+0:86 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:86 Constant:
+0:86 9 (const uint)
+0:87 move second child to first child (temp int)
+0:87 'out_i1' (temp int)
+0:87 imageAtomicExchange (temp int)
+0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:87 Constant:
+0:87 6 (const uint)
+0:87 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:87 Constant:
+0:87 5 (const uint)
+0:88 imageAtomicMax (temp int)
+0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:88 Constant:
+0:88 6 (const uint)
+0:88 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:88 Constant:
+0:88 8 (const uint)
+0:89 move second child to first child (temp int)
+0:89 'out_i1' (temp int)
+0:89 imageAtomicMax (temp int)
+0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:89 Constant:
+0:89 6 (const uint)
+0:89 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:89 Constant:
+0:89 5 (const uint)
+0:90 imageAtomicMin (temp int)
+0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:90 Constant:
+0:90 6 (const uint)
+0:90 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:90 Constant:
+0:90 8 (const uint)
+0:91 move second child to first child (temp int)
+0:91 'out_i1' (temp int)
+0:91 imageAtomicMin (temp int)
+0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:91 Constant:
+0:91 6 (const uint)
+0:91 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:91 Constant:
+0:91 5 (const uint)
+0:92 imageAtomicOr (temp int)
+0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:92 Constant:
+0:92 6 (const uint)
+0:92 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:92 Constant:
+0:92 8 (const uint)
+0:93 move second child to first child (temp int)
+0:93 'out_i1' (temp int)
+0:93 imageAtomicOr (temp int)
+0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:93 Constant:
+0:93 6 (const uint)
+0:93 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:93 Constant:
+0:93 5 (const uint)
+0:94 imageAtomicXor (temp int)
+0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:94 Constant:
+0:94 6 (const uint)
+0:94 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:94 Constant:
+0:94 8 (const uint)
+0:95 move second child to first child (temp int)
+0:95 'out_i1' (temp int)
+0:95 imageAtomicXor (temp int)
+0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:95 Constant:
+0:95 6 (const uint)
+0:95 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:95 Constant:
+0:95 5 (const uint)
+0:98 imageAtomicAdd (temp uint)
+0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:98 Constant:
+0:98 1 (const uint)
+0:98 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:98 Constant:
+0:98 0 (const uint)
+0:99 move second child to first child (temp uint)
+0:99 'out_u1' (temp uint)
+0:99 imageAtomicAdd (temp uint)
+0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:99 Constant:
+0:99 1 (const uint)
+0:99 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:99 Constant:
+0:99 0 (const uint)
+0:100 imageAtomicAnd (temp uint)
+0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:100 Constant:
+0:100 1 (const uint)
+0:100 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:100 Constant:
+0:100 0 (const uint)
+0:101 move second child to first child (temp uint)
+0:101 'out_u1' (temp uint)
+0:101 imageAtomicAnd (temp uint)
+0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:101 Constant:
+0:101 1 (const uint)
+0:101 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:101 Constant:
+0:101 0 (const uint)
+0:102 move second child to first child (temp uint)
+0:102 'out_u1' (temp uint)
+0:102 imageAtomicCompSwap (temp uint)
+0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:102 Constant:
+0:102 1 (const uint)
+0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:102 Constant:
+0:102 3 (const uint)
+0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:102 Constant:
+0:102 4 (const uint)
+0:103 move second child to first child (temp uint)
+0:103 'out_u1' (temp uint)
+0:103 imageAtomicExchange (temp uint)
+0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:103 Constant:
+0:103 1 (const uint)
+0:103 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:103 Constant:
+0:103 0 (const uint)
+0:104 imageAtomicMax (temp uint)
+0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:104 Constant:
+0:104 1 (const uint)
+0:104 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:104 Constant:
+0:104 0 (const uint)
+0:105 move second child to first child (temp uint)
+0:105 'out_u1' (temp uint)
+0:105 imageAtomicMax (temp uint)
+0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:105 Constant:
+0:105 1 (const uint)
+0:105 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:105 Constant:
+0:105 0 (const uint)
+0:106 imageAtomicMin (temp uint)
+0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:106 Constant:
+0:106 1 (const uint)
+0:106 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:106 Constant:
+0:106 0 (const uint)
+0:107 move second child to first child (temp uint)
+0:107 'out_u1' (temp uint)
+0:107 imageAtomicMin (temp uint)
+0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:107 Constant:
+0:107 1 (const uint)
+0:107 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:107 Constant:
+0:107 0 (const uint)
+0:108 imageAtomicOr (temp uint)
+0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:108 Constant:
+0:108 1 (const uint)
+0:108 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:108 Constant:
+0:108 0 (const uint)
+0:109 move second child to first child (temp uint)
+0:109 'out_u1' (temp uint)
+0:109 imageAtomicOr (temp uint)
+0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:109 Constant:
+0:109 1 (const uint)
+0:109 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:109 Constant:
+0:109 0 (const uint)
+0:110 imageAtomicXor (temp uint)
+0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:110 Constant:
+0:110 1 (const uint)
+0:110 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:110 Constant:
+0:110 0 (const uint)
+0:111 move second child to first child (temp uint)
+0:111 'out_u1' (temp uint)
+0:111 imageAtomicXor (temp uint)
+0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:111 Constant:
+0:111 1 (const uint)
+0:111 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:111 Constant:
+0:111 0 (const uint)
+0:114 imageAtomicAdd (temp int)
+0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:114 Constant:
+0:114 7 (const uint)
+0:114 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:114 Constant:
+0:114 8 (const uint)
+0:115 move second child to first child (temp int)
+0:115 'out_i1' (temp int)
+0:115 imageAtomicAdd (temp int)
+0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:115 Constant:
+0:115 7 (const uint)
+0:115 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:115 Constant:
+0:115 5 (const uint)
+0:116 imageAtomicAnd (temp int)
+0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:116 Constant:
+0:116 7 (const uint)
+0:116 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:116 Constant:
+0:116 8 (const uint)
+0:117 move second child to first child (temp int)
+0:117 'out_i1' (temp int)
+0:117 imageAtomicAnd (temp int)
+0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:117 Constant:
+0:117 7 (const uint)
+0:117 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:117 Constant:
+0:117 5 (const uint)
+0:118 move second child to first child (temp int)
+0:118 'out_i1' (temp int)
+0:118 imageAtomicCompSwap (temp int)
+0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:118 Constant:
+0:118 7 (const uint)
+0:118 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:118 Constant:
+0:118 8 (const uint)
+0:118 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:118 Constant:
+0:118 9 (const uint)
+0:119 move second child to first child (temp int)
+0:119 'out_i1' (temp int)
+0:119 imageAtomicExchange (temp int)
+0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:119 Constant:
+0:119 7 (const uint)
+0:119 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:119 Constant:
+0:119 5 (const uint)
+0:120 imageAtomicMax (temp int)
+0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:120 Constant:
+0:120 7 (const uint)
+0:120 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:120 Constant:
+0:120 8 (const uint)
+0:121 move second child to first child (temp int)
+0:121 'out_i1' (temp int)
+0:121 imageAtomicMax (temp int)
+0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:121 Constant:
+0:121 7 (const uint)
+0:121 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:121 Constant:
+0:121 5 (const uint)
+0:122 imageAtomicMin (temp int)
+0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:122 Constant:
+0:122 7 (const uint)
+0:122 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:122 Constant:
+0:122 8 (const uint)
+0:123 move second child to first child (temp int)
+0:123 'out_i1' (temp int)
+0:123 imageAtomicMin (temp int)
+0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:123 Constant:
+0:123 7 (const uint)
+0:123 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:123 Constant:
+0:123 5 (const uint)
+0:124 imageAtomicOr (temp int)
+0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:124 Constant:
+0:124 7 (const uint)
+0:124 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:124 Constant:
+0:124 8 (const uint)
+0:125 move second child to first child (temp int)
+0:125 'out_i1' (temp int)
+0:125 imageAtomicOr (temp int)
+0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:125 Constant:
+0:125 7 (const uint)
+0:125 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:125 Constant:
+0:125 5 (const uint)
+0:126 imageAtomicXor (temp int)
+0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:126 Constant:
+0:126 7 (const uint)
+0:126 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:126 Constant:
+0:126 8 (const uint)
+0:127 move second child to first child (temp int)
+0:127 'out_i1' (temp int)
+0:127 imageAtomicXor (temp int)
+0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:127 Constant:
+0:127 7 (const uint)
+0:127 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:127 Constant:
+0:127 5 (const uint)
+0:130 imageAtomicAdd (temp uint)
+0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:130 Constant:
+0:130 2 (const uint)
+0:130 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:130 Constant:
+0:130 0 (const uint)
+0:131 move second child to first child (temp uint)
+0:131 'out_u1' (temp uint)
+0:131 imageAtomicAdd (temp uint)
+0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:131 Constant:
+0:131 2 (const uint)
+0:131 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:131 Constant:
+0:131 0 (const uint)
+0:132 imageAtomicAnd (temp uint)
+0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:132 Constant:
+0:132 2 (const uint)
+0:132 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:132 Constant:
+0:132 0 (const uint)
+0:133 move second child to first child (temp uint)
+0:133 'out_u1' (temp uint)
+0:133 imageAtomicAnd (temp uint)
+0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:133 Constant:
+0:133 2 (const uint)
+0:133 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:133 Constant:
+0:133 0 (const uint)
+0:134 move second child to first child (temp uint)
+0:134 'out_u1' (temp uint)
+0:134 imageAtomicCompSwap (temp uint)
+0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:134 Constant:
+0:134 2 (const uint)
+0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:134 Constant:
+0:134 3 (const uint)
+0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:134 Constant:
+0:134 4 (const uint)
+0:135 move second child to first child (temp uint)
+0:135 'out_u1' (temp uint)
+0:135 imageAtomicExchange (temp uint)
+0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:135 Constant:
+0:135 2 (const uint)
+0:135 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:135 Constant:
+0:135 0 (const uint)
+0:136 imageAtomicMax (temp uint)
+0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:136 Constant:
+0:136 2 (const uint)
+0:136 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:136 Constant:
+0:136 0 (const uint)
+0:137 move second child to first child (temp uint)
+0:137 'out_u1' (temp uint)
+0:137 imageAtomicMax (temp uint)
+0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:137 Constant:
+0:137 2 (const uint)
+0:137 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:137 Constant:
+0:137 0 (const uint)
+0:138 imageAtomicMin (temp uint)
+0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:138 Constant:
+0:138 2 (const uint)
+0:138 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:138 Constant:
+0:138 0 (const uint)
+0:139 move second child to first child (temp uint)
+0:139 'out_u1' (temp uint)
+0:139 imageAtomicMin (temp uint)
+0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:139 Constant:
+0:139 2 (const uint)
+0:139 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:139 Constant:
+0:139 0 (const uint)
+0:140 imageAtomicOr (temp uint)
+0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:140 Constant:
+0:140 2 (const uint)
+0:140 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:140 Constant:
+0:140 0 (const uint)
+0:141 move second child to first child (temp uint)
+0:141 'out_u1' (temp uint)
+0:141 imageAtomicOr (temp uint)
+0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:141 Constant:
+0:141 2 (const uint)
+0:141 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:141 Constant:
+0:141 0 (const uint)
+0:142 imageAtomicXor (temp uint)
+0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:142 Constant:
+0:142 2 (const uint)
+0:142 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:142 Constant:
+0:142 0 (const uint)
+0:143 move second child to first child (temp uint)
+0:143 'out_u1' (temp uint)
+0:143 imageAtomicXor (temp uint)
+0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:143 Constant:
+0:143 2 (const uint)
+0:143 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:143 Constant:
+0:143 0 (const uint)
+0:146 imageAtomicAdd (temp int)
+0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:146 Constant:
+0:146 6 (const uint)
+0:146 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:146 Constant:
+0:146 8 (const uint)
+0:147 move second child to first child (temp int)
+0:147 'out_i1' (temp int)
+0:147 imageAtomicAdd (temp int)
+0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:147 Constant:
+0:147 6 (const uint)
+0:147 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:147 Constant:
+0:147 5 (const uint)
+0:148 imageAtomicAnd (temp int)
+0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:148 Constant:
+0:148 6 (const uint)
+0:148 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:148 Constant:
+0:148 8 (const uint)
+0:149 move second child to first child (temp int)
+0:149 'out_i1' (temp int)
+0:149 imageAtomicAnd (temp int)
+0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:149 Constant:
+0:149 6 (const uint)
+0:149 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:149 Constant:
+0:149 5 (const uint)
+0:150 move second child to first child (temp int)
+0:150 'out_i1' (temp int)
+0:150 imageAtomicCompSwap (temp int)
+0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:150 Constant:
+0:150 6 (const uint)
+0:150 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:150 Constant:
+0:150 8 (const uint)
+0:150 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:150 Constant:
+0:150 9 (const uint)
+0:151 move second child to first child (temp int)
+0:151 'out_i1' (temp int)
+0:151 imageAtomicExchange (temp int)
+0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:151 Constant:
+0:151 6 (const uint)
+0:151 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:151 Constant:
+0:151 5 (const uint)
+0:152 imageAtomicMax (temp int)
+0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:152 Constant:
+0:152 6 (const uint)
+0:152 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:152 Constant:
+0:152 8 (const uint)
+0:153 move second child to first child (temp int)
+0:153 'out_i1' (temp int)
+0:153 imageAtomicMax (temp int)
+0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:153 Constant:
+0:153 6 (const uint)
+0:153 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:153 Constant:
+0:153 5 (const uint)
+0:154 imageAtomicMin (temp int)
+0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:154 Constant:
+0:154 6 (const uint)
+0:154 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:154 Constant:
+0:154 8 (const uint)
+0:155 move second child to first child (temp int)
+0:155 'out_i1' (temp int)
+0:155 imageAtomicMin (temp int)
+0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:155 Constant:
+0:155 6 (const uint)
+0:155 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:155 Constant:
+0:155 5 (const uint)
+0:156 imageAtomicOr (temp int)
+0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:156 Constant:
+0:156 6 (const uint)
+0:156 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:156 Constant:
+0:156 8 (const uint)
+0:157 move second child to first child (temp int)
+0:157 'out_i1' (temp int)
+0:157 imageAtomicOr (temp int)
+0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:157 Constant:
+0:157 6 (const uint)
+0:157 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:157 Constant:
+0:157 5 (const uint)
+0:158 imageAtomicXor (temp int)
+0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:158 Constant:
+0:158 6 (const uint)
+0:158 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:158 Constant:
+0:158 8 (const uint)
+0:159 move second child to first child (temp int)
+0:159 'out_i1' (temp int)
+0:159 imageAtomicXor (temp int)
+0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:159 Constant:
+0:159 6 (const uint)
+0:159 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:159 Constant:
+0:159 5 (const uint)
+0:162 imageAtomicAdd (temp uint)
+0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:162 Constant:
+0:162 1 (const uint)
+0:162 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:162 Constant:
+0:162 0 (const uint)
+0:163 move second child to first child (temp uint)
+0:163 'out_u1' (temp uint)
+0:163 imageAtomicAdd (temp uint)
+0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:163 Constant:
+0:163 1 (const uint)
+0:163 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:163 Constant:
+0:163 0 (const uint)
+0:164 imageAtomicAnd (temp uint)
+0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:164 Constant:
+0:164 1 (const uint)
+0:164 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:164 Constant:
+0:164 0 (const uint)
+0:165 move second child to first child (temp uint)
+0:165 'out_u1' (temp uint)
+0:165 imageAtomicAnd (temp uint)
+0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:165 Constant:
+0:165 1 (const uint)
+0:165 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:165 Constant:
+0:165 0 (const uint)
+0:166 move second child to first child (temp uint)
+0:166 'out_u1' (temp uint)
+0:166 imageAtomicCompSwap (temp uint)
+0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:166 Constant:
+0:166 1 (const uint)
+0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:166 Constant:
+0:166 3 (const uint)
+0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:166 Constant:
+0:166 4 (const uint)
+0:167 move second child to first child (temp uint)
+0:167 'out_u1' (temp uint)
+0:167 imageAtomicExchange (temp uint)
+0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:167 Constant:
+0:167 1 (const uint)
+0:167 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:167 Constant:
+0:167 0 (const uint)
+0:168 imageAtomicMax (temp uint)
+0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:168 Constant:
+0:168 1 (const uint)
+0:168 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:168 Constant:
+0:168 0 (const uint)
+0:169 move second child to first child (temp uint)
+0:169 'out_u1' (temp uint)
+0:169 imageAtomicMax (temp uint)
+0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:169 Constant:
+0:169 1 (const uint)
+0:169 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:169 Constant:
+0:169 0 (const uint)
+0:170 imageAtomicMin (temp uint)
+0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:170 Constant:
+0:170 1 (const uint)
+0:170 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:170 Constant:
+0:170 0 (const uint)
+0:171 move second child to first child (temp uint)
+0:171 'out_u1' (temp uint)
+0:171 imageAtomicMin (temp uint)
+0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:171 Constant:
+0:171 1 (const uint)
+0:171 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:171 Constant:
+0:171 0 (const uint)
+0:172 imageAtomicOr (temp uint)
+0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:172 Constant:
+0:172 1 (const uint)
+0:172 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:172 Constant:
+0:172 0 (const uint)
+0:173 move second child to first child (temp uint)
+0:173 'out_u1' (temp uint)
+0:173 imageAtomicOr (temp uint)
+0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:173 Constant:
+0:173 1 (const uint)
+0:173 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:173 Constant:
+0:173 0 (const uint)
+0:174 imageAtomicXor (temp uint)
+0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:174 Constant:
+0:174 1 (const uint)
+0:174 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:174 Constant:
+0:174 0 (const uint)
+0:175 move second child to first child (temp uint)
+0:175 'out_u1' (temp uint)
+0:175 imageAtomicXor (temp uint)
+0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:175 Constant:
+0:175 1 (const uint)
+0:175 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:175 Constant:
+0:175 0 (const uint)
+0:178 imageAtomicAdd (temp int)
+0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:178 Constant:
+0:178 6 (const uint)
+0:178 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:178 Constant:
+0:178 8 (const uint)
+0:179 move second child to first child (temp int)
+0:179 'out_i1' (temp int)
+0:179 imageAtomicAdd (temp int)
+0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:179 Constant:
+0:179 6 (const uint)
+0:179 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:179 Constant:
+0:179 5 (const uint)
+0:180 imageAtomicAnd (temp int)
+0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:180 Constant:
+0:180 6 (const uint)
+0:180 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:180 Constant:
+0:180 8 (const uint)
+0:181 move second child to first child (temp int)
+0:181 'out_i1' (temp int)
+0:181 imageAtomicAnd (temp int)
+0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:181 Constant:
+0:181 6 (const uint)
+0:181 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:181 Constant:
+0:181 5 (const uint)
+0:182 move second child to first child (temp int)
+0:182 'out_i1' (temp int)
+0:182 imageAtomicCompSwap (temp int)
+0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:182 Constant:
+0:182 6 (const uint)
+0:182 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:182 Constant:
+0:182 8 (const uint)
+0:182 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:182 Constant:
+0:182 9 (const uint)
+0:183 move second child to first child (temp int)
+0:183 'out_i1' (temp int)
+0:183 imageAtomicExchange (temp int)
+0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:183 Constant:
+0:183 6 (const uint)
+0:183 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:183 Constant:
+0:183 5 (const uint)
+0:184 imageAtomicMax (temp int)
+0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:184 Constant:
+0:184 6 (const uint)
+0:184 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:184 Constant:
+0:184 8 (const uint)
+0:185 move second child to first child (temp int)
+0:185 'out_i1' (temp int)
+0:185 imageAtomicMax (temp int)
+0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:185 Constant:
+0:185 6 (const uint)
+0:185 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:185 Constant:
+0:185 5 (const uint)
+0:186 imageAtomicMin (temp int)
+0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:186 Constant:
+0:186 6 (const uint)
+0:186 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:186 Constant:
+0:186 8 (const uint)
+0:187 move second child to first child (temp int)
+0:187 'out_i1' (temp int)
+0:187 imageAtomicMin (temp int)
+0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:187 Constant:
+0:187 6 (const uint)
+0:187 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:187 Constant:
+0:187 5 (const uint)
+0:188 imageAtomicOr (temp int)
+0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:188 Constant:
+0:188 6 (const uint)
+0:188 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:188 Constant:
+0:188 8 (const uint)
+0:189 move second child to first child (temp int)
+0:189 'out_i1' (temp int)
+0:189 imageAtomicOr (temp int)
+0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:189 Constant:
+0:189 6 (const uint)
+0:189 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:189 Constant:
+0:189 5 (const uint)
+0:190 imageAtomicXor (temp int)
+0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:190 Constant:
+0:190 6 (const uint)
+0:190 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:190 Constant:
+0:190 8 (const uint)
+0:191 move second child to first child (temp int)
+0:191 'out_i1' (temp int)
+0:191 imageAtomicXor (temp int)
+0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:191 Constant:
+0:191 6 (const uint)
+0:191 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:191 Constant:
+0:191 5 (const uint)
+0:194 imageAtomicAdd (temp uint)
+0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:194 Constant:
+0:194 1 (const uint)
+0:194 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:194 Constant:
+0:194 0 (const uint)
+0:195 move second child to first child (temp uint)
+0:195 'out_u1' (temp uint)
+0:195 imageAtomicAdd (temp uint)
+0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:195 Constant:
+0:195 1 (const uint)
+0:195 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:195 Constant:
+0:195 0 (const uint)
+0:196 imageAtomicAnd (temp uint)
+0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:196 Constant:
+0:196 1 (const uint)
+0:196 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:196 Constant:
+0:196 0 (const uint)
+0:197 move second child to first child (temp uint)
+0:197 'out_u1' (temp uint)
+0:197 imageAtomicAnd (temp uint)
+0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:197 Constant:
+0:197 1 (const uint)
+0:197 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:197 Constant:
+0:197 0 (const uint)
+0:198 move second child to first child (temp uint)
+0:198 'out_u1' (temp uint)
+0:198 imageAtomicCompSwap (temp uint)
+0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:198 Constant:
+0:198 1 (const uint)
+0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:198 Constant:
+0:198 3 (const uint)
+0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:198 Constant:
+0:198 4 (const uint)
+0:199 move second child to first child (temp uint)
+0:199 'out_u1' (temp uint)
+0:199 imageAtomicExchange (temp uint)
+0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:199 Constant:
+0:199 1 (const uint)
+0:199 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:199 Constant:
+0:199 0 (const uint)
+0:200 imageAtomicMax (temp uint)
+0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:200 Constant:
+0:200 1 (const uint)
+0:200 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:200 Constant:
+0:200 0 (const uint)
+0:201 move second child to first child (temp uint)
+0:201 'out_u1' (temp uint)
+0:201 imageAtomicMax (temp uint)
+0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:201 Constant:
+0:201 1 (const uint)
+0:201 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:201 Constant:
+0:201 0 (const uint)
+0:202 imageAtomicMin (temp uint)
+0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:202 Constant:
+0:202 1 (const uint)
+0:202 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:202 Constant:
+0:202 0 (const uint)
+0:203 move second child to first child (temp uint)
+0:203 'out_u1' (temp uint)
+0:203 imageAtomicMin (temp uint)
+0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:203 Constant:
+0:203 1 (const uint)
+0:203 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:203 Constant:
+0:203 0 (const uint)
+0:204 imageAtomicOr (temp uint)
+0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:204 Constant:
+0:204 1 (const uint)
+0:204 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:204 Constant:
+0:204 0 (const uint)
+0:205 move second child to first child (temp uint)
+0:205 'out_u1' (temp uint)
+0:205 imageAtomicOr (temp uint)
+0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:205 Constant:
+0:205 1 (const uint)
+0:205 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:205 Constant:
+0:205 0 (const uint)
+0:206 imageAtomicXor (temp uint)
+0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:206 Constant:
+0:206 1 (const uint)
+0:206 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:206 Constant:
+0:206 0 (const uint)
+0:207 move second child to first child (temp uint)
+0:207 'out_u1' (temp uint)
+0:207 imageAtomicXor (temp uint)
+0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:207 Constant:
+0:207 1 (const uint)
+0:207 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:207 Constant:
+0:207 0 (const uint)
+0:210 imageAtomicAdd (temp int)
+0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:210 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:210 Constant:
+0:210 5 (const uint)
+0:210 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:210 Constant:
+0:210 8 (const uint)
+0:211 move second child to first child (temp int)
+0:211 'out_i1' (temp int)
+0:211 imageAtomicAdd (temp int)
+0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:211 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:211 Constant:
+0:211 5 (const uint)
+0:211 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:211 Constant:
+0:211 5 (const uint)
+0:212 imageAtomicAnd (temp int)
+0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:212 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:212 Constant:
+0:212 5 (const uint)
+0:212 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:212 Constant:
+0:212 8 (const uint)
+0:213 move second child to first child (temp int)
+0:213 'out_i1' (temp int)
+0:213 imageAtomicAnd (temp int)
+0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:213 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:213 Constant:
+0:213 5 (const uint)
+0:213 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:213 Constant:
+0:213 5 (const uint)
+0:214 move second child to first child (temp int)
+0:214 'out_i1' (temp int)
+0:214 imageAtomicCompSwap (temp int)
+0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:214 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:214 Constant:
+0:214 5 (const uint)
+0:214 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:214 Constant:
+0:214 8 (const uint)
+0:214 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:214 Constant:
+0:214 9 (const uint)
+0:215 move second child to first child (temp int)
+0:215 'out_i1' (temp int)
+0:215 imageAtomicExchange (temp int)
+0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:215 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:215 Constant:
+0:215 5 (const uint)
+0:215 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:215 Constant:
+0:215 5 (const uint)
+0:216 imageAtomicMax (temp int)
+0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:216 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:216 Constant:
+0:216 5 (const uint)
+0:216 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:216 Constant:
+0:216 8 (const uint)
+0:217 move second child to first child (temp int)
+0:217 'out_i1' (temp int)
+0:217 imageAtomicMax (temp int)
+0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:217 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:217 Constant:
+0:217 5 (const uint)
+0:217 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:217 Constant:
+0:217 5 (const uint)
+0:218 imageAtomicMin (temp int)
+0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:218 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:218 Constant:
+0:218 5 (const uint)
+0:218 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:218 Constant:
+0:218 8 (const uint)
+0:219 move second child to first child (temp int)
+0:219 'out_i1' (temp int)
+0:219 imageAtomicMin (temp int)
+0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:219 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:219 Constant:
+0:219 5 (const uint)
+0:219 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:219 Constant:
+0:219 5 (const uint)
+0:220 imageAtomicOr (temp int)
+0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:220 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:220 Constant:
+0:220 5 (const uint)
+0:220 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:220 Constant:
+0:220 8 (const uint)
+0:221 move second child to first child (temp int)
+0:221 'out_i1' (temp int)
+0:221 imageAtomicOr (temp int)
+0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:221 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:221 Constant:
+0:221 5 (const uint)
+0:221 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:221 Constant:
+0:221 5 (const uint)
+0:222 imageAtomicXor (temp int)
+0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:222 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:222 Constant:
+0:222 5 (const uint)
+0:222 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:222 Constant:
+0:222 8 (const uint)
+0:223 move second child to first child (temp int)
+0:223 'out_i1' (temp int)
+0:223 imageAtomicXor (temp int)
+0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:223 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:223 Constant:
+0:223 5 (const uint)
+0:223 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:223 Constant:
+0:223 5 (const uint)
+0:226 imageAtomicAdd (temp uint)
+0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:226 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:226 Constant:
+0:226 0 (const uint)
+0:226 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:226 Constant:
+0:226 0 (const uint)
+0:227 move second child to first child (temp uint)
+0:227 'out_u1' (temp uint)
+0:227 imageAtomicAdd (temp uint)
+0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:227 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:227 Constant:
+0:227 0 (const uint)
+0:227 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:227 Constant:
+0:227 0 (const uint)
+0:228 imageAtomicAnd (temp uint)
+0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:228 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:228 Constant:
+0:228 0 (const uint)
+0:228 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:228 Constant:
+0:228 0 (const uint)
+0:229 move second child to first child (temp uint)
+0:229 'out_u1' (temp uint)
+0:229 imageAtomicAnd (temp uint)
+0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:229 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:229 Constant:
+0:229 0 (const uint)
+0:229 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:229 Constant:
+0:229 0 (const uint)
+0:230 move second child to first child (temp uint)
+0:230 'out_u1' (temp uint)
+0:230 imageAtomicCompSwap (temp uint)
+0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:230 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:230 Constant:
+0:230 0 (const uint)
+0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:230 Constant:
+0:230 3 (const uint)
+0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:230 Constant:
+0:230 4 (const uint)
+0:231 move second child to first child (temp uint)
+0:231 'out_u1' (temp uint)
+0:231 imageAtomicExchange (temp uint)
+0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:231 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:231 Constant:
+0:231 0 (const uint)
+0:231 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:231 Constant:
+0:231 0 (const uint)
+0:232 imageAtomicMax (temp uint)
+0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:232 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:232 Constant:
+0:232 0 (const uint)
+0:232 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:232 Constant:
+0:232 0 (const uint)
+0:233 move second child to first child (temp uint)
+0:233 'out_u1' (temp uint)
+0:233 imageAtomicMax (temp uint)
+0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:233 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:233 Constant:
+0:233 0 (const uint)
+0:233 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:233 Constant:
+0:233 0 (const uint)
+0:234 imageAtomicMin (temp uint)
+0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:234 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:234 Constant:
+0:234 0 (const uint)
+0:234 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:234 Constant:
+0:234 0 (const uint)
+0:235 move second child to first child (temp uint)
+0:235 'out_u1' (temp uint)
+0:235 imageAtomicMin (temp uint)
+0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:235 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:235 Constant:
+0:235 0 (const uint)
+0:235 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:235 Constant:
+0:235 0 (const uint)
+0:236 imageAtomicOr (temp uint)
+0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:236 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:236 Constant:
+0:236 0 (const uint)
+0:236 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:236 Constant:
+0:236 0 (const uint)
+0:237 move second child to first child (temp uint)
+0:237 'out_u1' (temp uint)
+0:237 imageAtomicOr (temp uint)
+0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:237 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:237 Constant:
+0:237 0 (const uint)
+0:237 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:237 Constant:
+0:237 0 (const uint)
+0:238 imageAtomicXor (temp uint)
+0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:238 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:238 Constant:
+0:238 0 (const uint)
+0:238 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:238 Constant:
+0:238 0 (const uint)
+0:239 move second child to first child (temp uint)
+0:239 'out_u1' (temp uint)
+0:239 imageAtomicXor (temp uint)
+0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:239 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:239 Constant:
+0:239 0 (const uint)
+0:239 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:239 Constant:
+0:239 0 (const uint)
+0:242 move second child to first child (temp 4-component vector of float)
+0:242 Color: direct index for structure (temp 4-component vector of float)
+0:242 'psout' (temp structure{temp 4-component vector of float Color})
+0:242 Constant:
+0:242 0 (const int)
+0:242 Constant:
+0:242 1.000000
+0:242 1.000000
+0:242 1.000000
+0:242 1.000000
+0:243 Sequence
+0:243 Sequence
+0:243 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:243 Color: direct index for structure (temp 4-component vector of float)
+0:243 'psout' (temp structure{temp 4-component vector of float Color})
+0:243 Constant:
+0:243 0 (const int)
+0:243 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_sSamp' (uniform sampler)
+0:? 'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:? 'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:? 'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray)
+0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray)
+0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray)
+0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray)
+0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer)
+0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:45 Function Parameters:
+0:? Sequence
+0:50 imageAtomicAdd (temp int)
+0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:50 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:50 Constant:
+0:50 5 (const uint)
+0:50 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:50 Constant:
+0:50 8 (const uint)
+0:51 move second child to first child (temp int)
+0:51 'out_i1' (temp int)
+0:51 imageAtomicAdd (temp int)
+0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:51 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:51 Constant:
+0:51 5 (const uint)
+0:51 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:51 Constant:
+0:51 5 (const uint)
+0:52 imageAtomicAnd (temp int)
+0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:52 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:52 Constant:
+0:52 5 (const uint)
+0:52 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:52 Constant:
+0:52 8 (const uint)
+0:53 move second child to first child (temp int)
+0:53 'out_i1' (temp int)
+0:53 imageAtomicAnd (temp int)
+0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:53 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:53 Constant:
+0:53 5 (const uint)
+0:53 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:53 Constant:
+0:53 5 (const uint)
+0:54 move second child to first child (temp int)
+0:54 'out_i1' (temp int)
+0:54 imageAtomicCompSwap (temp int)
+0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:54 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:54 Constant:
+0:54 5 (const uint)
+0:54 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:54 Constant:
+0:54 8 (const uint)
+0:54 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:54 Constant:
+0:54 9 (const uint)
+0:55 move second child to first child (temp int)
+0:55 'out_i1' (temp int)
+0:55 imageAtomicExchange (temp int)
+0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:55 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:55 Constant:
+0:55 5 (const uint)
+0:55 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:55 Constant:
+0:55 5 (const uint)
+0:56 imageAtomicMax (temp int)
+0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:56 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:56 Constant:
+0:56 5 (const uint)
+0:56 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:56 Constant:
+0:56 8 (const uint)
+0:57 move second child to first child (temp int)
+0:57 'out_i1' (temp int)
+0:57 imageAtomicMax (temp int)
+0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:57 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:57 Constant:
+0:57 5 (const uint)
+0:57 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:57 Constant:
+0:57 5 (const uint)
+0:58 imageAtomicMin (temp int)
+0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:58 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:58 Constant:
+0:58 5 (const uint)
+0:58 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:58 Constant:
+0:58 8 (const uint)
+0:59 move second child to first child (temp int)
+0:59 'out_i1' (temp int)
+0:59 imageAtomicMin (temp int)
+0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:59 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:59 Constant:
+0:59 5 (const uint)
+0:59 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:59 Constant:
+0:59 5 (const uint)
+0:60 imageAtomicOr (temp int)
+0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:60 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:60 Constant:
+0:60 5 (const uint)
+0:60 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:60 Constant:
+0:60 8 (const uint)
+0:61 move second child to first child (temp int)
+0:61 'out_i1' (temp int)
+0:61 imageAtomicOr (temp int)
+0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:61 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:61 Constant:
+0:61 5 (const uint)
+0:61 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:61 Constant:
+0:61 5 (const uint)
+0:62 imageAtomicXor (temp int)
+0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:62 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:62 Constant:
+0:62 5 (const uint)
+0:62 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:62 Constant:
+0:62 8 (const uint)
+0:63 move second child to first child (temp int)
+0:63 'out_i1' (temp int)
+0:63 imageAtomicXor (temp int)
+0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:63 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:63 Constant:
+0:63 5 (const uint)
+0:63 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:63 Constant:
+0:63 5 (const uint)
+0:66 imageAtomicAdd (temp uint)
+0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:66 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:66 Constant:
+0:66 0 (const uint)
+0:66 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:66 Constant:
+0:66 0 (const uint)
+0:67 move second child to first child (temp uint)
+0:67 'out_u1' (temp uint)
+0:67 imageAtomicAdd (temp uint)
+0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:67 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:67 Constant:
+0:67 0 (const uint)
+0:67 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:67 Constant:
+0:67 0 (const uint)
+0:68 imageAtomicAnd (temp uint)
+0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:68 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:68 Constant:
+0:68 0 (const uint)
+0:68 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:68 Constant:
+0:68 0 (const uint)
+0:69 move second child to first child (temp uint)
+0:69 'out_u1' (temp uint)
+0:69 imageAtomicAnd (temp uint)
+0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:69 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:69 Constant:
+0:69 0 (const uint)
+0:69 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:69 Constant:
+0:69 0 (const uint)
+0:70 move second child to first child (temp uint)
+0:70 'out_u1' (temp uint)
+0:70 imageAtomicCompSwap (temp uint)
+0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:70 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:70 Constant:
+0:70 0 (const uint)
+0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:70 Constant:
+0:70 3 (const uint)
+0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:70 Constant:
+0:70 4 (const uint)
+0:71 move second child to first child (temp uint)
+0:71 'out_u1' (temp uint)
+0:71 imageAtomicExchange (temp uint)
+0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:71 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:71 Constant:
+0:71 0 (const uint)
+0:71 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:71 Constant:
+0:71 0 (const uint)
+0:72 imageAtomicMax (temp uint)
+0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:72 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:72 Constant:
+0:72 0 (const uint)
+0:72 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:72 Constant:
+0:72 0 (const uint)
+0:73 move second child to first child (temp uint)
+0:73 'out_u1' (temp uint)
+0:73 imageAtomicMax (temp uint)
+0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:73 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:73 Constant:
+0:73 0 (const uint)
+0:73 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:73 Constant:
+0:73 0 (const uint)
+0:74 imageAtomicMin (temp uint)
+0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:74 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:74 Constant:
+0:74 0 (const uint)
+0:74 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:74 Constant:
+0:74 0 (const uint)
+0:75 move second child to first child (temp uint)
+0:75 'out_u1' (temp uint)
+0:75 imageAtomicMin (temp uint)
+0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:75 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:75 Constant:
+0:75 0 (const uint)
+0:75 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:75 Constant:
+0:75 0 (const uint)
+0:76 imageAtomicOr (temp uint)
+0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:76 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:76 Constant:
+0:76 0 (const uint)
+0:76 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:76 Constant:
+0:76 0 (const uint)
+0:77 move second child to first child (temp uint)
+0:77 'out_u1' (temp uint)
+0:77 imageAtomicOr (temp uint)
+0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:77 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:77 Constant:
+0:77 0 (const uint)
+0:77 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:77 Constant:
+0:77 0 (const uint)
+0:78 imageAtomicXor (temp uint)
+0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:78 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:78 Constant:
+0:78 0 (const uint)
+0:78 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:78 Constant:
+0:78 0 (const uint)
+0:79 move second child to first child (temp uint)
+0:79 'out_u1' (temp uint)
+0:79 imageAtomicXor (temp uint)
+0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:79 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:79 Constant:
+0:79 0 (const uint)
+0:79 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:79 Constant:
+0:79 0 (const uint)
+0:82 imageAtomicAdd (temp int)
+0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:82 Constant:
+0:82 6 (const uint)
+0:82 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:82 Constant:
+0:82 8 (const uint)
+0:83 move second child to first child (temp int)
+0:83 'out_i1' (temp int)
+0:83 imageAtomicAdd (temp int)
+0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:83 Constant:
+0:83 6 (const uint)
+0:83 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:83 Constant:
+0:83 5 (const uint)
+0:84 imageAtomicAnd (temp int)
+0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:84 Constant:
+0:84 6 (const uint)
+0:84 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:84 Constant:
+0:84 8 (const uint)
+0:85 move second child to first child (temp int)
+0:85 'out_i1' (temp int)
+0:85 imageAtomicAnd (temp int)
+0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:85 Constant:
+0:85 6 (const uint)
+0:85 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:85 Constant:
+0:85 5 (const uint)
+0:86 move second child to first child (temp int)
+0:86 'out_i1' (temp int)
+0:86 imageAtomicCompSwap (temp int)
+0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:86 Constant:
+0:86 6 (const uint)
+0:86 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:86 Constant:
+0:86 8 (const uint)
+0:86 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:86 Constant:
+0:86 9 (const uint)
+0:87 move second child to first child (temp int)
+0:87 'out_i1' (temp int)
+0:87 imageAtomicExchange (temp int)
+0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:87 Constant:
+0:87 6 (const uint)
+0:87 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:87 Constant:
+0:87 5 (const uint)
+0:88 imageAtomicMax (temp int)
+0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:88 Constant:
+0:88 6 (const uint)
+0:88 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:88 Constant:
+0:88 8 (const uint)
+0:89 move second child to first child (temp int)
+0:89 'out_i1' (temp int)
+0:89 imageAtomicMax (temp int)
+0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:89 Constant:
+0:89 6 (const uint)
+0:89 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:89 Constant:
+0:89 5 (const uint)
+0:90 imageAtomicMin (temp int)
+0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:90 Constant:
+0:90 6 (const uint)
+0:90 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:90 Constant:
+0:90 8 (const uint)
+0:91 move second child to first child (temp int)
+0:91 'out_i1' (temp int)
+0:91 imageAtomicMin (temp int)
+0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:91 Constant:
+0:91 6 (const uint)
+0:91 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:91 Constant:
+0:91 5 (const uint)
+0:92 imageAtomicOr (temp int)
+0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:92 Constant:
+0:92 6 (const uint)
+0:92 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:92 Constant:
+0:92 8 (const uint)
+0:93 move second child to first child (temp int)
+0:93 'out_i1' (temp int)
+0:93 imageAtomicOr (temp int)
+0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:93 Constant:
+0:93 6 (const uint)
+0:93 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:93 Constant:
+0:93 5 (const uint)
+0:94 imageAtomicXor (temp int)
+0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:94 Constant:
+0:94 6 (const uint)
+0:94 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:94 Constant:
+0:94 8 (const uint)
+0:95 move second child to first child (temp int)
+0:95 'out_i1' (temp int)
+0:95 imageAtomicXor (temp int)
+0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:95 Constant:
+0:95 6 (const uint)
+0:95 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:95 Constant:
+0:95 5 (const uint)
+0:98 imageAtomicAdd (temp uint)
+0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:98 Constant:
+0:98 1 (const uint)
+0:98 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:98 Constant:
+0:98 0 (const uint)
+0:99 move second child to first child (temp uint)
+0:99 'out_u1' (temp uint)
+0:99 imageAtomicAdd (temp uint)
+0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:99 Constant:
+0:99 1 (const uint)
+0:99 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:99 Constant:
+0:99 0 (const uint)
+0:100 imageAtomicAnd (temp uint)
+0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:100 Constant:
+0:100 1 (const uint)
+0:100 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:100 Constant:
+0:100 0 (const uint)
+0:101 move second child to first child (temp uint)
+0:101 'out_u1' (temp uint)
+0:101 imageAtomicAnd (temp uint)
+0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:101 Constant:
+0:101 1 (const uint)
+0:101 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:101 Constant:
+0:101 0 (const uint)
+0:102 move second child to first child (temp uint)
+0:102 'out_u1' (temp uint)
+0:102 imageAtomicCompSwap (temp uint)
+0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:102 Constant:
+0:102 1 (const uint)
+0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:102 Constant:
+0:102 3 (const uint)
+0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:102 Constant:
+0:102 4 (const uint)
+0:103 move second child to first child (temp uint)
+0:103 'out_u1' (temp uint)
+0:103 imageAtomicExchange (temp uint)
+0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:103 Constant:
+0:103 1 (const uint)
+0:103 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:103 Constant:
+0:103 0 (const uint)
+0:104 imageAtomicMax (temp uint)
+0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:104 Constant:
+0:104 1 (const uint)
+0:104 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:104 Constant:
+0:104 0 (const uint)
+0:105 move second child to first child (temp uint)
+0:105 'out_u1' (temp uint)
+0:105 imageAtomicMax (temp uint)
+0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:105 Constant:
+0:105 1 (const uint)
+0:105 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:105 Constant:
+0:105 0 (const uint)
+0:106 imageAtomicMin (temp uint)
+0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:106 Constant:
+0:106 1 (const uint)
+0:106 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:106 Constant:
+0:106 0 (const uint)
+0:107 move second child to first child (temp uint)
+0:107 'out_u1' (temp uint)
+0:107 imageAtomicMin (temp uint)
+0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:107 Constant:
+0:107 1 (const uint)
+0:107 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:107 Constant:
+0:107 0 (const uint)
+0:108 imageAtomicOr (temp uint)
+0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:108 Constant:
+0:108 1 (const uint)
+0:108 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:108 Constant:
+0:108 0 (const uint)
+0:109 move second child to first child (temp uint)
+0:109 'out_u1' (temp uint)
+0:109 imageAtomicOr (temp uint)
+0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:109 Constant:
+0:109 1 (const uint)
+0:109 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:109 Constant:
+0:109 0 (const uint)
+0:110 imageAtomicXor (temp uint)
+0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:110 Constant:
+0:110 1 (const uint)
+0:110 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:110 Constant:
+0:110 0 (const uint)
+0:111 move second child to first child (temp uint)
+0:111 'out_u1' (temp uint)
+0:111 imageAtomicXor (temp uint)
+0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:111 Constant:
+0:111 1 (const uint)
+0:111 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:111 Constant:
+0:111 0 (const uint)
+0:114 imageAtomicAdd (temp int)
+0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:114 Constant:
+0:114 7 (const uint)
+0:114 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:114 Constant:
+0:114 8 (const uint)
+0:115 move second child to first child (temp int)
+0:115 'out_i1' (temp int)
+0:115 imageAtomicAdd (temp int)
+0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:115 Constant:
+0:115 7 (const uint)
+0:115 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:115 Constant:
+0:115 5 (const uint)
+0:116 imageAtomicAnd (temp int)
+0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:116 Constant:
+0:116 7 (const uint)
+0:116 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:116 Constant:
+0:116 8 (const uint)
+0:117 move second child to first child (temp int)
+0:117 'out_i1' (temp int)
+0:117 imageAtomicAnd (temp int)
+0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:117 Constant:
+0:117 7 (const uint)
+0:117 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:117 Constant:
+0:117 5 (const uint)
+0:118 move second child to first child (temp int)
+0:118 'out_i1' (temp int)
+0:118 imageAtomicCompSwap (temp int)
+0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:118 Constant:
+0:118 7 (const uint)
+0:118 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:118 Constant:
+0:118 8 (const uint)
+0:118 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:118 Constant:
+0:118 9 (const uint)
+0:119 move second child to first child (temp int)
+0:119 'out_i1' (temp int)
+0:119 imageAtomicExchange (temp int)
+0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:119 Constant:
+0:119 7 (const uint)
+0:119 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:119 Constant:
+0:119 5 (const uint)
+0:120 imageAtomicMax (temp int)
+0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:120 Constant:
+0:120 7 (const uint)
+0:120 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:120 Constant:
+0:120 8 (const uint)
+0:121 move second child to first child (temp int)
+0:121 'out_i1' (temp int)
+0:121 imageAtomicMax (temp int)
+0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:121 Constant:
+0:121 7 (const uint)
+0:121 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:121 Constant:
+0:121 5 (const uint)
+0:122 imageAtomicMin (temp int)
+0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:122 Constant:
+0:122 7 (const uint)
+0:122 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:122 Constant:
+0:122 8 (const uint)
+0:123 move second child to first child (temp int)
+0:123 'out_i1' (temp int)
+0:123 imageAtomicMin (temp int)
+0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:123 Constant:
+0:123 7 (const uint)
+0:123 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:123 Constant:
+0:123 5 (const uint)
+0:124 imageAtomicOr (temp int)
+0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:124 Constant:
+0:124 7 (const uint)
+0:124 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:124 Constant:
+0:124 8 (const uint)
+0:125 move second child to first child (temp int)
+0:125 'out_i1' (temp int)
+0:125 imageAtomicOr (temp int)
+0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:125 Constant:
+0:125 7 (const uint)
+0:125 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:125 Constant:
+0:125 5 (const uint)
+0:126 imageAtomicXor (temp int)
+0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:126 Constant:
+0:126 7 (const uint)
+0:126 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:126 Constant:
+0:126 8 (const uint)
+0:127 move second child to first child (temp int)
+0:127 'out_i1' (temp int)
+0:127 imageAtomicXor (temp int)
+0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int)
+0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:127 Constant:
+0:127 7 (const uint)
+0:127 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:127 Constant:
+0:127 5 (const uint)
+0:130 imageAtomicAdd (temp uint)
+0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:130 Constant:
+0:130 2 (const uint)
+0:130 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:130 Constant:
+0:130 0 (const uint)
+0:131 move second child to first child (temp uint)
+0:131 'out_u1' (temp uint)
+0:131 imageAtomicAdd (temp uint)
+0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:131 Constant:
+0:131 2 (const uint)
+0:131 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:131 Constant:
+0:131 0 (const uint)
+0:132 imageAtomicAnd (temp uint)
+0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:132 Constant:
+0:132 2 (const uint)
+0:132 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:132 Constant:
+0:132 0 (const uint)
+0:133 move second child to first child (temp uint)
+0:133 'out_u1' (temp uint)
+0:133 imageAtomicAnd (temp uint)
+0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:133 Constant:
+0:133 2 (const uint)
+0:133 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:133 Constant:
+0:133 0 (const uint)
+0:134 move second child to first child (temp uint)
+0:134 'out_u1' (temp uint)
+0:134 imageAtomicCompSwap (temp uint)
+0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:134 Constant:
+0:134 2 (const uint)
+0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:134 Constant:
+0:134 3 (const uint)
+0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:134 Constant:
+0:134 4 (const uint)
+0:135 move second child to first child (temp uint)
+0:135 'out_u1' (temp uint)
+0:135 imageAtomicExchange (temp uint)
+0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:135 Constant:
+0:135 2 (const uint)
+0:135 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:135 Constant:
+0:135 0 (const uint)
+0:136 imageAtomicMax (temp uint)
+0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:136 Constant:
+0:136 2 (const uint)
+0:136 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:136 Constant:
+0:136 0 (const uint)
+0:137 move second child to first child (temp uint)
+0:137 'out_u1' (temp uint)
+0:137 imageAtomicMax (temp uint)
+0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:137 Constant:
+0:137 2 (const uint)
+0:137 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:137 Constant:
+0:137 0 (const uint)
+0:138 imageAtomicMin (temp uint)
+0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:138 Constant:
+0:138 2 (const uint)
+0:138 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:138 Constant:
+0:138 0 (const uint)
+0:139 move second child to first child (temp uint)
+0:139 'out_u1' (temp uint)
+0:139 imageAtomicMin (temp uint)
+0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:139 Constant:
+0:139 2 (const uint)
+0:139 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:139 Constant:
+0:139 0 (const uint)
+0:140 imageAtomicOr (temp uint)
+0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:140 Constant:
+0:140 2 (const uint)
+0:140 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:140 Constant:
+0:140 0 (const uint)
+0:141 move second child to first child (temp uint)
+0:141 'out_u1' (temp uint)
+0:141 imageAtomicOr (temp uint)
+0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:141 Constant:
+0:141 2 (const uint)
+0:141 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:141 Constant:
+0:141 0 (const uint)
+0:142 imageAtomicXor (temp uint)
+0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:142 Constant:
+0:142 2 (const uint)
+0:142 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:142 Constant:
+0:142 0 (const uint)
+0:143 move second child to first child (temp uint)
+0:143 'out_u1' (temp uint)
+0:143 imageAtomicXor (temp uint)
+0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint)
+0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:143 Constant:
+0:143 2 (const uint)
+0:143 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:143 Constant:
+0:143 0 (const uint)
+0:146 imageAtomicAdd (temp int)
+0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:146 Constant:
+0:146 6 (const uint)
+0:146 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:146 Constant:
+0:146 8 (const uint)
+0:147 move second child to first child (temp int)
+0:147 'out_i1' (temp int)
+0:147 imageAtomicAdd (temp int)
+0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:147 Constant:
+0:147 6 (const uint)
+0:147 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:147 Constant:
+0:147 5 (const uint)
+0:148 imageAtomicAnd (temp int)
+0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:148 Constant:
+0:148 6 (const uint)
+0:148 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:148 Constant:
+0:148 8 (const uint)
+0:149 move second child to first child (temp int)
+0:149 'out_i1' (temp int)
+0:149 imageAtomicAnd (temp int)
+0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:149 Constant:
+0:149 6 (const uint)
+0:149 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:149 Constant:
+0:149 5 (const uint)
+0:150 move second child to first child (temp int)
+0:150 'out_i1' (temp int)
+0:150 imageAtomicCompSwap (temp int)
+0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:150 Constant:
+0:150 6 (const uint)
+0:150 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:150 Constant:
+0:150 8 (const uint)
+0:150 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:150 Constant:
+0:150 9 (const uint)
+0:151 move second child to first child (temp int)
+0:151 'out_i1' (temp int)
+0:151 imageAtomicExchange (temp int)
+0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:151 Constant:
+0:151 6 (const uint)
+0:151 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:151 Constant:
+0:151 5 (const uint)
+0:152 imageAtomicMax (temp int)
+0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:152 Constant:
+0:152 6 (const uint)
+0:152 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:152 Constant:
+0:152 8 (const uint)
+0:153 move second child to first child (temp int)
+0:153 'out_i1' (temp int)
+0:153 imageAtomicMax (temp int)
+0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:153 Constant:
+0:153 6 (const uint)
+0:153 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:153 Constant:
+0:153 5 (const uint)
+0:154 imageAtomicMin (temp int)
+0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:154 Constant:
+0:154 6 (const uint)
+0:154 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:154 Constant:
+0:154 8 (const uint)
+0:155 move second child to first child (temp int)
+0:155 'out_i1' (temp int)
+0:155 imageAtomicMin (temp int)
+0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:155 Constant:
+0:155 6 (const uint)
+0:155 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:155 Constant:
+0:155 5 (const uint)
+0:156 imageAtomicOr (temp int)
+0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:156 Constant:
+0:156 6 (const uint)
+0:156 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:156 Constant:
+0:156 8 (const uint)
+0:157 move second child to first child (temp int)
+0:157 'out_i1' (temp int)
+0:157 imageAtomicOr (temp int)
+0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:157 Constant:
+0:157 6 (const uint)
+0:157 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:157 Constant:
+0:157 5 (const uint)
+0:158 imageAtomicXor (temp int)
+0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:158 Constant:
+0:158 6 (const uint)
+0:158 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:158 Constant:
+0:158 8 (const uint)
+0:159 move second child to first child (temp int)
+0:159 'out_i1' (temp int)
+0:159 imageAtomicXor (temp int)
+0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:159 Constant:
+0:159 6 (const uint)
+0:159 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:159 Constant:
+0:159 5 (const uint)
+0:162 imageAtomicAdd (temp uint)
+0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:162 Constant:
+0:162 1 (const uint)
+0:162 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:162 Constant:
+0:162 0 (const uint)
+0:163 move second child to first child (temp uint)
+0:163 'out_u1' (temp uint)
+0:163 imageAtomicAdd (temp uint)
+0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:163 Constant:
+0:163 1 (const uint)
+0:163 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:163 Constant:
+0:163 0 (const uint)
+0:164 imageAtomicAnd (temp uint)
+0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:164 Constant:
+0:164 1 (const uint)
+0:164 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:164 Constant:
+0:164 0 (const uint)
+0:165 move second child to first child (temp uint)
+0:165 'out_u1' (temp uint)
+0:165 imageAtomicAnd (temp uint)
+0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:165 Constant:
+0:165 1 (const uint)
+0:165 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:165 Constant:
+0:165 0 (const uint)
+0:166 move second child to first child (temp uint)
+0:166 'out_u1' (temp uint)
+0:166 imageAtomicCompSwap (temp uint)
+0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:166 Constant:
+0:166 1 (const uint)
+0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:166 Constant:
+0:166 3 (const uint)
+0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:166 Constant:
+0:166 4 (const uint)
+0:167 move second child to first child (temp uint)
+0:167 'out_u1' (temp uint)
+0:167 imageAtomicExchange (temp uint)
+0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:167 Constant:
+0:167 1 (const uint)
+0:167 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:167 Constant:
+0:167 0 (const uint)
+0:168 imageAtomicMax (temp uint)
+0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:168 Constant:
+0:168 1 (const uint)
+0:168 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:168 Constant:
+0:168 0 (const uint)
+0:169 move second child to first child (temp uint)
+0:169 'out_u1' (temp uint)
+0:169 imageAtomicMax (temp uint)
+0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:169 Constant:
+0:169 1 (const uint)
+0:169 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:169 Constant:
+0:169 0 (const uint)
+0:170 imageAtomicMin (temp uint)
+0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:170 Constant:
+0:170 1 (const uint)
+0:170 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:170 Constant:
+0:170 0 (const uint)
+0:171 move second child to first child (temp uint)
+0:171 'out_u1' (temp uint)
+0:171 imageAtomicMin (temp uint)
+0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:171 Constant:
+0:171 1 (const uint)
+0:171 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:171 Constant:
+0:171 0 (const uint)
+0:172 imageAtomicOr (temp uint)
+0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:172 Constant:
+0:172 1 (const uint)
+0:172 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:172 Constant:
+0:172 0 (const uint)
+0:173 move second child to first child (temp uint)
+0:173 'out_u1' (temp uint)
+0:173 imageAtomicOr (temp uint)
+0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:173 Constant:
+0:173 1 (const uint)
+0:173 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:173 Constant:
+0:173 0 (const uint)
+0:174 imageAtomicXor (temp uint)
+0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:174 Constant:
+0:174 1 (const uint)
+0:174 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:174 Constant:
+0:174 0 (const uint)
+0:175 move second child to first child (temp uint)
+0:175 'out_u1' (temp uint)
+0:175 imageAtomicXor (temp uint)
+0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:175 Constant:
+0:175 1 (const uint)
+0:175 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:175 Constant:
+0:175 0 (const uint)
+0:178 imageAtomicAdd (temp int)
+0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:178 Constant:
+0:178 6 (const uint)
+0:178 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:178 Constant:
+0:178 8 (const uint)
+0:179 move second child to first child (temp int)
+0:179 'out_i1' (temp int)
+0:179 imageAtomicAdd (temp int)
+0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:179 Constant:
+0:179 6 (const uint)
+0:179 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:179 Constant:
+0:179 5 (const uint)
+0:180 imageAtomicAnd (temp int)
+0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:180 Constant:
+0:180 6 (const uint)
+0:180 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:180 Constant:
+0:180 8 (const uint)
+0:181 move second child to first child (temp int)
+0:181 'out_i1' (temp int)
+0:181 imageAtomicAnd (temp int)
+0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:181 Constant:
+0:181 6 (const uint)
+0:181 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:181 Constant:
+0:181 5 (const uint)
+0:182 move second child to first child (temp int)
+0:182 'out_i1' (temp int)
+0:182 imageAtomicCompSwap (temp int)
+0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:182 Constant:
+0:182 6 (const uint)
+0:182 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:182 Constant:
+0:182 8 (const uint)
+0:182 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:182 Constant:
+0:182 9 (const uint)
+0:183 move second child to first child (temp int)
+0:183 'out_i1' (temp int)
+0:183 imageAtomicExchange (temp int)
+0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:183 Constant:
+0:183 6 (const uint)
+0:183 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:183 Constant:
+0:183 5 (const uint)
+0:184 imageAtomicMax (temp int)
+0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:184 Constant:
+0:184 6 (const uint)
+0:184 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:184 Constant:
+0:184 8 (const uint)
+0:185 move second child to first child (temp int)
+0:185 'out_i1' (temp int)
+0:185 imageAtomicMax (temp int)
+0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:185 Constant:
+0:185 6 (const uint)
+0:185 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:185 Constant:
+0:185 5 (const uint)
+0:186 imageAtomicMin (temp int)
+0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:186 Constant:
+0:186 6 (const uint)
+0:186 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:186 Constant:
+0:186 8 (const uint)
+0:187 move second child to first child (temp int)
+0:187 'out_i1' (temp int)
+0:187 imageAtomicMin (temp int)
+0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:187 Constant:
+0:187 6 (const uint)
+0:187 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:187 Constant:
+0:187 5 (const uint)
+0:188 imageAtomicOr (temp int)
+0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:188 Constant:
+0:188 6 (const uint)
+0:188 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:188 Constant:
+0:188 8 (const uint)
+0:189 move second child to first child (temp int)
+0:189 'out_i1' (temp int)
+0:189 imageAtomicOr (temp int)
+0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:189 Constant:
+0:189 6 (const uint)
+0:189 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:189 Constant:
+0:189 5 (const uint)
+0:190 imageAtomicXor (temp int)
+0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:190 Constant:
+0:190 6 (const uint)
+0:190 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:190 Constant:
+0:190 8 (const uint)
+0:191 move second child to first child (temp int)
+0:191 'out_i1' (temp int)
+0:191 imageAtomicXor (temp int)
+0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int)
+0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:191 Constant:
+0:191 6 (const uint)
+0:191 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:191 Constant:
+0:191 5 (const uint)
+0:194 imageAtomicAdd (temp uint)
+0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:194 Constant:
+0:194 1 (const uint)
+0:194 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:194 Constant:
+0:194 0 (const uint)
+0:195 move second child to first child (temp uint)
+0:195 'out_u1' (temp uint)
+0:195 imageAtomicAdd (temp uint)
+0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:195 Constant:
+0:195 1 (const uint)
+0:195 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:195 Constant:
+0:195 0 (const uint)
+0:196 imageAtomicAnd (temp uint)
+0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:196 Constant:
+0:196 1 (const uint)
+0:196 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:196 Constant:
+0:196 0 (const uint)
+0:197 move second child to first child (temp uint)
+0:197 'out_u1' (temp uint)
+0:197 imageAtomicAnd (temp uint)
+0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:197 Constant:
+0:197 1 (const uint)
+0:197 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:197 Constant:
+0:197 0 (const uint)
+0:198 move second child to first child (temp uint)
+0:198 'out_u1' (temp uint)
+0:198 imageAtomicCompSwap (temp uint)
+0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:198 Constant:
+0:198 1 (const uint)
+0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:198 Constant:
+0:198 3 (const uint)
+0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:198 Constant:
+0:198 4 (const uint)
+0:199 move second child to first child (temp uint)
+0:199 'out_u1' (temp uint)
+0:199 imageAtomicExchange (temp uint)
+0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:199 Constant:
+0:199 1 (const uint)
+0:199 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:199 Constant:
+0:199 0 (const uint)
+0:200 imageAtomicMax (temp uint)
+0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:200 Constant:
+0:200 1 (const uint)
+0:200 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:200 Constant:
+0:200 0 (const uint)
+0:201 move second child to first child (temp uint)
+0:201 'out_u1' (temp uint)
+0:201 imageAtomicMax (temp uint)
+0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:201 Constant:
+0:201 1 (const uint)
+0:201 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:201 Constant:
+0:201 0 (const uint)
+0:202 imageAtomicMin (temp uint)
+0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:202 Constant:
+0:202 1 (const uint)
+0:202 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:202 Constant:
+0:202 0 (const uint)
+0:203 move second child to first child (temp uint)
+0:203 'out_u1' (temp uint)
+0:203 imageAtomicMin (temp uint)
+0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:203 Constant:
+0:203 1 (const uint)
+0:203 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:203 Constant:
+0:203 0 (const uint)
+0:204 imageAtomicOr (temp uint)
+0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:204 Constant:
+0:204 1 (const uint)
+0:204 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:204 Constant:
+0:204 0 (const uint)
+0:205 move second child to first child (temp uint)
+0:205 'out_u1' (temp uint)
+0:205 imageAtomicOr (temp uint)
+0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:205 Constant:
+0:205 1 (const uint)
+0:205 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:205 Constant:
+0:205 0 (const uint)
+0:206 imageAtomicXor (temp uint)
+0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:206 Constant:
+0:206 1 (const uint)
+0:206 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:206 Constant:
+0:206 0 (const uint)
+0:207 move second child to first child (temp uint)
+0:207 'out_u1' (temp uint)
+0:207 imageAtomicXor (temp uint)
+0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint)
+0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:207 Constant:
+0:207 1 (const uint)
+0:207 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:207 Constant:
+0:207 0 (const uint)
+0:210 imageAtomicAdd (temp int)
+0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:210 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:210 Constant:
+0:210 5 (const uint)
+0:210 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:210 Constant:
+0:210 8 (const uint)
+0:211 move second child to first child (temp int)
+0:211 'out_i1' (temp int)
+0:211 imageAtomicAdd (temp int)
+0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:211 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:211 Constant:
+0:211 5 (const uint)
+0:211 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:211 Constant:
+0:211 5 (const uint)
+0:212 imageAtomicAnd (temp int)
+0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:212 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:212 Constant:
+0:212 5 (const uint)
+0:212 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:212 Constant:
+0:212 8 (const uint)
+0:213 move second child to first child (temp int)
+0:213 'out_i1' (temp int)
+0:213 imageAtomicAnd (temp int)
+0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:213 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:213 Constant:
+0:213 5 (const uint)
+0:213 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:213 Constant:
+0:213 5 (const uint)
+0:214 move second child to first child (temp int)
+0:214 'out_i1' (temp int)
+0:214 imageAtomicCompSwap (temp int)
+0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:214 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:214 Constant:
+0:214 5 (const uint)
+0:214 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:214 Constant:
+0:214 8 (const uint)
+0:214 i1c: direct index for structure (layout(offset=64 ) uniform int)
+0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:214 Constant:
+0:214 9 (const uint)
+0:215 move second child to first child (temp int)
+0:215 'out_i1' (temp int)
+0:215 imageAtomicExchange (temp int)
+0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:215 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:215 Constant:
+0:215 5 (const uint)
+0:215 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:215 Constant:
+0:215 5 (const uint)
+0:216 imageAtomicMax (temp int)
+0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:216 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:216 Constant:
+0:216 5 (const uint)
+0:216 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:216 Constant:
+0:216 8 (const uint)
+0:217 move second child to first child (temp int)
+0:217 'out_i1' (temp int)
+0:217 imageAtomicMax (temp int)
+0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:217 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:217 Constant:
+0:217 5 (const uint)
+0:217 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:217 Constant:
+0:217 5 (const uint)
+0:218 imageAtomicMin (temp int)
+0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:218 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:218 Constant:
+0:218 5 (const uint)
+0:218 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:218 Constant:
+0:218 8 (const uint)
+0:219 move second child to first child (temp int)
+0:219 'out_i1' (temp int)
+0:219 imageAtomicMin (temp int)
+0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:219 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:219 Constant:
+0:219 5 (const uint)
+0:219 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:219 Constant:
+0:219 5 (const uint)
+0:220 imageAtomicOr (temp int)
+0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:220 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:220 Constant:
+0:220 5 (const uint)
+0:220 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:220 Constant:
+0:220 8 (const uint)
+0:221 move second child to first child (temp int)
+0:221 'out_i1' (temp int)
+0:221 imageAtomicOr (temp int)
+0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:221 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:221 Constant:
+0:221 5 (const uint)
+0:221 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:221 Constant:
+0:221 5 (const uint)
+0:222 imageAtomicXor (temp int)
+0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:222 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:222 Constant:
+0:222 5 (const uint)
+0:222 i1b: direct index for structure (layout(offset=60 ) uniform int)
+0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:222 Constant:
+0:222 8 (const uint)
+0:223 move second child to first child (temp int)
+0:223 'out_i1' (temp int)
+0:223 imageAtomicXor (temp int)
+0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:223 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:223 Constant:
+0:223 5 (const uint)
+0:223 i1: direct index for structure (layout(offset=36 ) uniform int)
+0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:223 Constant:
+0:223 5 (const uint)
+0:226 imageAtomicAdd (temp uint)
+0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:226 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:226 Constant:
+0:226 0 (const uint)
+0:226 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:226 Constant:
+0:226 0 (const uint)
+0:227 move second child to first child (temp uint)
+0:227 'out_u1' (temp uint)
+0:227 imageAtomicAdd (temp uint)
+0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:227 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:227 Constant:
+0:227 0 (const uint)
+0:227 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:227 Constant:
+0:227 0 (const uint)
+0:228 imageAtomicAnd (temp uint)
+0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:228 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:228 Constant:
+0:228 0 (const uint)
+0:228 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:228 Constant:
+0:228 0 (const uint)
+0:229 move second child to first child (temp uint)
+0:229 'out_u1' (temp uint)
+0:229 imageAtomicAnd (temp uint)
+0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:229 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:229 Constant:
+0:229 0 (const uint)
+0:229 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:229 Constant:
+0:229 0 (const uint)
+0:230 move second child to first child (temp uint)
+0:230 'out_u1' (temp uint)
+0:230 imageAtomicCompSwap (temp uint)
+0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:230 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:230 Constant:
+0:230 0 (const uint)
+0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint)
+0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:230 Constant:
+0:230 3 (const uint)
+0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint)
+0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:230 Constant:
+0:230 4 (const uint)
+0:231 move second child to first child (temp uint)
+0:231 'out_u1' (temp uint)
+0:231 imageAtomicExchange (temp uint)
+0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:231 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:231 Constant:
+0:231 0 (const uint)
+0:231 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:231 Constant:
+0:231 0 (const uint)
+0:232 imageAtomicMax (temp uint)
+0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:232 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:232 Constant:
+0:232 0 (const uint)
+0:232 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:232 Constant:
+0:232 0 (const uint)
+0:233 move second child to first child (temp uint)
+0:233 'out_u1' (temp uint)
+0:233 imageAtomicMax (temp uint)
+0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:233 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:233 Constant:
+0:233 0 (const uint)
+0:233 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:233 Constant:
+0:233 0 (const uint)
+0:234 imageAtomicMin (temp uint)
+0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:234 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:234 Constant:
+0:234 0 (const uint)
+0:234 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:234 Constant:
+0:234 0 (const uint)
+0:235 move second child to first child (temp uint)
+0:235 'out_u1' (temp uint)
+0:235 imageAtomicMin (temp uint)
+0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:235 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:235 Constant:
+0:235 0 (const uint)
+0:235 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:235 Constant:
+0:235 0 (const uint)
+0:236 imageAtomicOr (temp uint)
+0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:236 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:236 Constant:
+0:236 0 (const uint)
+0:236 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:236 Constant:
+0:236 0 (const uint)
+0:237 move second child to first child (temp uint)
+0:237 'out_u1' (temp uint)
+0:237 imageAtomicOr (temp uint)
+0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:237 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:237 Constant:
+0:237 0 (const uint)
+0:237 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:237 Constant:
+0:237 0 (const uint)
+0:238 imageAtomicXor (temp uint)
+0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:238 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:238 Constant:
+0:238 0 (const uint)
+0:238 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:238 Constant:
+0:238 0 (const uint)
+0:239 move second child to first child (temp uint)
+0:239 'out_u1' (temp uint)
+0:239 imageAtomicXor (temp uint)
+0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:239 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:239 Constant:
+0:239 0 (const uint)
+0:239 u1: direct index for structure (layout(offset=0 ) uniform uint)
+0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+0:239 Constant:
+0:239 0 (const uint)
+0:242 move second child to first child (temp 4-component vector of float)
+0:242 Color: direct index for structure (temp 4-component vector of float)
+0:242 'psout' (temp structure{temp 4-component vector of float Color})
+0:242 Constant:
+0:242 0 (const int)
+0:242 Constant:
+0:242 1.000000
+0:242 1.000000
+0:242 1.000000
+0:242 1.000000
+0:243 Sequence
+0:243 Sequence
+0:243 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:243 Color: direct index for structure (temp 4-component vector of float)
+0:243 'psout' (temp structure{temp 4-component vector of float Color})
+0:243 Constant:
+0:243 0 (const int)
+0:243 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_sSamp' (uniform sampler)
+0:? 'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:? 'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:? 'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray)
+0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray)
+0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray)
+0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray)
+0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer)
+0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer)
+0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 1142
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledBuffer
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 1111
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 9 "g_tTex1di1"
+ Name 15 "$Global"
+ MemberName 15($Global) 0 "u1"
+ MemberName 15($Global) 1 "u2"
+ MemberName 15($Global) 2 "u3"
+ MemberName 15($Global) 3 "u1b"
+ MemberName 15($Global) 4 "u1c"
+ MemberName 15($Global) 5 "i1"
+ MemberName 15($Global) 6 "i2"
+ MemberName 15($Global) 7 "i3"
+ MemberName 15($Global) 8 "i1b"
+ MemberName 15($Global) 9 "i1c"
+ Name 17 ""
+ Name 31 "out_i1"
+ Name 115 "g_tTex1du1"
+ Name 126 "out_u1"
+ Name 211 "g_tTex2di1"
+ Name 302 "g_tTex2du1"
+ Name 393 "g_tTex3di1"
+ Name 484 "g_tTex3du1"
+ Name 575 "g_tTex1di1a"
+ Name 664 "g_tTex1du1a"
+ Name 925 "g_tBuffI"
+ Name 1014 "g_tBuffU"
+ Name 1103 "PS_OUTPUT"
+ MemberName 1103(PS_OUTPUT) 0 "Color"
+ Name 1105 "psout"
+ Name 1111 "Color"
+ Name 1117 "g_sSamp"
+ Name 1120 "g_tTex1df1"
+ Name 1123 "g_tTex2df1"
+ Name 1126 "g_tTex3df1"
+ Name 1129 "g_tTex1df1a"
+ Name 1132 "g_tTex2df1a"
+ Name 1135 "g_tTex2di1a"
+ Name 1138 "g_tTex2du1a"
+ Name 1141 "g_tBuffF"
+ Decorate 9(g_tTex1di1) DescriptorSet 0
+ MemberDecorate 15($Global) 0 Offset 0
+ MemberDecorate 15($Global) 1 Offset 8
+ MemberDecorate 15($Global) 2 Offset 16
+ MemberDecorate 15($Global) 3 Offset 28
+ MemberDecorate 15($Global) 4 Offset 32
+ MemberDecorate 15($Global) 5 Offset 36
+ MemberDecorate 15($Global) 6 Offset 40
+ MemberDecorate 15($Global) 7 Offset 48
+ MemberDecorate 15($Global) 8 Offset 60
+ MemberDecorate 15($Global) 9 Offset 64
+ Decorate 15($Global) Block
+ Decorate 17 DescriptorSet 0
+ Decorate 115(g_tTex1du1) DescriptorSet 0
+ Decorate 211(g_tTex2di1) DescriptorSet 0
+ Decorate 302(g_tTex2du1) DescriptorSet 0
+ Decorate 393(g_tTex3di1) DescriptorSet 0
+ Decorate 484(g_tTex3du1) DescriptorSet 0
+ Decorate 575(g_tTex1di1a) DescriptorSet 0
+ Decorate 664(g_tTex1du1a) DescriptorSet 0
+ Decorate 925(g_tBuffI) DescriptorSet 0
+ Decorate 1014(g_tBuffU) DescriptorSet 0
+ Decorate 1111(Color) Location 0
+ Decorate 1117(g_sSamp) DescriptorSet 0
+ Decorate 1120(g_tTex1df1) DescriptorSet 0
+ Decorate 1123(g_tTex2df1) DescriptorSet 0
+ Decorate 1126(g_tTex3df1) DescriptorSet 0
+ Decorate 1129(g_tTex1df1a) DescriptorSet 0
+ Decorate 1132(g_tTex2df1a) DescriptorSet 0
+ Decorate 1135(g_tTex2di1a) DescriptorSet 0
+ Decorate 1138(g_tTex2du1a) DescriptorSet 0
+ Decorate 1141(g_tBuffF) DescriptorSet 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 1
+ 7: TypeImage 6(int) 1D nonsampled format:R32i
+ 8: TypePointer UniformConstant 7
+ 9(g_tTex1di1): 8(ptr) Variable UniformConstant
+ 10: TypeInt 32 0
+ 11: TypeVector 10(int) 2
+ 12: TypeVector 10(int) 3
+ 13: TypeVector 6(int) 2
+ 14: TypeVector 6(int) 3
+ 15($Global): TypeStruct 10(int) 11(ivec2) 12(ivec3) 10(int) 10(int) 6(int) 13(ivec2) 14(ivec3) 6(int) 6(int)
+ 16: TypePointer Uniform 15($Global)
+ 17: 16(ptr) Variable Uniform
+ 18: 6(int) Constant 5
+ 19: TypePointer Uniform 6(int)
+ 22: 6(int) Constant 8
+ 25: 10(int) Constant 0
+ 26: TypePointer Image 6(int)
+ 28: 10(int) Constant 1
+ 30: TypePointer Function 6(int)
+ 54: 6(int) Constant 9
+ 113: TypeImage 10(int) 1D nonsampled format:R32ui
+ 114: TypePointer UniformConstant 113
+ 115(g_tTex1du1): 114(ptr) Variable UniformConstant
+ 116: 6(int) Constant 0
+ 117: TypePointer Uniform 10(int)
+ 122: TypePointer Image 10(int)
+ 125: TypePointer Function 10(int)
+ 147: 6(int) Constant 3
+ 150: 6(int) Constant 4
+ 209: TypeImage 6(int) 2D nonsampled format:R32i
+ 210: TypePointer UniformConstant 209
+ 211(g_tTex2di1): 210(ptr) Variable UniformConstant
+ 212: 6(int) Constant 6
+ 213: TypePointer Uniform 13(ivec2)
+ 300: TypeImage 10(int) 2D nonsampled format:R32ui
+ 301: TypePointer UniformConstant 300
+ 302(g_tTex2du1): 301(ptr) Variable UniformConstant
+ 303: 6(int) Constant 1
+ 304: TypePointer Uniform 11(ivec2)
+ 391: TypeImage 6(int) 3D nonsampled format:R32i
+ 392: TypePointer UniformConstant 391
+ 393(g_tTex3di1): 392(ptr) Variable UniformConstant
+ 394: 6(int) Constant 7
+ 395: TypePointer Uniform 14(ivec3)
+ 482: TypeImage 10(int) 3D nonsampled format:R32ui
+ 483: TypePointer UniformConstant 482
+ 484(g_tTex3du1): 483(ptr) Variable UniformConstant
+ 485: 6(int) Constant 2
+ 486: TypePointer Uniform 12(ivec3)
+ 573: TypeImage 6(int) 1D array nonsampled format:R32i
+ 574: TypePointer UniformConstant 573
+575(g_tTex1di1a): 574(ptr) Variable UniformConstant
+ 662: TypeImage 10(int) 1D array nonsampled format:R32ui
+ 663: TypePointer UniformConstant 662
+664(g_tTex1du1a): 663(ptr) Variable UniformConstant
+ 923: TypeImage 6(int) Buffer nonsampled format:R32i
+ 924: TypePointer UniformConstant 923
+ 925(g_tBuffI): 924(ptr) Variable UniformConstant
+ 1012: TypeImage 10(int) Buffer nonsampled format:R32ui
+ 1013: TypePointer UniformConstant 1012
+ 1014(g_tBuffU): 1013(ptr) Variable UniformConstant
+ 1101: TypeFloat 32
+ 1102: TypeVector 1101(float) 4
+ 1103(PS_OUTPUT): TypeStruct 1102(fvec4)
+ 1104: TypePointer Function 1103(PS_OUTPUT)
+ 1106: 1101(float) Constant 1065353216
+ 1107: 1102(fvec4) ConstantComposite 1106 1106 1106 1106
+ 1108: TypePointer Function 1102(fvec4)
+ 1110: TypePointer Output 1102(fvec4)
+ 1111(Color): 1110(ptr) Variable Output
+ 1115: TypeSampler
+ 1116: TypePointer UniformConstant 1115
+ 1117(g_sSamp): 1116(ptr) Variable UniformConstant
+ 1118: TypeImage 1101(float) 1D nonsampled format:R32f
+ 1119: TypePointer UniformConstant 1118
+1120(g_tTex1df1): 1119(ptr) Variable UniformConstant
+ 1121: TypeImage 1101(float) 2D nonsampled format:R32f
+ 1122: TypePointer UniformConstant 1121
+1123(g_tTex2df1): 1122(ptr) Variable UniformConstant
+ 1124: TypeImage 1101(float) 3D nonsampled format:R32f
+ 1125: TypePointer UniformConstant 1124
+1126(g_tTex3df1): 1125(ptr) Variable UniformConstant
+ 1127: TypeImage 1101(float) 1D array nonsampled format:R32f
+ 1128: TypePointer UniformConstant 1127
+1129(g_tTex1df1a): 1128(ptr) Variable UniformConstant
+ 1130: TypeImage 1101(float) 2D array nonsampled format:R32f
+ 1131: TypePointer UniformConstant 1130
+1132(g_tTex2df1a): 1131(ptr) Variable UniformConstant
+ 1133: TypeImage 6(int) 2D array nonsampled format:R32i
+ 1134: TypePointer UniformConstant 1133
+1135(g_tTex2di1a): 1134(ptr) Variable UniformConstant
+ 1136: TypeImage 10(int) 2D array nonsampled format:R32ui
+ 1137: TypePointer UniformConstant 1136
+1138(g_tTex2du1a): 1137(ptr) Variable UniformConstant
+ 1139: TypeImage 1101(float) Buffer nonsampled format:R32f
+ 1140: TypePointer UniformConstant 1139
+ 1141(g_tBuffF): 1140(ptr) Variable UniformConstant
+ 4(main): 2 Function None 3
+ 5: Label
+ 31(out_i1): 30(ptr) Variable Function
+ 126(out_u1): 125(ptr) Variable Function
+ 1105(psout): 1104(ptr) Variable Function
+ 20: 19(ptr) AccessChain 17 18
+ 21: 6(int) Load 20
+ 23: 19(ptr) AccessChain 17 22
+ 24: 6(int) Load 23
+ 27: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 21 25
+ 29: 6(int) AtomicIAdd 27 28 25 24
+ 32: 19(ptr) AccessChain 17 18
+ 33: 6(int) Load 32
+ 34: 19(ptr) AccessChain 17 18
+ 35: 6(int) Load 34
+ 36: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 33 25
+ 37: 6(int) AtomicIAdd 36 28 25 35
+ Store 31(out_i1) 37
+ 38: 19(ptr) AccessChain 17 18
+ 39: 6(int) Load 38
+ 40: 19(ptr) AccessChain 17 22
+ 41: 6(int) Load 40
+ 42: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 39 25
+ 43: 6(int) AtomicAnd 42 28 25 41
+ 44: 19(ptr) AccessChain 17 18
+ 45: 6(int) Load 44
+ 46: 19(ptr) AccessChain 17 18
+ 47: 6(int) Load 46
+ 48: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 45 25
+ 49: 6(int) AtomicAnd 48 28 25 47
+ Store 31(out_i1) 49
+ 50: 19(ptr) AccessChain 17 18
+ 51: 6(int) Load 50
+ 52: 19(ptr) AccessChain 17 22
+ 53: 6(int) Load 52
+ 55: 19(ptr) AccessChain 17 54
+ 56: 6(int) Load 55
+ 57: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 51 25
+ 58: 6(int) AtomicCompareExchange 57 28 25 25 56 53
+ Store 31(out_i1) 58
+ 59: 19(ptr) AccessChain 17 18
+ 60: 6(int) Load 59
+ 61: 19(ptr) AccessChain 17 18
+ 62: 6(int) Load 61
+ 63: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 60 25
+ 64: 6(int) AtomicExchange 63 28 25 62
+ Store 31(out_i1) 64
+ 65: 19(ptr) AccessChain 17 18
+ 66: 6(int) Load 65
+ 67: 19(ptr) AccessChain 17 22
+ 68: 6(int) Load 67
+ 69: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 66 25
+ 70: 6(int) AtomicSMax 69 28 25 68
+ 71: 19(ptr) AccessChain 17 18
+ 72: 6(int) Load 71
+ 73: 19(ptr) AccessChain 17 18
+ 74: 6(int) Load 73
+ 75: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 72 25
+ 76: 6(int) AtomicSMax 75 28 25 74
+ Store 31(out_i1) 76
+ 77: 19(ptr) AccessChain 17 18
+ 78: 6(int) Load 77
+ 79: 19(ptr) AccessChain 17 22
+ 80: 6(int) Load 79
+ 81: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 78 25
+ 82: 6(int) AtomicSMin 81 28 25 80
+ 83: 19(ptr) AccessChain 17 18
+ 84: 6(int) Load 83
+ 85: 19(ptr) AccessChain 17 18
+ 86: 6(int) Load 85
+ 87: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 84 25
+ 88: 6(int) AtomicSMin 87 28 25 86
+ Store 31(out_i1) 88
+ 89: 19(ptr) AccessChain 17 18
+ 90: 6(int) Load 89
+ 91: 19(ptr) AccessChain 17 22
+ 92: 6(int) Load 91
+ 93: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 90 25
+ 94: 6(int) AtomicOr 93 28 25 92
+ 95: 19(ptr) AccessChain 17 18
+ 96: 6(int) Load 95
+ 97: 19(ptr) AccessChain 17 18
+ 98: 6(int) Load 97
+ 99: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 96 25
+ 100: 6(int) AtomicOr 99 28 25 98
+ Store 31(out_i1) 100
+ 101: 19(ptr) AccessChain 17 18
+ 102: 6(int) Load 101
+ 103: 19(ptr) AccessChain 17 22
+ 104: 6(int) Load 103
+ 105: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 102 25
+ 106: 6(int) AtomicXor 105 28 25 104
+ 107: 19(ptr) AccessChain 17 18
+ 108: 6(int) Load 107
+ 109: 19(ptr) AccessChain 17 18
+ 110: 6(int) Load 109
+ 111: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 108 25
+ 112: 6(int) AtomicXor 111 28 25 110
+ Store 31(out_i1) 112
+ 118: 117(ptr) AccessChain 17 116
+ 119: 10(int) Load 118
+ 120: 117(ptr) AccessChain 17 116
+ 121: 10(int) Load 120
+ 123: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 119 25
+ 124: 10(int) AtomicIAdd 123 28 25 121
+ 127: 117(ptr) AccessChain 17 116
+ 128: 10(int) Load 127
+ 129: 117(ptr) AccessChain 17 116
+ 130: 10(int) Load 129
+ 131: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 128 25
+ 132: 10(int) AtomicIAdd 131 28 25 130
+ Store 126(out_u1) 132
+ 133: 117(ptr) AccessChain 17 116
+ 134: 10(int) Load 133
+ 135: 117(ptr) AccessChain 17 116
+ 136: 10(int) Load 135
+ 137: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 134 25
+ 138: 10(int) AtomicAnd 137 28 25 136
+ 139: 117(ptr) AccessChain 17 116
+ 140: 10(int) Load 139
+ 141: 117(ptr) AccessChain 17 116
+ 142: 10(int) Load 141
+ 143: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 140 25
+ 144: 10(int) AtomicAnd 143 28 25 142
+ Store 126(out_u1) 144
+ 145: 117(ptr) AccessChain 17 116
+ 146: 10(int) Load 145
+ 148: 117(ptr) AccessChain 17 147
+ 149: 10(int) Load 148
+ 151: 117(ptr) AccessChain 17 150
+ 152: 10(int) Load 151
+ 153: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 146 25
+ 154: 10(int) AtomicCompareExchange 153 28 25 25 152 149
+ Store 126(out_u1) 154
+ 155: 117(ptr) AccessChain 17 116
+ 156: 10(int) Load 155
+ 157: 117(ptr) AccessChain 17 116
+ 158: 10(int) Load 157
+ 159: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 156 25
+ 160: 10(int) AtomicExchange 159 28 25 158
+ Store 126(out_u1) 160
+ 161: 117(ptr) AccessChain 17 116
+ 162: 10(int) Load 161
+ 163: 117(ptr) AccessChain 17 116
+ 164: 10(int) Load 163
+ 165: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 162 25
+ 166: 10(int) AtomicUMax 165 28 25 164
+ 167: 117(ptr) AccessChain 17 116
+ 168: 10(int) Load 167
+ 169: 117(ptr) AccessChain 17 116
+ 170: 10(int) Load 169
+ 171: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 168 25
+ 172: 10(int) AtomicUMax 171 28 25 170
+ Store 126(out_u1) 172
+ 173: 117(ptr) AccessChain 17 116
+ 174: 10(int) Load 173
+ 175: 117(ptr) AccessChain 17 116
+ 176: 10(int) Load 175
+ 177: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 174 25
+ 178: 10(int) AtomicUMin 177 28 25 176
+ 179: 117(ptr) AccessChain 17 116
+ 180: 10(int) Load 179
+ 181: 117(ptr) AccessChain 17 116
+ 182: 10(int) Load 181
+ 183: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 180 25
+ 184: 10(int) AtomicUMin 183 28 25 182
+ Store 126(out_u1) 184
+ 185: 117(ptr) AccessChain 17 116
+ 186: 10(int) Load 185
+ 187: 117(ptr) AccessChain 17 116
+ 188: 10(int) Load 187
+ 189: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 186 25
+ 190: 10(int) AtomicOr 189 28 25 188
+ 191: 117(ptr) AccessChain 17 116
+ 192: 10(int) Load 191
+ 193: 117(ptr) AccessChain 17 116
+ 194: 10(int) Load 193
+ 195: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 192 25
+ 196: 10(int) AtomicOr 195 28 25 194
+ Store 126(out_u1) 196
+ 197: 117(ptr) AccessChain 17 116
+ 198: 10(int) Load 197
+ 199: 117(ptr) AccessChain 17 116
+ 200: 10(int) Load 199
+ 201: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 198 25
+ 202: 10(int) AtomicXor 201 28 25 200
+ 203: 117(ptr) AccessChain 17 116
+ 204: 10(int) Load 203
+ 205: 117(ptr) AccessChain 17 116
+ 206: 10(int) Load 205
+ 207: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 204 25
+ 208: 10(int) AtomicXor 207 28 25 206
+ Store 126(out_u1) 208
+ 214: 213(ptr) AccessChain 17 212
+ 215: 13(ivec2) Load 214
+ 216: 19(ptr) AccessChain 17 22
+ 217: 6(int) Load 216
+ 218: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 215 25
+ 219: 6(int) AtomicIAdd 218 28 25 217
+ 220: 213(ptr) AccessChain 17 212
+ 221: 13(ivec2) Load 220
+ 222: 19(ptr) AccessChain 17 18
+ 223: 6(int) Load 222
+ 224: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 221 25
+ 225: 6(int) AtomicIAdd 224 28 25 223
+ Store 31(out_i1) 225
+ 226: 213(ptr) AccessChain 17 212
+ 227: 13(ivec2) Load 226
+ 228: 19(ptr) AccessChain 17 22
+ 229: 6(int) Load 228
+ 230: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 227 25
+ 231: 6(int) AtomicAnd 230 28 25 229
+ 232: 213(ptr) AccessChain 17 212
+ 233: 13(ivec2) Load 232
+ 234: 19(ptr) AccessChain 17 18
+ 235: 6(int) Load 234
+ 236: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 233 25
+ 237: 6(int) AtomicAnd 236 28 25 235
+ Store 31(out_i1) 237
+ 238: 213(ptr) AccessChain 17 212
+ 239: 13(ivec2) Load 238
+ 240: 19(ptr) AccessChain 17 22
+ 241: 6(int) Load 240
+ 242: 19(ptr) AccessChain 17 54
+ 243: 6(int) Load 242
+ 244: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 239 25
+ 245: 6(int) AtomicCompareExchange 244 28 25 25 243 241
+ Store 31(out_i1) 245
+ 246: 213(ptr) AccessChain 17 212
+ 247: 13(ivec2) Load 246
+ 248: 19(ptr) AccessChain 17 18
+ 249: 6(int) Load 248
+ 250: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 247 25
+ 251: 6(int) AtomicExchange 250 28 25 249
+ Store 31(out_i1) 251
+ 252: 213(ptr) AccessChain 17 212
+ 253: 13(ivec2) Load 252
+ 254: 19(ptr) AccessChain 17 22
+ 255: 6(int) Load 254
+ 256: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 253 25
+ 257: 6(int) AtomicSMax 256 28 25 255
+ 258: 213(ptr) AccessChain 17 212
+ 259: 13(ivec2) Load 258
+ 260: 19(ptr) AccessChain 17 18
+ 261: 6(int) Load 260
+ 262: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 259 25
+ 263: 6(int) AtomicSMax 262 28 25 261
+ Store 31(out_i1) 263
+ 264: 213(ptr) AccessChain 17 212
+ 265: 13(ivec2) Load 264
+ 266: 19(ptr) AccessChain 17 22
+ 267: 6(int) Load 266
+ 268: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 265 25
+ 269: 6(int) AtomicSMin 268 28 25 267
+ 270: 213(ptr) AccessChain 17 212
+ 271: 13(ivec2) Load 270
+ 272: 19(ptr) AccessChain 17 18
+ 273: 6(int) Load 272
+ 274: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 271 25
+ 275: 6(int) AtomicSMin 274 28 25 273
+ Store 31(out_i1) 275
+ 276: 213(ptr) AccessChain 17 212
+ 277: 13(ivec2) Load 276
+ 278: 19(ptr) AccessChain 17 22
+ 279: 6(int) Load 278
+ 280: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 277 25
+ 281: 6(int) AtomicOr 280 28 25 279
+ 282: 213(ptr) AccessChain 17 212
+ 283: 13(ivec2) Load 282
+ 284: 19(ptr) AccessChain 17 18
+ 285: 6(int) Load 284
+ 286: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 283 25
+ 287: 6(int) AtomicOr 286 28 25 285
+ Store 31(out_i1) 287
+ 288: 213(ptr) AccessChain 17 212
+ 289: 13(ivec2) Load 288
+ 290: 19(ptr) AccessChain 17 22
+ 291: 6(int) Load 290
+ 292: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 289 25
+ 293: 6(int) AtomicXor 292 28 25 291
+ 294: 213(ptr) AccessChain 17 212
+ 295: 13(ivec2) Load 294
+ 296: 19(ptr) AccessChain 17 18
+ 297: 6(int) Load 296
+ 298: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 295 25
+ 299: 6(int) AtomicXor 298 28 25 297
+ Store 31(out_i1) 299
+ 305: 304(ptr) AccessChain 17 303
+ 306: 11(ivec2) Load 305
+ 307: 117(ptr) AccessChain 17 116
+ 308: 10(int) Load 307
+ 309: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 306 25
+ 310: 10(int) AtomicIAdd 309 28 25 308
+ 311: 304(ptr) AccessChain 17 303
+ 312: 11(ivec2) Load 311
+ 313: 117(ptr) AccessChain 17 116
+ 314: 10(int) Load 313
+ 315: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 312 25
+ 316: 10(int) AtomicIAdd 315 28 25 314
+ Store 126(out_u1) 316
+ 317: 304(ptr) AccessChain 17 303
+ 318: 11(ivec2) Load 317
+ 319: 117(ptr) AccessChain 17 116
+ 320: 10(int) Load 319
+ 321: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 318 25
+ 322: 10(int) AtomicAnd 321 28 25 320
+ 323: 304(ptr) AccessChain 17 303
+ 324: 11(ivec2) Load 323
+ 325: 117(ptr) AccessChain 17 116
+ 326: 10(int) Load 325
+ 327: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 324 25
+ 328: 10(int) AtomicAnd 327 28 25 326
+ Store 126(out_u1) 328
+ 329: 304(ptr) AccessChain 17 303
+ 330: 11(ivec2) Load 329
+ 331: 117(ptr) AccessChain 17 147
+ 332: 10(int) Load 331
+ 333: 117(ptr) AccessChain 17 150
+ 334: 10(int) Load 333
+ 335: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 330 25
+ 336: 10(int) AtomicCompareExchange 335 28 25 25 334 332
+ Store 126(out_u1) 336
+ 337: 304(ptr) AccessChain 17 303
+ 338: 11(ivec2) Load 337
+ 339: 117(ptr) AccessChain 17 116
+ 340: 10(int) Load 339
+ 341: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 338 25
+ 342: 10(int) AtomicExchange 341 28 25 340
+ Store 126(out_u1) 342
+ 343: 304(ptr) AccessChain 17 303
+ 344: 11(ivec2) Load 343
+ 345: 117(ptr) AccessChain 17 116
+ 346: 10(int) Load 345
+ 347: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 344 25
+ 348: 10(int) AtomicUMax 347 28 25 346
+ 349: 304(ptr) AccessChain 17 303
+ 350: 11(ivec2) Load 349
+ 351: 117(ptr) AccessChain 17 116
+ 352: 10(int) Load 351
+ 353: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 350 25
+ 354: 10(int) AtomicUMax 353 28 25 352
+ Store 126(out_u1) 354
+ 355: 304(ptr) AccessChain 17 303
+ 356: 11(ivec2) Load 355
+ 357: 117(ptr) AccessChain 17 116
+ 358: 10(int) Load 357
+ 359: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 356 25
+ 360: 10(int) AtomicUMin 359 28 25 358
+ 361: 304(ptr) AccessChain 17 303
+ 362: 11(ivec2) Load 361
+ 363: 117(ptr) AccessChain 17 116
+ 364: 10(int) Load 363
+ 365: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 362 25
+ 366: 10(int) AtomicUMin 365 28 25 364
+ Store 126(out_u1) 366
+ 367: 304(ptr) AccessChain 17 303
+ 368: 11(ivec2) Load 367
+ 369: 117(ptr) AccessChain 17 116
+ 370: 10(int) Load 369
+ 371: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 368 25
+ 372: 10(int) AtomicOr 371 28 25 370
+ 373: 304(ptr) AccessChain 17 303
+ 374: 11(ivec2) Load 373
+ 375: 117(ptr) AccessChain 17 116
+ 376: 10(int) Load 375
+ 377: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 374 25
+ 378: 10(int) AtomicOr 377 28 25 376
+ Store 126(out_u1) 378
+ 379: 304(ptr) AccessChain 17 303
+ 380: 11(ivec2) Load 379
+ 381: 117(ptr) AccessChain 17 116
+ 382: 10(int) Load 381
+ 383: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 380 25
+ 384: 10(int) AtomicXor 383 28 25 382
+ 385: 304(ptr) AccessChain 17 303
+ 386: 11(ivec2) Load 385
+ 387: 117(ptr) AccessChain 17 116
+ 388: 10(int) Load 387
+ 389: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 386 25
+ 390: 10(int) AtomicXor 389 28 25 388
+ Store 126(out_u1) 390
+ 396: 395(ptr) AccessChain 17 394
+ 397: 14(ivec3) Load 396
+ 398: 19(ptr) AccessChain 17 22
+ 399: 6(int) Load 398
+ 400: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 397 25
+ 401: 6(int) AtomicIAdd 400 28 25 399
+ 402: 395(ptr) AccessChain 17 394
+ 403: 14(ivec3) Load 402
+ 404: 19(ptr) AccessChain 17 18
+ 405: 6(int) Load 404
+ 406: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 403 25
+ 407: 6(int) AtomicIAdd 406 28 25 405
+ Store 31(out_i1) 407
+ 408: 395(ptr) AccessChain 17 394
+ 409: 14(ivec3) Load 408
+ 410: 19(ptr) AccessChain 17 22
+ 411: 6(int) Load 410
+ 412: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 409 25
+ 413: 6(int) AtomicAnd 412 28 25 411
+ 414: 395(ptr) AccessChain 17 394
+ 415: 14(ivec3) Load 414
+ 416: 19(ptr) AccessChain 17 18
+ 417: 6(int) Load 416
+ 418: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 415 25
+ 419: 6(int) AtomicAnd 418 28 25 417
+ Store 31(out_i1) 419
+ 420: 395(ptr) AccessChain 17 394
+ 421: 14(ivec3) Load 420
+ 422: 19(ptr) AccessChain 17 22
+ 423: 6(int) Load 422
+ 424: 19(ptr) AccessChain 17 54
+ 425: 6(int) Load 424
+ 426: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 421 25
+ 427: 6(int) AtomicCompareExchange 426 28 25 25 425 423
+ Store 31(out_i1) 427
+ 428: 395(ptr) AccessChain 17 394
+ 429: 14(ivec3) Load 428
+ 430: 19(ptr) AccessChain 17 18
+ 431: 6(int) Load 430
+ 432: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 429 25
+ 433: 6(int) AtomicExchange 432 28 25 431
+ Store 31(out_i1) 433
+ 434: 395(ptr) AccessChain 17 394
+ 435: 14(ivec3) Load 434
+ 436: 19(ptr) AccessChain 17 22
+ 437: 6(int) Load 436
+ 438: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 435 25
+ 439: 6(int) AtomicSMax 438 28 25 437
+ 440: 395(ptr) AccessChain 17 394
+ 441: 14(ivec3) Load 440
+ 442: 19(ptr) AccessChain 17 18
+ 443: 6(int) Load 442
+ 444: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 441 25
+ 445: 6(int) AtomicSMax 444 28 25 443
+ Store 31(out_i1) 445
+ 446: 395(ptr) AccessChain 17 394
+ 447: 14(ivec3) Load 446
+ 448: 19(ptr) AccessChain 17 22
+ 449: 6(int) Load 448
+ 450: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 447 25
+ 451: 6(int) AtomicSMin 450 28 25 449
+ 452: 395(ptr) AccessChain 17 394
+ 453: 14(ivec3) Load 452
+ 454: 19(ptr) AccessChain 17 18
+ 455: 6(int) Load 454
+ 456: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 453 25
+ 457: 6(int) AtomicSMin 456 28 25 455
+ Store 31(out_i1) 457
+ 458: 395(ptr) AccessChain 17 394
+ 459: 14(ivec3) Load 458
+ 460: 19(ptr) AccessChain 17 22
+ 461: 6(int) Load 460
+ 462: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 459 25
+ 463: 6(int) AtomicOr 462 28 25 461
+ 464: 395(ptr) AccessChain 17 394
+ 465: 14(ivec3) Load 464
+ 466: 19(ptr) AccessChain 17 18
+ 467: 6(int) Load 466
+ 468: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 465 25
+ 469: 6(int) AtomicOr 468 28 25 467
+ Store 31(out_i1) 469
+ 470: 395(ptr) AccessChain 17 394
+ 471: 14(ivec3) Load 470
+ 472: 19(ptr) AccessChain 17 22
+ 473: 6(int) Load 472
+ 474: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 471 25
+ 475: 6(int) AtomicXor 474 28 25 473
+ 476: 395(ptr) AccessChain 17 394
+ 477: 14(ivec3) Load 476
+ 478: 19(ptr) AccessChain 17 18
+ 479: 6(int) Load 478
+ 480: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 477 25
+ 481: 6(int) AtomicXor 480 28 25 479
+ Store 31(out_i1) 481
+ 487: 486(ptr) AccessChain 17 485
+ 488: 12(ivec3) Load 487
+ 489: 117(ptr) AccessChain 17 116
+ 490: 10(int) Load 489
+ 491: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 488 25
+ 492: 10(int) AtomicIAdd 491 28 25 490
+ 493: 486(ptr) AccessChain 17 485
+ 494: 12(ivec3) Load 493
+ 495: 117(ptr) AccessChain 17 116
+ 496: 10(int) Load 495
+ 497: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 494 25
+ 498: 10(int) AtomicIAdd 497 28 25 496
+ Store 126(out_u1) 498
+ 499: 486(ptr) AccessChain 17 485
+ 500: 12(ivec3) Load 499
+ 501: 117(ptr) AccessChain 17 116
+ 502: 10(int) Load 501
+ 503: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 500 25
+ 504: 10(int) AtomicAnd 503 28 25 502
+ 505: 486(ptr) AccessChain 17 485
+ 506: 12(ivec3) Load 505
+ 507: 117(ptr) AccessChain 17 116
+ 508: 10(int) Load 507
+ 509: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 506 25
+ 510: 10(int) AtomicAnd 509 28 25 508
+ Store 126(out_u1) 510
+ 511: 486(ptr) AccessChain 17 485
+ 512: 12(ivec3) Load 511
+ 513: 117(ptr) AccessChain 17 147
+ 514: 10(int) Load 513
+ 515: 117(ptr) AccessChain 17 150
+ 516: 10(int) Load 515
+ 517: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 512 25
+ 518: 10(int) AtomicCompareExchange 517 28 25 25 516 514
+ Store 126(out_u1) 518
+ 519: 486(ptr) AccessChain 17 485
+ 520: 12(ivec3) Load 519
+ 521: 117(ptr) AccessChain 17 116
+ 522: 10(int) Load 521
+ 523: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 520 25
+ 524: 10(int) AtomicExchange 523 28 25 522
+ Store 126(out_u1) 524
+ 525: 486(ptr) AccessChain 17 485
+ 526: 12(ivec3) Load 525
+ 527: 117(ptr) AccessChain 17 116
+ 528: 10(int) Load 527
+ 529: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 526 25
+ 530: 10(int) AtomicUMax 529 28 25 528
+ 531: 486(ptr) AccessChain 17 485
+ 532: 12(ivec3) Load 531
+ 533: 117(ptr) AccessChain 17 116
+ 534: 10(int) Load 533
+ 535: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 532 25
+ 536: 10(int) AtomicUMax 535 28 25 534
+ Store 126(out_u1) 536
+ 537: 486(ptr) AccessChain 17 485
+ 538: 12(ivec3) Load 537
+ 539: 117(ptr) AccessChain 17 116
+ 540: 10(int) Load 539
+ 541: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 538 25
+ 542: 10(int) AtomicUMin 541 28 25 540
+ 543: 486(ptr) AccessChain 17 485
+ 544: 12(ivec3) Load 543
+ 545: 117(ptr) AccessChain 17 116
+ 546: 10(int) Load 545
+ 547: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 544 25
+ 548: 10(int) AtomicUMin 547 28 25 546
+ Store 126(out_u1) 548
+ 549: 486(ptr) AccessChain 17 485
+ 550: 12(ivec3) Load 549
+ 551: 117(ptr) AccessChain 17 116
+ 552: 10(int) Load 551
+ 553: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 550 25
+ 554: 10(int) AtomicOr 553 28 25 552
+ 555: 486(ptr) AccessChain 17 485
+ 556: 12(ivec3) Load 555
+ 557: 117(ptr) AccessChain 17 116
+ 558: 10(int) Load 557
+ 559: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 556 25
+ 560: 10(int) AtomicOr 559 28 25 558
+ Store 126(out_u1) 560
+ 561: 486(ptr) AccessChain 17 485
+ 562: 12(ivec3) Load 561
+ 563: 117(ptr) AccessChain 17 116
+ 564: 10(int) Load 563
+ 565: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 562 25
+ 566: 10(int) AtomicXor 565 28 25 564
+ 567: 486(ptr) AccessChain 17 485
+ 568: 12(ivec3) Load 567
+ 569: 117(ptr) AccessChain 17 116
+ 570: 10(int) Load 569
+ 571: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 568 25
+ 572: 10(int) AtomicXor 571 28 25 570
+ Store 126(out_u1) 572
+ 576: 213(ptr) AccessChain 17 212
+ 577: 13(ivec2) Load 576
+ 578: 19(ptr) AccessChain 17 22
+ 579: 6(int) Load 578
+ 580: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 577 25
+ 581: 6(int) AtomicIAdd 580 28 25 579
+ 582: 213(ptr) AccessChain 17 212
+ 583: 13(ivec2) Load 582
+ 584: 19(ptr) AccessChain 17 18
+ 585: 6(int) Load 584
+ 586: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 583 25
+ 587: 6(int) AtomicIAdd 586 28 25 585
+ Store 31(out_i1) 587
+ 588: 213(ptr) AccessChain 17 212
+ 589: 13(ivec2) Load 588
+ 590: 19(ptr) AccessChain 17 22
+ 591: 6(int) Load 590
+ 592: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 589 25
+ 593: 6(int) AtomicAnd 592 28 25 591
+ 594: 213(ptr) AccessChain 17 212
+ 595: 13(ivec2) Load 594
+ 596: 19(ptr) AccessChain 17 18
+ 597: 6(int) Load 596
+ 598: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 595 25
+ 599: 6(int) AtomicAnd 598 28 25 597
+ Store 31(out_i1) 599
+ 600: 213(ptr) AccessChain 17 212
+ 601: 13(ivec2) Load 600
+ 602: 19(ptr) AccessChain 17 22
+ 603: 6(int) Load 602
+ 604: 19(ptr) AccessChain 17 54
+ 605: 6(int) Load 604
+ 606: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 601 25
+ 607: 6(int) AtomicCompareExchange 606 28 25 25 605 603
+ Store 31(out_i1) 607
+ 608: 213(ptr) AccessChain 17 212
+ 609: 13(ivec2) Load 608
+ 610: 19(ptr) AccessChain 17 18
+ 611: 6(int) Load 610
+ 612: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 609 25
+ 613: 6(int) AtomicExchange 612 28 25 611
+ Store 31(out_i1) 613
+ 614: 213(ptr) AccessChain 17 212
+ 615: 13(ivec2) Load 614
+ 616: 19(ptr) AccessChain 17 22
+ 617: 6(int) Load 616
+ 618: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 615 25
+ 619: 6(int) AtomicSMax 618 28 25 617
+ 620: 213(ptr) AccessChain 17 212
+ 621: 13(ivec2) Load 620
+ 622: 19(ptr) AccessChain 17 18
+ 623: 6(int) Load 622
+ 624: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 621 25
+ 625: 6(int) AtomicSMax 624 28 25 623
+ Store 31(out_i1) 625
+ 626: 213(ptr) AccessChain 17 212
+ 627: 13(ivec2) Load 626
+ 628: 19(ptr) AccessChain 17 22
+ 629: 6(int) Load 628
+ 630: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 627 25
+ 631: 6(int) AtomicSMin 630 28 25 629
+ 632: 213(ptr) AccessChain 17 212
+ 633: 13(ivec2) Load 632
+ 634: 19(ptr) AccessChain 17 18
+ 635: 6(int) Load 634
+ 636: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 633 25
+ 637: 6(int) AtomicSMin 636 28 25 635
+ Store 31(out_i1) 637
+ 638: 213(ptr) AccessChain 17 212
+ 639: 13(ivec2) Load 638
+ 640: 19(ptr) AccessChain 17 22
+ 641: 6(int) Load 640
+ 642: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 639 25
+ 643: 6(int) AtomicOr 642 28 25 641
+ 644: 213(ptr) AccessChain 17 212
+ 645: 13(ivec2) Load 644
+ 646: 19(ptr) AccessChain 17 18
+ 647: 6(int) Load 646
+ 648: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 645 25
+ 649: 6(int) AtomicOr 648 28 25 647
+ Store 31(out_i1) 649
+ 650: 213(ptr) AccessChain 17 212
+ 651: 13(ivec2) Load 650
+ 652: 19(ptr) AccessChain 17 22
+ 653: 6(int) Load 652
+ 654: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 651 25
+ 655: 6(int) AtomicXor 654 28 25 653
+ 656: 213(ptr) AccessChain 17 212
+ 657: 13(ivec2) Load 656
+ 658: 19(ptr) AccessChain 17 18
+ 659: 6(int) Load 658
+ 660: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 657 25
+ 661: 6(int) AtomicXor 660 28 25 659
+ Store 31(out_i1) 661
+ 665: 304(ptr) AccessChain 17 303
+ 666: 11(ivec2) Load 665
+ 667: 117(ptr) AccessChain 17 116
+ 668: 10(int) Load 667
+ 669: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 666 25
+ 670: 10(int) AtomicIAdd 669 28 25 668
+ 671: 304(ptr) AccessChain 17 303
+ 672: 11(ivec2) Load 671
+ 673: 117(ptr) AccessChain 17 116
+ 674: 10(int) Load 673
+ 675: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 672 25
+ 676: 10(int) AtomicIAdd 675 28 25 674
+ Store 126(out_u1) 676
+ 677: 304(ptr) AccessChain 17 303
+ 678: 11(ivec2) Load 677
+ 679: 117(ptr) AccessChain 17 116
+ 680: 10(int) Load 679
+ 681: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 678 25
+ 682: 10(int) AtomicAnd 681 28 25 680
+ 683: 304(ptr) AccessChain 17 303
+ 684: 11(ivec2) Load 683
+ 685: 117(ptr) AccessChain 17 116
+ 686: 10(int) Load 685
+ 687: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 684 25
+ 688: 10(int) AtomicAnd 687 28 25 686
+ Store 126(out_u1) 688
+ 689: 304(ptr) AccessChain 17 303
+ 690: 11(ivec2) Load 689
+ 691: 117(ptr) AccessChain 17 147
+ 692: 10(int) Load 691
+ 693: 117(ptr) AccessChain 17 150
+ 694: 10(int) Load 693
+ 695: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 690 25
+ 696: 10(int) AtomicCompareExchange 695 28 25 25 694 692
+ Store 126(out_u1) 696
+ 697: 304(ptr) AccessChain 17 303
+ 698: 11(ivec2) Load 697
+ 699: 117(ptr) AccessChain 17 116
+ 700: 10(int) Load 699
+ 701: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 698 25
+ 702: 10(int) AtomicExchange 701 28 25 700
+ Store 126(out_u1) 702
+ 703: 304(ptr) AccessChain 17 303
+ 704: 11(ivec2) Load 703
+ 705: 117(ptr) AccessChain 17 116
+ 706: 10(int) Load 705
+ 707: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 704 25
+ 708: 10(int) AtomicUMax 707 28 25 706
+ 709: 304(ptr) AccessChain 17 303
+ 710: 11(ivec2) Load 709
+ 711: 117(ptr) AccessChain 17 116
+ 712: 10(int) Load 711
+ 713: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 710 25
+ 714: 10(int) AtomicUMax 713 28 25 712
+ Store 126(out_u1) 714
+ 715: 304(ptr) AccessChain 17 303
+ 716: 11(ivec2) Load 715
+ 717: 117(ptr) AccessChain 17 116
+ 718: 10(int) Load 717
+ 719: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 716 25
+ 720: 10(int) AtomicUMin 719 28 25 718
+ 721: 304(ptr) AccessChain 17 303
+ 722: 11(ivec2) Load 721
+ 723: 117(ptr) AccessChain 17 116
+ 724: 10(int) Load 723
+ 725: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 722 25
+ 726: 10(int) AtomicUMin 725 28 25 724
+ Store 126(out_u1) 726
+ 727: 304(ptr) AccessChain 17 303
+ 728: 11(ivec2) Load 727
+ 729: 117(ptr) AccessChain 17 116
+ 730: 10(int) Load 729
+ 731: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 728 25
+ 732: 10(int) AtomicOr 731 28 25 730
+ 733: 304(ptr) AccessChain 17 303
+ 734: 11(ivec2) Load 733
+ 735: 117(ptr) AccessChain 17 116
+ 736: 10(int) Load 735
+ 737: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 734 25
+ 738: 10(int) AtomicOr 737 28 25 736
+ Store 126(out_u1) 738
+ 739: 304(ptr) AccessChain 17 303
+ 740: 11(ivec2) Load 739
+ 741: 117(ptr) AccessChain 17 116
+ 742: 10(int) Load 741
+ 743: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 740 25
+ 744: 10(int) AtomicXor 743 28 25 742
+ 745: 304(ptr) AccessChain 17 303
+ 746: 11(ivec2) Load 745
+ 747: 117(ptr) AccessChain 17 116
+ 748: 10(int) Load 747
+ 749: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 746 25
+ 750: 10(int) AtomicXor 749 28 25 748
+ Store 126(out_u1) 750
+ 751: 213(ptr) AccessChain 17 212
+ 752: 13(ivec2) Load 751
+ 753: 19(ptr) AccessChain 17 22
+ 754: 6(int) Load 753
+ 755: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 752 25
+ 756: 6(int) AtomicIAdd 755 28 25 754
+ 757: 213(ptr) AccessChain 17 212
+ 758: 13(ivec2) Load 757
+ 759: 19(ptr) AccessChain 17 18
+ 760: 6(int) Load 759
+ 761: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 758 25
+ 762: 6(int) AtomicIAdd 761 28 25 760
+ Store 31(out_i1) 762
+ 763: 213(ptr) AccessChain 17 212
+ 764: 13(ivec2) Load 763
+ 765: 19(ptr) AccessChain 17 22
+ 766: 6(int) Load 765
+ 767: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 764 25
+ 768: 6(int) AtomicAnd 767 28 25 766
+ 769: 213(ptr) AccessChain 17 212
+ 770: 13(ivec2) Load 769
+ 771: 19(ptr) AccessChain 17 18
+ 772: 6(int) Load 771
+ 773: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 770 25
+ 774: 6(int) AtomicAnd 773 28 25 772
+ Store 31(out_i1) 774
+ 775: 213(ptr) AccessChain 17 212
+ 776: 13(ivec2) Load 775
+ 777: 19(ptr) AccessChain 17 22
+ 778: 6(int) Load 777
+ 779: 19(ptr) AccessChain 17 54
+ 780: 6(int) Load 779
+ 781: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 776 25
+ 782: 6(int) AtomicCompareExchange 781 28 25 25 780 778
+ Store 31(out_i1) 782
+ 783: 213(ptr) AccessChain 17 212
+ 784: 13(ivec2) Load 783
+ 785: 19(ptr) AccessChain 17 18
+ 786: 6(int) Load 785
+ 787: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 784 25
+ 788: 6(int) AtomicExchange 787 28 25 786
+ Store 31(out_i1) 788
+ 789: 213(ptr) AccessChain 17 212
+ 790: 13(ivec2) Load 789
+ 791: 19(ptr) AccessChain 17 22
+ 792: 6(int) Load 791
+ 793: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 790 25
+ 794: 6(int) AtomicSMax 793 28 25 792
+ 795: 213(ptr) AccessChain 17 212
+ 796: 13(ivec2) Load 795
+ 797: 19(ptr) AccessChain 17 18
+ 798: 6(int) Load 797
+ 799: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 796 25
+ 800: 6(int) AtomicSMax 799 28 25 798
+ Store 31(out_i1) 800
+ 801: 213(ptr) AccessChain 17 212
+ 802: 13(ivec2) Load 801
+ 803: 19(ptr) AccessChain 17 22
+ 804: 6(int) Load 803
+ 805: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 802 25
+ 806: 6(int) AtomicSMin 805 28 25 804
+ 807: 213(ptr) AccessChain 17 212
+ 808: 13(ivec2) Load 807
+ 809: 19(ptr) AccessChain 17 18
+ 810: 6(int) Load 809
+ 811: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 808 25
+ 812: 6(int) AtomicSMin 811 28 25 810
+ Store 31(out_i1) 812
+ 813: 213(ptr) AccessChain 17 212
+ 814: 13(ivec2) Load 813
+ 815: 19(ptr) AccessChain 17 22
+ 816: 6(int) Load 815
+ 817: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 814 25
+ 818: 6(int) AtomicOr 817 28 25 816
+ 819: 213(ptr) AccessChain 17 212
+ 820: 13(ivec2) Load 819
+ 821: 19(ptr) AccessChain 17 18
+ 822: 6(int) Load 821
+ 823: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 820 25
+ 824: 6(int) AtomicOr 823 28 25 822
+ Store 31(out_i1) 824
+ 825: 213(ptr) AccessChain 17 212
+ 826: 13(ivec2) Load 825
+ 827: 19(ptr) AccessChain 17 22
+ 828: 6(int) Load 827
+ 829: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 826 25
+ 830: 6(int) AtomicXor 829 28 25 828
+ 831: 213(ptr) AccessChain 17 212
+ 832: 13(ivec2) Load 831
+ 833: 19(ptr) AccessChain 17 18
+ 834: 6(int) Load 833
+ 835: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 832 25
+ 836: 6(int) AtomicXor 835 28 25 834
+ Store 31(out_i1) 836
+ 837: 304(ptr) AccessChain 17 303
+ 838: 11(ivec2) Load 837
+ 839: 117(ptr) AccessChain 17 116
+ 840: 10(int) Load 839
+ 841: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 838 25
+ 842: 10(int) AtomicIAdd 841 28 25 840
+ 843: 304(ptr) AccessChain 17 303
+ 844: 11(ivec2) Load 843
+ 845: 117(ptr) AccessChain 17 116
+ 846: 10(int) Load 845
+ 847: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 844 25
+ 848: 10(int) AtomicIAdd 847 28 25 846
+ Store 126(out_u1) 848
+ 849: 304(ptr) AccessChain 17 303
+ 850: 11(ivec2) Load 849
+ 851: 117(ptr) AccessChain 17 116
+ 852: 10(int) Load 851
+ 853: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 850 25
+ 854: 10(int) AtomicAnd 853 28 25 852
+ 855: 304(ptr) AccessChain 17 303
+ 856: 11(ivec2) Load 855
+ 857: 117(ptr) AccessChain 17 116
+ 858: 10(int) Load 857
+ 859: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 856 25
+ 860: 10(int) AtomicAnd 859 28 25 858
+ Store 126(out_u1) 860
+ 861: 304(ptr) AccessChain 17 303
+ 862: 11(ivec2) Load 861
+ 863: 117(ptr) AccessChain 17 147
+ 864: 10(int) Load 863
+ 865: 117(ptr) AccessChain 17 150
+ 866: 10(int) Load 865
+ 867: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 862 25
+ 868: 10(int) AtomicCompareExchange 867 28 25 25 866 864
+ Store 126(out_u1) 868
+ 869: 304(ptr) AccessChain 17 303
+ 870: 11(ivec2) Load 869
+ 871: 117(ptr) AccessChain 17 116
+ 872: 10(int) Load 871
+ 873: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 870 25
+ 874: 10(int) AtomicExchange 873 28 25 872
+ Store 126(out_u1) 874
+ 875: 304(ptr) AccessChain 17 303
+ 876: 11(ivec2) Load 875
+ 877: 117(ptr) AccessChain 17 116
+ 878: 10(int) Load 877
+ 879: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 876 25
+ 880: 10(int) AtomicUMax 879 28 25 878
+ 881: 304(ptr) AccessChain 17 303
+ 882: 11(ivec2) Load 881
+ 883: 117(ptr) AccessChain 17 116
+ 884: 10(int) Load 883
+ 885: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 882 25
+ 886: 10(int) AtomicUMax 885 28 25 884
+ Store 126(out_u1) 886
+ 887: 304(ptr) AccessChain 17 303
+ 888: 11(ivec2) Load 887
+ 889: 117(ptr) AccessChain 17 116
+ 890: 10(int) Load 889
+ 891: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 888 25
+ 892: 10(int) AtomicUMin 891 28 25 890
+ 893: 304(ptr) AccessChain 17 303
+ 894: 11(ivec2) Load 893
+ 895: 117(ptr) AccessChain 17 116
+ 896: 10(int) Load 895
+ 897: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 894 25
+ 898: 10(int) AtomicUMin 897 28 25 896
+ Store 126(out_u1) 898
+ 899: 304(ptr) AccessChain 17 303
+ 900: 11(ivec2) Load 899
+ 901: 117(ptr) AccessChain 17 116
+ 902: 10(int) Load 901
+ 903: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 900 25
+ 904: 10(int) AtomicOr 903 28 25 902
+ 905: 304(ptr) AccessChain 17 303
+ 906: 11(ivec2) Load 905
+ 907: 117(ptr) AccessChain 17 116
+ 908: 10(int) Load 907
+ 909: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 906 25
+ 910: 10(int) AtomicOr 909 28 25 908
+ Store 126(out_u1) 910
+ 911: 304(ptr) AccessChain 17 303
+ 912: 11(ivec2) Load 911
+ 913: 117(ptr) AccessChain 17 116
+ 914: 10(int) Load 913
+ 915: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 912 25
+ 916: 10(int) AtomicXor 915 28 25 914
+ 917: 304(ptr) AccessChain 17 303
+ 918: 11(ivec2) Load 917
+ 919: 117(ptr) AccessChain 17 116
+ 920: 10(int) Load 919
+ 921: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 918 25
+ 922: 10(int) AtomicXor 921 28 25 920
+ Store 126(out_u1) 922
+ 926: 19(ptr) AccessChain 17 18
+ 927: 6(int) Load 926
+ 928: 19(ptr) AccessChain 17 22
+ 929: 6(int) Load 928
+ 930: 26(ptr) ImageTexelPointer 925(g_tBuffI) 927 25
+ 931: 6(int) AtomicIAdd 930 28 25 929
+ 932: 19(ptr) AccessChain 17 18
+ 933: 6(int) Load 932
+ 934: 19(ptr) AccessChain 17 18
+ 935: 6(int) Load 934
+ 936: 26(ptr) ImageTexelPointer 925(g_tBuffI) 933 25
+ 937: 6(int) AtomicIAdd 936 28 25 935
+ Store 31(out_i1) 937
+ 938: 19(ptr) AccessChain 17 18
+ 939: 6(int) Load 938
+ 940: 19(ptr) AccessChain 17 22
+ 941: 6(int) Load 940
+ 942: 26(ptr) ImageTexelPointer 925(g_tBuffI) 939 25
+ 943: 6(int) AtomicAnd 942 28 25 941
+ 944: 19(ptr) AccessChain 17 18
+ 945: 6(int) Load 944
+ 946: 19(ptr) AccessChain 17 18
+ 947: 6(int) Load 946
+ 948: 26(ptr) ImageTexelPointer 925(g_tBuffI) 945 25
+ 949: 6(int) AtomicAnd 948 28 25 947
+ Store 31(out_i1) 949
+ 950: 19(ptr) AccessChain 17 18
+ 951: 6(int) Load 950
+ 952: 19(ptr) AccessChain 17 22
+ 953: 6(int) Load 952
+ 954: 19(ptr) AccessChain 17 54
+ 955: 6(int) Load 954
+ 956: 26(ptr) ImageTexelPointer 925(g_tBuffI) 951 25
+ 957: 6(int) AtomicCompareExchange 956 28 25 25 955 953
+ Store 31(out_i1) 957
+ 958: 19(ptr) AccessChain 17 18
+ 959: 6(int) Load 958
+ 960: 19(ptr) AccessChain 17 18
+ 961: 6(int) Load 960
+ 962: 26(ptr) ImageTexelPointer 925(g_tBuffI) 959 25
+ 963: 6(int) AtomicExchange 962 28 25 961
+ Store 31(out_i1) 963
+ 964: 19(ptr) AccessChain 17 18
+ 965: 6(int) Load 964
+ 966: 19(ptr) AccessChain 17 22
+ 967: 6(int) Load 966
+ 968: 26(ptr) ImageTexelPointer 925(g_tBuffI) 965 25
+ 969: 6(int) AtomicSMax 968 28 25 967
+ 970: 19(ptr) AccessChain 17 18
+ 971: 6(int) Load 970
+ 972: 19(ptr) AccessChain 17 18
+ 973: 6(int) Load 972
+ 974: 26(ptr) ImageTexelPointer 925(g_tBuffI) 971 25
+ 975: 6(int) AtomicSMax 974 28 25 973
+ Store 31(out_i1) 975
+ 976: 19(ptr) AccessChain 17 18
+ 977: 6(int) Load 976
+ 978: 19(ptr) AccessChain 17 22
+ 979: 6(int) Load 978
+ 980: 26(ptr) ImageTexelPointer 925(g_tBuffI) 977 25
+ 981: 6(int) AtomicSMin 980 28 25 979
+ 982: 19(ptr) AccessChain 17 18
+ 983: 6(int) Load 982
+ 984: 19(ptr) AccessChain 17 18
+ 985: 6(int) Load 984
+ 986: 26(ptr) ImageTexelPointer 925(g_tBuffI) 983 25
+ 987: 6(int) AtomicSMin 986 28 25 985
+ Store 31(out_i1) 987
+ 988: 19(ptr) AccessChain 17 18
+ 989: 6(int) Load 988
+ 990: 19(ptr) AccessChain 17 22
+ 991: 6(int) Load 990
+ 992: 26(ptr) ImageTexelPointer 925(g_tBuffI) 989 25
+ 993: 6(int) AtomicOr 992 28 25 991
+ 994: 19(ptr) AccessChain 17 18
+ 995: 6(int) Load 994
+ 996: 19(ptr) AccessChain 17 18
+ 997: 6(int) Load 996
+ 998: 26(ptr) ImageTexelPointer 925(g_tBuffI) 995 25
+ 999: 6(int) AtomicOr 998 28 25 997
+ Store 31(out_i1) 999
+ 1000: 19(ptr) AccessChain 17 18
+ 1001: 6(int) Load 1000
+ 1002: 19(ptr) AccessChain 17 22
+ 1003: 6(int) Load 1002
+ 1004: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1001 25
+ 1005: 6(int) AtomicXor 1004 28 25 1003
+ 1006: 19(ptr) AccessChain 17 18
+ 1007: 6(int) Load 1006
+ 1008: 19(ptr) AccessChain 17 18
+ 1009: 6(int) Load 1008
+ 1010: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1007 25
+ 1011: 6(int) AtomicXor 1010 28 25 1009
+ Store 31(out_i1) 1011
+ 1015: 117(ptr) AccessChain 17 116
+ 1016: 10(int) Load 1015
+ 1017: 117(ptr) AccessChain 17 116
+ 1018: 10(int) Load 1017
+ 1019: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1016 25
+ 1020: 10(int) AtomicIAdd 1019 28 25 1018
+ 1021: 117(ptr) AccessChain 17 116
+ 1022: 10(int) Load 1021
+ 1023: 117(ptr) AccessChain 17 116
+ 1024: 10(int) Load 1023
+ 1025: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1022 25
+ 1026: 10(int) AtomicIAdd 1025 28 25 1024
+ Store 126(out_u1) 1026
+ 1027: 117(ptr) AccessChain 17 116
+ 1028: 10(int) Load 1027
+ 1029: 117(ptr) AccessChain 17 116
+ 1030: 10(int) Load 1029
+ 1031: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1028 25
+ 1032: 10(int) AtomicAnd 1031 28 25 1030
+ 1033: 117(ptr) AccessChain 17 116
+ 1034: 10(int) Load 1033
+ 1035: 117(ptr) AccessChain 17 116
+ 1036: 10(int) Load 1035
+ 1037: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1034 25
+ 1038: 10(int) AtomicAnd 1037 28 25 1036
+ Store 126(out_u1) 1038
+ 1039: 117(ptr) AccessChain 17 116
+ 1040: 10(int) Load 1039
+ 1041: 117(ptr) AccessChain 17 147
+ 1042: 10(int) Load 1041
+ 1043: 117(ptr) AccessChain 17 150
+ 1044: 10(int) Load 1043
+ 1045: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1040 25
+ 1046: 10(int) AtomicCompareExchange 1045 28 25 25 1044 1042
+ Store 126(out_u1) 1046
+ 1047: 117(ptr) AccessChain 17 116
+ 1048: 10(int) Load 1047
+ 1049: 117(ptr) AccessChain 17 116
+ 1050: 10(int) Load 1049
+ 1051: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1048 25
+ 1052: 10(int) AtomicExchange 1051 28 25 1050
+ Store 126(out_u1) 1052
+ 1053: 117(ptr) AccessChain 17 116
+ 1054: 10(int) Load 1053
+ 1055: 117(ptr) AccessChain 17 116
+ 1056: 10(int) Load 1055
+ 1057: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1054 25
+ 1058: 10(int) AtomicUMax 1057 28 25 1056
+ 1059: 117(ptr) AccessChain 17 116
+ 1060: 10(int) Load 1059
+ 1061: 117(ptr) AccessChain 17 116
+ 1062: 10(int) Load 1061
+ 1063: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1060 25
+ 1064: 10(int) AtomicUMax 1063 28 25 1062
+ Store 126(out_u1) 1064
+ 1065: 117(ptr) AccessChain 17 116
+ 1066: 10(int) Load 1065
+ 1067: 117(ptr) AccessChain 17 116
+ 1068: 10(int) Load 1067
+ 1069: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1066 25
+ 1070: 10(int) AtomicUMin 1069 28 25 1068
+ 1071: 117(ptr) AccessChain 17 116
+ 1072: 10(int) Load 1071
+ 1073: 117(ptr) AccessChain 17 116
+ 1074: 10(int) Load 1073
+ 1075: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1072 25
+ 1076: 10(int) AtomicUMin 1075 28 25 1074
+ Store 126(out_u1) 1076
+ 1077: 117(ptr) AccessChain 17 116
+ 1078: 10(int) Load 1077
+ 1079: 117(ptr) AccessChain 17 116
+ 1080: 10(int) Load 1079
+ 1081: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1078 25
+ 1082: 10(int) AtomicOr 1081 28 25 1080
+ 1083: 117(ptr) AccessChain 17 116
+ 1084: 10(int) Load 1083
+ 1085: 117(ptr) AccessChain 17 116
+ 1086: 10(int) Load 1085
+ 1087: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1084 25
+ 1088: 10(int) AtomicOr 1087 28 25 1086
+ Store 126(out_u1) 1088
+ 1089: 117(ptr) AccessChain 17 116
+ 1090: 10(int) Load 1089
+ 1091: 117(ptr) AccessChain 17 116
+ 1092: 10(int) Load 1091
+ 1093: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1090 25
+ 1094: 10(int) AtomicXor 1093 28 25 1092
+ 1095: 117(ptr) AccessChain 17 116
+ 1096: 10(int) Load 1095
+ 1097: 117(ptr) AccessChain 17 116
+ 1098: 10(int) Load 1097
+ 1099: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1096 25
+ 1100: 10(int) AtomicXor 1099 28 25 1098
+ Store 126(out_u1) 1100
+ 1109: 1108(ptr) AccessChain 1105(psout) 116
+ Store 1109 1107
+ 1112: 1108(ptr) AccessChain 1105(psout) 116
+ 1113: 1102(fvec4) Load 1112
+ Store 1111(Color) 1113
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out
index c6e3c89e..31ed4a98 100644
--- a/Test/baseResults/hlsl.rw.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.bracket.frag.out
@@ -847,6 +847,7 @@ gl_FragCoord origin is upper left
0:139 0 (const int)
0:139 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -863,8 +864,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
Linked fragment stage:
@@ -1718,6 +1718,7 @@ gl_FragCoord origin is upper left
0:139 0 (const int)
0:139 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
@@ -1734,8 +1735,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out
new file mode 100644
index 00000000..f369cac7
--- /dev/null
+++ b/Test/baseResults/hlsl.rw.register.frag.out
@@ -0,0 +1,158 @@
+hlsl.rw.register.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:11 Function Parameters:
+0:? Sequence
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'r00' (temp float)
+0:12 imageLoad (temp float)
+0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
+0:12 Constant:
+0:12 0 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp uint)
+0:13 'r01' (temp uint)
+0:13 imageLoad (temp uint)
+0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
+0:13 Constant:
+0:13 0 (const int)
+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 'psout' (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 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:17 Color: direct index for structure (temp 4-component vector of float)
+0:17 'psout' (temp structure{temp 4-component vector of float Color})
+0:17 Constant:
+0:17 0 (const int)
+0:17 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
+0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:11 Function Parameters:
+0:? Sequence
+0:12 Sequence
+0:12 move second child to first child (temp float)
+0:12 'r00' (temp float)
+0:12 imageLoad (temp float)
+0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
+0:12 Constant:
+0:12 0 (const int)
+0:13 Sequence
+0:13 move second child to first child (temp uint)
+0:13 'r01' (temp uint)
+0:13 imageLoad (temp uint)
+0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
+0:13 Constant:
+0:13 0 (const int)
+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 'psout' (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 Sequence
+0:17 Sequence
+0:17 move second child to first child (temp 4-component vector of float)
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:17 Color: direct index for structure (temp 4-component vector of float)
+0:17 'psout' (temp structure{temp 4-component vector of float Color})
+0:17 Constant:
+0:17 0 (const int)
+0:17 Branch: Return
+0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D)
+0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 37
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledBuffer
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 33
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 8 "r00"
+ Name 11 "g_tTex1df1"
+ Name 18 "r01"
+ Name 21 "g_tBuf1du1"
+ Name 25 "PS_OUTPUT"
+ MemberName 25(PS_OUTPUT) 0 "Color"
+ Name 27 "psout"
+ Name 33 "Color"
+ Decorate 11(g_tTex1df1) DescriptorSet 0
+ Decorate 11(g_tTex1df1) Binding 2
+ Decorate 21(g_tBuf1du1) DescriptorSet 0
+ Decorate 21(g_tBuf1du1) Binding 3
+ Decorate 33(Color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D nonsampled format:R32f
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df1): 10(ptr) Variable UniformConstant
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 0
+ 16: TypeInt 32 0
+ 17: TypePointer Function 16(int)
+ 19: TypeImage 16(int) Buffer nonsampled format:R32ui
+ 20: TypePointer UniformConstant 19
+ 21(g_tBuf1du1): 20(ptr) Variable UniformConstant
+ 24: TypeVector 6(float) 4
+ 25(PS_OUTPUT): TypeStruct 24(fvec4)
+ 26: TypePointer Function 25(PS_OUTPUT)
+ 28: 6(float) Constant 1065353216
+ 29: 24(fvec4) ConstantComposite 28 28 28 28
+ 30: TypePointer Function 24(fvec4)
+ 32: TypePointer Output 24(fvec4)
+ 33(Color): 32(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 18(r01): 17(ptr) Variable Function
+ 27(psout): 26(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df1)
+ 15: 6(float) ImageRead 12 14
+ Store 8(r00) 15
+ 22: 19 Load 21(g_tBuf1du1)
+ 23: 16(int) ImageRead 22 14
+ Store 18(r01) 23
+ 31: 30(ptr) AccessChain 27(psout) 14
+ Store 31 29
+ 34: 30(ptr) AccessChain 27(psout) 14
+ 35: 24(fvec4) Load 34
+ Store 33(Color) 35
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
index 904c2dab..8e40fd2e 100644
--- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -820,6 +820,7 @@ gl_FragCoord origin is upper left
0:139 0 (const int)
0:139 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df1' (layout(r32f ) uniform image1D)
0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
@@ -836,8 +837,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray)
0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray)
0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
Linked fragment stage:
@@ -1664,6 +1664,7 @@ gl_FragCoord origin is upper left
0:139 0 (const int)
0:139 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df1' (layout(r32f ) uniform image1D)
0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D)
@@ -1680,8 +1681,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray)
0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray)
0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
index b8452c36..7ca7e3e4 100644
--- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -829,6 +829,7 @@ gl_FragCoord origin is upper left
0:139 0 (const int)
0:139 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D)
0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
@@ -845,8 +846,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray)
0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray)
0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
Linked fragment stage:
@@ -1682,6 +1682,7 @@ gl_FragCoord origin is upper left
0:139 0 (const int)
0:139 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D)
0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
@@ -1698,8 +1699,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray)
0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray)
0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out
index 6c6f187b..f223e4bf 100644
--- a/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -137,6 +137,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -148,8 +150,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -293,6 +293,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -304,8 +306,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index de9a4f4b..a222125a 100644
--- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -247,6 +247,8 @@ gl_FragCoord origin is upper left
0:89 1 (const int)
0:89 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_sSamp2D_b' (uniform sampler)
@@ -263,8 +265,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -516,6 +516,8 @@ gl_FragCoord origin is upper left
0:89 1 (const int)
0:89 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_sSamp2D_b' (uniform sampler)
@@ -532,8 +534,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index 67bf043f..a148a86e 100644
--- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -155,6 +155,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -169,8 +171,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -332,6 +332,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -346,8 +348,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index 83a0e8b7..abdf0327 100644
--- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -116,6 +116,8 @@ gl_FragCoord origin is upper left
0:36 1 (const int)
0:36 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -124,8 +126,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -248,6 +248,8 @@ gl_FragCoord origin is upper left
0:36 1 (const int)
0:36 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -256,8 +258,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
index 5a97ed96..bfbad5c2 100644
--- a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
@@ -64,12 +64,12 @@ gl_FragCoord origin is upper left
0:23 0 (const int)
0:23 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df1' (uniform texture1D)
0:? 'g_tTex1df2' (uniform texture1D)
0:? 'g_tTex1df3' (uniform texture1D)
0:? 'g_tTex1df4' (uniform texture1D)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
Linked fragment stage:
@@ -140,12 +140,12 @@ gl_FragCoord origin is upper left
0:23 0 (const int)
0:23 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df1' (uniform texture1D)
0:? 'g_tTex1df2' (uniform texture1D)
0:? 'g_tTex1df3' (uniform texture1D)
0:? 'g_tTex1df4' (uniform texture1D)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index b2b38b65..05ac32a5 100644
--- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -155,6 +155,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -166,8 +168,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -329,6 +329,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -340,8 +342,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index c7949146..1442fc3c 100644
--- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -185,6 +185,8 @@ gl_FragCoord origin is upper left
0:50 1 (const int)
0:50 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -199,8 +201,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -392,6 +392,8 @@ gl_FragCoord origin is upper left
0:50 1 (const int)
0:50 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -406,8 +408,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index 900eb4b0..01facb65 100644
--- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -173,6 +173,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -187,8 +189,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -368,6 +368,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -382,8 +384,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index bd216222..17aef7ae 100644
--- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -128,6 +128,8 @@ gl_FragCoord origin is upper left
0:36 1 (const int)
0:36 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -136,8 +138,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -272,6 +272,8 @@ gl_FragCoord origin is upper left
0:36 1 (const int)
0:36 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -280,8 +282,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
index 05f53c70..c4f5d11c 100644
--- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -21,11 +21,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -34,11 +34,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -47,11 +47,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -61,11 +61,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -75,11 +75,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -89,11 +89,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:52 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -104,11 +104,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -119,11 +119,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -164,6 +164,8 @@ gl_FragCoord origin is upper left
0:59 1 (const int)
0:59 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -186,8 +188,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -202,11 +202,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -215,11 +215,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -228,11 +228,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -241,11 +241,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -255,11 +255,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -269,11 +269,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -283,11 +283,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:52 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -298,11 +298,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -313,11 +313,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -358,6 +358,8 @@ gl_FragCoord origin is upper left
0:59 1 (const int)
0:59 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -380,84 +382,82 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 184
+// Id's are bound by 211
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 140 144
+ EntryPoint Fragment 4 "main" 167 171
ExecutionMode 4 OriginUpperLeft
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 140 "Color"
- Name 144 "Depth"
- Name 150 "g_tTex1df4"
- Name 153 "g_tTex1di4"
- Name 156 "g_tTex1du4"
- Name 159 "g_tTex2df4"
- Name 162 "g_tTex2di4"
- Name 165 "g_tTex2du4"
- Name 168 "g_tTex3df4"
- Name 171 "g_tTex3di4"
- Name 174 "g_tTex3du4"
- Name 177 "g_tTexcdf4"
- Name 180 "g_tTexcdi4"
- Name 183 "g_tTexcdu4"
+ Name 31 "r12"
+ Name 35 "g_tTex1di4a"
+ Name 46 "r14"
+ Name 50 "g_tTex1du4a"
+ Name 61 "r30"
+ Name 64 "g_tTex2df4a"
+ Name 79 "r32"
+ Name 82 "g_tTex2di4a"
+ Name 94 "r34"
+ Name 97 "g_tTex2du4a"
+ Name 109 "r60"
+ Name 112 "g_tTexcdf4a"
+ Name 126 "r62"
+ Name 129 "g_tTexcdi4a"
+ Name 141 "r64"
+ Name 144 "g_tTexcdu4a"
+ Name 156 "PS_OUTPUT"
+ MemberName 156(PS_OUTPUT) 0 "Color"
+ MemberName 156(PS_OUTPUT) 1 "Depth"
+ Name 158 "psout"
+ Name 167 "Color"
+ Name 171 "Depth"
+ Name 177 "g_tTex1df4"
+ Name 180 "g_tTex1di4"
+ Name 183 "g_tTex1du4"
+ Name 186 "g_tTex2df4"
+ Name 189 "g_tTex2di4"
+ Name 192 "g_tTex2du4"
+ Name 195 "g_tTex3df4"
+ Name 198 "g_tTex3di4"
+ Name 201 "g_tTex3du4"
+ Name 204 "g_tTexcdf4"
+ Name 207 "g_tTexcdi4"
+ Name 210 "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
- Decorate 140(Color) Location 0
- Decorate 144(Depth) BuiltIn FragDepth
- Decorate 150(g_tTex1df4) DescriptorSet 0
- Decorate 150(g_tTex1df4) Binding 0
- Decorate 153(g_tTex1di4) DescriptorSet 0
- Decorate 156(g_tTex1du4) DescriptorSet 0
- Decorate 159(g_tTex2df4) DescriptorSet 0
- Decorate 162(g_tTex2di4) DescriptorSet 0
- Decorate 165(g_tTex2du4) DescriptorSet 0
- Decorate 168(g_tTex3df4) DescriptorSet 0
- Decorate 171(g_tTex3di4) DescriptorSet 0
- Decorate 174(g_tTex3du4) DescriptorSet 0
- Decorate 177(g_tTexcdf4) DescriptorSet 0
- Decorate 180(g_tTexcdi4) DescriptorSet 0
- Decorate 183(g_tTexcdu4) DescriptorSet 0
+ Decorate 35(g_tTex1di4a) DescriptorSet 0
+ Decorate 50(g_tTex1du4a) DescriptorSet 0
+ Decorate 64(g_tTex2df4a) DescriptorSet 0
+ Decorate 82(g_tTex2di4a) DescriptorSet 0
+ Decorate 97(g_tTex2du4a) DescriptorSet 0
+ Decorate 112(g_tTexcdf4a) DescriptorSet 0
+ Decorate 129(g_tTexcdi4a) DescriptorSet 0
+ Decorate 144(g_tTexcdu4a) DescriptorSet 0
+ Decorate 167(Color) Location 0
+ Decorate 171(Depth) BuiltIn FragDepth
+ Decorate 177(g_tTex1df4) DescriptorSet 0
+ Decorate 177(g_tTex1df4) Binding 0
+ Decorate 180(g_tTex1di4) DescriptorSet 0
+ Decorate 183(g_tTex1du4) DescriptorSet 0
+ Decorate 186(g_tTex2df4) DescriptorSet 0
+ Decorate 189(g_tTex2di4) DescriptorSet 0
+ Decorate 192(g_tTex2du4) DescriptorSet 0
+ Decorate 195(g_tTex3df4) DescriptorSet 0
+ Decorate 198(g_tTex3di4) DescriptorSet 0
+ Decorate 201(g_tTex3du4) DescriptorSet 0
+ Decorate 204(g_tTexcdf4) DescriptorSet 0
+ Decorate 207(g_tTexcdi4) DescriptorSet 0
+ Decorate 210(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -475,182 +475,209 @@ gl_FragCoord origin is upper left
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
- 139: TypePointer Output 102(fvec4)
- 140(Color): 139(ptr) Variable Output
- 143: TypePointer Output 6(float)
- 144(Depth): 143(ptr) Variable Output
- 148: TypeImage 6(float) 1D sampled format:Unknown
- 149: TypePointer UniformConstant 148
- 150(g_tTex1df4): 149(ptr) Variable UniformConstant
- 151: TypeImage 29(int) 1D sampled format:Unknown
- 152: TypePointer UniformConstant 151
- 153(g_tTex1di4): 152(ptr) Variable UniformConstant
- 154: TypeImage 42(int) 1D sampled format:Unknown
- 155: TypePointer UniformConstant 154
- 156(g_tTex1du4): 155(ptr) Variable UniformConstant
- 157: TypeImage 6(float) 2D sampled format:Unknown
- 158: TypePointer UniformConstant 157
- 159(g_tTex2df4): 158(ptr) Variable UniformConstant
- 160: TypeImage 29(int) 2D sampled format:Unknown
- 161: TypePointer UniformConstant 160
- 162(g_tTex2di4): 161(ptr) Variable UniformConstant
- 163: TypeImage 42(int) 2D sampled format:Unknown
- 164: TypePointer UniformConstant 163
- 165(g_tTex2du4): 164(ptr) Variable UniformConstant
- 166: TypeImage 6(float) 3D sampled format:Unknown
- 167: TypePointer UniformConstant 166
- 168(g_tTex3df4): 167(ptr) Variable UniformConstant
- 169: TypeImage 29(int) 3D sampled format:Unknown
- 170: TypePointer UniformConstant 169
- 171(g_tTex3di4): 170(ptr) Variable UniformConstant
- 172: TypeImage 42(int) 3D sampled format:Unknown
- 173: TypePointer UniformConstant 172
- 174(g_tTex3du4): 173(ptr) Variable UniformConstant
- 175: TypeImage 6(float) Cube sampled format:Unknown
+ 25: TypeVector 6(float) 3
+ 32: TypeInt 32 1
+ 33: TypeImage 32(int) 1D array sampled format:Unknown
+ 34: TypePointer UniformConstant 33
+ 35(g_tTex1di4a): 34(ptr) Variable UniformConstant
+ 38: TypeImage 32(int) 1D depth array sampled format:Unknown
+ 39: TypeSampledImage 38
+ 47: TypeInt 32 0
+ 48: TypeImage 47(int) 1D array sampled format:Unknown
+ 49: TypePointer UniformConstant 48
+ 50(g_tTex1du4a): 49(ptr) Variable UniformConstant
+ 53: TypeImage 47(int) 1D depth array sampled format:Unknown
+ 54: TypeSampledImage 53
+ 62: TypeImage 6(float) 2D array sampled format:Unknown
+ 63: TypePointer UniformConstant 62
+ 64(g_tTex2df4a): 63(ptr) Variable UniformConstant
+ 67: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 68: TypeSampledImage 67
+ 70: 6(float) Constant 1050253722
+ 71: 25(fvec3) ConstantComposite 21 22 70
+ 72: TypeVector 6(float) 4
+ 80: TypeImage 32(int) 2D array sampled format:Unknown
+ 81: TypePointer UniformConstant 80
+ 82(g_tTex2di4a): 81(ptr) Variable UniformConstant
+ 85: TypeImage 32(int) 2D depth array sampled format:Unknown
+ 86: TypeSampledImage 85
+ 95: TypeImage 47(int) 2D array sampled format:Unknown
+ 96: TypePointer UniformConstant 95
+ 97(g_tTex2du4a): 96(ptr) Variable UniformConstant
+ 100: TypeImage 47(int) 2D depth array sampled format:Unknown
+ 101: TypeSampledImage 100
+ 110: TypeImage 6(float) Cube array sampled format:Unknown
+ 111: TypePointer UniformConstant 110
+112(g_tTexcdf4a): 111(ptr) Variable UniformConstant
+ 115: TypeImage 6(float) Cube depth array sampled format:Unknown
+ 116: TypeSampledImage 115
+ 118: 6(float) Constant 1053609165
+ 119: 72(fvec4) ConstantComposite 21 22 70 118
+ 127: TypeImage 32(int) Cube array sampled format:Unknown
+ 128: TypePointer UniformConstant 127
+129(g_tTexcdi4a): 128(ptr) Variable UniformConstant
+ 132: TypeImage 32(int) Cube depth array sampled format:Unknown
+ 133: TypeSampledImage 132
+ 142: TypeImage 47(int) Cube array sampled format:Unknown
+ 143: TypePointer UniformConstant 142
+144(g_tTexcdu4a): 143(ptr) Variable UniformConstant
+ 147: TypeImage 47(int) Cube depth array sampled format:Unknown
+ 148: TypeSampledImage 147
+ 156(PS_OUTPUT): TypeStruct 72(fvec4) 6(float)
+ 157: TypePointer Function 156(PS_OUTPUT)
+ 159: 32(int) Constant 0
+ 160: 6(float) Constant 1065353216
+ 161: 72(fvec4) ConstantComposite 160 160 160 160
+ 162: TypePointer Function 72(fvec4)
+ 164: 32(int) Constant 1
+ 166: TypePointer Output 72(fvec4)
+ 167(Color): 166(ptr) Variable Output
+ 170: TypePointer Output 6(float)
+ 171(Depth): 170(ptr) Variable Output
+ 175: TypeImage 6(float) 1D sampled format:Unknown
176: TypePointer UniformConstant 175
- 177(g_tTexcdf4): 176(ptr) Variable UniformConstant
- 178: TypeImage 29(int) Cube sampled format:Unknown
+ 177(g_tTex1df4): 176(ptr) Variable UniformConstant
+ 178: TypeImage 32(int) 1D sampled format:Unknown
179: TypePointer UniformConstant 178
- 180(g_tTexcdi4): 179(ptr) Variable UniformConstant
- 181: TypeImage 42(int) Cube sampled format:Unknown
+ 180(g_tTex1di4): 179(ptr) Variable UniformConstant
+ 181: TypeImage 47(int) 1D sampled format:Unknown
182: TypePointer UniformConstant 181
- 183(g_tTexcdu4): 182(ptr) Variable UniformConstant
+ 183(g_tTex1du4): 182(ptr) Variable UniformConstant
+ 184: TypeImage 6(float) 2D sampled format:Unknown
+ 185: TypePointer UniformConstant 184
+ 186(g_tTex2df4): 185(ptr) Variable UniformConstant
+ 187: TypeImage 32(int) 2D sampled format:Unknown
+ 188: TypePointer UniformConstant 187
+ 189(g_tTex2di4): 188(ptr) Variable UniformConstant
+ 190: TypeImage 47(int) 2D sampled format:Unknown
+ 191: TypePointer UniformConstant 190
+ 192(g_tTex2du4): 191(ptr) Variable UniformConstant
+ 193: TypeImage 6(float) 3D sampled format:Unknown
+ 194: TypePointer UniformConstant 193
+ 195(g_tTex3df4): 194(ptr) Variable UniformConstant
+ 196: TypeImage 32(int) 3D sampled format:Unknown
+ 197: TypePointer UniformConstant 196
+ 198(g_tTex3di4): 197(ptr) Variable UniformConstant
+ 199: TypeImage 47(int) 3D sampled format:Unknown
+ 200: TypePointer UniformConstant 199
+ 201(g_tTex3du4): 200(ptr) Variable UniformConstant
+ 202: TypeImage 6(float) Cube sampled format:Unknown
+ 203: TypePointer UniformConstant 202
+ 204(g_tTexcdf4): 203(ptr) Variable UniformConstant
+ 205: TypeImage 32(int) Cube sampled format:Unknown
+ 206: TypePointer UniformConstant 205
+ 207(g_tTexcdi4): 206(ptr) Variable UniformConstant
+ 208: TypeImage 47(int) Cube sampled format:Unknown
+ 209: TypePointer UniformConstant 208
+ 210(g_tTexcdu4): 209(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
+ 31(r12): 7(ptr) Variable Function
+ 46(r14): 7(ptr) Variable Function
+ 61(r30): 7(ptr) Variable Function
+ 79(r32): 7(ptr) Variable Function
+ 94(r34): 7(ptr) Variable Function
+ 109(r60): 7(ptr) Variable Function
+ 126(r62): 7(ptr) Variable Function
+ 141(r64): 7(ptr) Variable Function
+ 158(psout): 157(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
- 141: 135(ptr) AccessChain 131(psout) 132
- 142: 102(fvec4) Load 141
- Store 140(Color) 142
- 145: 7(ptr) AccessChain 131(psout) 137
- 146: 6(float) Load 145
- Store 144(Depth) 146
+ 26: 6(float) CompositeExtract 23 0
+ 27: 6(float) CompositeExtract 23 1
+ 28: 25(fvec3) CompositeConstruct 26 27 24
+ 29: 6(float) CompositeExtract 28 2
+ 30: 6(float) ImageSampleDrefImplicitLod 19 28 29
+ Store 8(r10) 30
+ 36: 33 Load 35(g_tTex1di4a)
+ 37: 13 Load 15(g_sSamp)
+ 40: 39 SampledImage 36 37
+ 41: 6(float) CompositeExtract 23 0
+ 42: 6(float) CompositeExtract 23 1
+ 43: 25(fvec3) CompositeConstruct 41 42 24
+ 44: 6(float) CompositeExtract 43 2
+ 45: 6(float) ImageSampleDrefImplicitLod 40 43 44
+ Store 31(r12) 45
+ 51: 48 Load 50(g_tTex1du4a)
+ 52: 13 Load 15(g_sSamp)
+ 55: 54 SampledImage 51 52
+ 56: 6(float) CompositeExtract 23 0
+ 57: 6(float) CompositeExtract 23 1
+ 58: 25(fvec3) CompositeConstruct 56 57 24
+ 59: 6(float) CompositeExtract 58 2
+ 60: 6(float) ImageSampleDrefImplicitLod 55 58 59
+ Store 46(r14) 60
+ 65: 62 Load 64(g_tTex2df4a)
+ 66: 13 Load 15(g_sSamp)
+ 69: 68 SampledImage 65 66
+ 73: 6(float) CompositeExtract 71 0
+ 74: 6(float) CompositeExtract 71 1
+ 75: 6(float) CompositeExtract 71 2
+ 76: 72(fvec4) CompositeConstruct 73 74 75 24
+ 77: 6(float) CompositeExtract 76 3
+ 78: 6(float) ImageSampleDrefImplicitLod 69 76 77
+ Store 61(r30) 78
+ 83: 80 Load 82(g_tTex2di4a)
+ 84: 13 Load 15(g_sSamp)
+ 87: 86 SampledImage 83 84
+ 88: 6(float) CompositeExtract 71 0
+ 89: 6(float) CompositeExtract 71 1
+ 90: 6(float) CompositeExtract 71 2
+ 91: 72(fvec4) CompositeConstruct 88 89 90 24
+ 92: 6(float) CompositeExtract 91 3
+ 93: 6(float) ImageSampleDrefImplicitLod 87 91 92
+ Store 79(r32) 93
+ 98: 95 Load 97(g_tTex2du4a)
+ 99: 13 Load 15(g_sSamp)
+ 102: 101 SampledImage 98 99
+ 103: 6(float) CompositeExtract 71 0
+ 104: 6(float) CompositeExtract 71 1
+ 105: 6(float) CompositeExtract 71 2
+ 106: 72(fvec4) CompositeConstruct 103 104 105 24
+ 107: 6(float) CompositeExtract 106 3
+ 108: 6(float) ImageSampleDrefImplicitLod 102 106 107
+ Store 94(r34) 108
+ 113: 110 Load 112(g_tTexcdf4a)
+ 114: 13 Load 15(g_sSamp)
+ 117: 116 SampledImage 113 114
+ 120: 6(float) CompositeExtract 119 0
+ 121: 6(float) CompositeExtract 119 1
+ 122: 6(float) CompositeExtract 119 2
+ 123: 6(float) CompositeExtract 119 3
+ 124: 72(fvec4) CompositeConstruct 120 121 122 123
+ 125: 6(float) ImageSampleDrefImplicitLod 117 124 24
+ Store 109(r60) 125
+ 130: 127 Load 129(g_tTexcdi4a)
+ 131: 13 Load 15(g_sSamp)
+ 134: 133 SampledImage 130 131
+ 135: 6(float) CompositeExtract 119 0
+ 136: 6(float) CompositeExtract 119 1
+ 137: 6(float) CompositeExtract 119 2
+ 138: 6(float) CompositeExtract 119 3
+ 139: 72(fvec4) CompositeConstruct 135 136 137 138
+ 140: 6(float) ImageSampleDrefImplicitLod 134 139 24
+ Store 126(r62) 140
+ 145: 142 Load 144(g_tTexcdu4a)
+ 146: 13 Load 15(g_sSamp)
+ 149: 148 SampledImage 145 146
+ 150: 6(float) CompositeExtract 119 0
+ 151: 6(float) CompositeExtract 119 1
+ 152: 6(float) CompositeExtract 119 2
+ 153: 6(float) CompositeExtract 119 3
+ 154: 72(fvec4) CompositeConstruct 150 151 152 153
+ 155: 6(float) ImageSampleDrefImplicitLod 149 154 24
+ Store 141(r64) 155
+ 163: 162(ptr) AccessChain 158(psout) 159
+ Store 163 161
+ 165: 7(ptr) AccessChain 158(psout) 164
+ Store 165 160
+ 168: 162(ptr) AccessChain 158(psout) 159
+ 169: 72(fvec4) Load 168
+ Store 167(Color) 169
+ 172: 7(ptr) AccessChain 158(psout) 164
+ 173: 6(float) Load 172
+ Store 171(Depth) 173
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
index d7a6b2f3..acd24b8b 100644
--- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -20,11 +20,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -32,11 +32,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -44,11 +44,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -57,11 +57,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -70,11 +70,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -83,11 +83,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -97,11 +97,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -111,11 +111,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:55 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -155,6 +155,8 @@ gl_FragCoord origin is upper left
0:60 1 (const int)
0:60 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -177,8 +179,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -193,11 +193,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -205,11 +205,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -217,11 +217,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -229,11 +229,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -242,11 +242,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -255,11 +255,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -268,11 +268,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -282,11 +282,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -296,11 +296,11 @@ gl_FragCoord origin is upper left
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 texture (temp 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:55 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -340,6 +340,8 @@ gl_FragCoord origin is upper left
0:60 1 (const int)
0:60 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -362,84 +364,82 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 182
+// Id's are bound by 200
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 138 142
+ EntryPoint Fragment 4 "main" 156 160
ExecutionMode 4 OriginUpperLeft
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 138 "Color"
- Name 142 "Depth"
- Name 148 "g_tTex3df4"
- Name 151 "g_tTex3di4"
- Name 154 "g_tTex3du4"
- Name 157 "g_tTex1df4a"
- Name 160 "g_tTex1di4a"
- Name 163 "g_tTex1du4a"
- Name 166 "g_tTex2df4a"
- Name 169 "g_tTex2di4a"
- Name 172 "g_tTex2du4a"
- Name 175 "g_tTexcdf4a"
- Name 178 "g_tTexcdi4a"
- Name 181 "g_tTexcdu4a"
+ Name 26 "r02"
+ Name 30 "g_tTex1di4"
+ Name 39 "r04"
+ Name 43 "g_tTex1du4"
+ Name 52 "r20"
+ Name 55 "g_tTex2df4"
+ Name 69 "r22"
+ Name 72 "g_tTex2di4"
+ Name 83 "r24"
+ Name 86 "g_tTex2du4"
+ Name 97 "r50"
+ Name 100 "g_tTexcdf4"
+ Name 115 "r52"
+ Name 118 "g_tTexcdi4"
+ Name 130 "r54"
+ Name 133 "g_tTexcdu4"
+ Name 145 "PS_OUTPUT"
+ MemberName 145(PS_OUTPUT) 0 "Color"
+ MemberName 145(PS_OUTPUT) 1 "Depth"
+ Name 147 "psout"
+ Name 156 "Color"
+ Name 160 "Depth"
+ Name 166 "g_tTex3df4"
+ Name 169 "g_tTex3di4"
+ Name 172 "g_tTex3du4"
+ Name 175 "g_tTex1df4a"
+ Name 178 "g_tTex1di4a"
+ Name 181 "g_tTex1du4a"
+ Name 184 "g_tTex2df4a"
+ Name 187 "g_tTex2di4a"
+ Name 190 "g_tTex2du4a"
+ Name 193 "g_tTexcdf4a"
+ Name 196 "g_tTexcdi4a"
+ Name 199 "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
- Decorate 138(Color) Location 0
- Decorate 142(Depth) BuiltIn FragDepth
- Decorate 148(g_tTex3df4) DescriptorSet 0
- Decorate 151(g_tTex3di4) DescriptorSet 0
- Decorate 154(g_tTex3du4) DescriptorSet 0
- Decorate 157(g_tTex1df4a) DescriptorSet 0
- Decorate 160(g_tTex1di4a) DescriptorSet 0
- Decorate 163(g_tTex1du4a) DescriptorSet 0
- Decorate 166(g_tTex2df4a) DescriptorSet 0
- Decorate 169(g_tTex2di4a) DescriptorSet 0
- Decorate 172(g_tTex2du4a) DescriptorSet 0
- Decorate 175(g_tTexcdf4a) DescriptorSet 0
- Decorate 178(g_tTexcdi4a) DescriptorSet 0
- Decorate 181(g_tTexcdu4a) DescriptorSet 0
+ Decorate 30(g_tTex1di4) DescriptorSet 0
+ Decorate 43(g_tTex1du4) DescriptorSet 0
+ Decorate 55(g_tTex2df4) DescriptorSet 0
+ Decorate 72(g_tTex2di4) DescriptorSet 0
+ Decorate 86(g_tTex2du4) DescriptorSet 0
+ Decorate 100(g_tTexcdf4) DescriptorSet 0
+ Decorate 118(g_tTexcdi4) DescriptorSet 0
+ Decorate 133(g_tTexcdu4) DescriptorSet 0
+ Decorate 156(Color) Location 0
+ Decorate 160(Depth) BuiltIn FragDepth
+ Decorate 166(g_tTex3df4) DescriptorSet 0
+ Decorate 169(g_tTex3di4) DescriptorSet 0
+ Decorate 172(g_tTex3du4) DescriptorSet 0
+ Decorate 175(g_tTex1df4a) DescriptorSet 0
+ Decorate 178(g_tTex1di4a) DescriptorSet 0
+ Decorate 181(g_tTex1du4a) DescriptorSet 0
+ Decorate 184(g_tTex2df4a) DescriptorSet 0
+ Decorate 187(g_tTex2di4a) DescriptorSet 0
+ Decorate 190(g_tTex2du4a) DescriptorSet 0
+ Decorate 193(g_tTexcdf4a) DescriptorSet 0
+ Decorate 196(g_tTexcdi4a) DescriptorSet 0
+ Decorate 199(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -454,183 +454,201 @@ gl_FragCoord origin is upper left
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
- 137: TypePointer Output 126(fvec4)
- 138(Color): 137(ptr) Variable Output
- 141: TypePointer Output 6(float)
- 142(Depth): 141(ptr) Variable Output
- 146: TypeImage 6(float) 3D sampled format:Unknown
- 147: TypePointer UniformConstant 146
- 148(g_tTex3df4): 147(ptr) Variable UniformConstant
- 149: TypeImage 25(int) 3D sampled format:Unknown
- 150: TypePointer UniformConstant 149
- 151(g_tTex3di4): 150(ptr) Variable UniformConstant
- 152: TypeImage 37(int) 3D sampled format:Unknown
- 153: TypePointer UniformConstant 152
- 154(g_tTex3du4): 153(ptr) Variable UniformConstant
- 155: TypeImage 6(float) 1D array sampled format:Unknown
- 156: TypePointer UniformConstant 155
-157(g_tTex1df4a): 156(ptr) Variable UniformConstant
- 158: TypeImage 25(int) 1D array sampled format:Unknown
- 159: TypePointer UniformConstant 158
-160(g_tTex1di4a): 159(ptr) Variable UniformConstant
- 161: TypeImage 37(int) 1D array sampled format:Unknown
- 162: TypePointer UniformConstant 161
-163(g_tTex1du4a): 162(ptr) Variable UniformConstant
- 164: TypeImage 6(float) 2D array sampled format:Unknown
+ 22: TypeVector 6(float) 2
+ 27: TypeInt 32 1
+ 28: TypeImage 27(int) 1D sampled format:Unknown
+ 29: TypePointer UniformConstant 28
+ 30(g_tTex1di4): 29(ptr) Variable UniformConstant
+ 33: TypeImage 27(int) 1D depth sampled format:Unknown
+ 34: TypeSampledImage 33
+ 40: TypeInt 32 0
+ 41: TypeImage 40(int) 1D sampled format:Unknown
+ 42: TypePointer UniformConstant 41
+ 43(g_tTex1du4): 42(ptr) Variable UniformConstant
+ 46: TypeImage 40(int) 1D depth sampled format:Unknown
+ 47: TypeSampledImage 46
+ 53: TypeImage 6(float) 2D sampled format:Unknown
+ 54: TypePointer UniformConstant 53
+ 55(g_tTex2df4): 54(ptr) Variable UniformConstant
+ 58: TypeImage 6(float) 2D depth sampled format:Unknown
+ 59: TypeSampledImage 58
+ 61: 6(float) Constant 1045220557
+ 62: 22(fvec2) ConstantComposite 20 61
+ 63: TypeVector 6(float) 3
+ 70: TypeImage 27(int) 2D sampled format:Unknown
+ 71: TypePointer UniformConstant 70
+ 72(g_tTex2di4): 71(ptr) Variable UniformConstant
+ 75: TypeImage 27(int) 2D depth sampled format:Unknown
+ 76: TypeSampledImage 75
+ 84: TypeImage 40(int) 2D sampled format:Unknown
+ 85: TypePointer UniformConstant 84
+ 86(g_tTex2du4): 85(ptr) Variable UniformConstant
+ 89: TypeImage 40(int) 2D depth sampled format:Unknown
+ 90: TypeSampledImage 89
+ 98: TypeImage 6(float) Cube sampled format:Unknown
+ 99: TypePointer UniformConstant 98
+ 100(g_tTexcdf4): 99(ptr) Variable UniformConstant
+ 103: TypeImage 6(float) Cube depth sampled format:Unknown
+ 104: TypeSampledImage 103
+ 106: 6(float) Constant 1050253722
+ 107: 63(fvec3) ConstantComposite 20 61 106
+ 108: TypeVector 6(float) 4
+ 116: TypeImage 27(int) Cube sampled format:Unknown
+ 117: TypePointer UniformConstant 116
+ 118(g_tTexcdi4): 117(ptr) Variable UniformConstant
+ 121: TypeImage 27(int) Cube depth sampled format:Unknown
+ 122: TypeSampledImage 121
+ 131: TypeImage 40(int) Cube sampled format:Unknown
+ 132: TypePointer UniformConstant 131
+ 133(g_tTexcdu4): 132(ptr) Variable UniformConstant
+ 136: TypeImage 40(int) Cube depth sampled format:Unknown
+ 137: TypeSampledImage 136
+ 145(PS_OUTPUT): TypeStruct 108(fvec4) 6(float)
+ 146: TypePointer Function 145(PS_OUTPUT)
+ 148: 27(int) Constant 0
+ 149: 6(float) Constant 1065353216
+ 150: 108(fvec4) ConstantComposite 149 149 149 149
+ 151: TypePointer Function 108(fvec4)
+ 153: 27(int) Constant 1
+ 155: TypePointer Output 108(fvec4)
+ 156(Color): 155(ptr) Variable Output
+ 159: TypePointer Output 6(float)
+ 160(Depth): 159(ptr) Variable Output
+ 164: TypeImage 6(float) 3D sampled format:Unknown
165: TypePointer UniformConstant 164
-166(g_tTex2df4a): 165(ptr) Variable UniformConstant
- 167: TypeImage 25(int) 2D array sampled format:Unknown
+ 166(g_tTex3df4): 165(ptr) Variable UniformConstant
+ 167: TypeImage 27(int) 3D sampled format:Unknown
168: TypePointer UniformConstant 167
-169(g_tTex2di4a): 168(ptr) Variable UniformConstant
- 170: TypeImage 37(int) 2D array sampled format:Unknown
+ 169(g_tTex3di4): 168(ptr) Variable UniformConstant
+ 170: TypeImage 40(int) 3D sampled format:Unknown
171: TypePointer UniformConstant 170
-172(g_tTex2du4a): 171(ptr) Variable UniformConstant
- 173: TypeImage 6(float) Cube array sampled format:Unknown
+ 172(g_tTex3du4): 171(ptr) Variable UniformConstant
+ 173: TypeImage 6(float) 1D array sampled format:Unknown
174: TypePointer UniformConstant 173
-175(g_tTexcdf4a): 174(ptr) Variable UniformConstant
- 176: TypeImage 25(int) Cube array sampled format:Unknown
+175(g_tTex1df4a): 174(ptr) Variable UniformConstant
+ 176: TypeImage 27(int) 1D array sampled format:Unknown
177: TypePointer UniformConstant 176
-178(g_tTexcdi4a): 177(ptr) Variable UniformConstant
- 179: TypeImage 37(int) Cube array sampled format:Unknown
+178(g_tTex1di4a): 177(ptr) Variable UniformConstant
+ 179: TypeImage 40(int) 1D array sampled format:Unknown
180: TypePointer UniformConstant 179
-181(g_tTexcdu4a): 180(ptr) Variable UniformConstant
+181(g_tTex1du4a): 180(ptr) Variable UniformConstant
+ 182: TypeImage 6(float) 2D array sampled format:Unknown
+ 183: TypePointer UniformConstant 182
+184(g_tTex2df4a): 183(ptr) Variable UniformConstant
+ 185: TypeImage 27(int) 2D array sampled format:Unknown
+ 186: TypePointer UniformConstant 185
+187(g_tTex2di4a): 186(ptr) Variable UniformConstant
+ 188: TypeImage 40(int) 2D array sampled format:Unknown
+ 189: TypePointer UniformConstant 188
+190(g_tTex2du4a): 189(ptr) Variable UniformConstant
+ 191: TypeImage 6(float) Cube array sampled format:Unknown
+ 192: TypePointer UniformConstant 191
+193(g_tTexcdf4a): 192(ptr) Variable UniformConstant
+ 194: TypeImage 27(int) Cube array sampled format:Unknown
+ 195: TypePointer UniformConstant 194
+196(g_tTexcdi4a): 195(ptr) Variable UniformConstant
+ 197: TypeImage 40(int) Cube array sampled format:Unknown
+ 198: TypePointer UniformConstant 197
+199(g_tTexcdu4a): 198(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
+ 26(r02): 7(ptr) Variable Function
+ 39(r04): 7(ptr) Variable Function
+ 52(r20): 7(ptr) Variable Function
+ 69(r22): 7(ptr) Variable Function
+ 83(r24): 7(ptr) Variable Function
+ 97(r50): 7(ptr) Variable Function
+ 115(r52): 7(ptr) Variable Function
+ 130(r54): 7(ptr) Variable Function
+ 147(psout): 146(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
- 139: 133(ptr) AccessChain 129(psout) 130
- 140: 126(fvec4) Load 139
- Store 138(Color) 140
- 143: 7(ptr) AccessChain 129(psout) 135
- 144: 6(float) Load 143
- Store 142(Depth) 144
+ 23: 22(fvec2) CompositeConstruct 20 21
+ 24: 6(float) CompositeExtract 23 1
+ 25: 6(float) ImageSampleDrefImplicitLod 19 23 24
+ Store 8(r00) 25
+ 31: 28 Load 30(g_tTex1di4)
+ 32: 13 Load 15(g_sSamp)
+ 35: 34 SampledImage 31 32
+ 36: 22(fvec2) CompositeConstruct 20 21
+ 37: 6(float) CompositeExtract 36 1
+ 38: 6(float) ImageSampleDrefImplicitLod 35 36 37
+ Store 26(r02) 38
+ 44: 41 Load 43(g_tTex1du4)
+ 45: 13 Load 15(g_sSamp)
+ 48: 47 SampledImage 44 45
+ 49: 22(fvec2) CompositeConstruct 20 21
+ 50: 6(float) CompositeExtract 49 1
+ 51: 6(float) ImageSampleDrefImplicitLod 48 49 50
+ Store 39(r04) 51
+ 56: 53 Load 55(g_tTex2df4)
+ 57: 13 Load 15(g_sSamp)
+ 60: 59 SampledImage 56 57
+ 64: 6(float) CompositeExtract 62 0
+ 65: 6(float) CompositeExtract 62 1
+ 66: 63(fvec3) CompositeConstruct 64 65 21
+ 67: 6(float) CompositeExtract 66 2
+ 68: 6(float) ImageSampleDrefImplicitLod 60 66 67
+ Store 52(r20) 68
+ 73: 70 Load 72(g_tTex2di4)
+ 74: 13 Load 15(g_sSamp)
+ 77: 76 SampledImage 73 74
+ 78: 6(float) CompositeExtract 62 0
+ 79: 6(float) CompositeExtract 62 1
+ 80: 63(fvec3) CompositeConstruct 78 79 21
+ 81: 6(float) CompositeExtract 80 2
+ 82: 6(float) ImageSampleDrefImplicitLod 77 80 81
+ Store 69(r22) 82
+ 87: 84 Load 86(g_tTex2du4)
+ 88: 13 Load 15(g_sSamp)
+ 91: 90 SampledImage 87 88
+ 92: 6(float) CompositeExtract 62 0
+ 93: 6(float) CompositeExtract 62 1
+ 94: 63(fvec3) CompositeConstruct 92 93 21
+ 95: 6(float) CompositeExtract 94 2
+ 96: 6(float) ImageSampleDrefImplicitLod 91 94 95
+ Store 83(r24) 96
+ 101: 98 Load 100(g_tTexcdf4)
+ 102: 13 Load 15(g_sSamp)
+ 105: 104 SampledImage 101 102
+ 109: 6(float) CompositeExtract 107 0
+ 110: 6(float) CompositeExtract 107 1
+ 111: 6(float) CompositeExtract 107 2
+ 112: 108(fvec4) CompositeConstruct 109 110 111 21
+ 113: 6(float) CompositeExtract 112 3
+ 114: 6(float) ImageSampleDrefImplicitLod 105 112 113
+ Store 97(r50) 114
+ 119: 116 Load 118(g_tTexcdi4)
+ 120: 13 Load 15(g_sSamp)
+ 123: 122 SampledImage 119 120
+ 124: 6(float) CompositeExtract 107 0
+ 125: 6(float) CompositeExtract 107 1
+ 126: 6(float) CompositeExtract 107 2
+ 127: 108(fvec4) CompositeConstruct 124 125 126 21
+ 128: 6(float) CompositeExtract 127 3
+ 129: 6(float) ImageSampleDrefImplicitLod 123 127 128
+ Store 115(r52) 129
+ 134: 131 Load 133(g_tTexcdu4)
+ 135: 13 Load 15(g_sSamp)
+ 138: 137 SampledImage 134 135
+ 139: 6(float) CompositeExtract 107 0
+ 140: 6(float) CompositeExtract 107 1
+ 141: 6(float) CompositeExtract 107 2
+ 142: 108(fvec4) CompositeConstruct 139 140 141 21
+ 143: 6(float) CompositeExtract 142 3
+ 144: 6(float) ImageSampleDrefImplicitLod 138 142 143
+ Store 130(r54) 144
+ 152: 151(ptr) AccessChain 147(psout) 148
+ Store 152 150
+ 154: 7(ptr) AccessChain 147(psout) 153
+ Store 154 149
+ 157: 151(ptr) AccessChain 147(psout) 148
+ 158: 108(fvec4) Load 157
+ Store 156(Color) 158
+ 161: 7(ptr) AccessChain 147(psout) 153
+ 162: 6(float) Load 161
+ Store 160(Depth) 162
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
index 021e08f6..fe2c74f5 100644
--- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -22,11 +22,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -36,11 +36,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -50,11 +50,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -66,11 +66,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -82,11 +82,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -128,6 +128,8 @@ gl_FragCoord origin is upper left
0:65 1 (const int)
0:65 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -150,8 +152,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -166,11 +166,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -180,11 +180,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -194,11 +194,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -208,11 +208,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -224,11 +224,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -240,11 +240,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -286,6 +286,8 @@ gl_FragCoord origin is upper left
0:65 1 (const int)
0:65 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -308,81 +310,79 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 156
+// Id's are bound by 166
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 103 107
+ EntryPoint Fragment 4 "main" 113 117
ExecutionMode 4 OriginUpperLeft
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 103 "Color"
- Name 107 "Depth"
- Name 113 "g_tTex3df4"
- Name 116 "g_tTex3di4"
- Name 119 "g_tTex3du4"
- Name 122 "g_tTexcdf4"
- Name 125 "g_tTexcdi4"
- Name 128 "g_tTexcdu4"
- Name 131 "g_tTex1df4a"
- Name 134 "g_tTex1di4a"
- Name 137 "g_tTex1du4a"
- Name 140 "g_tTex2df4a"
- Name 143 "g_tTex2di4a"
- Name 146 "g_tTex2du4a"
- Name 149 "g_tTexcdf4a"
- Name 152 "g_tTexcdi4a"
- Name 155 "g_tTexcdu4a"
+ Name 28 "r03"
+ Name 31 "g_tTex1di4"
+ Name 40 "r05"
+ Name 44 "g_tTex1du4"
+ Name 53 "r21"
+ Name 56 "g_tTex2df4"
+ Name 73 "r23"
+ Name 76 "g_tTex2di4"
+ Name 87 "r25"
+ Name 90 "g_tTex2du4"
+ Name 102 "PS_OUTPUT"
+ MemberName 102(PS_OUTPUT) 0 "Color"
+ MemberName 102(PS_OUTPUT) 1 "Depth"
+ Name 104 "psout"
+ Name 113 "Color"
+ Name 117 "Depth"
+ Name 123 "g_tTex3df4"
+ Name 126 "g_tTex3di4"
+ Name 129 "g_tTex3du4"
+ Name 132 "g_tTexcdf4"
+ Name 135 "g_tTexcdi4"
+ Name 138 "g_tTexcdu4"
+ Name 141 "g_tTex1df4a"
+ Name 144 "g_tTex1di4a"
+ Name 147 "g_tTex1du4a"
+ Name 150 "g_tTex2df4a"
+ Name 153 "g_tTex2di4a"
+ Name 156 "g_tTex2du4a"
+ Name 159 "g_tTexcdf4a"
+ Name 162 "g_tTexcdi4a"
+ Name 165 "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
- Decorate 103(Color) Location 0
- Decorate 107(Depth) BuiltIn FragDepth
- Decorate 113(g_tTex3df4) DescriptorSet 0
- Decorate 116(g_tTex3di4) DescriptorSet 0
- Decorate 119(g_tTex3du4) DescriptorSet 0
- Decorate 122(g_tTexcdf4) DescriptorSet 0
- Decorate 125(g_tTexcdi4) DescriptorSet 0
- Decorate 128(g_tTexcdu4) DescriptorSet 0
- Decorate 131(g_tTex1df4a) DescriptorSet 0
- Decorate 134(g_tTex1di4a) DescriptorSet 0
- Decorate 137(g_tTex1du4a) DescriptorSet 0
- Decorate 140(g_tTex2df4a) DescriptorSet 0
- Decorate 143(g_tTex2di4a) DescriptorSet 0
- Decorate 146(g_tTex2du4a) DescriptorSet 0
- Decorate 149(g_tTexcdf4a) DescriptorSet 0
- Decorate 152(g_tTexcdi4a) DescriptorSet 0
- Decorate 155(g_tTexcdu4a) DescriptorSet 0
+ Decorate 31(g_tTex1di4) DescriptorSet 0
+ Decorate 44(g_tTex1du4) DescriptorSet 0
+ Decorate 56(g_tTex2df4) DescriptorSet 0
+ Decorate 76(g_tTex2di4) DescriptorSet 0
+ Decorate 90(g_tTex2du4) DescriptorSet 0
+ Decorate 113(Color) Location 0
+ Decorate 117(Depth) BuiltIn FragDepth
+ Decorate 123(g_tTex3df4) DescriptorSet 0
+ Decorate 126(g_tTex3di4) DescriptorSet 0
+ Decorate 129(g_tTex3du4) DescriptorSet 0
+ Decorate 132(g_tTexcdf4) DescriptorSet 0
+ Decorate 135(g_tTexcdi4) DescriptorSet 0
+ Decorate 138(g_tTexcdu4) DescriptorSet 0
+ Decorate 141(g_tTex1df4a) DescriptorSet 0
+ Decorate 144(g_tTex1di4a) DescriptorSet 0
+ Decorate 147(g_tTex1du4a) DescriptorSet 0
+ Decorate 150(g_tTex2df4a) DescriptorSet 0
+ Decorate 153(g_tTex2di4a) DescriptorSet 0
+ Decorate 156(g_tTex2du4a) DescriptorSet 0
+ Decorate 159(g_tTexcdf4a) DescriptorSet 0
+ Decorate 162(g_tTexcdi4a) DescriptorSet 0
+ Decorate 165(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -397,154 +397,164 @@ gl_FragCoord origin is upper left
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
- 102: TypePointer Output 91(fvec4)
- 103(Color): 102(ptr) Variable Output
- 106: TypePointer Output 6(float)
- 107(Depth): 106(ptr) Variable Output
- 111: TypeImage 6(float) 3D sampled format:Unknown
- 112: TypePointer UniformConstant 111
- 113(g_tTex3df4): 112(ptr) Variable UniformConstant
- 114: TypeImage 22(int) 3D sampled format:Unknown
- 115: TypePointer UniformConstant 114
- 116(g_tTex3di4): 115(ptr) Variable UniformConstant
- 117: TypeImage 38(int) 3D sampled format:Unknown
- 118: TypePointer UniformConstant 117
- 119(g_tTex3du4): 118(ptr) Variable UniformConstant
- 120: TypeImage 6(float) Cube sampled format:Unknown
- 121: TypePointer UniformConstant 120
- 122(g_tTexcdf4): 121(ptr) Variable UniformConstant
- 123: TypeImage 22(int) Cube sampled format:Unknown
- 124: TypePointer UniformConstant 123
- 125(g_tTexcdi4): 124(ptr) Variable UniformConstant
- 126: TypeImage 38(int) Cube sampled format:Unknown
- 127: TypePointer UniformConstant 126
- 128(g_tTexcdu4): 127(ptr) Variable UniformConstant
- 129: TypeImage 6(float) 1D array sampled format:Unknown
- 130: TypePointer UniformConstant 129
-131(g_tTex1df4a): 130(ptr) Variable UniformConstant
- 132: TypeImage 22(int) 1D array sampled format:Unknown
- 133: TypePointer UniformConstant 132
-134(g_tTex1di4a): 133(ptr) Variable UniformConstant
- 135: TypeImage 38(int) 1D array sampled format:Unknown
- 136: TypePointer UniformConstant 135
-137(g_tTex1du4a): 136(ptr) Variable UniformConstant
- 138: TypeImage 6(float) 2D array sampled format:Unknown
- 139: TypePointer UniformConstant 138
-140(g_tTex2df4a): 139(ptr) Variable UniformConstant
- 141: TypeImage 22(int) 2D array sampled format:Unknown
- 142: TypePointer UniformConstant 141
-143(g_tTex2di4a): 142(ptr) Variable UniformConstant
- 144: TypeImage 38(int) 2D array sampled format:Unknown
- 145: TypePointer UniformConstant 144
-146(g_tTex2du4a): 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 22(int) Cube array sampled format:Unknown
- 151: TypePointer UniformConstant 150
-152(g_tTexcdi4a): 151(ptr) Variable UniformConstant
- 153: TypeImage 38(int) Cube array sampled format:Unknown
- 154: TypePointer UniformConstant 153
-155(g_tTexcdu4a): 154(ptr) Variable UniformConstant
+ 22: TypeVector 6(float) 2
+ 24: TypeInt 32 1
+ 25: 24(int) Constant 2
+ 29: TypeImage 24(int) 1D sampled format:Unknown
+ 30: TypePointer UniformConstant 29
+ 31(g_tTex1di4): 30(ptr) Variable UniformConstant
+ 34: TypeImage 24(int) 1D depth sampled format:Unknown
+ 35: TypeSampledImage 34
+ 41: TypeInt 32 0
+ 42: TypeImage 41(int) 1D sampled format:Unknown
+ 43: TypePointer UniformConstant 42
+ 44(g_tTex1du4): 43(ptr) Variable UniformConstant
+ 47: TypeImage 41(int) 1D depth sampled format:Unknown
+ 48: TypeSampledImage 47
+ 54: TypeImage 6(float) 2D sampled format:Unknown
+ 55: TypePointer UniformConstant 54
+ 56(g_tTex2df4): 55(ptr) Variable UniformConstant
+ 59: TypeImage 6(float) 2D depth sampled format:Unknown
+ 60: TypeSampledImage 59
+ 62: 6(float) Constant 1045220557
+ 63: 22(fvec2) ConstantComposite 20 62
+ 64: TypeVector 6(float) 3
+ 68: TypeVector 24(int) 2
+ 69: 24(int) Constant 3
+ 70: 68(ivec2) ConstantComposite 25 69
+ 74: TypeImage 24(int) 2D sampled format:Unknown
+ 75: TypePointer UniformConstant 74
+ 76(g_tTex2di4): 75(ptr) Variable UniformConstant
+ 79: TypeImage 24(int) 2D depth sampled format:Unknown
+ 80: TypeSampledImage 79
+ 88: TypeImage 41(int) 2D sampled format:Unknown
+ 89: TypePointer UniformConstant 88
+ 90(g_tTex2du4): 89(ptr) Variable UniformConstant
+ 93: TypeImage 41(int) 2D depth sampled format:Unknown
+ 94: TypeSampledImage 93
+ 101: TypeVector 6(float) 4
+ 102(PS_OUTPUT): TypeStruct 101(fvec4) 6(float)
+ 103: TypePointer Function 102(PS_OUTPUT)
+ 105: 24(int) Constant 0
+ 106: 6(float) Constant 1065353216
+ 107: 101(fvec4) ConstantComposite 106 106 106 106
+ 108: TypePointer Function 101(fvec4)
+ 110: 24(int) Constant 1
+ 112: TypePointer Output 101(fvec4)
+ 113(Color): 112(ptr) Variable Output
+ 116: TypePointer Output 6(float)
+ 117(Depth): 116(ptr) Variable Output
+ 121: TypeImage 6(float) 3D sampled format:Unknown
+ 122: TypePointer UniformConstant 121
+ 123(g_tTex3df4): 122(ptr) Variable UniformConstant
+ 124: TypeImage 24(int) 3D sampled format:Unknown
+ 125: TypePointer UniformConstant 124
+ 126(g_tTex3di4): 125(ptr) Variable UniformConstant
+ 127: TypeImage 41(int) 3D sampled format:Unknown
+ 128: TypePointer UniformConstant 127
+ 129(g_tTex3du4): 128(ptr) Variable UniformConstant
+ 130: TypeImage 6(float) Cube sampled format:Unknown
+ 131: TypePointer UniformConstant 130
+ 132(g_tTexcdf4): 131(ptr) Variable UniformConstant
+ 133: TypeImage 24(int) Cube sampled format:Unknown
+ 134: TypePointer UniformConstant 133
+ 135(g_tTexcdi4): 134(ptr) Variable UniformConstant
+ 136: TypeImage 41(int) Cube sampled format:Unknown
+ 137: TypePointer UniformConstant 136
+ 138(g_tTexcdu4): 137(ptr) Variable UniformConstant
+ 139: TypeImage 6(float) 1D array sampled format:Unknown
+ 140: TypePointer UniformConstant 139
+141(g_tTex1df4a): 140(ptr) Variable UniformConstant
+ 142: TypeImage 24(int) 1D array sampled format:Unknown
+ 143: TypePointer UniformConstant 142
+144(g_tTex1di4a): 143(ptr) Variable UniformConstant
+ 145: TypeImage 41(int) 1D array sampled format:Unknown
+ 146: TypePointer UniformConstant 145
+147(g_tTex1du4a): 146(ptr) Variable UniformConstant
+ 148: TypeImage 6(float) 2D array sampled format:Unknown
+ 149: TypePointer UniformConstant 148
+150(g_tTex2df4a): 149(ptr) Variable UniformConstant
+ 151: TypeImage 24(int) 2D array sampled format:Unknown
+ 152: TypePointer UniformConstant 151
+153(g_tTex2di4a): 152(ptr) Variable UniformConstant
+ 154: TypeImage 41(int) 2D array sampled format:Unknown
+ 155: TypePointer UniformConstant 154
+156(g_tTex2du4a): 155(ptr) Variable UniformConstant
+ 157: TypeImage 6(float) Cube array sampled format:Unknown
+ 158: TypePointer UniformConstant 157
+159(g_tTexcdf4a): 158(ptr) Variable UniformConstant
+ 160: TypeImage 24(int) Cube array sampled format:Unknown
+ 161: TypePointer UniformConstant 160
+162(g_tTexcdi4a): 161(ptr) Variable UniformConstant
+ 163: TypeImage 41(int) Cube array sampled format:Unknown
+ 164: TypePointer UniformConstant 163
+165(g_tTexcdu4a): 164(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
+ 28(r03): 7(ptr) Variable Function
+ 40(r05): 7(ptr) Variable Function
+ 53(r21): 7(ptr) Variable Function
+ 73(r23): 7(ptr) Variable Function
+ 87(r25): 7(ptr) Variable Function
+ 104(psout): 103(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
- 104: 98(ptr) AccessChain 94(psout) 95
- 105: 91(fvec4) Load 104
- Store 103(Color) 105
- 108: 7(ptr) AccessChain 94(psout) 100
- 109: 6(float) Load 108
- Store 107(Depth) 109
+ 23: 22(fvec2) CompositeConstruct 20 21
+ 26: 6(float) CompositeExtract 23 1
+ 27: 6(float) ImageSampleDrefImplicitLod 19 23 26 ConstOffset 25
+ Store 8(r01) 27
+ 32: 29 Load 31(g_tTex1di4)
+ 33: 13 Load 15(g_sSamp)
+ 36: 35 SampledImage 32 33
+ 37: 22(fvec2) CompositeConstruct 20 21
+ 38: 6(float) CompositeExtract 37 1
+ 39: 6(float) ImageSampleDrefImplicitLod 36 37 38 ConstOffset 25
+ Store 28(r03) 39
+ 45: 42 Load 44(g_tTex1du4)
+ 46: 13 Load 15(g_sSamp)
+ 49: 48 SampledImage 45 46
+ 50: 22(fvec2) CompositeConstruct 20 21
+ 51: 6(float) CompositeExtract 50 1
+ 52: 6(float) ImageSampleDrefImplicitLod 49 50 51 ConstOffset 25
+ Store 40(r05) 52
+ 57: 54 Load 56(g_tTex2df4)
+ 58: 13 Load 15(g_sSamp)
+ 61: 60 SampledImage 57 58
+ 65: 6(float) CompositeExtract 63 0
+ 66: 6(float) CompositeExtract 63 1
+ 67: 64(fvec3) CompositeConstruct 65 66 21
+ 71: 6(float) CompositeExtract 67 2
+ 72: 6(float) ImageSampleDrefImplicitLod 61 67 71 ConstOffset 70
+ Store 53(r21) 72
+ 77: 74 Load 76(g_tTex2di4)
+ 78: 13 Load 15(g_sSamp)
+ 81: 80 SampledImage 77 78
+ 82: 6(float) CompositeExtract 63 0
+ 83: 6(float) CompositeExtract 63 1
+ 84: 64(fvec3) CompositeConstruct 82 83 21
+ 85: 6(float) CompositeExtract 84 2
+ 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 70
+ Store 73(r23) 86
+ 91: 88 Load 90(g_tTex2du4)
+ 92: 13 Load 15(g_sSamp)
+ 95: 94 SampledImage 91 92
+ 96: 6(float) CompositeExtract 63 0
+ 97: 6(float) CompositeExtract 63 1
+ 98: 64(fvec3) CompositeConstruct 96 97 21
+ 99: 6(float) CompositeExtract 98 2
+ 100: 6(float) ImageSampleDrefImplicitLod 95 98 99 ConstOffset 70
+ Store 87(r25) 100
+ 109: 108(ptr) AccessChain 104(psout) 105
+ Store 109 107
+ 111: 7(ptr) AccessChain 104(psout) 110
+ Store 111 106
+ 114: 108(ptr) AccessChain 104(psout) 105
+ 115: 101(fvec4) Load 114
+ Store 113(Color) 115
+ 118: 7(ptr) AccessChain 104(psout) 110
+ 119: 6(float) Load 118
+ Store 117(Depth) 119
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
index 73a2a89b..013a645c 100644
--- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -23,11 +23,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -38,11 +38,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -53,11 +53,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -70,11 +70,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -87,11 +87,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -134,6 +134,8 @@ gl_FragCoord origin is upper left
0:66 1 (const int)
0:66 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -156,8 +158,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -172,11 +172,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -187,11 +187,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -202,11 +202,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -217,11 +217,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -234,11 +234,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -251,11 +251,11 @@ gl_FragCoord origin is upper left
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 textureOffset (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -298,6 +298,8 @@ gl_FragCoord origin is upper left
0:66 1 (const int)
0:66 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -320,81 +322,79 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 162
+// Id's are bound by 177
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 109 113
+ EntryPoint Fragment 4 "main" 124 128
ExecutionMode 4 OriginUpperLeft
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 109 "Color"
- Name 113 "Depth"
- Name 119 "g_tTex1df4"
- Name 122 "g_tTex1di4"
- Name 125 "g_tTex1du4"
- Name 128 "g_tTex2df4"
- Name 131 "g_tTex2di4"
- Name 134 "g_tTex2du4"
- Name 137 "g_tTex3df4"
- Name 140 "g_tTex3di4"
- Name 143 "g_tTex3du4"
- Name 146 "g_tTexcdf4"
- Name 149 "g_tTexcdi4"
- Name 152 "g_tTexcdu4"
- Name 155 "g_tTexcdf4a"
- Name 158 "g_tTexcdi4a"
- Name 161 "g_tTexcdu4a"
+ Name 33 "r13"
+ Name 36 "g_tTex1di4a"
+ Name 47 "r15"
+ Name 51 "g_tTex1du4a"
+ Name 62 "r31"
+ Name 65 "g_tTex2df4a"
+ Name 83 "r33"
+ Name 86 "g_tTex2di4a"
+ Name 98 "r35"
+ Name 101 "g_tTex2du4a"
+ Name 113 "PS_OUTPUT"
+ MemberName 113(PS_OUTPUT) 0 "Color"
+ MemberName 113(PS_OUTPUT) 1 "Depth"
+ Name 115 "psout"
+ Name 124 "Color"
+ Name 128 "Depth"
+ Name 134 "g_tTex1df4"
+ Name 137 "g_tTex1di4"
+ Name 140 "g_tTex1du4"
+ Name 143 "g_tTex2df4"
+ Name 146 "g_tTex2di4"
+ Name 149 "g_tTex2du4"
+ Name 152 "g_tTex3df4"
+ Name 155 "g_tTex3di4"
+ Name 158 "g_tTex3du4"
+ Name 161 "g_tTexcdf4"
+ Name 164 "g_tTexcdi4"
+ Name 167 "g_tTexcdu4"
+ Name 170 "g_tTexcdf4a"
+ Name 173 "g_tTexcdi4a"
+ Name 176 "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
- Decorate 109(Color) Location 0
- Decorate 113(Depth) BuiltIn FragDepth
- Decorate 119(g_tTex1df4) DescriptorSet 0
- Decorate 119(g_tTex1df4) Binding 0
- Decorate 122(g_tTex1di4) DescriptorSet 0
- Decorate 125(g_tTex1du4) DescriptorSet 0
- Decorate 128(g_tTex2df4) DescriptorSet 0
- Decorate 131(g_tTex2di4) DescriptorSet 0
- Decorate 134(g_tTex2du4) DescriptorSet 0
- Decorate 137(g_tTex3df4) DescriptorSet 0
- Decorate 140(g_tTex3di4) DescriptorSet 0
- Decorate 143(g_tTex3du4) DescriptorSet 0
- Decorate 146(g_tTexcdf4) DescriptorSet 0
- Decorate 149(g_tTexcdi4) DescriptorSet 0
- Decorate 152(g_tTexcdu4) DescriptorSet 0
- Decorate 155(g_tTexcdf4a) DescriptorSet 0
- Decorate 158(g_tTexcdi4a) DescriptorSet 0
- Decorate 161(g_tTexcdu4a) DescriptorSet 0
+ Decorate 36(g_tTex1di4a) DescriptorSet 0
+ Decorate 51(g_tTex1du4a) DescriptorSet 0
+ Decorate 65(g_tTex2df4a) DescriptorSet 0
+ Decorate 86(g_tTex2di4a) DescriptorSet 0
+ Decorate 101(g_tTex2du4a) DescriptorSet 0
+ Decorate 124(Color) Location 0
+ Decorate 128(Depth) BuiltIn FragDepth
+ Decorate 134(g_tTex1df4) DescriptorSet 0
+ Decorate 134(g_tTex1df4) Binding 0
+ Decorate 137(g_tTex1di4) DescriptorSet 0
+ Decorate 140(g_tTex1du4) DescriptorSet 0
+ Decorate 143(g_tTex2df4) DescriptorSet 0
+ Decorate 146(g_tTex2di4) DescriptorSet 0
+ Decorate 149(g_tTex2du4) DescriptorSet 0
+ Decorate 152(g_tTex3df4) DescriptorSet 0
+ Decorate 155(g_tTex3di4) DescriptorSet 0
+ Decorate 158(g_tTex3du4) DescriptorSet 0
+ Decorate 161(g_tTexcdf4) DescriptorSet 0
+ Decorate 164(g_tTexcdi4) DescriptorSet 0
+ Decorate 167(g_tTexcdu4) DescriptorSet 0
+ Decorate 170(g_tTexcdf4a) DescriptorSet 0
+ Decorate 173(g_tTexcdi4a) DescriptorSet 0
+ Decorate 176(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -412,157 +412,172 @@ gl_FragCoord origin is upper left
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
- 108: TypePointer Output 97(fvec4)
- 109(Color): 108(ptr) Variable Output
- 112: TypePointer Output 6(float)
- 113(Depth): 112(ptr) Variable Output
- 117: TypeImage 6(float) 1D sampled format:Unknown
- 118: TypePointer UniformConstant 117
- 119(g_tTex1df4): 118(ptr) Variable UniformConstant
- 120: TypeImage 26(int) 1D sampled format:Unknown
- 121: TypePointer UniformConstant 120
- 122(g_tTex1di4): 121(ptr) Variable UniformConstant
- 123: TypeImage 43(int) 1D sampled format:Unknown
- 124: TypePointer UniformConstant 123
- 125(g_tTex1du4): 124(ptr) Variable UniformConstant
- 126: TypeImage 6(float) 2D sampled format:Unknown
- 127: TypePointer UniformConstant 126
- 128(g_tTex2df4): 127(ptr) Variable UniformConstant
- 129: TypeImage 26(int) 2D sampled format:Unknown
- 130: TypePointer UniformConstant 129
- 131(g_tTex2di4): 130(ptr) Variable UniformConstant
- 132: TypeImage 43(int) 2D sampled format:Unknown
+ 25: TypeVector 6(float) 3
+ 29: TypeInt 32 1
+ 30: 29(int) Constant 2
+ 34: TypeImage 29(int) 1D array sampled format:Unknown
+ 35: TypePointer UniformConstant 34
+ 36(g_tTex1di4a): 35(ptr) Variable UniformConstant
+ 39: TypeImage 29(int) 1D depth array sampled format:Unknown
+ 40: TypeSampledImage 39
+ 48: TypeInt 32 0
+ 49: TypeImage 48(int) 1D array sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex1du4a): 50(ptr) Variable UniformConstant
+ 54: TypeImage 48(int) 1D depth array sampled format:Unknown
+ 55: TypeSampledImage 54
+ 63: TypeImage 6(float) 2D array sampled format:Unknown
+ 64: TypePointer UniformConstant 63
+ 65(g_tTex2df4a): 64(ptr) Variable UniformConstant
+ 68: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 69: TypeSampledImage 68
+ 71: 6(float) Constant 1050253722
+ 72: 25(fvec3) ConstantComposite 21 22 71
+ 73: TypeVector 6(float) 4
+ 78: TypeVector 29(int) 2
+ 79: 29(int) Constant 3
+ 80: 78(ivec2) ConstantComposite 30 79
+ 84: TypeImage 29(int) 2D array sampled format:Unknown
+ 85: TypePointer UniformConstant 84
+ 86(g_tTex2di4a): 85(ptr) Variable UniformConstant
+ 89: TypeImage 29(int) 2D depth array sampled format:Unknown
+ 90: TypeSampledImage 89
+ 99: TypeImage 48(int) 2D array sampled format:Unknown
+ 100: TypePointer UniformConstant 99
+101(g_tTex2du4a): 100(ptr) Variable UniformConstant
+ 104: TypeImage 48(int) 2D depth array sampled format:Unknown
+ 105: TypeSampledImage 104
+ 113(PS_OUTPUT): TypeStruct 73(fvec4) 6(float)
+ 114: TypePointer Function 113(PS_OUTPUT)
+ 116: 29(int) Constant 0
+ 117: 6(float) Constant 1065353216
+ 118: 73(fvec4) ConstantComposite 117 117 117 117
+ 119: TypePointer Function 73(fvec4)
+ 121: 29(int) Constant 1
+ 123: TypePointer Output 73(fvec4)
+ 124(Color): 123(ptr) Variable Output
+ 127: TypePointer Output 6(float)
+ 128(Depth): 127(ptr) Variable Output
+ 132: TypeImage 6(float) 1D sampled format:Unknown
133: TypePointer UniformConstant 132
- 134(g_tTex2du4): 133(ptr) Variable UniformConstant
- 135: TypeImage 6(float) 3D sampled format:Unknown
+ 134(g_tTex1df4): 133(ptr) Variable UniformConstant
+ 135: TypeImage 29(int) 1D sampled format:Unknown
136: TypePointer UniformConstant 135
- 137(g_tTex3df4): 136(ptr) Variable UniformConstant
- 138: TypeImage 26(int) 3D sampled format:Unknown
+ 137(g_tTex1di4): 136(ptr) Variable UniformConstant
+ 138: TypeImage 48(int) 1D sampled format:Unknown
139: TypePointer UniformConstant 138
- 140(g_tTex3di4): 139(ptr) Variable UniformConstant
- 141: TypeImage 43(int) 3D sampled format:Unknown
+ 140(g_tTex1du4): 139(ptr) Variable UniformConstant
+ 141: TypeImage 6(float) 2D sampled format:Unknown
142: TypePointer UniformConstant 141
- 143(g_tTex3du4): 142(ptr) Variable UniformConstant
- 144: TypeImage 6(float) Cube sampled format:Unknown
+ 143(g_tTex2df4): 142(ptr) Variable UniformConstant
+ 144: TypeImage 29(int) 2D sampled format:Unknown
145: TypePointer UniformConstant 144
- 146(g_tTexcdf4): 145(ptr) Variable UniformConstant
- 147: TypeImage 26(int) Cube sampled format:Unknown
+ 146(g_tTex2di4): 145(ptr) Variable UniformConstant
+ 147: TypeImage 48(int) 2D sampled format:Unknown
148: TypePointer UniformConstant 147
- 149(g_tTexcdi4): 148(ptr) Variable UniformConstant
- 150: TypeImage 43(int) Cube sampled format:Unknown
+ 149(g_tTex2du4): 148(ptr) Variable UniformConstant
+ 150: TypeImage 6(float) 3D sampled format:Unknown
151: TypePointer UniformConstant 150
- 152(g_tTexcdu4): 151(ptr) Variable UniformConstant
- 153: TypeImage 6(float) Cube array sampled format:Unknown
+ 152(g_tTex3df4): 151(ptr) Variable UniformConstant
+ 153: TypeImage 29(int) 3D sampled format:Unknown
154: TypePointer UniformConstant 153
-155(g_tTexcdf4a): 154(ptr) Variable UniformConstant
- 156: TypeImage 26(int) Cube array sampled format:Unknown
+ 155(g_tTex3di4): 154(ptr) Variable UniformConstant
+ 156: TypeImage 48(int) 3D sampled format:Unknown
157: TypePointer UniformConstant 156
-158(g_tTexcdi4a): 157(ptr) Variable UniformConstant
- 159: TypeImage 43(int) Cube array sampled format:Unknown
+ 158(g_tTex3du4): 157(ptr) Variable UniformConstant
+ 159: TypeImage 6(float) Cube sampled format:Unknown
160: TypePointer UniformConstant 159
-161(g_tTexcdu4a): 160(ptr) Variable UniformConstant
+ 161(g_tTexcdf4): 160(ptr) Variable UniformConstant
+ 162: TypeImage 29(int) Cube sampled format:Unknown
+ 163: TypePointer UniformConstant 162
+ 164(g_tTexcdi4): 163(ptr) Variable UniformConstant
+ 165: TypeImage 48(int) Cube sampled format:Unknown
+ 166: TypePointer UniformConstant 165
+ 167(g_tTexcdu4): 166(ptr) Variable UniformConstant
+ 168: TypeImage 6(float) Cube array sampled format:Unknown
+ 169: TypePointer UniformConstant 168
+170(g_tTexcdf4a): 169(ptr) Variable UniformConstant
+ 171: TypeImage 29(int) Cube array sampled format:Unknown
+ 172: TypePointer UniformConstant 171
+173(g_tTexcdi4a): 172(ptr) Variable UniformConstant
+ 174: TypeImage 48(int) Cube array sampled format:Unknown
+ 175: TypePointer UniformConstant 174
+176(g_tTexcdu4a): 175(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
+ 33(r13): 7(ptr) Variable Function
+ 47(r15): 7(ptr) Variable Function
+ 62(r31): 7(ptr) Variable Function
+ 83(r33): 7(ptr) Variable Function
+ 98(r35): 7(ptr) Variable Function
+ 115(psout): 114(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
- 110: 104(ptr) AccessChain 100(psout) 101
- 111: 97(fvec4) Load 110
- Store 109(Color) 111
- 114: 7(ptr) AccessChain 100(psout) 106
- 115: 6(float) Load 114
- Store 113(Depth) 115
+ 26: 6(float) CompositeExtract 23 0
+ 27: 6(float) CompositeExtract 23 1
+ 28: 25(fvec3) CompositeConstruct 26 27 24
+ 31: 6(float) CompositeExtract 28 2
+ 32: 6(float) ImageSampleDrefImplicitLod 19 28 31 ConstOffset 30
+ Store 8(r11) 32
+ 37: 34 Load 36(g_tTex1di4a)
+ 38: 13 Load 15(g_sSamp)
+ 41: 40 SampledImage 37 38
+ 42: 6(float) CompositeExtract 23 0
+ 43: 6(float) CompositeExtract 23 1
+ 44: 25(fvec3) CompositeConstruct 42 43 24
+ 45: 6(float) CompositeExtract 44 2
+ 46: 6(float) ImageSampleDrefImplicitLod 41 44 45 ConstOffset 30
+ Store 33(r13) 46
+ 52: 49 Load 51(g_tTex1du4a)
+ 53: 13 Load 15(g_sSamp)
+ 56: 55 SampledImage 52 53
+ 57: 6(float) CompositeExtract 23 0
+ 58: 6(float) CompositeExtract 23 1
+ 59: 25(fvec3) CompositeConstruct 57 58 24
+ 60: 6(float) CompositeExtract 59 2
+ 61: 6(float) ImageSampleDrefImplicitLod 56 59 60 ConstOffset 30
+ Store 47(r15) 61
+ 66: 63 Load 65(g_tTex2df4a)
+ 67: 13 Load 15(g_sSamp)
+ 70: 69 SampledImage 66 67
+ 74: 6(float) CompositeExtract 72 0
+ 75: 6(float) CompositeExtract 72 1
+ 76: 6(float) CompositeExtract 72 2
+ 77: 73(fvec4) CompositeConstruct 74 75 76 24
+ 81: 6(float) CompositeExtract 77 3
+ 82: 6(float) ImageSampleDrefImplicitLod 70 77 81 ConstOffset 80
+ Store 62(r31) 82
+ 87: 84 Load 86(g_tTex2di4a)
+ 88: 13 Load 15(g_sSamp)
+ 91: 90 SampledImage 87 88
+ 92: 6(float) CompositeExtract 72 0
+ 93: 6(float) CompositeExtract 72 1
+ 94: 6(float) CompositeExtract 72 2
+ 95: 73(fvec4) CompositeConstruct 92 93 94 24
+ 96: 6(float) CompositeExtract 95 3
+ 97: 6(float) ImageSampleDrefImplicitLod 91 95 96 ConstOffset 80
+ Store 83(r33) 97
+ 102: 99 Load 101(g_tTex2du4a)
+ 103: 13 Load 15(g_sSamp)
+ 106: 105 SampledImage 102 103
+ 107: 6(float) CompositeExtract 72 0
+ 108: 6(float) CompositeExtract 72 1
+ 109: 6(float) CompositeExtract 72 2
+ 110: 73(fvec4) CompositeConstruct 107 108 109 24
+ 111: 6(float) CompositeExtract 110 3
+ 112: 6(float) ImageSampleDrefImplicitLod 106 110 111 ConstOffset 80
+ Store 98(r35) 112
+ 120: 119(ptr) AccessChain 115(psout) 116
+ Store 120 118
+ 122: 7(ptr) AccessChain 115(psout) 121
+ Store 122 117
+ 125: 119(ptr) AccessChain 115(psout) 116
+ 126: 73(fvec4) Load 125
+ Store 124(Color) 126
+ 129: 7(ptr) AccessChain 115(psout) 121
+ 130: 6(float) Load 129
+ Store 128(Depth) 130
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
index c5009ff3..29e02cd9 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -23,11 +23,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -38,11 +38,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -53,11 +53,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -69,11 +69,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -85,11 +85,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -101,11 +101,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:52 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -118,11 +118,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -135,11 +135,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -182,6 +182,8 @@ gl_FragCoord origin is upper left
0:59 1 (const int)
0:59 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -204,8 +206,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -220,11 +220,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -235,11 +235,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -250,11 +250,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -265,11 +265,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -281,11 +281,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -297,11 +297,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -313,11 +313,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:52 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -330,11 +330,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -347,11 +347,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -394,6 +394,8 @@ gl_FragCoord origin is upper left
0:59 1 (const int)
0:59 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -416,84 +418,82 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 185
+// Id's are bound by 212
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 141 145
+ EntryPoint Fragment 4 "main" 168 172
ExecutionMode 4 OriginUpperLeft
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 141 "Color"
- Name 145 "Depth"
- Name 151 "g_tTex1df4"
- Name 154 "g_tTex1di4"
- Name 157 "g_tTex1du4"
- Name 160 "g_tTex2df4"
- Name 163 "g_tTex2di4"
- Name 166 "g_tTex2du4"
- Name 169 "g_tTex3df4"
- Name 172 "g_tTex3di4"
- Name 175 "g_tTex3du4"
- Name 178 "g_tTexcdf4"
- Name 181 "g_tTexcdi4"
- Name 184 "g_tTexcdu4"
+ Name 32 "r12"
+ Name 36 "g_tTex1di4a"
+ Name 47 "r14"
+ Name 51 "g_tTex1du4a"
+ Name 62 "r30"
+ Name 65 "g_tTex2df4a"
+ Name 80 "r32"
+ Name 83 "g_tTex2di4a"
+ Name 95 "r34"
+ Name 98 "g_tTex2du4a"
+ Name 110 "r60"
+ Name 113 "g_tTexcdf4a"
+ Name 127 "r62"
+ Name 130 "g_tTexcdi4a"
+ Name 142 "r64"
+ Name 145 "g_tTexcdu4a"
+ Name 157 "PS_OUTPUT"
+ MemberName 157(PS_OUTPUT) 0 "Color"
+ MemberName 157(PS_OUTPUT) 1 "Depth"
+ Name 159 "psout"
+ Name 168 "Color"
+ Name 172 "Depth"
+ Name 178 "g_tTex1df4"
+ Name 181 "g_tTex1di4"
+ Name 184 "g_tTex1du4"
+ Name 187 "g_tTex2df4"
+ Name 190 "g_tTex2di4"
+ Name 193 "g_tTex2du4"
+ Name 196 "g_tTex3df4"
+ Name 199 "g_tTex3di4"
+ Name 202 "g_tTex3du4"
+ Name 205 "g_tTexcdf4"
+ Name 208 "g_tTexcdi4"
+ Name 211 "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
- Decorate 141(Color) Location 0
- Decorate 145(Depth) BuiltIn FragDepth
- Decorate 151(g_tTex1df4) DescriptorSet 0
- Decorate 151(g_tTex1df4) Binding 0
- Decorate 154(g_tTex1di4) DescriptorSet 0
- Decorate 157(g_tTex1du4) DescriptorSet 0
- Decorate 160(g_tTex2df4) DescriptorSet 0
- Decorate 163(g_tTex2di4) DescriptorSet 0
- Decorate 166(g_tTex2du4) DescriptorSet 0
- Decorate 169(g_tTex3df4) DescriptorSet 0
- Decorate 172(g_tTex3di4) DescriptorSet 0
- Decorate 175(g_tTex3du4) DescriptorSet 0
- Decorate 178(g_tTexcdf4) DescriptorSet 0
- Decorate 181(g_tTexcdi4) DescriptorSet 0
- Decorate 184(g_tTexcdu4) DescriptorSet 0
+ Decorate 36(g_tTex1di4a) DescriptorSet 0
+ Decorate 51(g_tTex1du4a) DescriptorSet 0
+ Decorate 65(g_tTex2df4a) DescriptorSet 0
+ Decorate 83(g_tTex2di4a) DescriptorSet 0
+ Decorate 98(g_tTex2du4a) DescriptorSet 0
+ Decorate 113(g_tTexcdf4a) DescriptorSet 0
+ Decorate 130(g_tTexcdi4a) DescriptorSet 0
+ Decorate 145(g_tTexcdu4a) DescriptorSet 0
+ Decorate 168(Color) Location 0
+ Decorate 172(Depth) BuiltIn FragDepth
+ Decorate 178(g_tTex1df4) DescriptorSet 0
+ Decorate 178(g_tTex1df4) Binding 0
+ Decorate 181(g_tTex1di4) DescriptorSet 0
+ Decorate 184(g_tTex1du4) DescriptorSet 0
+ Decorate 187(g_tTex2df4) DescriptorSet 0
+ Decorate 190(g_tTex2di4) DescriptorSet 0
+ Decorate 193(g_tTex2du4) DescriptorSet 0
+ Decorate 196(g_tTex3df4) DescriptorSet 0
+ Decorate 199(g_tTex3di4) DescriptorSet 0
+ Decorate 202(g_tTex3du4) DescriptorSet 0
+ Decorate 205(g_tTexcdf4) DescriptorSet 0
+ Decorate 208(g_tTexcdi4) DescriptorSet 0
+ Decorate 211(g_tTexcdu4) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -511,183 +511,210 @@ gl_FragCoord origin is upper left
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
- 140: TypePointer Output 103(fvec4)
- 141(Color): 140(ptr) Variable Output
- 144: TypePointer Output 6(float)
- 145(Depth): 144(ptr) Variable Output
- 149: TypeImage 6(float) 1D sampled format:Unknown
- 150: TypePointer UniformConstant 149
- 151(g_tTex1df4): 150(ptr) Variable UniformConstant
- 152: TypeImage 30(int) 1D sampled format:Unknown
- 153: TypePointer UniformConstant 152
- 154(g_tTex1di4): 153(ptr) Variable UniformConstant
- 155: TypeImage 43(int) 1D sampled format:Unknown
- 156: TypePointer UniformConstant 155
- 157(g_tTex1du4): 156(ptr) Variable UniformConstant
- 158: TypeImage 6(float) 2D sampled format:Unknown
- 159: TypePointer UniformConstant 158
- 160(g_tTex2df4): 159(ptr) Variable UniformConstant
- 161: TypeImage 30(int) 2D sampled format:Unknown
- 162: TypePointer UniformConstant 161
- 163(g_tTex2di4): 162(ptr) Variable UniformConstant
- 164: TypeImage 43(int) 2D sampled format:Unknown
- 165: TypePointer UniformConstant 164
- 166(g_tTex2du4): 165(ptr) Variable UniformConstant
- 167: TypeImage 6(float) 3D sampled format:Unknown
- 168: TypePointer UniformConstant 167
- 169(g_tTex3df4): 168(ptr) Variable UniformConstant
- 170: TypeImage 30(int) 3D sampled format:Unknown
- 171: TypePointer UniformConstant 170
- 172(g_tTex3di4): 171(ptr) Variable UniformConstant
- 173: TypeImage 43(int) 3D sampled format:Unknown
- 174: TypePointer UniformConstant 173
- 175(g_tTex3du4): 174(ptr) Variable UniformConstant
- 176: TypeImage 6(float) Cube sampled format:Unknown
+ 25: TypeVector 6(float) 3
+ 29: 6(float) Constant 0
+ 33: TypeInt 32 1
+ 34: TypeImage 33(int) 1D array sampled format:Unknown
+ 35: TypePointer UniformConstant 34
+ 36(g_tTex1di4a): 35(ptr) Variable UniformConstant
+ 39: TypeImage 33(int) 1D depth array sampled format:Unknown
+ 40: TypeSampledImage 39
+ 48: TypeInt 32 0
+ 49: TypeImage 48(int) 1D array sampled format:Unknown
+ 50: TypePointer UniformConstant 49
+ 51(g_tTex1du4a): 50(ptr) Variable UniformConstant
+ 54: TypeImage 48(int) 1D depth array sampled format:Unknown
+ 55: TypeSampledImage 54
+ 63: TypeImage 6(float) 2D array sampled format:Unknown
+ 64: TypePointer UniformConstant 63
+ 65(g_tTex2df4a): 64(ptr) Variable UniformConstant
+ 68: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 69: TypeSampledImage 68
+ 71: 6(float) Constant 1050253722
+ 72: 25(fvec3) ConstantComposite 21 22 71
+ 73: TypeVector 6(float) 4
+ 81: TypeImage 33(int) 2D array sampled format:Unknown
+ 82: TypePointer UniformConstant 81
+ 83(g_tTex2di4a): 82(ptr) Variable UniformConstant
+ 86: TypeImage 33(int) 2D depth array sampled format:Unknown
+ 87: TypeSampledImage 86
+ 96: TypeImage 48(int) 2D array sampled format:Unknown
+ 97: TypePointer UniformConstant 96
+ 98(g_tTex2du4a): 97(ptr) Variable UniformConstant
+ 101: TypeImage 48(int) 2D depth array sampled format:Unknown
+ 102: TypeSampledImage 101
+ 111: TypeImage 6(float) Cube array sampled format:Unknown
+ 112: TypePointer UniformConstant 111
+113(g_tTexcdf4a): 112(ptr) Variable UniformConstant
+ 116: TypeImage 6(float) Cube depth array sampled format:Unknown
+ 117: TypeSampledImage 116
+ 119: 6(float) Constant 1053609165
+ 120: 73(fvec4) ConstantComposite 21 22 71 119
+ 128: TypeImage 33(int) Cube array sampled format:Unknown
+ 129: TypePointer UniformConstant 128
+130(g_tTexcdi4a): 129(ptr) Variable UniformConstant
+ 133: TypeImage 33(int) Cube depth array sampled format:Unknown
+ 134: TypeSampledImage 133
+ 143: TypeImage 48(int) Cube array sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+145(g_tTexcdu4a): 144(ptr) Variable UniformConstant
+ 148: TypeImage 48(int) Cube depth array sampled format:Unknown
+ 149: TypeSampledImage 148
+ 157(PS_OUTPUT): TypeStruct 73(fvec4) 6(float)
+ 158: TypePointer Function 157(PS_OUTPUT)
+ 160: 33(int) Constant 0
+ 161: 6(float) Constant 1065353216
+ 162: 73(fvec4) ConstantComposite 161 161 161 161
+ 163: TypePointer Function 73(fvec4)
+ 165: 33(int) Constant 1
+ 167: TypePointer Output 73(fvec4)
+ 168(Color): 167(ptr) Variable Output
+ 171: TypePointer Output 6(float)
+ 172(Depth): 171(ptr) Variable Output
+ 176: TypeImage 6(float) 1D sampled format:Unknown
177: TypePointer UniformConstant 176
- 178(g_tTexcdf4): 177(ptr) Variable UniformConstant
- 179: TypeImage 30(int) Cube sampled format:Unknown
+ 178(g_tTex1df4): 177(ptr) Variable UniformConstant
+ 179: TypeImage 33(int) 1D sampled format:Unknown
180: TypePointer UniformConstant 179
- 181(g_tTexcdi4): 180(ptr) Variable UniformConstant
- 182: TypeImage 43(int) Cube sampled format:Unknown
+ 181(g_tTex1di4): 180(ptr) Variable UniformConstant
+ 182: TypeImage 48(int) 1D sampled format:Unknown
183: TypePointer UniformConstant 182
- 184(g_tTexcdu4): 183(ptr) Variable UniformConstant
+ 184(g_tTex1du4): 183(ptr) Variable UniformConstant
+ 185: TypeImage 6(float) 2D sampled format:Unknown
+ 186: TypePointer UniformConstant 185
+ 187(g_tTex2df4): 186(ptr) Variable UniformConstant
+ 188: TypeImage 33(int) 2D sampled format:Unknown
+ 189: TypePointer UniformConstant 188
+ 190(g_tTex2di4): 189(ptr) Variable UniformConstant
+ 191: TypeImage 48(int) 2D sampled format:Unknown
+ 192: TypePointer UniformConstant 191
+ 193(g_tTex2du4): 192(ptr) Variable UniformConstant
+ 194: TypeImage 6(float) 3D sampled format:Unknown
+ 195: TypePointer UniformConstant 194
+ 196(g_tTex3df4): 195(ptr) Variable UniformConstant
+ 197: TypeImage 33(int) 3D sampled format:Unknown
+ 198: TypePointer UniformConstant 197
+ 199(g_tTex3di4): 198(ptr) Variable UniformConstant
+ 200: TypeImage 48(int) 3D sampled format:Unknown
+ 201: TypePointer UniformConstant 200
+ 202(g_tTex3du4): 201(ptr) Variable UniformConstant
+ 203: TypeImage 6(float) Cube sampled format:Unknown
+ 204: TypePointer UniformConstant 203
+ 205(g_tTexcdf4): 204(ptr) Variable UniformConstant
+ 206: TypeImage 33(int) Cube sampled format:Unknown
+ 207: TypePointer UniformConstant 206
+ 208(g_tTexcdi4): 207(ptr) Variable UniformConstant
+ 209: TypeImage 48(int) Cube sampled format:Unknown
+ 210: TypePointer UniformConstant 209
+ 211(g_tTexcdu4): 210(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
+ 32(r12): 7(ptr) Variable Function
+ 47(r14): 7(ptr) Variable Function
+ 62(r30): 7(ptr) Variable Function
+ 80(r32): 7(ptr) Variable Function
+ 95(r34): 7(ptr) Variable Function
+ 110(r60): 7(ptr) Variable Function
+ 127(r62): 7(ptr) Variable Function
+ 142(r64): 7(ptr) Variable Function
+ 159(psout): 158(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
- 142: 136(ptr) AccessChain 132(psout) 133
- 143: 103(fvec4) Load 142
- Store 141(Color) 143
- 146: 7(ptr) AccessChain 132(psout) 138
- 147: 6(float) Load 146
- Store 145(Depth) 147
+ 26: 6(float) CompositeExtract 23 0
+ 27: 6(float) CompositeExtract 23 1
+ 28: 25(fvec3) CompositeConstruct 26 27 24
+ 30: 6(float) CompositeExtract 28 2
+ 31: 6(float) ImageSampleDrefExplicitLod 19 28 30 Lod 29
+ Store 8(r10) 31
+ 37: 34 Load 36(g_tTex1di4a)
+ 38: 13 Load 15(g_sSamp)
+ 41: 40 SampledImage 37 38
+ 42: 6(float) CompositeExtract 23 0
+ 43: 6(float) CompositeExtract 23 1
+ 44: 25(fvec3) CompositeConstruct 42 43 24
+ 45: 6(float) CompositeExtract 44 2
+ 46: 6(float) ImageSampleDrefExplicitLod 41 44 45 Lod 29
+ Store 32(r12) 46
+ 52: 49 Load 51(g_tTex1du4a)
+ 53: 13 Load 15(g_sSamp)
+ 56: 55 SampledImage 52 53
+ 57: 6(float) CompositeExtract 23 0
+ 58: 6(float) CompositeExtract 23 1
+ 59: 25(fvec3) CompositeConstruct 57 58 24
+ 60: 6(float) CompositeExtract 59 2
+ 61: 6(float) ImageSampleDrefExplicitLod 56 59 60 Lod 29
+ Store 47(r14) 61
+ 66: 63 Load 65(g_tTex2df4a)
+ 67: 13 Load 15(g_sSamp)
+ 70: 69 SampledImage 66 67
+ 74: 6(float) CompositeExtract 72 0
+ 75: 6(float) CompositeExtract 72 1
+ 76: 6(float) CompositeExtract 72 2
+ 77: 73(fvec4) CompositeConstruct 74 75 76 24
+ 78: 6(float) CompositeExtract 77 3
+ 79: 6(float) ImageSampleDrefExplicitLod 70 77 78 Lod 29
+ Store 62(r30) 79
+ 84: 81 Load 83(g_tTex2di4a)
+ 85: 13 Load 15(g_sSamp)
+ 88: 87 SampledImage 84 85
+ 89: 6(float) CompositeExtract 72 0
+ 90: 6(float) CompositeExtract 72 1
+ 91: 6(float) CompositeExtract 72 2
+ 92: 73(fvec4) CompositeConstruct 89 90 91 24
+ 93: 6(float) CompositeExtract 92 3
+ 94: 6(float) ImageSampleDrefExplicitLod 88 92 93 Lod 29
+ Store 80(r32) 94
+ 99: 96 Load 98(g_tTex2du4a)
+ 100: 13 Load 15(g_sSamp)
+ 103: 102 SampledImage 99 100
+ 104: 6(float) CompositeExtract 72 0
+ 105: 6(float) CompositeExtract 72 1
+ 106: 6(float) CompositeExtract 72 2
+ 107: 73(fvec4) CompositeConstruct 104 105 106 24
+ 108: 6(float) CompositeExtract 107 3
+ 109: 6(float) ImageSampleDrefExplicitLod 103 107 108 Lod 29
+ Store 95(r34) 109
+ 114: 111 Load 113(g_tTexcdf4a)
+ 115: 13 Load 15(g_sSamp)
+ 118: 117 SampledImage 114 115
+ 121: 6(float) CompositeExtract 120 0
+ 122: 6(float) CompositeExtract 120 1
+ 123: 6(float) CompositeExtract 120 2
+ 124: 6(float) CompositeExtract 120 3
+ 125: 73(fvec4) CompositeConstruct 121 122 123 124
+ 126: 6(float) ImageSampleDrefExplicitLod 118 125 24 Lod 24
+ Store 110(r60) 126
+ 131: 128 Load 130(g_tTexcdi4a)
+ 132: 13 Load 15(g_sSamp)
+ 135: 134 SampledImage 131 132
+ 136: 6(float) CompositeExtract 120 0
+ 137: 6(float) CompositeExtract 120 1
+ 138: 6(float) CompositeExtract 120 2
+ 139: 6(float) CompositeExtract 120 3
+ 140: 73(fvec4) CompositeConstruct 136 137 138 139
+ 141: 6(float) ImageSampleDrefExplicitLod 135 140 24 Lod 24
+ Store 127(r62) 141
+ 146: 143 Load 145(g_tTexcdu4a)
+ 147: 13 Load 15(g_sSamp)
+ 150: 149 SampledImage 146 147
+ 151: 6(float) CompositeExtract 120 0
+ 152: 6(float) CompositeExtract 120 1
+ 153: 6(float) CompositeExtract 120 2
+ 154: 6(float) CompositeExtract 120 3
+ 155: 73(fvec4) CompositeConstruct 151 152 153 154
+ 156: 6(float) ImageSampleDrefExplicitLod 150 155 24 Lod 24
+ Store 142(r64) 156
+ 164: 163(ptr) AccessChain 159(psout) 160
+ Store 164 162
+ 166: 7(ptr) AccessChain 159(psout) 165
+ Store 166 161
+ 169: 163(ptr) AccessChain 159(psout) 160
+ 170: 73(fvec4) Load 169
+ Store 168(Color) 170
+ 173: 7(ptr) AccessChain 159(psout) 165
+ 174: 6(float) Load 173
+ Store 172(Depth) 174
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
index b8f55b8e..de822764 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -22,11 +22,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -36,11 +36,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -50,11 +50,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -65,11 +65,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -80,11 +80,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -95,11 +95,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -111,11 +111,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -127,11 +127,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:55 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -173,6 +173,8 @@ gl_FragCoord origin is upper left
0:60 1 (const int)
0:60 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -195,8 +197,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -211,11 +211,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -225,11 +225,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -239,11 +239,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -253,11 +253,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -268,11 +268,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -283,11 +283,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -298,11 +298,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:53 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -314,11 +314,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:54 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -330,11 +330,11 @@ gl_FragCoord origin is upper left
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 textureLod (temp 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:55 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -376,6 +376,8 @@ gl_FragCoord origin is upper left
0:60 1 (const int)
0:60 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -398,84 +400,82 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 183
+// Id's are bound by 201
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 139 143
+ EntryPoint Fragment 4 "main" 157 161
ExecutionMode 4 OriginUpperLeft
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 139 "Color"
- Name 143 "Depth"
- Name 149 "g_tTex3df4"
- Name 152 "g_tTex3di4"
- Name 155 "g_tTex3du4"
- Name 158 "g_tTex1df4a"
- Name 161 "g_tTex1di4a"
- Name 164 "g_tTex1du4a"
- Name 167 "g_tTex2df4a"
- Name 170 "g_tTex2di4a"
- Name 173 "g_tTex2du4a"
- Name 176 "g_tTexcdf4a"
- Name 179 "g_tTexcdi4a"
- Name 182 "g_tTexcdu4a"
+ Name 27 "r02"
+ Name 31 "g_tTex1di4"
+ Name 40 "r04"
+ Name 44 "g_tTex1du4"
+ Name 53 "r20"
+ Name 56 "g_tTex2df4"
+ Name 70 "r22"
+ Name 73 "g_tTex2di4"
+ Name 84 "r24"
+ Name 87 "g_tTex2du4"
+ Name 98 "r50"
+ Name 101 "g_tTexcdf4"
+ Name 116 "r52"
+ Name 119 "g_tTexcdi4"
+ Name 131 "r54"
+ Name 134 "g_tTexcdu4"
+ Name 146 "PS_OUTPUT"
+ MemberName 146(PS_OUTPUT) 0 "Color"
+ MemberName 146(PS_OUTPUT) 1 "Depth"
+ Name 148 "psout"
+ Name 157 "Color"
+ Name 161 "Depth"
+ Name 167 "g_tTex3df4"
+ Name 170 "g_tTex3di4"
+ Name 173 "g_tTex3du4"
+ Name 176 "g_tTex1df4a"
+ Name 179 "g_tTex1di4a"
+ Name 182 "g_tTex1du4a"
+ Name 185 "g_tTex2df4a"
+ Name 188 "g_tTex2di4a"
+ Name 191 "g_tTex2du4a"
+ Name 194 "g_tTexcdf4a"
+ Name 197 "g_tTexcdi4a"
+ Name 200 "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
- Decorate 139(Color) Location 0
- Decorate 143(Depth) BuiltIn FragDepth
- Decorate 149(g_tTex3df4) DescriptorSet 0
- Decorate 152(g_tTex3di4) DescriptorSet 0
- Decorate 155(g_tTex3du4) DescriptorSet 0
- Decorate 158(g_tTex1df4a) DescriptorSet 0
- Decorate 161(g_tTex1di4a) DescriptorSet 0
- Decorate 164(g_tTex1du4a) DescriptorSet 0
- Decorate 167(g_tTex2df4a) DescriptorSet 0
- Decorate 170(g_tTex2di4a) DescriptorSet 0
- Decorate 173(g_tTex2du4a) DescriptorSet 0
- Decorate 176(g_tTexcdf4a) DescriptorSet 0
- Decorate 179(g_tTexcdi4a) DescriptorSet 0
- Decorate 182(g_tTexcdu4a) DescriptorSet 0
+ Decorate 31(g_tTex1di4) DescriptorSet 0
+ Decorate 44(g_tTex1du4) DescriptorSet 0
+ Decorate 56(g_tTex2df4) DescriptorSet 0
+ Decorate 73(g_tTex2di4) DescriptorSet 0
+ Decorate 87(g_tTex2du4) DescriptorSet 0
+ Decorate 101(g_tTexcdf4) DescriptorSet 0
+ Decorate 119(g_tTexcdi4) DescriptorSet 0
+ Decorate 134(g_tTexcdu4) DescriptorSet 0
+ Decorate 157(Color) Location 0
+ Decorate 161(Depth) BuiltIn FragDepth
+ Decorate 167(g_tTex3df4) DescriptorSet 0
+ Decorate 170(g_tTex3di4) DescriptorSet 0
+ Decorate 173(g_tTex3du4) DescriptorSet 0
+ Decorate 176(g_tTex1df4a) DescriptorSet 0
+ Decorate 179(g_tTex1di4a) DescriptorSet 0
+ Decorate 182(g_tTex1du4a) DescriptorSet 0
+ Decorate 185(g_tTex2df4a) DescriptorSet 0
+ Decorate 188(g_tTex2di4a) DescriptorSet 0
+ Decorate 191(g_tTex2du4a) DescriptorSet 0
+ Decorate 194(g_tTexcdf4a) DescriptorSet 0
+ Decorate 197(g_tTexcdi4a) DescriptorSet 0
+ Decorate 200(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -490,184 +490,202 @@ gl_FragCoord origin is upper left
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
- 138: TypePointer Output 127(fvec4)
- 139(Color): 138(ptr) Variable Output
- 142: TypePointer Output 6(float)
- 143(Depth): 142(ptr) Variable Output
- 147: TypeImage 6(float) 3D sampled format:Unknown
- 148: TypePointer UniformConstant 147
- 149(g_tTex3df4): 148(ptr) Variable UniformConstant
- 150: TypeImage 26(int) 3D sampled format:Unknown
- 151: TypePointer UniformConstant 150
- 152(g_tTex3di4): 151(ptr) Variable UniformConstant
- 153: TypeImage 38(int) 3D sampled format:Unknown
- 154: TypePointer UniformConstant 153
- 155(g_tTex3du4): 154(ptr) Variable UniformConstant
- 156: TypeImage 6(float) 1D array sampled format:Unknown
- 157: TypePointer UniformConstant 156
-158(g_tTex1df4a): 157(ptr) Variable UniformConstant
- 159: TypeImage 26(int) 1D array sampled format:Unknown
- 160: TypePointer UniformConstant 159
-161(g_tTex1di4a): 160(ptr) Variable UniformConstant
- 162: TypeImage 38(int) 1D array sampled format:Unknown
- 163: TypePointer UniformConstant 162
-164(g_tTex1du4a): 163(ptr) Variable UniformConstant
- 165: TypeImage 6(float) 2D array sampled format:Unknown
+ 22: TypeVector 6(float) 2
+ 24: 6(float) Constant 0
+ 28: TypeInt 32 1
+ 29: TypeImage 28(int) 1D sampled format:Unknown
+ 30: TypePointer UniformConstant 29
+ 31(g_tTex1di4): 30(ptr) Variable UniformConstant
+ 34: TypeImage 28(int) 1D depth sampled format:Unknown
+ 35: TypeSampledImage 34
+ 41: TypeInt 32 0
+ 42: TypeImage 41(int) 1D sampled format:Unknown
+ 43: TypePointer UniformConstant 42
+ 44(g_tTex1du4): 43(ptr) Variable UniformConstant
+ 47: TypeImage 41(int) 1D depth sampled format:Unknown
+ 48: TypeSampledImage 47
+ 54: TypeImage 6(float) 2D sampled format:Unknown
+ 55: TypePointer UniformConstant 54
+ 56(g_tTex2df4): 55(ptr) Variable UniformConstant
+ 59: TypeImage 6(float) 2D depth sampled format:Unknown
+ 60: TypeSampledImage 59
+ 62: 6(float) Constant 1045220557
+ 63: 22(fvec2) ConstantComposite 20 62
+ 64: TypeVector 6(float) 3
+ 71: TypeImage 28(int) 2D sampled format:Unknown
+ 72: TypePointer UniformConstant 71
+ 73(g_tTex2di4): 72(ptr) Variable UniformConstant
+ 76: TypeImage 28(int) 2D depth sampled format:Unknown
+ 77: TypeSampledImage 76
+ 85: TypeImage 41(int) 2D sampled format:Unknown
+ 86: TypePointer UniformConstant 85
+ 87(g_tTex2du4): 86(ptr) Variable UniformConstant
+ 90: TypeImage 41(int) 2D depth sampled format:Unknown
+ 91: TypeSampledImage 90
+ 99: TypeImage 6(float) Cube sampled format:Unknown
+ 100: TypePointer UniformConstant 99
+ 101(g_tTexcdf4): 100(ptr) Variable UniformConstant
+ 104: TypeImage 6(float) Cube depth sampled format:Unknown
+ 105: TypeSampledImage 104
+ 107: 6(float) Constant 1050253722
+ 108: 64(fvec3) ConstantComposite 20 62 107
+ 109: TypeVector 6(float) 4
+ 117: TypeImage 28(int) Cube sampled format:Unknown
+ 118: TypePointer UniformConstant 117
+ 119(g_tTexcdi4): 118(ptr) Variable UniformConstant
+ 122: TypeImage 28(int) Cube depth sampled format:Unknown
+ 123: TypeSampledImage 122
+ 132: TypeImage 41(int) Cube sampled format:Unknown
+ 133: TypePointer UniformConstant 132
+ 134(g_tTexcdu4): 133(ptr) Variable UniformConstant
+ 137: TypeImage 41(int) Cube depth sampled format:Unknown
+ 138: TypeSampledImage 137
+ 146(PS_OUTPUT): TypeStruct 109(fvec4) 6(float)
+ 147: TypePointer Function 146(PS_OUTPUT)
+ 149: 28(int) Constant 0
+ 150: 6(float) Constant 1065353216
+ 151: 109(fvec4) ConstantComposite 150 150 150 150
+ 152: TypePointer Function 109(fvec4)
+ 154: 28(int) Constant 1
+ 156: TypePointer Output 109(fvec4)
+ 157(Color): 156(ptr) Variable Output
+ 160: TypePointer Output 6(float)
+ 161(Depth): 160(ptr) Variable Output
+ 165: TypeImage 6(float) 3D sampled format:Unknown
166: TypePointer UniformConstant 165
-167(g_tTex2df4a): 166(ptr) Variable UniformConstant
- 168: TypeImage 26(int) 2D array sampled format:Unknown
+ 167(g_tTex3df4): 166(ptr) Variable UniformConstant
+ 168: TypeImage 28(int) 3D sampled format:Unknown
169: TypePointer UniformConstant 168
-170(g_tTex2di4a): 169(ptr) Variable UniformConstant
- 171: TypeImage 38(int) 2D array sampled format:Unknown
+ 170(g_tTex3di4): 169(ptr) Variable UniformConstant
+ 171: TypeImage 41(int) 3D sampled format:Unknown
172: TypePointer UniformConstant 171
-173(g_tTex2du4a): 172(ptr) Variable UniformConstant
- 174: TypeImage 6(float) Cube array sampled format:Unknown
+ 173(g_tTex3du4): 172(ptr) Variable UniformConstant
+ 174: TypeImage 6(float) 1D array sampled format:Unknown
175: TypePointer UniformConstant 174
-176(g_tTexcdf4a): 175(ptr) Variable UniformConstant
- 177: TypeImage 26(int) Cube array sampled format:Unknown
+176(g_tTex1df4a): 175(ptr) Variable UniformConstant
+ 177: TypeImage 28(int) 1D array sampled format:Unknown
178: TypePointer UniformConstant 177
-179(g_tTexcdi4a): 178(ptr) Variable UniformConstant
- 180: TypeImage 38(int) Cube array sampled format:Unknown
+179(g_tTex1di4a): 178(ptr) Variable UniformConstant
+ 180: TypeImage 41(int) 1D array sampled format:Unknown
181: TypePointer UniformConstant 180
-182(g_tTexcdu4a): 181(ptr) Variable UniformConstant
+182(g_tTex1du4a): 181(ptr) Variable UniformConstant
+ 183: TypeImage 6(float) 2D array sampled format:Unknown
+ 184: TypePointer UniformConstant 183
+185(g_tTex2df4a): 184(ptr) Variable UniformConstant
+ 186: TypeImage 28(int) 2D array sampled format:Unknown
+ 187: TypePointer UniformConstant 186
+188(g_tTex2di4a): 187(ptr) Variable UniformConstant
+ 189: TypeImage 41(int) 2D array sampled format:Unknown
+ 190: TypePointer UniformConstant 189
+191(g_tTex2du4a): 190(ptr) Variable UniformConstant
+ 192: TypeImage 6(float) Cube array sampled format:Unknown
+ 193: TypePointer UniformConstant 192
+194(g_tTexcdf4a): 193(ptr) Variable UniformConstant
+ 195: TypeImage 28(int) Cube array sampled format:Unknown
+ 196: TypePointer UniformConstant 195
+197(g_tTexcdi4a): 196(ptr) Variable UniformConstant
+ 198: TypeImage 41(int) Cube array sampled format:Unknown
+ 199: TypePointer UniformConstant 198
+200(g_tTexcdu4a): 199(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
+ 27(r02): 7(ptr) Variable Function
+ 40(r04): 7(ptr) Variable Function
+ 53(r20): 7(ptr) Variable Function
+ 70(r22): 7(ptr) Variable Function
+ 84(r24): 7(ptr) Variable Function
+ 98(r50): 7(ptr) Variable Function
+ 116(r52): 7(ptr) Variable Function
+ 131(r54): 7(ptr) Variable Function
+ 148(psout): 147(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
- 140: 134(ptr) AccessChain 130(psout) 131
- 141: 127(fvec4) Load 140
- Store 139(Color) 141
- 144: 7(ptr) AccessChain 130(psout) 136
- 145: 6(float) Load 144
- Store 143(Depth) 145
+ 23: 22(fvec2) CompositeConstruct 20 21
+ 25: 6(float) CompositeExtract 23 1
+ 26: 6(float) ImageSampleDrefExplicitLod 19 23 25 Lod 24
+ Store 8(r00) 26
+ 32: 29 Load 31(g_tTex1di4)
+ 33: 13 Load 15(g_sSamp)
+ 36: 35 SampledImage 32 33
+ 37: 22(fvec2) CompositeConstruct 20 21
+ 38: 6(float) CompositeExtract 37 1
+ 39: 6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 24
+ Store 27(r02) 39
+ 45: 42 Load 44(g_tTex1du4)
+ 46: 13 Load 15(g_sSamp)
+ 49: 48 SampledImage 45 46
+ 50: 22(fvec2) CompositeConstruct 20 21
+ 51: 6(float) CompositeExtract 50 1
+ 52: 6(float) ImageSampleDrefExplicitLod 49 50 51 Lod 24
+ Store 40(r04) 52
+ 57: 54 Load 56(g_tTex2df4)
+ 58: 13 Load 15(g_sSamp)
+ 61: 60 SampledImage 57 58
+ 65: 6(float) CompositeExtract 63 0
+ 66: 6(float) CompositeExtract 63 1
+ 67: 64(fvec3) CompositeConstruct 65 66 21
+ 68: 6(float) CompositeExtract 67 2
+ 69: 6(float) ImageSampleDrefExplicitLod 61 67 68 Lod 24
+ Store 53(r20) 69
+ 74: 71 Load 73(g_tTex2di4)
+ 75: 13 Load 15(g_sSamp)
+ 78: 77 SampledImage 74 75
+ 79: 6(float) CompositeExtract 63 0
+ 80: 6(float) CompositeExtract 63 1
+ 81: 64(fvec3) CompositeConstruct 79 80 21
+ 82: 6(float) CompositeExtract 81 2
+ 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 24
+ Store 70(r22) 83
+ 88: 85 Load 87(g_tTex2du4)
+ 89: 13 Load 15(g_sSamp)
+ 92: 91 SampledImage 88 89
+ 93: 6(float) CompositeExtract 63 0
+ 94: 6(float) CompositeExtract 63 1
+ 95: 64(fvec3) CompositeConstruct 93 94 21
+ 96: 6(float) CompositeExtract 95 2
+ 97: 6(float) ImageSampleDrefExplicitLod 92 95 96 Lod 24
+ Store 84(r24) 97
+ 102: 99 Load 101(g_tTexcdf4)
+ 103: 13 Load 15(g_sSamp)
+ 106: 105 SampledImage 102 103
+ 110: 6(float) CompositeExtract 108 0
+ 111: 6(float) CompositeExtract 108 1
+ 112: 6(float) CompositeExtract 108 2
+ 113: 109(fvec4) CompositeConstruct 110 111 112 21
+ 114: 6(float) CompositeExtract 113 3
+ 115: 6(float) ImageSampleDrefExplicitLod 106 113 114 Lod 24
+ Store 98(r50) 115
+ 120: 117 Load 119(g_tTexcdi4)
+ 121: 13 Load 15(g_sSamp)
+ 124: 123 SampledImage 120 121
+ 125: 6(float) CompositeExtract 108 0
+ 126: 6(float) CompositeExtract 108 1
+ 127: 6(float) CompositeExtract 108 2
+ 128: 109(fvec4) CompositeConstruct 125 126 127 21
+ 129: 6(float) CompositeExtract 128 3
+ 130: 6(float) ImageSampleDrefExplicitLod 124 128 129 Lod 24
+ Store 116(r52) 130
+ 135: 132 Load 134(g_tTexcdu4)
+ 136: 13 Load 15(g_sSamp)
+ 139: 138 SampledImage 135 136
+ 140: 6(float) CompositeExtract 108 0
+ 141: 6(float) CompositeExtract 108 1
+ 142: 6(float) CompositeExtract 108 2
+ 143: 109(fvec4) CompositeConstruct 140 141 142 21
+ 144: 6(float) CompositeExtract 143 3
+ 145: 6(float) ImageSampleDrefExplicitLod 139 143 144 Lod 24
+ Store 131(r54) 145
+ 153: 152(ptr) AccessChain 148(psout) 149
+ Store 153 151
+ 155: 7(ptr) AccessChain 148(psout) 154
+ Store 155 150
+ 158: 152(ptr) AccessChain 148(psout) 149
+ 159: 109(fvec4) Load 158
+ Store 157(Color) 159
+ 162: 7(ptr) AccessChain 148(psout) 154
+ 163: 6(float) Load 162
+ Store 161(Depth) 163
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
index b30a252e..216ed419 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -24,11 +24,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -40,11 +40,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -56,11 +56,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -74,11 +74,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -92,11 +92,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -140,6 +140,8 @@ gl_FragCoord origin is upper left
0:65 1 (const int)
0:65 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -162,8 +164,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -178,11 +178,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:42 Constant:
0:42 0.100000
0:42 Constant:
@@ -194,11 +194,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:43 Constant:
0:43 0.100000
0:43 Constant:
@@ -210,11 +210,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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 Construct vec2 (temp 2-component vector of float)
0:44 Constant:
0:44 0.100000
0:44 Constant:
@@ -226,11 +226,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:47 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -244,11 +244,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:48 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -262,11 +262,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:49 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -310,6 +310,8 @@ gl_FragCoord origin is upper left
0:65 1 (const int)
0:65 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -332,81 +334,79 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 157
+// Id's are bound by 167
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 104 108
+ EntryPoint Fragment 4 "main" 114 118
ExecutionMode 4 OriginUpperLeft
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 104 "Color"
- Name 108 "Depth"
- Name 114 "g_tTex3df4"
- Name 117 "g_tTex3di4"
- Name 120 "g_tTex3du4"
- Name 123 "g_tTexcdf4"
- Name 126 "g_tTexcdi4"
- Name 129 "g_tTexcdu4"
- Name 132 "g_tTex1df4a"
- Name 135 "g_tTex1di4a"
- Name 138 "g_tTex1du4a"
- Name 141 "g_tTex2df4a"
- Name 144 "g_tTex2di4a"
- Name 147 "g_tTex2du4a"
- Name 150 "g_tTexcdf4a"
- Name 153 "g_tTexcdi4a"
- Name 156 "g_tTexcdu4a"
+ Name 29 "r03"
+ Name 32 "g_tTex1di4"
+ Name 41 "r05"
+ Name 45 "g_tTex1du4"
+ Name 54 "r21"
+ Name 57 "g_tTex2df4"
+ Name 74 "r23"
+ Name 77 "g_tTex2di4"
+ Name 88 "r25"
+ Name 91 "g_tTex2du4"
+ Name 103 "PS_OUTPUT"
+ MemberName 103(PS_OUTPUT) 0 "Color"
+ MemberName 103(PS_OUTPUT) 1 "Depth"
+ Name 105 "psout"
+ Name 114 "Color"
+ Name 118 "Depth"
+ Name 124 "g_tTex3df4"
+ Name 127 "g_tTex3di4"
+ Name 130 "g_tTex3du4"
+ Name 133 "g_tTexcdf4"
+ Name 136 "g_tTexcdi4"
+ Name 139 "g_tTexcdu4"
+ Name 142 "g_tTex1df4a"
+ Name 145 "g_tTex1di4a"
+ Name 148 "g_tTex1du4a"
+ Name 151 "g_tTex2df4a"
+ Name 154 "g_tTex2di4a"
+ Name 157 "g_tTex2du4a"
+ Name 160 "g_tTexcdf4a"
+ Name 163 "g_tTexcdi4a"
+ Name 166 "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
- Decorate 104(Color) Location 0
- Decorate 108(Depth) BuiltIn FragDepth
- Decorate 114(g_tTex3df4) DescriptorSet 0
- Decorate 117(g_tTex3di4) DescriptorSet 0
- Decorate 120(g_tTex3du4) DescriptorSet 0
- Decorate 123(g_tTexcdf4) DescriptorSet 0
- Decorate 126(g_tTexcdi4) DescriptorSet 0
- Decorate 129(g_tTexcdu4) DescriptorSet 0
- Decorate 132(g_tTex1df4a) DescriptorSet 0
- Decorate 135(g_tTex1di4a) DescriptorSet 0
- Decorate 138(g_tTex1du4a) DescriptorSet 0
- Decorate 141(g_tTex2df4a) DescriptorSet 0
- Decorate 144(g_tTex2di4a) DescriptorSet 0
- Decorate 147(g_tTex2du4a) DescriptorSet 0
- Decorate 150(g_tTexcdf4a) DescriptorSet 0
- Decorate 153(g_tTexcdi4a) DescriptorSet 0
- Decorate 156(g_tTexcdu4a) DescriptorSet 0
+ Decorate 32(g_tTex1di4) DescriptorSet 0
+ Decorate 45(g_tTex1du4) DescriptorSet 0
+ Decorate 57(g_tTex2df4) DescriptorSet 0
+ Decorate 77(g_tTex2di4) DescriptorSet 0
+ Decorate 91(g_tTex2du4) DescriptorSet 0
+ Decorate 114(Color) Location 0
+ Decorate 118(Depth) BuiltIn FragDepth
+ Decorate 124(g_tTex3df4) DescriptorSet 0
+ Decorate 127(g_tTex3di4) DescriptorSet 0
+ Decorate 130(g_tTex3du4) DescriptorSet 0
+ Decorate 133(g_tTexcdf4) DescriptorSet 0
+ Decorate 136(g_tTexcdi4) DescriptorSet 0
+ Decorate 139(g_tTexcdu4) DescriptorSet 0
+ Decorate 142(g_tTex1df4a) DescriptorSet 0
+ Decorate 145(g_tTex1di4a) DescriptorSet 0
+ Decorate 148(g_tTex1du4a) DescriptorSet 0
+ Decorate 151(g_tTex2df4a) DescriptorSet 0
+ Decorate 154(g_tTex2di4a) DescriptorSet 0
+ Decorate 157(g_tTex2du4a) DescriptorSet 0
+ Decorate 160(g_tTexcdf4a) DescriptorSet 0
+ Decorate 163(g_tTexcdi4a) DescriptorSet 0
+ Decorate 166(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -421,155 +421,165 @@ gl_FragCoord origin is upper left
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
- 103: TypePointer Output 92(fvec4)
- 104(Color): 103(ptr) Variable Output
- 107: TypePointer Output 6(float)
- 108(Depth): 107(ptr) Variable Output
- 112: TypeImage 6(float) 3D sampled format:Unknown
- 113: TypePointer UniformConstant 112
- 114(g_tTex3df4): 113(ptr) Variable UniformConstant
- 115: TypeImage 23(int) 3D sampled format:Unknown
- 116: TypePointer UniformConstant 115
- 117(g_tTex3di4): 116(ptr) Variable UniformConstant
- 118: TypeImage 39(int) 3D sampled format:Unknown
- 119: TypePointer UniformConstant 118
- 120(g_tTex3du4): 119(ptr) Variable UniformConstant
- 121: TypeImage 6(float) Cube sampled format:Unknown
- 122: TypePointer UniformConstant 121
- 123(g_tTexcdf4): 122(ptr) Variable UniformConstant
- 124: TypeImage 23(int) Cube sampled format:Unknown
- 125: TypePointer UniformConstant 124
- 126(g_tTexcdi4): 125(ptr) Variable UniformConstant
- 127: TypeImage 39(int) Cube sampled format:Unknown
- 128: TypePointer UniformConstant 127
- 129(g_tTexcdu4): 128(ptr) Variable UniformConstant
- 130: TypeImage 6(float) 1D array sampled format:Unknown
- 131: TypePointer UniformConstant 130
-132(g_tTex1df4a): 131(ptr) Variable UniformConstant
- 133: TypeImage 23(int) 1D array sampled format:Unknown
- 134: TypePointer UniformConstant 133
-135(g_tTex1di4a): 134(ptr) Variable UniformConstant
- 136: TypeImage 39(int) 1D array sampled format:Unknown
- 137: TypePointer UniformConstant 136
-138(g_tTex1du4a): 137(ptr) Variable UniformConstant
- 139: TypeImage 6(float) 2D array sampled format:Unknown
- 140: TypePointer UniformConstant 139
-141(g_tTex2df4a): 140(ptr) Variable UniformConstant
- 142: TypeImage 23(int) 2D array sampled format:Unknown
- 143: TypePointer UniformConstant 142
-144(g_tTex2di4a): 143(ptr) Variable UniformConstant
- 145: TypeImage 39(int) 2D array sampled format:Unknown
- 146: TypePointer UniformConstant 145
-147(g_tTex2du4a): 146(ptr) Variable UniformConstant
- 148: TypeImage 6(float) Cube array sampled format:Unknown
- 149: TypePointer UniformConstant 148
-150(g_tTexcdf4a): 149(ptr) Variable UniformConstant
- 151: TypeImage 23(int) Cube array sampled format:Unknown
- 152: TypePointer UniformConstant 151
-153(g_tTexcdi4a): 152(ptr) Variable UniformConstant
- 154: TypeImage 39(int) Cube array sampled format:Unknown
- 155: TypePointer UniformConstant 154
-156(g_tTexcdu4a): 155(ptr) Variable UniformConstant
+ 22: TypeVector 6(float) 2
+ 24: 6(float) Constant 0
+ 25: TypeInt 32 1
+ 26: 25(int) Constant 2
+ 30: TypeImage 25(int) 1D sampled format:Unknown
+ 31: TypePointer UniformConstant 30
+ 32(g_tTex1di4): 31(ptr) Variable UniformConstant
+ 35: TypeImage 25(int) 1D depth sampled format:Unknown
+ 36: TypeSampledImage 35
+ 42: TypeInt 32 0
+ 43: TypeImage 42(int) 1D sampled format:Unknown
+ 44: TypePointer UniformConstant 43
+ 45(g_tTex1du4): 44(ptr) Variable UniformConstant
+ 48: TypeImage 42(int) 1D depth sampled format:Unknown
+ 49: TypeSampledImage 48
+ 55: TypeImage 6(float) 2D sampled format:Unknown
+ 56: TypePointer UniformConstant 55
+ 57(g_tTex2df4): 56(ptr) Variable UniformConstant
+ 60: TypeImage 6(float) 2D depth sampled format:Unknown
+ 61: TypeSampledImage 60
+ 63: 6(float) Constant 1045220557
+ 64: 22(fvec2) ConstantComposite 20 63
+ 65: TypeVector 6(float) 3
+ 69: TypeVector 25(int) 2
+ 70: 25(int) Constant 3
+ 71: 69(ivec2) ConstantComposite 26 70
+ 75: TypeImage 25(int) 2D sampled format:Unknown
+ 76: TypePointer UniformConstant 75
+ 77(g_tTex2di4): 76(ptr) Variable UniformConstant
+ 80: TypeImage 25(int) 2D depth sampled format:Unknown
+ 81: TypeSampledImage 80
+ 89: TypeImage 42(int) 2D sampled format:Unknown
+ 90: TypePointer UniformConstant 89
+ 91(g_tTex2du4): 90(ptr) Variable UniformConstant
+ 94: TypeImage 42(int) 2D depth sampled format:Unknown
+ 95: TypeSampledImage 94
+ 102: TypeVector 6(float) 4
+ 103(PS_OUTPUT): TypeStruct 102(fvec4) 6(float)
+ 104: TypePointer Function 103(PS_OUTPUT)
+ 106: 25(int) Constant 0
+ 107: 6(float) Constant 1065353216
+ 108: 102(fvec4) ConstantComposite 107 107 107 107
+ 109: TypePointer Function 102(fvec4)
+ 111: 25(int) Constant 1
+ 113: TypePointer Output 102(fvec4)
+ 114(Color): 113(ptr) Variable Output
+ 117: TypePointer Output 6(float)
+ 118(Depth): 117(ptr) Variable Output
+ 122: TypeImage 6(float) 3D sampled format:Unknown
+ 123: TypePointer UniformConstant 122
+ 124(g_tTex3df4): 123(ptr) Variable UniformConstant
+ 125: TypeImage 25(int) 3D sampled format:Unknown
+ 126: TypePointer UniformConstant 125
+ 127(g_tTex3di4): 126(ptr) Variable UniformConstant
+ 128: TypeImage 42(int) 3D sampled format:Unknown
+ 129: TypePointer UniformConstant 128
+ 130(g_tTex3du4): 129(ptr) Variable UniformConstant
+ 131: TypeImage 6(float) Cube sampled format:Unknown
+ 132: TypePointer UniformConstant 131
+ 133(g_tTexcdf4): 132(ptr) Variable UniformConstant
+ 134: TypeImage 25(int) Cube sampled format:Unknown
+ 135: TypePointer UniformConstant 134
+ 136(g_tTexcdi4): 135(ptr) Variable UniformConstant
+ 137: TypeImage 42(int) Cube sampled format:Unknown
+ 138: TypePointer UniformConstant 137
+ 139(g_tTexcdu4): 138(ptr) Variable UniformConstant
+ 140: TypeImage 6(float) 1D array sampled format:Unknown
+ 141: TypePointer UniformConstant 140
+142(g_tTex1df4a): 141(ptr) Variable UniformConstant
+ 143: TypeImage 25(int) 1D array sampled format:Unknown
+ 144: TypePointer UniformConstant 143
+145(g_tTex1di4a): 144(ptr) Variable UniformConstant
+ 146: TypeImage 42(int) 1D array sampled format:Unknown
+ 147: TypePointer UniformConstant 146
+148(g_tTex1du4a): 147(ptr) Variable UniformConstant
+ 149: TypeImage 6(float) 2D array sampled format:Unknown
+ 150: TypePointer UniformConstant 149
+151(g_tTex2df4a): 150(ptr) Variable UniformConstant
+ 152: TypeImage 25(int) 2D array sampled format:Unknown
+ 153: TypePointer UniformConstant 152
+154(g_tTex2di4a): 153(ptr) Variable UniformConstant
+ 155: TypeImage 42(int) 2D array sampled format:Unknown
+ 156: TypePointer UniformConstant 155
+157(g_tTex2du4a): 156(ptr) Variable UniformConstant
+ 158: TypeImage 6(float) Cube array sampled format:Unknown
+ 159: TypePointer UniformConstant 158
+160(g_tTexcdf4a): 159(ptr) Variable UniformConstant
+ 161: TypeImage 25(int) Cube array sampled format:Unknown
+ 162: TypePointer UniformConstant 161
+163(g_tTexcdi4a): 162(ptr) Variable UniformConstant
+ 164: TypeImage 42(int) Cube array sampled format:Unknown
+ 165: TypePointer UniformConstant 164
+166(g_tTexcdu4a): 165(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
+ 29(r03): 7(ptr) Variable Function
+ 41(r05): 7(ptr) Variable Function
+ 54(r21): 7(ptr) Variable Function
+ 74(r23): 7(ptr) Variable Function
+ 88(r25): 7(ptr) Variable Function
+ 105(psout): 104(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
- 105: 99(ptr) AccessChain 95(psout) 96
- 106: 92(fvec4) Load 105
- Store 104(Color) 106
- 109: 7(ptr) AccessChain 95(psout) 101
- 110: 6(float) Load 109
- Store 108(Depth) 110
+ 23: 22(fvec2) CompositeConstruct 20 21
+ 27: 6(float) CompositeExtract 23 1
+ 28: 6(float) ImageSampleDrefExplicitLod 19 23 27 Lod ConstOffset 24 26
+ Store 8(r01) 28
+ 33: 30 Load 32(g_tTex1di4)
+ 34: 13 Load 15(g_sSamp)
+ 37: 36 SampledImage 33 34
+ 38: 22(fvec2) CompositeConstruct 20 21
+ 39: 6(float) CompositeExtract 38 1
+ 40: 6(float) ImageSampleDrefExplicitLod 37 38 39 Lod ConstOffset 24 26
+ Store 29(r03) 40
+ 46: 43 Load 45(g_tTex1du4)
+ 47: 13 Load 15(g_sSamp)
+ 50: 49 SampledImage 46 47
+ 51: 22(fvec2) CompositeConstruct 20 21
+ 52: 6(float) CompositeExtract 51 1
+ 53: 6(float) ImageSampleDrefExplicitLod 50 51 52 Lod ConstOffset 24 26
+ Store 41(r05) 53
+ 58: 55 Load 57(g_tTex2df4)
+ 59: 13 Load 15(g_sSamp)
+ 62: 61 SampledImage 58 59
+ 66: 6(float) CompositeExtract 64 0
+ 67: 6(float) CompositeExtract 64 1
+ 68: 65(fvec3) CompositeConstruct 66 67 21
+ 72: 6(float) CompositeExtract 68 2
+ 73: 6(float) ImageSampleDrefExplicitLod 62 68 72 Lod ConstOffset 24 71
+ Store 54(r21) 73
+ 78: 75 Load 77(g_tTex2di4)
+ 79: 13 Load 15(g_sSamp)
+ 82: 81 SampledImage 78 79
+ 83: 6(float) CompositeExtract 64 0
+ 84: 6(float) CompositeExtract 64 1
+ 85: 65(fvec3) CompositeConstruct 83 84 21
+ 86: 6(float) CompositeExtract 85 2
+ 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 24 71
+ Store 74(r23) 87
+ 92: 89 Load 91(g_tTex2du4)
+ 93: 13 Load 15(g_sSamp)
+ 96: 95 SampledImage 92 93
+ 97: 6(float) CompositeExtract 64 0
+ 98: 6(float) CompositeExtract 64 1
+ 99: 65(fvec3) CompositeConstruct 97 98 21
+ 100: 6(float) CompositeExtract 99 2
+ 101: 6(float) ImageSampleDrefExplicitLod 96 99 100 Lod ConstOffset 24 71
+ Store 88(r25) 101
+ 110: 109(ptr) AccessChain 105(psout) 106
+ Store 110 108
+ 112: 7(ptr) AccessChain 105(psout) 111
+ Store 112 107
+ 115: 109(ptr) AccessChain 105(psout) 106
+ 116: 102(fvec4) Load 115
+ Store 114(Color) 116
+ 119: 7(ptr) AccessChain 105(psout) 111
+ 120: 6(float) Load 119
+ Store 118(Depth) 120
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
index 19d262ad..2e5f3cda 100644
--- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out
@@ -8,11 +8,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -25,11 +25,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -42,11 +42,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -59,11 +59,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -78,11 +78,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -97,11 +97,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -146,6 +146,8 @@ gl_FragCoord origin is upper left
0:66 1 (const int)
0:66 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -168,8 +170,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -184,11 +184,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:42 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -201,11 +201,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:43 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -218,11 +218,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:44 Construct vec3 (temp 3-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -235,11 +235,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:47 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -254,11 +254,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:48 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -273,11 +273,11 @@ gl_FragCoord origin is upper left
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 textureLodOffset (temp 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:49 Construct vec4 (temp 4-component vector of float)
0:? Constant:
0:? 0.100000
0:? 0.200000
@@ -322,6 +322,8 @@ gl_FragCoord origin is upper left
0:66 1 (const int)
0:66 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -344,81 +346,79 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 163
+// Id's are bound by 178
Capability Shader
Capability Sampled1D
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 110 114
+ EntryPoint Fragment 4 "main" 125 129
ExecutionMode 4 OriginUpperLeft
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 110 "Color"
- Name 114 "Depth"
- Name 120 "g_tTex1df4"
- Name 123 "g_tTex1di4"
- Name 126 "g_tTex1du4"
- Name 129 "g_tTex2df4"
- Name 132 "g_tTex2di4"
- Name 135 "g_tTex2du4"
- Name 138 "g_tTex3df4"
- Name 141 "g_tTex3di4"
- Name 144 "g_tTex3du4"
- Name 147 "g_tTexcdf4"
- Name 150 "g_tTexcdi4"
- Name 153 "g_tTexcdu4"
- Name 156 "g_tTexcdf4a"
- Name 159 "g_tTexcdi4a"
- Name 162 "g_tTexcdu4a"
+ Name 34 "r13"
+ Name 37 "g_tTex1di4a"
+ Name 48 "r15"
+ Name 52 "g_tTex1du4a"
+ Name 63 "r31"
+ Name 66 "g_tTex2df4a"
+ Name 84 "r33"
+ Name 87 "g_tTex2di4a"
+ Name 99 "r35"
+ Name 102 "g_tTex2du4a"
+ Name 114 "PS_OUTPUT"
+ MemberName 114(PS_OUTPUT) 0 "Color"
+ MemberName 114(PS_OUTPUT) 1 "Depth"
+ Name 116 "psout"
+ Name 125 "Color"
+ Name 129 "Depth"
+ Name 135 "g_tTex1df4"
+ Name 138 "g_tTex1di4"
+ Name 141 "g_tTex1du4"
+ Name 144 "g_tTex2df4"
+ Name 147 "g_tTex2di4"
+ Name 150 "g_tTex2du4"
+ Name 153 "g_tTex3df4"
+ Name 156 "g_tTex3di4"
+ Name 159 "g_tTex3du4"
+ Name 162 "g_tTexcdf4"
+ Name 165 "g_tTexcdi4"
+ Name 168 "g_tTexcdu4"
+ Name 171 "g_tTexcdf4a"
+ Name 174 "g_tTexcdi4a"
+ Name 177 "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
- Decorate 110(Color) Location 0
- Decorate 114(Depth) BuiltIn FragDepth
- Decorate 120(g_tTex1df4) DescriptorSet 0
- Decorate 120(g_tTex1df4) Binding 0
- Decorate 123(g_tTex1di4) DescriptorSet 0
- Decorate 126(g_tTex1du4) DescriptorSet 0
- Decorate 129(g_tTex2df4) DescriptorSet 0
- Decorate 132(g_tTex2di4) DescriptorSet 0
- Decorate 135(g_tTex2du4) DescriptorSet 0
- Decorate 138(g_tTex3df4) DescriptorSet 0
- Decorate 141(g_tTex3di4) DescriptorSet 0
- Decorate 144(g_tTex3du4) DescriptorSet 0
- Decorate 147(g_tTexcdf4) DescriptorSet 0
- Decorate 150(g_tTexcdi4) DescriptorSet 0
- Decorate 153(g_tTexcdu4) DescriptorSet 0
- Decorate 156(g_tTexcdf4a) DescriptorSet 0
- Decorate 159(g_tTexcdi4a) DescriptorSet 0
- Decorate 162(g_tTexcdu4a) DescriptorSet 0
+ Decorate 37(g_tTex1di4a) DescriptorSet 0
+ Decorate 52(g_tTex1du4a) DescriptorSet 0
+ Decorate 66(g_tTex2df4a) DescriptorSet 0
+ Decorate 87(g_tTex2di4a) DescriptorSet 0
+ Decorate 102(g_tTex2du4a) DescriptorSet 0
+ Decorate 125(Color) Location 0
+ Decorate 129(Depth) BuiltIn FragDepth
+ Decorate 135(g_tTex1df4) DescriptorSet 0
+ Decorate 135(g_tTex1df4) Binding 0
+ Decorate 138(g_tTex1di4) DescriptorSet 0
+ Decorate 141(g_tTex1du4) DescriptorSet 0
+ Decorate 144(g_tTex2df4) DescriptorSet 0
+ Decorate 147(g_tTex2di4) DescriptorSet 0
+ Decorate 150(g_tTex2du4) DescriptorSet 0
+ Decorate 153(g_tTex3df4) DescriptorSet 0
+ Decorate 156(g_tTex3di4) DescriptorSet 0
+ Decorate 159(g_tTex3du4) DescriptorSet 0
+ Decorate 162(g_tTexcdf4) DescriptorSet 0
+ Decorate 165(g_tTexcdi4) DescriptorSet 0
+ Decorate 168(g_tTexcdu4) DescriptorSet 0
+ Decorate 171(g_tTexcdf4a) DescriptorSet 0
+ Decorate 174(g_tTexcdi4a) DescriptorSet 0
+ Decorate 177(g_tTexcdu4a) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -436,158 +436,173 @@ gl_FragCoord origin is upper left
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
- 109: TypePointer Output 98(fvec4)
- 110(Color): 109(ptr) Variable Output
- 113: TypePointer Output 6(float)
- 114(Depth): 113(ptr) Variable Output
- 118: TypeImage 6(float) 1D sampled format:Unknown
- 119: TypePointer UniformConstant 118
- 120(g_tTex1df4): 119(ptr) Variable UniformConstant
- 121: TypeImage 27(int) 1D sampled format:Unknown
- 122: TypePointer UniformConstant 121
- 123(g_tTex1di4): 122(ptr) Variable UniformConstant
- 124: TypeImage 44(int) 1D sampled format:Unknown
- 125: TypePointer UniformConstant 124
- 126(g_tTex1du4): 125(ptr) Variable UniformConstant
- 127: TypeImage 6(float) 2D sampled format:Unknown
- 128: TypePointer UniformConstant 127
- 129(g_tTex2df4): 128(ptr) Variable UniformConstant
- 130: TypeImage 27(int) 2D sampled format:Unknown
- 131: TypePointer UniformConstant 130
- 132(g_tTex2di4): 131(ptr) Variable UniformConstant
- 133: TypeImage 44(int) 2D sampled format:Unknown
+ 25: TypeVector 6(float) 3
+ 29: 6(float) Constant 0
+ 30: TypeInt 32 1
+ 31: 30(int) Constant 2
+ 35: TypeImage 30(int) 1D array sampled format:Unknown
+ 36: TypePointer UniformConstant 35
+ 37(g_tTex1di4a): 36(ptr) Variable UniformConstant
+ 40: TypeImage 30(int) 1D depth array sampled format:Unknown
+ 41: TypeSampledImage 40
+ 49: TypeInt 32 0
+ 50: TypeImage 49(int) 1D array sampled format:Unknown
+ 51: TypePointer UniformConstant 50
+ 52(g_tTex1du4a): 51(ptr) Variable UniformConstant
+ 55: TypeImage 49(int) 1D depth array sampled format:Unknown
+ 56: TypeSampledImage 55
+ 64: TypeImage 6(float) 2D array sampled format:Unknown
+ 65: TypePointer UniformConstant 64
+ 66(g_tTex2df4a): 65(ptr) Variable UniformConstant
+ 69: TypeImage 6(float) 2D depth array sampled format:Unknown
+ 70: TypeSampledImage 69
+ 72: 6(float) Constant 1050253722
+ 73: 25(fvec3) ConstantComposite 21 22 72
+ 74: TypeVector 6(float) 4
+ 79: TypeVector 30(int) 2
+ 80: 30(int) Constant 3
+ 81: 79(ivec2) ConstantComposite 31 80
+ 85: TypeImage 30(int) 2D array sampled format:Unknown
+ 86: TypePointer UniformConstant 85
+ 87(g_tTex2di4a): 86(ptr) Variable UniformConstant
+ 90: TypeImage 30(int) 2D depth array sampled format:Unknown
+ 91: TypeSampledImage 90
+ 100: TypeImage 49(int) 2D array sampled format:Unknown
+ 101: TypePointer UniformConstant 100
+102(g_tTex2du4a): 101(ptr) Variable UniformConstant
+ 105: TypeImage 49(int) 2D depth array sampled format:Unknown
+ 106: TypeSampledImage 105
+ 114(PS_OUTPUT): TypeStruct 74(fvec4) 6(float)
+ 115: TypePointer Function 114(PS_OUTPUT)
+ 117: 30(int) Constant 0
+ 118: 6(float) Constant 1065353216
+ 119: 74(fvec4) ConstantComposite 118 118 118 118
+ 120: TypePointer Function 74(fvec4)
+ 122: 30(int) Constant 1
+ 124: TypePointer Output 74(fvec4)
+ 125(Color): 124(ptr) Variable Output
+ 128: TypePointer Output 6(float)
+ 129(Depth): 128(ptr) Variable Output
+ 133: TypeImage 6(float) 1D sampled format:Unknown
134: TypePointer UniformConstant 133
- 135(g_tTex2du4): 134(ptr) Variable UniformConstant
- 136: TypeImage 6(float) 3D sampled format:Unknown
+ 135(g_tTex1df4): 134(ptr) Variable UniformConstant
+ 136: TypeImage 30(int) 1D sampled format:Unknown
137: TypePointer UniformConstant 136
- 138(g_tTex3df4): 137(ptr) Variable UniformConstant
- 139: TypeImage 27(int) 3D sampled format:Unknown
+ 138(g_tTex1di4): 137(ptr) Variable UniformConstant
+ 139: TypeImage 49(int) 1D sampled format:Unknown
140: TypePointer UniformConstant 139
- 141(g_tTex3di4): 140(ptr) Variable UniformConstant
- 142: TypeImage 44(int) 3D sampled format:Unknown
+ 141(g_tTex1du4): 140(ptr) Variable UniformConstant
+ 142: TypeImage 6(float) 2D sampled format:Unknown
143: TypePointer UniformConstant 142
- 144(g_tTex3du4): 143(ptr) Variable UniformConstant
- 145: TypeImage 6(float) Cube sampled format:Unknown
+ 144(g_tTex2df4): 143(ptr) Variable UniformConstant
+ 145: TypeImage 30(int) 2D sampled format:Unknown
146: TypePointer UniformConstant 145
- 147(g_tTexcdf4): 146(ptr) Variable UniformConstant
- 148: TypeImage 27(int) Cube sampled format:Unknown
+ 147(g_tTex2di4): 146(ptr) Variable UniformConstant
+ 148: TypeImage 49(int) 2D sampled format:Unknown
149: TypePointer UniformConstant 148
- 150(g_tTexcdi4): 149(ptr) Variable UniformConstant
- 151: TypeImage 44(int) Cube sampled format:Unknown
+ 150(g_tTex2du4): 149(ptr) Variable UniformConstant
+ 151: TypeImage 6(float) 3D sampled format:Unknown
152: TypePointer UniformConstant 151
- 153(g_tTexcdu4): 152(ptr) Variable UniformConstant
- 154: TypeImage 6(float) Cube array sampled format:Unknown
+ 153(g_tTex3df4): 152(ptr) Variable UniformConstant
+ 154: TypeImage 30(int) 3D sampled format:Unknown
155: TypePointer UniformConstant 154
-156(g_tTexcdf4a): 155(ptr) Variable UniformConstant
- 157: TypeImage 27(int) Cube array sampled format:Unknown
+ 156(g_tTex3di4): 155(ptr) Variable UniformConstant
+ 157: TypeImage 49(int) 3D sampled format:Unknown
158: TypePointer UniformConstant 157
-159(g_tTexcdi4a): 158(ptr) Variable UniformConstant
- 160: TypeImage 44(int) Cube array sampled format:Unknown
+ 159(g_tTex3du4): 158(ptr) Variable UniformConstant
+ 160: TypeImage 6(float) Cube sampled format:Unknown
161: TypePointer UniformConstant 160
-162(g_tTexcdu4a): 161(ptr) Variable UniformConstant
+ 162(g_tTexcdf4): 161(ptr) Variable UniformConstant
+ 163: TypeImage 30(int) Cube sampled format:Unknown
+ 164: TypePointer UniformConstant 163
+ 165(g_tTexcdi4): 164(ptr) Variable UniformConstant
+ 166: TypeImage 49(int) Cube sampled format:Unknown
+ 167: TypePointer UniformConstant 166
+ 168(g_tTexcdu4): 167(ptr) Variable UniformConstant
+ 169: TypeImage 6(float) Cube array sampled format:Unknown
+ 170: TypePointer UniformConstant 169
+171(g_tTexcdf4a): 170(ptr) Variable UniformConstant
+ 172: TypeImage 30(int) Cube array sampled format:Unknown
+ 173: TypePointer UniformConstant 172
+174(g_tTexcdi4a): 173(ptr) Variable UniformConstant
+ 175: TypeImage 49(int) Cube array sampled format:Unknown
+ 176: TypePointer UniformConstant 175
+177(g_tTexcdu4a): 176(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
+ 34(r13): 7(ptr) Variable Function
+ 48(r15): 7(ptr) Variable Function
+ 63(r31): 7(ptr) Variable Function
+ 84(r33): 7(ptr) Variable Function
+ 99(r35): 7(ptr) Variable Function
+ 116(psout): 115(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
- 111: 105(ptr) AccessChain 101(psout) 102
- 112: 98(fvec4) Load 111
- Store 110(Color) 112
- 115: 7(ptr) AccessChain 101(psout) 107
- 116: 6(float) Load 115
- Store 114(Depth) 116
+ 26: 6(float) CompositeExtract 23 0
+ 27: 6(float) CompositeExtract 23 1
+ 28: 25(fvec3) CompositeConstruct 26 27 24
+ 32: 6(float) CompositeExtract 28 2
+ 33: 6(float) ImageSampleDrefExplicitLod 19 28 32 Lod ConstOffset 29 31
+ Store 8(r11) 33
+ 38: 35 Load 37(g_tTex1di4a)
+ 39: 13 Load 15(g_sSamp)
+ 42: 41 SampledImage 38 39
+ 43: 6(float) CompositeExtract 23 0
+ 44: 6(float) CompositeExtract 23 1
+ 45: 25(fvec3) CompositeConstruct 43 44 24
+ 46: 6(float) CompositeExtract 45 2
+ 47: 6(float) ImageSampleDrefExplicitLod 42 45 46 Lod ConstOffset 29 31
+ Store 34(r13) 47
+ 53: 50 Load 52(g_tTex1du4a)
+ 54: 13 Load 15(g_sSamp)
+ 57: 56 SampledImage 53 54
+ 58: 6(float) CompositeExtract 23 0
+ 59: 6(float) CompositeExtract 23 1
+ 60: 25(fvec3) CompositeConstruct 58 59 24
+ 61: 6(float) CompositeExtract 60 2
+ 62: 6(float) ImageSampleDrefExplicitLod 57 60 61 Lod ConstOffset 29 31
+ Store 48(r15) 62
+ 67: 64 Load 66(g_tTex2df4a)
+ 68: 13 Load 15(g_sSamp)
+ 71: 70 SampledImage 67 68
+ 75: 6(float) CompositeExtract 73 0
+ 76: 6(float) CompositeExtract 73 1
+ 77: 6(float) CompositeExtract 73 2
+ 78: 74(fvec4) CompositeConstruct 75 76 77 24
+ 82: 6(float) CompositeExtract 78 3
+ 83: 6(float) ImageSampleDrefExplicitLod 71 78 82 Lod ConstOffset 29 81
+ Store 63(r31) 83
+ 88: 85 Load 87(g_tTex2di4a)
+ 89: 13 Load 15(g_sSamp)
+ 92: 91 SampledImage 88 89
+ 93: 6(float) CompositeExtract 73 0
+ 94: 6(float) CompositeExtract 73 1
+ 95: 6(float) CompositeExtract 73 2
+ 96: 74(fvec4) CompositeConstruct 93 94 95 24
+ 97: 6(float) CompositeExtract 96 3
+ 98: 6(float) ImageSampleDrefExplicitLod 92 96 97 Lod ConstOffset 29 81
+ Store 84(r33) 98
+ 103: 100 Load 102(g_tTex2du4a)
+ 104: 13 Load 15(g_sSamp)
+ 107: 106 SampledImage 103 104
+ 108: 6(float) CompositeExtract 73 0
+ 109: 6(float) CompositeExtract 73 1
+ 110: 6(float) CompositeExtract 73 2
+ 111: 74(fvec4) CompositeConstruct 108 109 110 24
+ 112: 6(float) CompositeExtract 111 3
+ 113: 6(float) ImageSampleDrefExplicitLod 107 111 112 Lod ConstOffset 29 81
+ Store 99(r35) 113
+ 121: 120(ptr) AccessChain 116(psout) 117
+ Store 121 119
+ 123: 7(ptr) AccessChain 116(psout) 122
+ Store 123 118
+ 126: 120(ptr) AccessChain 116(psout) 117
+ 127: 74(fvec4) Load 126
+ Store 125(Color) 127
+ 130: 7(ptr) AccessChain 116(psout) 122
+ 131: 6(float) Load 130
+ Store 129(Depth) 131
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index 46a6bbc1..2a0d77a0 100644
--- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -191,6 +191,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -202,8 +204,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -401,6 +401,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -412,8 +414,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index 395efc26..feaba770 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -239,6 +239,8 @@ gl_FragCoord origin is upper left
0:50 1 (const int)
0:50 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -253,8 +255,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -500,6 +500,8 @@ gl_FragCoord origin is upper left
0:50 1 (const int)
0:50 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -514,8 +516,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index 2e79be32..f6d37c3b 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -225,6 +225,7 @@ Shader version: 450
0:48 0 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -239,7 +240,6 @@ Shader version: 450
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Pos' (out 4-component vector of float Position)
Linked vertex stage:
@@ -471,6 +471,7 @@ Shader version: 450
0:48 0 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -485,7 +486,6 @@ Shader version: 450
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Pos' (out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index 7ef5e077..7938e527 100644
--- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -209,6 +209,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -223,8 +225,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -440,6 +440,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -454,8 +456,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index 2043f38a..dee78bc4 100644
--- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -146,6 +146,8 @@ gl_FragCoord origin is upper left
0:38 1 (const int)
0:38 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -157,8 +159,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -311,6 +311,8 @@ gl_FragCoord origin is upper left
0:38 1 (const int)
0:38 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -322,8 +324,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCubeArray)
0:? 'g_tTexcdi4' (uniform itextureCubeArray)
0:? 'g_tTexcdu4' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
index 351e2ed1..afdedb7d 100644
--- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -155,6 +155,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -166,8 +168,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -329,6 +329,8 @@ gl_FragCoord origin is upper left
0:42 1 (const int)
0:42 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -340,8 +342,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4a' (uniform textureCubeArray)
0:? 'g_tTexcdi4a' (uniform itextureCubeArray)
0:? 'g_tTexcdu4a' (uniform utextureCubeArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
index d37090fa..34a65978 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -185,6 +185,8 @@ gl_FragCoord origin is upper left
0:51 1 (const int)
0:51 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -200,8 +202,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -393,6 +393,8 @@ gl_FragCoord origin is upper left
0:51 1 (const int)
0:51 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_sSamp2d' (uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
@@ -408,8 +410,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
index 04382997..04d0870e 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -171,6 +171,7 @@ Shader version: 450
0:48 0 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -185,7 +186,6 @@ Shader version: 450
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Pos' (out 4-component vector of float Position)
Linked vertex stage:
@@ -363,6 +363,7 @@ Shader version: 450
0:48 0 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Pos' (out 4-component vector of float Position)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -377,7 +378,6 @@ Shader version: 450
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Pos' (out 4-component vector of float Position)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
index 0f0f9681..aa779610 100644
--- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -173,6 +173,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -187,8 +189,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -368,6 +368,8 @@ gl_FragCoord origin is upper left
0:48 1 (const int)
0:48 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
@@ -382,8 +384,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTexcdf4' (uniform textureCube)
0:? 'g_tTexcdi4' (uniform itextureCube)
0:? 'g_tTexcdu4' (uniform utextureCube)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
index 8eb74cd0..056a4f13 100644
--- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -128,6 +128,8 @@ gl_FragCoord origin is upper left
0:36 1 (const int)
0:36 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -136,8 +138,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
Linked fragment stage:
@@ -272,6 +272,8 @@ gl_FragCoord origin is upper left
0:36 1 (const int)
0:36 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'Depth' (out float FragDepth)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
@@ -280,8 +282,6 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4' (uniform texture2DArray)
0:? 'g_tTex2di4' (uniform itexture2DArray)
0:? 'g_tTex2du4' (uniform utexture2DArray)
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'Depth' (out float FragDepth)
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out
index 9ea4f839..a15caac5 100755
--- a/Test/baseResults/hlsl.shapeConv.frag.out
+++ b/Test/baseResults/hlsl.shapeConv.frag.out
@@ -58,41 +58,43 @@ gl_FragCoord origin is upper left
0:13 'MyVal' (temp 3-component vector of float)
0:13 Construct vec3 (temp 3-component vector of float)
0:13 'V' (temp float)
-0:16 Compare Greater Than (temp bool)
+0:16 Compare Greater Than (temp 3-component vector of bool)
0:16 'foo' (temp 3-component vector of float)
0:16 Constant:
0:16 4.000000
0:16 4.000000
0:16 4.000000
-0:17 Compare Greater Than or Equal (temp bool)
+0:17 Compare Greater Than or Equal (temp 3-component vector of bool)
0:17 'foo' (temp 3-component vector of float)
0:17 Constant:
0:17 5.000000
0:17 5.000000
0:17 5.000000
-0:18 Compare Less Than (temp bool)
+0:18 Compare Less Than (temp 3-component vector of bool)
0:18 Constant:
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 'foo' (temp 3-component vector of float)
-0:19 Compare Less Than or Equal (temp bool)
+0:19 Compare Less Than or Equal (temp 3-component vector of bool)
0:19 Constant:
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 'foo' (temp 3-component vector of float)
-0:21 Compare Equal (temp bool)
-0:21 Construct vec4 (temp 4-component vector of float)
-0:21 direct index (temp float)
-0:21 'v' (temp 4-component vector of float)
-0:21 Constant:
-0:21 0 (const int)
-0:21 'v' (temp 4-component vector of float)
-0:22 Compare Not Equal (temp bool)
-0:22 Construct vec4 (temp 4-component vector of float)
-0:22 'f' (in float)
-0:22 'v' (temp 4-component vector of float)
+0:21 all (temp bool)
+0:21 Equal (temp 4-component vector of bool)
+0:21 Construct vec4 (temp 4-component vector of float)
+0:21 direct index (temp float)
+0:21 'v' (temp 4-component vector of float)
+0:21 Constant:
+0:21 0 (const int)
+0:21 'v' (temp 4-component vector of float)
+0:22 any (temp bool)
+0:22 NotEqual (temp 4-component vector of bool)
+0:22 Construct vec4 (temp 4-component vector of float)
+0:22 'f' (in float)
+0:22 'v' (temp 4-component vector of float)
0:26 Compare Equal (temp bool)
0:26 'f1' (temp 1-component vector of float)
0:26 Construct float (temp 1-component vector of float)
@@ -113,6 +115,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -173,41 +176,43 @@ gl_FragCoord origin is upper left
0:13 'MyVal' (temp 3-component vector of float)
0:13 Construct vec3 (temp 3-component vector of float)
0:13 'V' (temp float)
-0:16 Compare Greater Than (temp bool)
+0:16 Compare Greater Than (temp 3-component vector of bool)
0:16 'foo' (temp 3-component vector of float)
0:16 Constant:
0:16 4.000000
0:16 4.000000
0:16 4.000000
-0:17 Compare Greater Than or Equal (temp bool)
+0:17 Compare Greater Than or Equal (temp 3-component vector of bool)
0:17 'foo' (temp 3-component vector of float)
0:17 Constant:
0:17 5.000000
0:17 5.000000
0:17 5.000000
-0:18 Compare Less Than (temp bool)
+0:18 Compare Less Than (temp 3-component vector of bool)
0:18 Constant:
0:18 6.000000
0:18 6.000000
0:18 6.000000
0:18 'foo' (temp 3-component vector of float)
-0:19 Compare Less Than or Equal (temp bool)
+0:19 Compare Less Than or Equal (temp 3-component vector of bool)
0:19 Constant:
0:19 7.000000
0:19 7.000000
0:19 7.000000
0:19 'foo' (temp 3-component vector of float)
-0:21 Compare Equal (temp bool)
-0:21 Construct vec4 (temp 4-component vector of float)
-0:21 direct index (temp float)
-0:21 'v' (temp 4-component vector of float)
-0:21 Constant:
-0:21 0 (const int)
-0:21 'v' (temp 4-component vector of float)
-0:22 Compare Not Equal (temp bool)
-0:22 Construct vec4 (temp 4-component vector of float)
-0:22 'f' (in float)
-0:22 'v' (temp 4-component vector of float)
+0:21 all (temp bool)
+0:21 Equal (temp 4-component vector of bool)
+0:21 Construct vec4 (temp 4-component vector of float)
+0:21 direct index (temp float)
+0:21 'v' (temp 4-component vector of float)
+0:21 Constant:
+0:21 0 (const int)
+0:21 'v' (temp 4-component vector of float)
+0:22 any (temp bool)
+0:22 NotEqual (temp 4-component vector of bool)
+0:22 Construct vec4 (temp 4-component vector of float)
+0:22 'f' (in float)
+0:22 'v' (temp 4-component vector of float)
0:26 Compare Equal (temp bool)
0:26 'f1' (temp 1-component vector of float)
0:26 Construct float (temp 1-component vector of float)
@@ -227,7 +232,7 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 84
+// Id's are bound by 85
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -244,7 +249,7 @@ gl_FragCoord origin is upper left
Name 33 "V"
Name 34 "MyVal"
Name 37 "foo"
- Name 69 "f1"
+ Name 70 "f1"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -266,17 +271,19 @@ gl_FragCoord origin is upper left
39: 6(float) Constant 1082130432
40: 22(fvec3) ConstantComposite 39 39 39
41: TypeBool
- 44: 6(float) Constant 1084227584
- 45: 22(fvec3) ConstantComposite 44 44 44
- 47: 6(float) Constant 1086324736
- 48: 22(fvec3) ConstantComposite 47 47 47
- 51: 6(float) Constant 1088421888
- 52: 22(fvec3) ConstantComposite 51 51 51
- 55: TypeInt 32 0
- 56: 55(int) Constant 0
- 61: TypeVector 41(bool) 4
+ 42: TypeVector 41(bool) 3
+ 45: 6(float) Constant 1084227584
+ 46: 22(fvec3) ConstantComposite 45 45 45
+ 48: 6(float) Constant 1086324736
+ 49: 22(fvec3) ConstantComposite 48 48 48
+ 52: 6(float) Constant 1088421888
+ 53: 22(fvec3) ConstantComposite 52 52 52
+ 56: TypeInt 32 0
+ 57: 56(int) Constant 0
+ 62: TypeVector 41(bool) 4
4(main): 2 Function None 3
5: Label
+ Return
FunctionEnd
13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10
11(input): 8(ptr) FunctionParameter
@@ -288,7 +295,7 @@ gl_FragCoord origin is upper left
33(V): 9(ptr) Variable Function
34(MyVal): 23(ptr) Variable Function
37(foo): 23(ptr) Variable Function
- 69(f1): 9(ptr) Variable Function
+ 70(f1): 9(ptr) Variable Function
Store 15(v) 17
Store 15(v) 19
20: 6(float) Load 12(f)
@@ -305,35 +312,35 @@ gl_FragCoord origin is upper left
36: 22(fvec3) CompositeConstruct 35 35 35
Store 34(MyVal) 36
38: 22(fvec3) Load 37(foo)
- 42: 41(bool) FOrdGreaterThan 38 40
- 43: 22(fvec3) Load 37(foo)
- 46: 41(bool) FOrdGreaterThanEqual 43 45
- 49: 22(fvec3) Load 37(foo)
- 50: 41(bool) FOrdLessThan 48 49
- 53: 22(fvec3) Load 37(foo)
- 54: 41(bool) FOrdLessThanEqual 52 53
- 57: 9(ptr) AccessChain 15(v) 56
- 58: 6(float) Load 57
- 59: 7(fvec4) CompositeConstruct 58 58 58 58
- 60: 7(fvec4) Load 15(v)
- 62: 61(bvec4) FOrdEqual 59 60
- 63: 41(bool) All 62
- 64: 6(float) Load 12(f)
- 65: 7(fvec4) CompositeConstruct 64 64 64 64
- 66: 7(fvec4) Load 15(v)
- 67: 61(bvec4) FOrdNotEqual 65 66
- 68: 41(bool) Any 67
- 70: 6(float) Load 69(f1)
- 71: 7(fvec4) Load 15(v)
- 72: 6(float) CompositeExtract 71 0
- 73: 41(bool) FOrdEqual 70 72
- 74: 7(fvec4) Load 15(v)
- 75: 6(float) CompositeExtract 74 0
- 76: 6(float) Load 69(f1)
- 77: 41(bool) FOrdLessThan 75 76
- 78: 6(float) Load 69(f1)
- 79: 6(float) Load 69(f1)
- 80: 22(fvec3) CompositeConstruct 79 79 79
- 81: 7(fvec4) Load 11(input)
- ReturnValue 81
+ 43: 42(bvec3) FOrdGreaterThan 38 40
+ 44: 22(fvec3) Load 37(foo)
+ 47: 42(bvec3) FOrdGreaterThanEqual 44 46
+ 50: 22(fvec3) Load 37(foo)
+ 51: 42(bvec3) FOrdLessThan 49 50
+ 54: 22(fvec3) Load 37(foo)
+ 55: 42(bvec3) FOrdLessThanEqual 53 54
+ 58: 9(ptr) AccessChain 15(v) 57
+ 59: 6(float) Load 58
+ 60: 7(fvec4) CompositeConstruct 59 59 59 59
+ 61: 7(fvec4) Load 15(v)
+ 63: 62(bvec4) FOrdEqual 60 61
+ 64: 41(bool) All 63
+ 65: 6(float) Load 12(f)
+ 66: 7(fvec4) CompositeConstruct 65 65 65 65
+ 67: 7(fvec4) Load 15(v)
+ 68: 62(bvec4) FOrdNotEqual 66 67
+ 69: 41(bool) Any 68
+ 71: 6(float) Load 70(f1)
+ 72: 7(fvec4) Load 15(v)
+ 73: 6(float) CompositeExtract 72 0
+ 74: 41(bool) FOrdEqual 71 73
+ 75: 7(fvec4) Load 15(v)
+ 76: 6(float) CompositeExtract 75 0
+ 77: 6(float) Load 70(f1)
+ 78: 41(bool) FOrdLessThan 76 77
+ 79: 6(float) Load 70(f1)
+ 80: 6(float) Load 70(f1)
+ 81: 22(fvec3) CompositeConstruct 80 80 80
+ 82: 7(fvec4) Load 11(input)
+ ReturnValue 82
FunctionEnd
diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out
index 0836a618..629668ac 100755
--- a/Test/baseResults/hlsl.sin.frag.out
+++ b/Test/baseResults/hlsl.sin.frag.out
@@ -9,7 +9,7 @@ gl_FragCoord origin is upper left
0:3 Sequence
0:3 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:3 sine (global 4-component vector of float)
+0:3 sine (temp 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Branch: Return
0:? Linker Objects
@@ -30,7 +30,7 @@ gl_FragCoord origin is upper left
0:3 Sequence
0:3 move second child to first child (temp 4-component vector of float)
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:3 sine (global 4-component vector of float)
+0:3 sine (temp 4-component vector of float)
0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Branch: Return
0:? Linker Objects
diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out
index 8593db62..94c1b2ad 100644
--- a/Test/baseResults/hlsl.stringtoken.frag.out
+++ b/Test/baseResults/hlsl.stringtoken.frag.out
@@ -25,9 +25,9 @@ gl_FragCoord origin is upper left
0:19 0 (const int)
0:19 Branch: Return
0:? Linker Objects
-0:? 'TestTexture' (uniform texture2D)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF})
+0:? 'TestTexture' (uniform texture2D)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF})
Linked fragment stage:
@@ -59,9 +59,9 @@ gl_FragCoord origin is upper left
0:19 0 (const int)
0:19 Branch: Return
0:? Linker Objects
-0:? 'TestTexture' (uniform texture2D)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF})
+0:? 'TestTexture' (uniform texture2D)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF})
// Module Version 10000
// Generated by (magic number): 80001
@@ -83,6 +83,7 @@ gl_FragCoord origin is upper left
Name 28 ""
Decorate 19(Color) Location 0
Decorate 25(TestTexture) DescriptorSet 0
+ MemberDecorate 26($Global) 0 Offset 0
Decorate 26($Global) Block
Decorate 28 DescriptorSet 0
2: TypeVoid
diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out
index 5fef9599..c14018ea 100755
--- a/Test/baseResults/hlsl.struct.frag.out
+++ b/Test/baseResults/hlsl.struct.frag.out
@@ -26,9 +26,7 @@ gl_FragCoord origin is upper left
0:42 'input' (layout(location=0 ) in 4-component vector of float)
0:42 Branch: Return
0:? Linker Objects
-0:? 's2' (global structure{temp 4-component vector of float i})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'a' (layout(location=1 ) smooth in 4-component vector of float)
0:? 'b' (layout(location=2 ) flat in bool)
@@ -38,6 +36,8 @@ gl_FragCoord origin is upper left
0:? 'ff2' (layout(location=5 offset=4 ) in bool)
0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
+0:? 's2' (global structure{temp 4-component vector of float i})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
Linked fragment stage:
@@ -66,9 +66,7 @@ gl_FragCoord origin is upper left
0:42 'input' (layout(location=0 ) in 4-component vector of float)
0:42 Branch: Return
0:? Linker Objects
-0:? 's2' (global structure{temp 4-component vector of float i})
0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
0:? 'input' (layout(location=0 ) in 4-component vector of float)
0:? 'a' (layout(location=1 ) smooth in 4-component vector of float)
0:? 'b' (layout(location=2 ) flat in bool)
@@ -78,15 +76,17 @@ gl_FragCoord origin is upper left
0:? 'ff2' (layout(location=5 offset=4 ) in bool)
0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
+0:? 's2' (global structure{temp 4-component vector of float i})
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 49
+// Id's are bound by 50
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 38 40 42 45 46 47 48
+ EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 34 36 38 41 42 43 44
ExecutionMode 4 OriginUpperLeft
Name 4 "PixelShaderFunction"
Name 8 "FS"
@@ -98,44 +98,51 @@ gl_FragCoord origin is upper left
Name 25 "ff4"
Name 30 "@entryPointOutput"
Name 31 "input"
- Name 34 "myS"
- MemberName 34(myS) 0 "b"
- MemberName 34(myS) 1 "c"
- MemberName 34(myS) 2 "a"
- MemberName 34(myS) 3 "d"
- Name 35 "$Global"
- MemberName 35($Global) 0 "s1"
- MemberName 35($Global) 1 "ff5"
- MemberName 35($Global) 2 "ff6"
- Name 37 ""
- Name 38 "a"
- Name 40 "b"
- Name 42 "c"
- Name 45 "d"
- Name 46 "ff1"
- Name 47 "ff2"
- Name 48 "ff3"
+ Name 34 "a"
+ Name 36 "b"
+ Name 38 "c"
+ Name 41 "d"
+ Name 42 "ff1"
+ Name 43 "ff2"
+ Name 44 "ff3"
+ Name 46 "myS"
+ MemberName 46(myS) 0 "b"
+ MemberName 46(myS) 1 "c"
+ MemberName 46(myS) 2 "a"
+ MemberName 46(myS) 3 "d"
+ Name 47 "$Global"
+ MemberName 47($Global) 0 "s1"
+ MemberName 47($Global) 1 "ff5"
+ MemberName 47($Global) 2 "ff6"
+ Name 49 ""
Decorate 25(ff4) Offset 4
Decorate 25(ff4) Location 7
Decorate 25(ff4) Binding 0
Decorate 30(@entryPointOutput) Location 0
Decorate 31(input) Location 0
- Decorate 35($Global) Block
- Decorate 37 DescriptorSet 0
- Decorate 38(a) Location 1
- Decorate 40(b) Flat
- Decorate 40(b) Location 2
- Decorate 42(c) NoPerspective
- Decorate 42(c) Centroid
- Decorate 42(c) Location 3
- Decorate 45(d) Centroid
- Decorate 45(d) Location 4
- Decorate 46(ff1) BuiltIn FrontFacing
- Decorate 47(ff2) Offset 4
- Decorate 47(ff2) Location 5
- Decorate 48(ff3) Offset 4
- Decorate 48(ff3) Location 6
- Decorate 48(ff3) Binding 0
+ Decorate 34(a) Location 1
+ Decorate 36(b) Flat
+ Decorate 36(b) Location 2
+ Decorate 38(c) NoPerspective
+ Decorate 38(c) Centroid
+ Decorate 38(c) Location 3
+ Decorate 41(d) Centroid
+ Decorate 41(d) Location 4
+ Decorate 42(ff1) BuiltIn FrontFacing
+ Decorate 43(ff2) Offset 4
+ Decorate 43(ff2) Location 5
+ Decorate 44(ff3) Offset 4
+ Decorate 44(ff3) Location 6
+ Decorate 44(ff3) Binding 0
+ MemberDecorate 46(myS) 0 Offset 0
+ MemberDecorate 46(myS) 1 Offset 4
+ MemberDecorate 46(myS) 2 Offset 16
+ MemberDecorate 46(myS) 3 Offset 32
+ MemberDecorate 47($Global) 0 Offset 0
+ MemberDecorate 47($Global) 1 Offset 1620
+ MemberDecorate 47($Global) 2 Offset 1636
+ Decorate 47($Global) Block
+ Decorate 49 DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeBool
@@ -155,21 +162,22 @@ gl_FragCoord origin is upper left
29: TypePointer Output 18(fvec4)
30(@entryPointOutput): 29(ptr) Variable Output
31(input): 24(ptr) Variable Input
- 34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
- 35($Global): TypeStruct 34(myS) 17(float) 17(float)
- 36: TypePointer Uniform 35($Global)
- 37: 36(ptr) Variable Uniform
- 38(a): 24(ptr) Variable Input
- 39: TypePointer Input 6(bool)
- 40(b): 39(ptr) Variable Input
- 41: TypePointer Input 17(float)
- 42(c): 41(ptr) Variable Input
- 43: TypeVector 17(float) 2
- 44: TypePointer Input 43(fvec2)
- 45(d): 44(ptr) Variable Input
- 46(ff1): 39(ptr) Variable Input
- 47(ff2): 39(ptr) Variable Input
- 48(ff3): 39(ptr) Variable Input
+ 34(a): 24(ptr) Variable Input
+ 35: TypePointer Input 6(bool)
+ 36(b): 35(ptr) Variable Input
+ 37: TypePointer Input 17(float)
+ 38(c): 37(ptr) Variable Input
+ 39: TypeVector 17(float) 2
+ 40: TypePointer Input 39(fvec2)
+ 41(d): 40(ptr) Variable Input
+ 42(ff1): 35(ptr) Variable Input
+ 43(ff2): 35(ptr) Variable Input
+ 44(ff3): 35(ptr) Variable Input
+ 45: TypeInt 32 0
+ 46(myS): TypeStruct 45(int) 45(int) 18(fvec4) 18(fvec4)
+ 47($Global): TypeStruct 46(myS) 17(float) 17(float)
+ 48: TypePointer Uniform 47($Global)
+ 49: 48(ptr) Variable Uniform
4(PixelShaderFunction): 2 Function None 3
5: Label
10(s3): 9(ptr) Variable Function
diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out
index 16951a34..54fc662e 100755
--- a/Test/baseResults/hlsl.swizzle.frag.out
+++ b/Test/baseResults/hlsl.swizzle.frag.out
@@ -38,6 +38,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -106,6 +107,7 @@ gl_FragCoord origin is upper left
4(PixelShaderFunction): 2 Function None 3
5: Label
Store 14(AmbientColor) 18
+ Return
FunctionEnd
11(ShaderFunction(vf4;): 7(fvec4) Function None 9
10(input): 8(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out
index 0769cde4..d000257e 100644
--- a/Test/baseResults/hlsl.tx.bracket.frag.out
+++ b/Test/baseResults/hlsl.tx.bracket.frag.out
@@ -186,6 +186,7 @@ gl_FragCoord origin is upper left
0:72 0 (const int)
0:72 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -202,8 +203,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
Linked fragment stage:
@@ -396,6 +396,7 @@ gl_FragCoord origin is upper left
0:72 0 (const int)
0:72 Branch: Return
0:? Linker Objects
+0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'g_sSamp' (layout(binding=0 ) uniform sampler)
0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:? 'g_tTex1di4' (uniform itexture1D)
@@ -412,8 +413,7 @@ gl_FragCoord origin is upper left
0:? 'g_tTex2df4a' (uniform texture2DArray)
0:? 'g_tTex2di4a' (uniform itexture2DArray)
0:? 'g_tTex2du4a' (uniform utexture2DArray)
-0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
-0:? 'Color' (layout(location=0 ) out 4-component vector of float)
+0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
// Module Version 10000
// Generated by (magic number): 80001
diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out
index e8bda1af..565f45fd 100755
--- a/Test/baseResults/hlsl.typedef.frag.out
+++ b/Test/baseResults/hlsl.typedef.frag.out
@@ -39,6 +39,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
+WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left
@@ -106,6 +107,7 @@ gl_FragCoord origin is upper left
20: 9(int) Constant 2
4(PixelShaderFunction): 2 Function None 3
5: Label
+ Return
FunctionEnd
14(ShaderFunction(vf4;i1;): 7(fvec4) Function None 11
12(input): 8(ptr) FunctionParameter
diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out
index 28e326d2..699364ff 100755
--- a/Test/baseResults/hlsl.whileLoop.frag.out
+++ b/Test/baseResults/hlsl.whileLoop.frag.out
@@ -8,9 +8,10 @@ gl_FragCoord origin is upper left
0:? Sequence
0:3 Loop with condition tested first
0:3 Loop Condition
-0:3 Compare Not Equal (temp bool)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 any (temp bool)
+0:3 NotEqual (temp 4-component vector of bool)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Loop Body
0:? Sequence
0:3 Sequence
@@ -50,9 +51,10 @@ gl_FragCoord origin is upper left
0:? Sequence
0:3 Loop with condition tested first
0:3 Loop Condition
-0:3 Compare Not Equal (temp bool)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
-0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 any (temp bool)
+0:3 NotEqual (temp 4-component vector of bool)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
+0:3 'input' (layout(location=0 ) in 4-component vector of float)
0:3 Loop Body
0:? Sequence
0:3 Sequence
diff --git a/Test/baseResults/maxClipDistances.vert.out b/Test/baseResults/maxClipDistances.vert.out
index 5d44a663..4ad4ef15 100644
--- a/Test/baseResults/maxClipDistances.vert.out
+++ b/Test/baseResults/maxClipDistances.vert.out
@@ -5,7 +5,6 @@ Shader version: 130
0:5 Function Parameters:
0:? Linker Objects
0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
-0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
0:? 'gl_VertexID' (gl_VertexId int VertexId)
@@ -18,6 +17,5 @@ Shader version: 130
0:5 Function Parameters:
0:? Linker Objects
0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
-0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance)
0:? 'gl_VertexID' (gl_VertexId int VertexId)
diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out
index 848839c6..711c529d 100644
--- a/Test/baseResults/specExamples.frag.out
+++ b/Test/baseResults/specExamples.frag.out
@@ -318,12 +318,9 @@ ERROR: node is still EOpNull!
0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})
0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
-0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float)
0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
-0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
-0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
@@ -607,11 +604,8 @@ ERROR: node is still EOpNull!
0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor})
0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord})
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
-0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord)
0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float)
0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)
0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
-0:? 'gl_FragDepth' (gl_FragDepth float FragDepth)
-0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor})
diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out
index ef9a1225..d7de758c 100644
--- a/Test/baseResults/specExamples.vert.out
+++ b/Test/baseResults/specExamples.vert.out
@@ -298,11 +298,10 @@ ERROR: node is still EOpNull!
0:? 'c2' (layout(binding=3 ) uniform atomic_uint)
0:? 'd2' (layout(binding=2 ) uniform atomic_uint)
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...})
-0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...})
0:? 'ColorInv' (smooth out 3-component vector of float)
0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
0:? 'position' (noContraction smooth out 4-component vector of float)
-0:? 'Color5' (smooth out 3-component vector of float)
+0:? 'Color5' (noContraction smooth out 3-component vector of float)
0:? 'a' (in 4-component vector of float)
0:? 'b' (in 4-component vector of float)
0:? 'c' (in 4-component vector of float)
@@ -582,11 +581,10 @@ ERROR: node is still EOpNull!
0:? 'c2' (layout(binding=3 ) uniform atomic_uint)
0:? 'd2' (layout(binding=2 ) uniform atomic_uint)
0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
-0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord})
0:? 'ColorInv' (smooth out 3-component vector of float)
0:? 'Color4' (invariant centroid smooth out 3-component vector of float)
0:? 'position' (noContraction smooth out 4-component vector of float)
-0:? 'Color5' (smooth out 3-component vector of float)
+0:? 'Color5' (noContraction smooth out 3-component vector of float)
0:? 'a' (in 4-component vector of float)
0:? 'b' (in 4-component vector of float)
0:? 'c' (in 4-component vector of float)
diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out
index 3eafc2b5..bd1f3466 100755..100644
--- a/Test/baseResults/spv.310.comp.out
+++ b/Test/baseResults/spv.310.comp.out
@@ -7,121 +7,122 @@ Linked compute stage:
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 66
+// Id's are bound by 67
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint GLCompute 4 "main" 52
+ EntryPoint GLCompute 4 "main" 53
ExecutionMode 4 LocalSize 16 32 4
Source ESSL 310
Name 4 "main"
- Name 12 "outb"
- MemberName 12(outb) 0 "f"
- MemberName 12(outb) 1 "g"
- MemberName 12(outb) 2 "h"
- MemberName 12(outb) 3 "uns"
- Name 14 "outbname"
- Name 18 "s"
- Name 23 "outbna"
- MemberName 23(outbna) 0 "k"
- MemberName 23(outbna) 1 "na"
- Name 25 "outbnamena"
- Name 41 "i"
- Name 47 "outs"
- MemberName 47(outs) 0 "s"
- MemberName 47(outs) 1 "va"
- Name 49 "outnames"
- Name 52 "gl_LocalInvocationID"
- Decorate 11 ArrayStride 16
- MemberDecorate 12(outb) 0 Offset 0
- MemberDecorate 12(outb) 1 Offset 4
- MemberDecorate 12(outb) 2 Offset 8
- MemberDecorate 12(outb) 3 Offset 16
- Decorate 12(outb) BufferBlock
- Decorate 14(outbname) DescriptorSet 0
- MemberDecorate 23(outbna) 0 Offset 0
- MemberDecorate 23(outbna) 1 Offset 16
- Decorate 23(outbna) BufferBlock
- Decorate 25(outbnamena) DescriptorSet 0
- Decorate 46 ArrayStride 16
- MemberDecorate 47(outs) 0 Offset 0
- MemberDecorate 47(outs) 1 Offset 16
- Decorate 47(outs) BufferBlock
- Decorate 49(outnames) DescriptorSet 0
- Decorate 52(gl_LocalInvocationID) BuiltIn LocalInvocationId
- Decorate 65 BuiltIn WorkgroupSize
+ Name 13 "outb"
+ MemberName 13(outb) 0 "f"
+ MemberName 13(outb) 1 "g"
+ MemberName 13(outb) 2 "h"
+ MemberName 13(outb) 3 "uns"
+ Name 15 "outbname"
+ Name 19 "s"
+ Name 24 "outbna"
+ MemberName 24(outbna) 0 "k"
+ MemberName 24(outbna) 1 "na"
+ Name 26 "outbnamena"
+ Name 42 "i"
+ Name 48 "outs"
+ MemberName 48(outs) 0 "s"
+ MemberName 48(outs) 1 "va"
+ Name 50 "outnames"
+ Name 53 "gl_LocalInvocationID"
+ Decorate 12 ArrayStride 16
+ MemberDecorate 13(outb) 0 Offset 0
+ MemberDecorate 13(outb) 1 Offset 4
+ MemberDecorate 13(outb) 2 Offset 8
+ MemberDecorate 13(outb) 3 Offset 16
+ Decorate 13(outb) BufferBlock
+ Decorate 15(outbname) DescriptorSet 0
+ MemberDecorate 24(outbna) 0 Offset 0
+ MemberDecorate 24(outbna) 1 Offset 16
+ Decorate 24(outbna) BufferBlock
+ Decorate 26(outbnamena) DescriptorSet 0
+ Decorate 47 ArrayStride 16
+ MemberDecorate 48(outs) 0 Offset 0
+ MemberDecorate 48(outs) 1 Offset 16
+ Decorate 48(outs) BufferBlock
+ Decorate 50(outnames) DescriptorSet 0
+ Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
+ Decorate 66 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
- 7: 6(int) Constant 1
- 8: 6(int) Constant 0
- 9: TypeFloat 32
- 10: TypeVector 9(float) 3
- 11: TypeRuntimeArray 10(fvec3)
- 12(outb): TypeStruct 9(float) 9(float) 9(float) 11
- 13: TypePointer Uniform 12(outb)
- 14(outbname): 13(ptr) Variable Uniform
- 15: TypeInt 32 1
- 16: 15(int) Constant 0
- 17: TypePointer Workgroup 9(float)
- 18(s): 17(ptr) Variable Workgroup
- 20: TypePointer Uniform 9(float)
- 22: TypeVector 9(float) 4
- 23(outbna): TypeStruct 15(int) 22(fvec4)
- 24: TypePointer Uniform 23(outbna)
- 25(outbnamena): 24(ptr) Variable Uniform
- 26: 15(int) Constant 1
- 29: TypePointer Uniform 22(fvec4)
- 31: 15(int) Constant 3
- 32: 15(int) Constant 18
- 35: 15(int) Constant 17
- 36: 9(float) Constant 1077936128
- 37: 10(fvec3) ConstantComposite 36 36 36
- 38: TypePointer Uniform 10(fvec3)
- 40: TypePointer Workgroup 15(int)
- 41(i): 40(ptr) Variable Workgroup
- 46: TypeRuntimeArray 22(fvec4)
- 47(outs): TypeStruct 15(int) 46
- 48: TypePointer Uniform 47(outs)
- 49(outnames): 48(ptr) Variable Uniform
- 50: TypeVector 6(int) 3
- 51: TypePointer Input 50(ivec3)
-52(gl_LocalInvocationID): 51(ptr) Variable Input
- 53: TypePointer Input 6(int)
- 60: TypePointer Uniform 15(int)
- 62: 6(int) Constant 16
- 63: 6(int) Constant 32
- 64: 6(int) Constant 4
- 65: 50(ivec3) ConstantComposite 62 63 64
+ 7: 6(int) Constant 2
+ 8: 6(int) Constant 1
+ 9: 6(int) Constant 0
+ 10: TypeFloat 32
+ 11: TypeVector 10(float) 3
+ 12: TypeRuntimeArray 11(fvec3)
+ 13(outb): TypeStruct 10(float) 10(float) 10(float) 12
+ 14: TypePointer Uniform 13(outb)
+ 15(outbname): 14(ptr) Variable Uniform
+ 16: TypeInt 32 1
+ 17: 16(int) Constant 0
+ 18: TypePointer Workgroup 10(float)
+ 19(s): 18(ptr) Variable Workgroup
+ 21: TypePointer Uniform 10(float)
+ 23: TypeVector 10(float) 4
+ 24(outbna): TypeStruct 16(int) 23(fvec4)
+ 25: TypePointer Uniform 24(outbna)
+ 26(outbnamena): 25(ptr) Variable Uniform
+ 27: 16(int) Constant 1
+ 30: TypePointer Uniform 23(fvec4)
+ 32: 16(int) Constant 3
+ 33: 16(int) Constant 18
+ 36: 16(int) Constant 17
+ 37: 10(float) Constant 1077936128
+ 38: 11(fvec3) ConstantComposite 37 37 37
+ 39: TypePointer Uniform 11(fvec3)
+ 41: TypePointer Workgroup 16(int)
+ 42(i): 41(ptr) Variable Workgroup
+ 47: TypeRuntimeArray 23(fvec4)
+ 48(outs): TypeStruct 16(int) 47
+ 49: TypePointer Uniform 48(outs)
+ 50(outnames): 49(ptr) Variable Uniform
+ 51: TypeVector 6(int) 3
+ 52: TypePointer Input 51(ivec3)
+53(gl_LocalInvocationID): 52(ptr) Variable Input
+ 54: TypePointer Input 6(int)
+ 61: TypePointer Uniform 16(int)
+ 63: 6(int) Constant 16
+ 64: 6(int) Constant 32
+ 65: 6(int) Constant 4
+ 66: 51(ivec3) ConstantComposite 63 64 65
4(main): 2 Function None 3
5: Label
- ControlBarrier 7 7 8
- 19: 9(float) Load 18(s)
- 21: 20(ptr) AccessChain 14(outbname) 16
- Store 21 19
- 27: 9(float) Load 18(s)
- 28: 22(fvec4) CompositeConstruct 27 27 27 27
- 30: 29(ptr) AccessChain 25(outbnamena) 26
- Store 30 28
- 33: 20(ptr) AccessChain 14(outbname) 31 32 8
- 34: 9(float) Load 33
- Store 18(s) 34
- 39: 38(ptr) AccessChain 14(outbname) 31 35
- Store 39 37
- 42: 15(int) Load 41(i)
- 43: 9(float) Load 18(s)
- 44: 10(fvec3) CompositeConstruct 43 43 43
- 45: 38(ptr) AccessChain 14(outbname) 31 42
- Store 45 44
- 54: 53(ptr) AccessChain 52(gl_LocalInvocationID) 8
- 55: 6(int) Load 54
- 56: 9(float) Load 18(s)
- 57: 22(fvec4) CompositeConstruct 56 56 56 56
- 58: 29(ptr) AccessChain 49(outnames) 26 55
- Store 58 57
- 59: 15(int) ArrayLength 14(outbname) 3
- 61: 60(ptr) AccessChain 49(outnames) 16
- Store 61 59
+ ControlBarrier 7 8 9
+ 20: 10(float) Load 19(s)
+ 22: 21(ptr) AccessChain 15(outbname) 17
+ Store 22 20
+ 28: 10(float) Load 19(s)
+ 29: 23(fvec4) CompositeConstruct 28 28 28 28
+ 31: 30(ptr) AccessChain 26(outbnamena) 27
+ Store 31 29
+ 34: 21(ptr) AccessChain 15(outbname) 32 33 9
+ 35: 10(float) Load 34
+ Store 19(s) 35
+ 40: 39(ptr) AccessChain 15(outbname) 32 36
+ Store 40 38
+ 43: 16(int) Load 42(i)
+ 44: 10(float) Load 19(s)
+ 45: 11(fvec3) CompositeConstruct 44 44 44
+ 46: 39(ptr) AccessChain 15(outbname) 32 43
+ Store 46 45
+ 55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9
+ 56: 6(int) Load 55
+ 57: 10(float) Load 19(s)
+ 58: 23(fvec4) CompositeConstruct 57 57 57 57
+ 59: 30(ptr) AccessChain 50(outnames) 27 56
+ Store 59 58
+ 60: 16(int) ArrayLength 15(outbname) 3
+ 62: 61(ptr) AccessChain 50(outnames) 17
+ Store 62 60
Return
FunctionEnd
diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index bcfd963e..ae469aad 100755..100644
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -14,26 +14,26 @@ Linked tessellation control stage:
Capability ClipDistance
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint TessellationControl 4 "main" 23 40 43 46 54 68 73 79 83 84 87 88 91 92
+ EntryPoint TessellationControl 4 "main" 24 41 44 47 54 68 73 79 83 84 87 88 91 92
ExecutionMode 4 OutputVertices 4
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
- Name 11 "a"
- Name 16 "p"
- Name 19 "gl_PerVertex"
- MemberName 19(gl_PerVertex) 0 "gl_Position"
- MemberName 19(gl_PerVertex) 1 "gl_PointSize"
- MemberName 19(gl_PerVertex) 2 "gl_ClipDistance"
- Name 23 "gl_in"
- Name 30 "ps"
- Name 34 "cd"
- Name 38 "pvi"
- Name 40 "gl_PatchVerticesIn"
- Name 42 "pid"
- Name 43 "gl_PrimitiveID"
- Name 45 "iid"
- Name 46 "gl_InvocationID"
+ Name 12 "a"
+ Name 17 "p"
+ Name 20 "gl_PerVertex"
+ MemberName 20(gl_PerVertex) 0 "gl_Position"
+ MemberName 20(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
+ Name 24 "gl_in"
+ Name 31 "ps"
+ Name 35 "cd"
+ Name 39 "pvi"
+ Name 41 "gl_PatchVerticesIn"
+ Name 43 "pid"
+ Name 44 "gl_PrimitiveID"
+ Name 46 "iid"
+ Name 47 "gl_InvocationID"
Name 50 "gl_PerVertex"
MemberName 50(gl_PerVertex) 0 "gl_Position"
MemberName 50(gl_PerVertex) 1 "gl_PointSize"
@@ -49,13 +49,13 @@ Linked tessellation control stage:
Name 88 "ivlb"
Name 91 "ovla"
Name 92 "ovlb"
- MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position
- MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize
- MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance
- Decorate 19(gl_PerVertex) Block
- Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices
- Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId
- Decorate 46(gl_InvocationID) BuiltIn InvocationId
+ MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
+ Decorate 20(gl_PerVertex) Block
+ Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices
+ Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId
+ Decorate 47(gl_InvocationID) BuiltIn InvocationId
MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance
@@ -72,106 +72,106 @@ Linked tessellation control stage:
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
- 7: 6(int) Constant 1
- 8: 6(int) Constant 0
- 9: TypeInt 32 1
- 10: TypePointer Function 9(int)
- 12: 9(int) Constant 5392
- 13: TypeFloat 32
- 14: TypeVector 13(float) 4
- 15: TypePointer Function 14(fvec4)
- 17: 6(int) Constant 3
- 18: TypeArray 13(float) 17
-19(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 18
- 20: 6(int) Constant 32
- 21: TypeArray 19(gl_PerVertex) 20
- 22: TypePointer Input 21
- 23(gl_in): 22(ptr) Variable Input
- 24: 9(int) Constant 1
- 25: 9(int) Constant 0
- 26: TypePointer Input 14(fvec4)
- 29: TypePointer Function 13(float)
- 31: TypePointer Input 13(float)
- 35: 9(int) Constant 2
- 39: TypePointer Input 9(int)
-40(gl_PatchVerticesIn): 39(ptr) Variable Input
-43(gl_PrimitiveID): 39(ptr) Variable Input
-46(gl_InvocationID): 39(ptr) Variable Input
- 48: 6(int) Constant 2
- 49: TypeArray 13(float) 48
-50(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 49
+ 7: 6(int) Constant 2
+ 8: 6(int) Constant 1
+ 9: 6(int) Constant 0
+ 10: TypeInt 32 1
+ 11: TypePointer Function 10(int)
+ 13: 10(int) Constant 5392
+ 14: TypeFloat 32
+ 15: TypeVector 14(float) 4
+ 16: TypePointer Function 15(fvec4)
+ 18: 6(int) Constant 3
+ 19: TypeArray 14(float) 18
+20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19
+ 21: 6(int) Constant 32
+ 22: TypeArray 20(gl_PerVertex) 21
+ 23: TypePointer Input 22
+ 24(gl_in): 23(ptr) Variable Input
+ 25: 10(int) Constant 1
+ 26: 10(int) Constant 0
+ 27: TypePointer Input 15(fvec4)
+ 30: TypePointer Function 14(float)
+ 32: TypePointer Input 14(float)
+ 36: 10(int) Constant 2
+ 40: TypePointer Input 10(int)
+41(gl_PatchVerticesIn): 40(ptr) Variable Input
+44(gl_PrimitiveID): 40(ptr) Variable Input
+47(gl_InvocationID): 40(ptr) Variable Input
+ 49: TypeArray 14(float) 7
+50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49
51: 6(int) Constant 4
52: TypeArray 50(gl_PerVertex) 51
53: TypePointer Output 52
54(gl_out): 53(ptr) Variable Output
- 57: TypePointer Output 14(fvec4)
- 61: TypePointer Output 13(float)
- 66: TypeArray 13(float) 51
+ 57: TypePointer Output 15(fvec4)
+ 61: TypePointer Output 14(float)
+ 66: TypeArray 14(float) 51
67: TypePointer Output 66
68(gl_TessLevelOuter): 67(ptr) Variable Output
- 69: 9(int) Constant 3
- 70: 13(float) Constant 1078774989
+ 69: 10(int) Constant 3
+ 70: 14(float) Constant 1078774989
72: TypePointer Output 49
73(gl_TessLevelInner): 72(ptr) Variable Output
- 74: 13(float) Constant 1067869798
- 76: TypeArray 9(int) 51
+ 74: 14(float) Constant 1067869798
+ 76: TypeArray 10(int) 51
77: TypePointer Private 76
78(outa): 77(ptr) Variable Private
79(patchOut): 57(ptr) Variable Output
- 80: TypeVector 13(float) 2
- 81: TypeArray 80(fvec2) 20
+ 80: TypeVector 14(float) 2
+ 81: TypeArray 80(fvec2) 21
82: TypePointer Input 81
83(inb): 82(ptr) Variable Input
84(ind): 82(ptr) Variable Input
- 85: TypeArray 14(fvec4) 20
+ 85: TypeArray 15(fvec4) 21
86: TypePointer Input 85
87(ivla): 86(ptr) Variable Input
88(ivlb): 86(ptr) Variable Input
- 89: TypeArray 14(fvec4) 51
+ 89: TypeArray 15(fvec4) 51
90: TypePointer Output 89
91(ovla): 90(ptr) Variable Output
92(ovlb): 90(ptr) Variable Output
4(main): 2 Function None 3
5: Label
- 11(a): 10(ptr) Variable Function
- 16(p): 15(ptr) Variable Function
- 30(ps): 29(ptr) Variable Function
- 34(cd): 29(ptr) Variable Function
- 38(pvi): 10(ptr) Variable Function
- 42(pid): 10(ptr) Variable Function
- 45(iid): 10(ptr) Variable Function
- ControlBarrier 7 7 8
- Store 11(a) 12
- 27: 26(ptr) AccessChain 23(gl_in) 24 25
- 28: 14(fvec4) Load 27
- Store 16(p) 28
- 32: 31(ptr) AccessChain 23(gl_in) 24 24
- 33: 13(float) Load 32
- Store 30(ps) 33
- 36: 31(ptr) AccessChain 23(gl_in) 24 35 35
- 37: 13(float) Load 36
- Store 34(cd) 37
- 41: 9(int) Load 40(gl_PatchVerticesIn)
- Store 38(pvi) 41
- 44: 9(int) Load 43(gl_PrimitiveID)
- Store 42(pid) 44
- 47: 9(int) Load 46(gl_InvocationID)
- Store 45(iid) 47
- 55: 9(int) Load 46(gl_InvocationID)
- 56: 14(fvec4) Load 16(p)
- 58: 57(ptr) AccessChain 54(gl_out) 55 25
+ 12(a): 11(ptr) Variable Function
+ 17(p): 16(ptr) Variable Function
+ 31(ps): 30(ptr) Variable Function
+ 35(cd): 30(ptr) Variable Function
+ 39(pvi): 11(ptr) Variable Function
+ 43(pid): 11(ptr) Variable Function
+ 46(iid): 11(ptr) Variable Function
+ ControlBarrier 7 8 9
+ Store 12(a) 13
+ 28: 27(ptr) AccessChain 24(gl_in) 25 26
+ 29: 15(fvec4) Load 28
+ Store 17(p) 29
+ 33: 32(ptr) AccessChain 24(gl_in) 25 25
+ 34: 14(float) Load 33
+ Store 31(ps) 34
+ 37: 32(ptr) AccessChain 24(gl_in) 25 36 36
+ 38: 14(float) Load 37
+ Store 35(cd) 38
+ 42: 10(int) Load 41(gl_PatchVerticesIn)
+ Store 39(pvi) 42
+ 45: 10(int) Load 44(gl_PrimitiveID)
+ Store 43(pid) 45
+ 48: 10(int) Load 47(gl_InvocationID)
+ Store 46(iid) 48
+ 55: 10(int) Load 47(gl_InvocationID)
+ 56: 15(fvec4) Load 17(p)
+ 58: 57(ptr) AccessChain 54(gl_out) 55 26
Store 58 56
- 59: 9(int) Load 46(gl_InvocationID)
- 60: 13(float) Load 30(ps)
- 62: 61(ptr) AccessChain 54(gl_out) 59 24
+ 59: 10(int) Load 47(gl_InvocationID)
+ 60: 14(float) Load 31(ps)
+ 62: 61(ptr) AccessChain 54(gl_out) 59 25
Store 62 60
- 63: 9(int) Load 46(gl_InvocationID)
- 64: 13(float) Load 34(cd)
- 65: 61(ptr) AccessChain 54(gl_out) 63 35 24
+ 63: 10(int) Load 47(gl_InvocationID)
+ 64: 14(float) Load 35(cd)
+ 65: 61(ptr) AccessChain 54(gl_out) 63 36 25
Store 65 64
71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69
Store 71 70
- 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 24
+ 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25
Store 75 74
Return
FunctionEnd
diff --git a/Test/baseResults/spv.noWorkgroup.comp.out b/Test/baseResults/spv.noWorkgroup.comp.out
new file mode 100755
index 00000000..f12e6202
--- /dev/null
+++ b/Test/baseResults/spv.noWorkgroup.comp.out
@@ -0,0 +1,34 @@
+spv.noWorkgroup.comp
+Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+
+
+Linked compute stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 12
+
+ Capability Shader
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint GLCompute 4 "main"
+ ExecutionMode 4 LocalSize 1 1 1
+ Source GLSL 450
+ Name 4 "main"
+ Decorate 7 SpecId 18
+ Decorate 8 SpecId 10
+ Decorate 9 SpecId 19
+ Decorate 11 BuiltIn WorkgroupSize
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeInt 32 0
+ 7: 6(int) SpecConstant 1
+ 8: 6(int) SpecConstant 1
+ 9: 6(int) SpecConstant 1
+ 10: TypeVector 6(int) 3
+ 11: 10(ivec3) SpecConstantComposite 7 8 9
+ 4(main): 2 Function None 3
+ 5: Label
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
index a521a13b..94933fba 100644
--- a/Test/baseResults/spv.register.autoassign.rangetest.frag.out
+++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
@@ -2,10 +2,6 @@ spv.register.autoassign.rangetest.frag
Linked fragment stage:
-INTERNAL ERROR: mapped binding out of range: g_tScene
-INTERNAL ERROR: mapped binding out of range: g_tSamp
-INTERNAL ERROR: mapped binding out of range: g_tScene
-INTERNAL ERROR: mapped binding out of range: g_tSamp
INTERNAL ERROR: mapped binding out of range: g_tSamp
INTERNAL ERROR: mapped binding out of range: g_tScene
diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out
new file mode 100644
index 00000000..851ef463
--- /dev/null
+++ b/Test/baseResults/spv.rw.autoassign.frag.out
@@ -0,0 +1,70 @@
+spv.rw.autoassign.frag
+
+Linked fragment stage:
+
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 37
+
+ Capability Shader
+ Capability Sampled1D
+ Capability SampledBuffer
+ 1: ExtInstImport "GLSL.std.450"
+ MemoryModel Logical GLSL450
+ EntryPoint Fragment 4 "main" 33
+ ExecutionMode 4 OriginUpperLeft
+ Name 4 "main"
+ Name 8 "r00"
+ Name 11 "g_tTex1df1"
+ Name 18 "r01"
+ Name 21 "g_tBuf1du1"
+ Name 25 "PS_OUTPUT"
+ MemberName 25(PS_OUTPUT) 0 "Color"
+ Name 27 "psout"
+ Name 33 "Color"
+ Decorate 11(g_tTex1df1) DescriptorSet 0
+ Decorate 11(g_tTex1df1) Binding 20
+ Decorate 21(g_tBuf1du1) DescriptorSet 0
+ Decorate 21(g_tBuf1du1) Binding 21
+ Decorate 33(Color) Location 0
+ 2: TypeVoid
+ 3: TypeFunction 2
+ 6: TypeFloat 32
+ 7: TypePointer Function 6(float)
+ 9: TypeImage 6(float) 1D nonsampled format:R32f
+ 10: TypePointer UniformConstant 9
+ 11(g_tTex1df1): 10(ptr) Variable UniformConstant
+ 13: TypeInt 32 1
+ 14: 13(int) Constant 0
+ 16: TypeInt 32 0
+ 17: TypePointer Function 16(int)
+ 19: TypeImage 16(int) Buffer nonsampled format:R32ui
+ 20: TypePointer UniformConstant 19
+ 21(g_tBuf1du1): 20(ptr) Variable UniformConstant
+ 24: TypeVector 6(float) 4
+ 25(PS_OUTPUT): TypeStruct 24(fvec4)
+ 26: TypePointer Function 25(PS_OUTPUT)
+ 28: 6(float) Constant 0
+ 29: 24(fvec4) ConstantComposite 28 28 28 28
+ 30: TypePointer Function 24(fvec4)
+ 32: TypePointer Output 24(fvec4)
+ 33(Color): 32(ptr) Variable Output
+ 4(main): 2 Function None 3
+ 5: Label
+ 8(r00): 7(ptr) Variable Function
+ 18(r01): 17(ptr) Variable Function
+ 27(psout): 26(ptr) Variable Function
+ 12: 9 Load 11(g_tTex1df1)
+ 15: 6(float) ImageRead 12 14
+ Store 8(r00) 15
+ 22: 19 Load 21(g_tBuf1du1)
+ 23: 16(int) ImageRead 22 14
+ Store 18(r01) 23
+ 31: 30(ptr) AccessChain 27(psout) 14
+ Store 31 29
+ 34: 30(ptr) AccessChain 27(psout) 14
+ 35: 24(fvec4) Load 34
+ Store 33(Color) 35
+ Return
+ FunctionEnd
diff --git a/Test/baseResults/varyingArray.frag.out b/Test/baseResults/varyingArray.frag.out
index c6cf6bae..1fd59b46 100644
--- a/Test/baseResults/varyingArray.frag.out
+++ b/Test/baseResults/varyingArray.frag.out
@@ -56,7 +56,6 @@ Shader version: 130
0:? 'color' (smooth in 4-component vector of float)
0:? 'alpha' (smooth in float)
0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
-0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
0:? 'foo' (smooth in 3-element array of 4-component vector of float)
@@ -115,6 +114,5 @@ Shader version: 130
0:? 'color' (smooth in 4-component vector of float)
0:? 'alpha' (smooth in float)
0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
-0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
0:? 'foo' (smooth in 3-element array of 4-component vector of float)
diff --git a/Test/baseResults/varyingArrayIndirect.frag.out b/Test/baseResults/varyingArrayIndirect.frag.out
index 02a41f3f..73498129 100644
--- a/Test/baseResults/varyingArrayIndirect.frag.out
+++ b/Test/baseResults/varyingArrayIndirect.frag.out
@@ -57,7 +57,6 @@ Shader version: 130
0:? 'color' (smooth in 4-component vector of float)
0:? 'alpha' (smooth in float)
0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
-0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
0:? 'userIn' (smooth in 2-element array of 4-component vector of float)
0:? 'a' (uniform int)
0:? 'b' (uniform int)
@@ -119,7 +118,6 @@ Shader version: 130
0:? 'color' (smooth in 4-component vector of float)
0:? 'alpha' (smooth in float)
0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
-0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord)
0:? 'userIn' (smooth in 2-element array of 4-component vector of float)
0:? 'a' (uniform int)
0:? 'b' (uniform int)
diff --git a/Test/hlsl.attribute.expression.comp b/Test/hlsl.attribute.expression.comp
new file mode 100644
index 00000000..535fbad4
--- /dev/null
+++ b/Test/hlsl.attribute.expression.comp
@@ -0,0 +1,15 @@
+
+uniform int bound;
+
+#define FOO 3
+#define BAR 2
+
+[numthreads(2+2, 2*3, (1+FOO)*BAR)]
+float4 main() : SV_TARGET
+{
+ [unroll(5*2 + 1) ]
+ for (int x=0; x<bound; ++x)
+ ;
+
+ return float4(0,0,0,0);
+}
diff --git a/Test/hlsl.basic.geom b/Test/hlsl.basic.geom
new file mode 100644
index 00000000..79b061ee
--- /dev/null
+++ b/Test/hlsl.basic.geom
@@ -0,0 +1,25 @@
+struct PSInput
+{
+ float myfloat : SOME_SEMANTIC;
+ int something : ANOTHER_SEMANTIC;
+};
+
+struct nametest {
+ int Append; // these are valid names even though they are also method names.
+ int RestartStrip; // ...
+};
+
+[maxvertexcount(4)]
+void main(triangle in uint VertexID[3] : VertexID,
+ triangle uint test[3] : FOO,
+ inout LineStream<PSInput> OutputStream)
+{
+ PSInput Vert;
+
+ Vert.myfloat = test[0] + test[1] + test[2];
+ Vert.something = VertexID[0];
+
+ OutputStream.Append(Vert);
+ OutputStream.Append(Vert);
+ OutputStream.RestartStrip();
+}
diff --git a/Test/hlsl.comparison.vec.frag b/Test/hlsl.comparison.vec.frag
new file mode 100644
index 00000000..b8f93c9f
--- /dev/null
+++ b/Test/hlsl.comparison.vec.frag
@@ -0,0 +1,34 @@
+uniform float4 uf4;
+
+void Bug1( float4 a )
+{
+ float4 v04 = float4( 0.0, 0.0, 0.0, 0.0 );
+ float v01 = 0.0;
+
+ bool4 r00 = a == v04;
+ bool4 r01 = a != v04;
+ bool4 r02 = a < v04;
+ bool4 r03 = a > v04;
+
+ bool4 r10 = a == v01;
+ bool4 r11 = a != v01;
+ bool4 r12 = a < v01;
+ bool4 r13 = a > v01;
+
+ bool4 r20 = v01 == a;
+ bool4 r21 = v01 != a;
+ bool4 r22 = v01 < a;
+ bool4 r23 = v01 > a;
+}
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT psout;
+ psout.Color = 0;
+ return psout;
+}
diff --git a/Test/hlsl.doLoop.frag b/Test/hlsl.doLoop.frag
index 546b2c2c..251a8c12 100644
--- a/Test/hlsl.doLoop.frag
+++ b/Test/hlsl.doLoop.frag
@@ -2,5 +2,5 @@ float4 PixelShaderFunction(float4 input) : COLOR0
{
[unroll] do {} while (false);
[unroll] do {;} while (false);
- do { return input; } while (input == input);
+ do { return input; } while (all(input == input));
}
diff --git a/Test/hlsl.forLoop.frag b/Test/hlsl.forLoop.frag
index 2495e6e1..93789967 100644
--- a/Test/hlsl.forLoop.frag
+++ b/Test/hlsl.forLoop.frag
@@ -2,9 +2,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0
{
for (;;) ;
for (++input; ; ) ;
- [unroll] for (; input != input; ) {}
- for (; input != input; ) { return -input; }
- for (--input; input != input; input += 2) { return -input; }
+ [unroll] for (; any(input != input); ) {}
+ for (; any(input != input); ) { return -input; }
+ for (--input; any(input != input); input += 2) { return -input; }
for (;;) if (input.x > 2.0) break;
for (;;) if (input.x > 2.0) continue;
float ii;
diff --git a/Test/hlsl.identifier.sample.frag b/Test/hlsl.identifier.sample.frag
new file mode 100644
index 00000000..3281a9ac
--- /dev/null
+++ b/Test/hlsl.identifier.sample.frag
@@ -0,0 +1,18 @@
+
+struct MyStruct {
+ sample float a;
+ noperspective float b;
+ linear float c;
+ centroid float d;
+};
+
+int sample(int x) { return x; } // HLSL allows this as an identifier as well.
+
+float4 main() : SV_Target0
+{
+ // HLSL allows this as an identifier as well.
+ // However, this is not true of other qualifier keywords such as "linear".
+ int sample = 3;
+
+ return float4(0,0,0,0);
+}
diff --git a/Test/hlsl.if.frag b/Test/hlsl.if.frag
index 1f6dc415..ba659e6d 100644
--- a/Test/hlsl.if.frag
+++ b/Test/hlsl.if.frag
@@ -1,26 +1,26 @@
float4 PixelShaderFunction(float4 input) : COLOR0
{
- if (input == input)
+ if (all(input == input))
return input;
- if (input == input)
+ if (all(input == input))
return input;
else
return -input;
- if (input == input)
+ if (all(input == input))
;
- if (input == input)
+ if (all(input == input))
;
else
;
- [flatten] if (input == input) {
+ [flatten] if (all(input == input)) {
return input;
}
- if (input == input) {
+ if (all(input == input)) {
return input;
} else {
return -input;
diff --git a/Test/hlsl.logical.binary.frag b/Test/hlsl.logical.binary.frag
new file mode 100644
index 00000000..06bc9f2f
--- /dev/null
+++ b/Test/hlsl.logical.binary.frag
@@ -0,0 +1,21 @@
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+uniform int ival;
+uniform int4 ival4;
+uniform float fval;
+uniform float4 fval4;
+
+PS_OUTPUT main()
+{
+ if (ival && fval);
+ if (ival || fval);
+
+ PS_OUTPUT psout;
+ psout.Color = 1.0;
+ return psout;
+}
+
+
diff --git a/Test/hlsl.logical.binary.vec.frag b/Test/hlsl.logical.binary.vec.frag
new file mode 100644
index 00000000..e94c8f5b
--- /dev/null
+++ b/Test/hlsl.logical.binary.vec.frag
@@ -0,0 +1,24 @@
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+uniform bool4 b4a, b4b;
+uniform bool b1a, b1b;
+
+PS_OUTPUT main()
+{
+ bool4 r00 = !b4a;
+ bool4 r01 = b4a && b4b; // vec, vec
+ bool4 r02 = b4a || b4b; // vec, vec
+
+ bool4 r10 = b1a && b4b; // scalar, vec
+ bool4 r11 = b1a || b4b; // scalar, vec
+
+ bool4 r20 = b4a && b1b; // vec, scalar
+ bool4 r21 = b4a || b1b; // vec, scalar
+
+ PS_OUTPUT psout;
+ psout.Color = r00 || r01 || r02 || r10 || r11 || r20 || r21;
+ return psout;
+}
diff --git a/Test/hlsl.logical.unary.frag b/Test/hlsl.logical.unary.frag
new file mode 100644
index 00000000..cbcb3bfc
--- /dev/null
+++ b/Test/hlsl.logical.unary.frag
@@ -0,0 +1,29 @@
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+uniform int ival;
+uniform int4 ival4;
+uniform float fval;
+uniform float4 fval4;
+
+PS_OUTPUT main()
+{
+ !ival; // scalar int
+ !ival4; // vector int
+
+ !fval; // scalar float
+ !fval4; // vector float
+
+ if (ival);
+ if (fval);
+ if (!ival);
+ if (!fval);
+
+ PS_OUTPUT psout;
+ psout.Color = 1.0;
+ return psout;
+}
+
+
diff --git a/Test/hlsl.matNx1.frag b/Test/hlsl.matNx1.frag
new file mode 100644
index 00000000..515bd470
--- /dev/null
+++ b/Test/hlsl.matNx1.frag
@@ -0,0 +1,31 @@
+
+void TestMatNx1()
+{
+ float1x1 f1x1;
+ float2x1 f2x1;
+ float3x1 f3x1;
+ float4x1 f4x1;
+
+ float1x2 f1x2;
+ float1x3 f1x3;
+ float1x4 f1x4;
+
+ float1x1 r00 = transpose(f1x1);
+ float1x2 r01 = transpose(f2x1);
+ float1x3 r02 = transpose(f3x1);
+ float1x4 r03 = transpose(f4x1);
+
+ float1x1 r10 = transpose(f1x1);
+ float2x1 r11 = transpose(f1x2);
+ float3x1 r12 = transpose(f1x3);
+ float4x1 r13 = transpose(f1x4);
+}
+
+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.matType.bool.frag b/Test/hlsl.matType.bool.frag
new file mode 100644
index 00000000..e4a62e36
--- /dev/null
+++ b/Test/hlsl.matType.bool.frag
@@ -0,0 +1,53 @@
+
+void TestBoolMatTypes()
+{
+ bool1x1 b1x1;
+ bool2x1 b2x1;
+ bool3x1 b3x1;
+ bool4x1 b4x1;
+
+ bool1x2 b1x2;
+ bool2x2 b2x2;
+ bool3x2 b3x2;
+ bool4x2 b4x2;
+
+ bool1x3 b1x3;
+ bool2x3 b2x3;
+ bool3x3 b3x3;
+ bool4x3 b4x3;
+
+ bool1x4 b1x4;
+ bool2x4 b2x4;
+ bool3x4 b3x4;
+ bool4x4 b4x4;
+
+ // TODO: Currently SPIR-V disallows Nx1 or 1xN mats.
+ bool1x1 r00 = transpose(b1x1);
+ bool1x2 r01 = transpose(b2x1);
+ bool1x3 r02 = transpose(b3x1);
+ bool1x4 r03 = transpose(b4x1);
+
+ bool2x1 r10 = transpose(b1x2);
+ bool2x2 r11 = transpose(b2x2);
+ bool2x3 r12 = transpose(b3x2);
+ bool2x4 r13 = transpose(b4x2);
+
+ bool3x1 r20 = transpose(b1x3);
+ bool3x2 r21 = transpose(b2x3);
+ bool3x3 r22 = transpose(b3x3);
+ bool3x4 r23 = transpose(b4x3);
+
+ bool4x1 r30 = transpose(b1x4);
+ bool4x2 r31 = transpose(b2x4);
+ bool4x3 r32 = transpose(b3x4);
+ bool4x4 r33 = transpose(b4x4);
+}
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT ps_output;
+ ps_output.color = float4(0,0,0,0);
+ return ps_output;
+};
diff --git a/Test/hlsl.matType.int.frag b/Test/hlsl.matType.int.frag
new file mode 100644
index 00000000..09e9f2ad
--- /dev/null
+++ b/Test/hlsl.matType.int.frag
@@ -0,0 +1,97 @@
+
+void TestIntMatTypes()
+{
+ int1x1 i1x1;
+ int2x1 i2x1;
+ int3x1 i3x1;
+ int4x1 i4x1;
+
+ int1x2 i1x2;
+ int2x2 i2x2;
+ int3x2 i3x2;
+ int4x2 i4x2;
+
+ int1x3 i1x3;
+ int2x3 i2x3;
+ int3x3 i3x3;
+ int4x3 i4x3;
+
+ int1x4 i1x4;
+ int2x4 i2x4;
+ int3x4 i3x4;
+ int4x4 i4x4;
+
+ // TODO: Currently SPIR-V disallows Nx1 or 1xN mats.
+ int1x1 r00 = transpose(i1x1);
+ int1x2 r01 = transpose(i2x1);
+ int1x3 r02 = transpose(i3x1);
+ int1x4 r03 = transpose(i4x1);
+
+ int2x1 r10 = transpose(i1x2);
+ int2x2 r11 = transpose(i2x2);
+ int2x3 r12 = transpose(i3x2);
+ int2x4 r13 = transpose(i4x2);
+
+ int3x1 r20 = transpose(i1x3);
+ int3x2 r21 = transpose(i2x3);
+ int3x3 r22 = transpose(i3x3);
+ int3x4 r23 = transpose(i4x3);
+
+ int4x1 r30 = transpose(i1x4);
+ int4x2 r31 = transpose(i2x4);
+ int4x3 r32 = transpose(i3x4);
+ int4x4 r33 = transpose(i4x4);
+}
+
+void TestUintMatTypes()
+{
+ uint1x1 u1x1;
+ uint2x1 u2x1;
+ uint3x1 u3x1;
+ uint4x1 u4x1;
+
+ uint1x2 u1x2;
+ uint2x2 u2x2;
+ uint3x2 u3x2;
+ uint4x2 u4x2;
+
+ uint1x3 u1x3;
+ uint2x3 u2x3;
+ uint3x3 u3x3;
+ uint4x3 u4x3;
+
+ uint1x4 u1x4;
+ uint2x4 u2x4;
+ uint3x4 u3x4;
+ uint4x4 u4x4;
+
+ // TODO: Currently SPIR-V disallows Nx1 or 1xN mats.
+ uint1x1 r00 = transpose(u1x1);
+ uint1x2 r01 = transpose(u2x1);
+ uint1x3 r02 = transpose(u3x1);
+ uint1x4 r03 = transpose(u4x1);
+
+ uint2x1 r10 = transpose(u1x2);
+ uint2x2 r11 = transpose(u2x2);
+ uint2x3 r12 = transpose(u3x2);
+ uint2x4 r13 = transpose(u4x2);
+
+ uint3x1 r20 = transpose(u1x3);
+ uint3x2 r21 = transpose(u2x3);
+ uint3x3 r22 = transpose(u3x3);
+ uint3x4 r23 = transpose(u4x3);
+
+ uint4x1 r30 = transpose(u1x4);
+ uint4x2 r31 = transpose(u2x4);
+ uint4x3 r32 = transpose(u3x4);
+ uint4x4 r33 = transpose(u4x4);
+}
+
+struct PS_OUTPUT { float4 color : SV_Target0; };
+
+PS_OUTPUT main()
+{
+ PS_OUTPUT ps_output;
+ ps_output.color = float4(0,0,0,0);
+ return ps_output;
+};
diff --git a/Test/hlsl.mintypes.frag b/Test/hlsl.mintypes.frag
new file mode 100644
index 00000000..ad47e68e
--- /dev/null
+++ b/Test/hlsl.mintypes.frag
@@ -0,0 +1,49 @@
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+uniform min16float b1a, b1b;
+
+PS_OUTPUT main()
+{
+ min16float mf16;
+ min16float1 mf16_1;
+ min16float2 mf16_2;
+ min16float3 mf16_3;
+ min16float4 mf16_4;
+
+ min10float mf10;
+ min10float1 mf10_1;
+ min10float2 mf10_2;
+ min10float3 mf10_3;
+ min10float4 mf12_4;
+
+ min16int mi16;
+ min16int1 mi16_1;
+ min16int2 mi16_2;
+ min16int3 mi16_3;
+ min16int4 mi16_4;
+
+ min12int mi12;
+ min12int1 mi12_1;
+ min12int2 mi12_2;
+ min12int3 mi12_3;
+ min12int4 mi12_4;
+
+ min16uint mu16;
+ min16uint1 mu16_1;
+ min16uint2 mu16_2;
+ min16uint3 mu16_3;
+ min16uint4 mu16_4;
+
+ mf16_2 + mf16;
+ mf10_2 + mf10;
+ mi16_2 + mi16;
+ mi12_2 + mi12;
+ mu16_2 + mu16;
+
+ PS_OUTPUT psout;
+ psout.Color = 0;
+ return psout;
+}
diff --git a/Test/hlsl.numthreads.comp b/Test/hlsl.numthreads.comp
new file mode 100644
index 00000000..fcc97f37
--- /dev/null
+++ b/Test/hlsl.numthreads.comp
@@ -0,0 +1,14 @@
+
+[numthreads(8,8,1)]
+void main(uint3 tid : SV_DispatchThreadID )
+{
+}
+
+[numTHreaDs(4,4,2)] // case insensitive
+void main_aux1(uint3 tid : SV_DispatchThreadID )
+{
+}
+
+[numthreads(1,4,8)]
+void main_aux2(uint3 tid : SV_DispatchThreadID );
+
diff --git a/Test/hlsl.partialInit.frag b/Test/hlsl.partialInit.frag
new file mode 100755
index 00000000..59e8a529
--- /dev/null
+++ b/Test/hlsl.partialInit.frag
@@ -0,0 +1,29 @@
+struct outs {
+ int a;
+ float b;
+ bool c;
+ float4 v;
+};
+
+static float4 gv = {0,0,1};
+static float gfa[3] = {0,0};
+
+struct Nest {
+ float4x3 m;
+ outs os;
+ bool b;
+};
+
+outs PixelShaderFunction(float4 input) : COLOR0
+{
+ outs o2 = { 3 };
+ outs o4;
+ o4.v = gv * gfa[2];
+ outs o1 = { };
+ outs o3 = (outs)0;
+ o4 = (outs)0;
+ o4.c = o1.c;
+ Nest nest = (Nest)0;
+
+ return o4;
+} \ No newline at end of file
diff --git a/Test/hlsl.promote.binary.frag b/Test/hlsl.promote.binary.frag
new file mode 100644
index 00000000..0203bed9
--- /dev/null
+++ b/Test/hlsl.promote.binary.frag
@@ -0,0 +1,28 @@
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+uniform bool bval;
+uniform bool4 bval4;
+uniform int ival;
+uniform int4 ival4;
+uniform float fval;
+uniform float4 fval4;
+
+PS_OUTPUT main()
+{
+ ival % fval;
+ ival4 % fval4;
+
+ bval % fval;
+ bval4 % fval4;
+
+ int l_int = 1;
+ l_int %= fval;
+
+ PS_OUTPUT psout;
+ psout.Color = 0;
+ return psout;
+}
+
diff --git a/Test/hlsl.promote.vec1.frag b/Test/hlsl.promote.vec1.frag
new file mode 100644
index 00000000..a674ccba
--- /dev/null
+++ b/Test/hlsl.promote.vec1.frag
@@ -0,0 +1,16 @@
+
+float4 main() : SV_Target
+{
+ float f1a;
+ float1 f1b;
+
+ f1a = f1b; // convert float1 to float
+ f1b = f1a; // convert float to float1
+
+ float3 f3;
+ step(0.0, f3);
+
+ sin(f1b); // test 1-vectors in intrinsics
+
+ return float4(0,0,0,0);
+}
diff --git a/Test/hlsl.rw.atomics.frag b/Test/hlsl.rw.atomics.frag
new file mode 100644
index 00000000..930d6501
--- /dev/null
+++ b/Test/hlsl.rw.atomics.frag
@@ -0,0 +1,244 @@
+SamplerState g_sSamp;
+
+RWTexture1D <float> g_tTex1df1;
+RWTexture1D <int> g_tTex1di1;
+RWTexture1D <uint> g_tTex1du1;
+
+RWTexture2D <float> g_tTex2df1;
+RWTexture2D <int> g_tTex2di1;
+RWTexture2D <uint> g_tTex2du1;
+
+RWTexture3D <float> g_tTex3df1;
+RWTexture3D <int> g_tTex3di1;
+RWTexture3D <uint> g_tTex3du1;
+
+RWTexture1DArray <float> g_tTex1df1a;
+RWTexture1DArray <int> g_tTex1di1a;
+RWTexture1DArray <uint> g_tTex1du1a;
+
+RWTexture2DArray <float> g_tTex2df1a;
+RWTexture2DArray <int> g_tTex2di1a;
+RWTexture2DArray <uint> g_tTex2du1a;
+
+RWBuffer <float> g_tBuffF;
+RWBuffer <int> g_tBuffI;
+RWBuffer <uint> g_tBuffU;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+uniform uint u1;
+uniform uint2 u2;
+uniform uint3 u3;
+uniform uint u1b;
+uniform uint u1c;
+
+uniform int i1;
+uniform int2 i2;
+uniform int3 i3;
+uniform int i1b;
+uniform int i1c;
+
+PS_OUTPUT main()
+{
+ uint out_u1;
+ int out_i1;
+
+ // 1D int
+ InterlockedAdd(g_tTex1di1[i1], i1b);
+ InterlockedAdd(g_tTex1di1[i1], i1, out_i1);
+ InterlockedAnd(g_tTex1di1[i1], i1b);
+ InterlockedAnd(g_tTex1di1[i1], i1, out_i1);
+ InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1);
+ InterlockedExchange(g_tTex1di1[i1], i1, out_i1);
+ InterlockedMax(g_tTex1di1[i1], i1b);
+ InterlockedMax(g_tTex1di1[i1], i1, out_i1);
+ InterlockedMin(g_tTex1di1[i1], i1b);
+ InterlockedMin(g_tTex1di1[i1], i1, out_i1);
+ InterlockedOr(g_tTex1di1[i1], i1b);
+ InterlockedOr(g_tTex1di1[i1], i1, out_i1);
+ InterlockedXor(g_tTex1di1[i1], i1b);
+ InterlockedXor(g_tTex1di1[i1], i1, out_i1);
+
+ // 1D uint
+ InterlockedAdd(g_tTex1du1[u1], u1);
+ InterlockedAdd(g_tTex1du1[u1], u1, out_u1);
+ InterlockedAnd(g_tTex1du1[u1], u1);
+ InterlockedAnd(g_tTex1du1[u1], u1, out_u1);
+ InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1);
+ InterlockedExchange(g_tTex1du1[u1], u1, out_u1);
+ InterlockedMax(g_tTex1du1[u1], u1);
+ InterlockedMax(g_tTex1du1[u1], u1, out_u1);
+ InterlockedMin(g_tTex1du1[u1], u1);
+ InterlockedMin(g_tTex1du1[u1], u1, out_u1);
+ InterlockedOr(g_tTex1du1[u1], u1);
+ InterlockedOr(g_tTex1du1[u1], u1, out_u1);
+ InterlockedXor(g_tTex1du1[u1], u1);
+ InterlockedXor(g_tTex1du1[u1], u1, out_u1);
+
+ // 2D int
+ InterlockedAdd(g_tTex2di1[i2], i1b);
+ InterlockedAdd(g_tTex2di1[i2], i1, out_i1);
+ InterlockedAnd(g_tTex2di1[i2], i1b);
+ InterlockedAnd(g_tTex2di1[i2], i1, out_i1);
+ InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1);
+ InterlockedExchange(g_tTex2di1[i2], i1, out_i1);
+ InterlockedMax(g_tTex2di1[i2], i1b);
+ InterlockedMax(g_tTex2di1[i2], i1, out_i1);
+ InterlockedMin(g_tTex2di1[i2], i1b);
+ InterlockedMin(g_tTex2di1[i2], i1, out_i1);
+ InterlockedOr(g_tTex2di1[i2], i1b);
+ InterlockedOr(g_tTex2di1[i2], i1, out_i1);
+ InterlockedXor(g_tTex2di1[i2], i1b);
+ InterlockedXor(g_tTex2di1[i2], i1, out_i1);
+
+ // 2D uint
+ InterlockedAdd(g_tTex2du1[u2], u1);
+ InterlockedAdd(g_tTex2du1[u2], u1, out_u1);
+ InterlockedAnd(g_tTex2du1[u2], u1);
+ InterlockedAnd(g_tTex2du1[u2], u1, out_u1);
+ InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1);
+ InterlockedExchange(g_tTex2du1[u2], u1, out_u1);
+ InterlockedMax(g_tTex2du1[u2], u1);
+ InterlockedMax(g_tTex2du1[u2], u1, out_u1);
+ InterlockedMin(g_tTex2du1[u2], u1);
+ InterlockedMin(g_tTex2du1[u2], u1, out_u1);
+ InterlockedOr(g_tTex2du1[u2], u1);
+ InterlockedOr(g_tTex2du1[u2], u1, out_u1);
+ InterlockedXor(g_tTex2du1[u2], u1);
+ InterlockedXor(g_tTex2du1[u2], u1, out_u1);
+
+ // 3D int
+ InterlockedAdd(g_tTex3di1[i3], i1b);
+ InterlockedAdd(g_tTex3di1[i3], i1, out_i1);
+ InterlockedAnd(g_tTex3di1[i3], i1b);
+ InterlockedAnd(g_tTex3di1[i3], i1, out_i1);
+ InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1);
+ InterlockedExchange(g_tTex3di1[i3], i1, out_i1);
+ InterlockedMax(g_tTex3di1[i3], i1b);
+ InterlockedMax(g_tTex3di1[i3], i1, out_i1);
+ InterlockedMin(g_tTex3di1[i3], i1b);
+ InterlockedMin(g_tTex3di1[i3], i1, out_i1);
+ InterlockedOr(g_tTex3di1[i3], i1b);
+ InterlockedOr(g_tTex3di1[i3], i1, out_i1);
+ InterlockedXor(g_tTex3di1[i3], i1b);
+ InterlockedXor(g_tTex3di1[i3], i1, out_i1);
+
+ // 3D uint
+ InterlockedAdd(g_tTex3du1[u3], u1);
+ InterlockedAdd(g_tTex3du1[u3], u1, out_u1);
+ InterlockedAnd(g_tTex3du1[u3], u1);
+ InterlockedAnd(g_tTex3du1[u3], u1, out_u1);
+ InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1);
+ InterlockedExchange(g_tTex3du1[u3], u1, out_u1);
+ InterlockedMax(g_tTex3du1[u3], u1);
+ InterlockedMax(g_tTex3du1[u3], u1, out_u1);
+ InterlockedMin(g_tTex3du1[u3], u1);
+ InterlockedMin(g_tTex3du1[u3], u1, out_u1);
+ InterlockedOr(g_tTex3du1[u3], u1);
+ InterlockedOr(g_tTex3du1[u3], u1, out_u1);
+ InterlockedXor(g_tTex3du1[u3], u1);
+ InterlockedXor(g_tTex3du1[u3], u1, out_u1);
+
+ // 1D array int
+ InterlockedAdd(g_tTex1di1a[i2], i1b);
+ InterlockedAdd(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedAnd(g_tTex1di1a[i2], i1b);
+ InterlockedAnd(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1);
+ InterlockedExchange(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedMax(g_tTex1di1a[i2], i1b);
+ InterlockedMax(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedMin(g_tTex1di1a[i2], i1b);
+ InterlockedMin(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedOr(g_tTex1di1a[i2], i1b);
+ InterlockedOr(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedXor(g_tTex1di1a[i2], i1b);
+ InterlockedXor(g_tTex1di1a[i2], i1, out_i1);
+
+ // 1D array uint
+ InterlockedAdd(g_tTex1du1a[u2], u1);
+ InterlockedAdd(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedAnd(g_tTex1du1a[u2], u1);
+ InterlockedAnd(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1);
+ InterlockedExchange(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedMax(g_tTex1du1a[u2], u1);
+ InterlockedMax(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedMin(g_tTex1du1a[u2], u1);
+ InterlockedMin(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedOr(g_tTex1du1a[u2], u1);
+ InterlockedOr(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedXor(g_tTex1du1a[u2], u1);
+ InterlockedXor(g_tTex1du1a[u2], u1, out_u1);
+
+ // 2D array int
+ InterlockedAdd(g_tTex1di1a[i2], i1b);
+ InterlockedAdd(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedAnd(g_tTex1di1a[i2], i1b);
+ InterlockedAnd(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1);
+ InterlockedExchange(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedMax(g_tTex1di1a[i2], i1b);
+ InterlockedMax(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedMin(g_tTex1di1a[i2], i1b);
+ InterlockedMin(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedOr(g_tTex1di1a[i2], i1b);
+ InterlockedOr(g_tTex1di1a[i2], i1, out_i1);
+ InterlockedXor(g_tTex1di1a[i2], i1b);
+ InterlockedXor(g_tTex1di1a[i2], i1, out_i1);
+
+ // 2D array uint
+ InterlockedAdd(g_tTex1du1a[u2], u1);
+ InterlockedAdd(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedAnd(g_tTex1du1a[u2], u1);
+ InterlockedAnd(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1);
+ InterlockedExchange(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedMax(g_tTex1du1a[u2], u1);
+ InterlockedMax(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedMin(g_tTex1du1a[u2], u1);
+ InterlockedMin(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedOr(g_tTex1du1a[u2], u1);
+ InterlockedOr(g_tTex1du1a[u2], u1, out_u1);
+ InterlockedXor(g_tTex1du1a[u2], u1);
+ InterlockedXor(g_tTex1du1a[u2], u1, out_u1);
+
+ // buffer int
+ InterlockedAdd(g_tBuffI[i1], i1b);
+ InterlockedAdd(g_tBuffI[i1], i1, out_i1);
+ InterlockedAnd(g_tBuffI[i1], i1b);
+ InterlockedAnd(g_tBuffI[i1], i1, out_i1);
+ InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1);
+ InterlockedExchange(g_tBuffI[i1], i1, out_i1);
+ InterlockedMax(g_tBuffI[i1], i1b);
+ InterlockedMax(g_tBuffI[i1], i1, out_i1);
+ InterlockedMin(g_tBuffI[i1], i1b);
+ InterlockedMin(g_tBuffI[i1], i1, out_i1);
+ InterlockedOr(g_tBuffI[i1], i1b);
+ InterlockedOr(g_tBuffI[i1], i1, out_i1);
+ InterlockedXor(g_tBuffI[i1], i1b);
+ InterlockedXor(g_tBuffI[i1], i1, out_i1);
+
+ // buffer uint
+ InterlockedAdd(g_tBuffU[u1], u1);
+ InterlockedAdd(g_tBuffU[u1], u1, out_u1);
+ InterlockedAnd(g_tBuffU[u1], u1);
+ InterlockedAnd(g_tBuffU[u1], u1, out_u1);
+ InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1);
+ InterlockedExchange(g_tBuffU[u1], u1, out_u1);
+ InterlockedMax(g_tBuffU[u1], u1);
+ InterlockedMax(g_tBuffU[u1], u1, out_u1);
+ InterlockedMin(g_tBuffU[u1], u1);
+ InterlockedMin(g_tBuffU[u1], u1, out_u1);
+ InterlockedOr(g_tBuffU[u1], u1);
+ InterlockedOr(g_tBuffU[u1], u1, out_u1);
+ InterlockedXor(g_tBuffU[u1], u1);
+ InterlockedXor(g_tBuffU[u1], u1, out_u1);
+
+ PS_OUTPUT psout;
+ psout.Color = 1.0;
+ return psout;
+}
diff --git a/Test/hlsl.rw.register.frag b/Test/hlsl.rw.register.frag
new file mode 100644
index 00000000..e82e419a
--- /dev/null
+++ b/Test/hlsl.rw.register.frag
@@ -0,0 +1,18 @@
+
+RWTexture1D <float> g_tTex1df1 : register(u2);
+RWBuffer <uint> g_tBuf1du1 : register(U3);
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+PS_OUTPUT main()
+{
+ float r00 = g_tTex1df1[0];
+ uint r01 = g_tBuf1du1[0];
+
+ PS_OUTPUT psout;
+ psout.Color = 1.0;
+ return psout;
+}
diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag
index 0485b4a5..adb170ea 100644
--- a/Test/hlsl.shapeConv.frag
+++ b/Test/hlsl.shapeConv.frag
@@ -18,8 +18,8 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0
6.0 < foo;
7.0 <= foo;
- v.x == v;
- f != v;
+ all(v.x == v);
+ any(f != v);
float1 f1;
diff --git a/Test/hlsl.whileLoop.frag b/Test/hlsl.whileLoop.frag
index f282375d..e4084ae7 100644
--- a/Test/hlsl.whileLoop.frag
+++ b/Test/hlsl.whileLoop.frag
@@ -1,6 +1,6 @@
float4 PixelShaderFunction(float4 input) : COLOR0
{
- while (input != input) { return input; }
+ while (any(input != input)) { return input; }
while (false) ;
[unroll] while (false) { }
while ((false)) { }
diff --git a/Test/spv.noWorkgroup.comp b/Test/spv.noWorkgroup.comp
new file mode 100644
index 00000000..0c77f278
--- /dev/null
+++ b/Test/spv.noWorkgroup.comp
@@ -0,0 +1,7 @@
+#version 450
+
+layout(local_size_x_id = 18, local_size_y_id=10,local_size_z_id = 19) in;
+
+void main()
+{
+}
diff --git a/Test/spv.rw.autoassign.frag b/Test/spv.rw.autoassign.frag
new file mode 100644
index 00000000..5c7d0d3f
--- /dev/null
+++ b/Test/spv.rw.autoassign.frag
@@ -0,0 +1,18 @@
+
+RWTexture1D <float> g_tTex1df1;
+RWBuffer <uint> g_tBuf1du1;
+
+struct PS_OUTPUT
+{
+ float4 Color : SV_Target0;
+};
+
+PS_OUTPUT main()
+{
+ float r00 = g_tTex1df1[0];
+ uint r01 = g_tBuf1du1[0];
+
+ PS_OUTPUT psout;
+ psout.Color = 0;
+ return psout;
+}
diff --git a/glslang/Include/ConstantUnion.h b/glslang/Include/ConstantUnion.h
index 8ee2c84c..ec6aff11 100644
--- a/glslang/Include/ConstantUnion.h
+++ b/glslang/Include/ConstantUnion.h
@@ -538,7 +538,7 @@ private:
};
// Encapsulate having a pointer to an array of TConstUnion,
-// which only needs to be allocated if it's size is going to be
+// which only needs to be allocated if its size is going to be
// bigger than 0.
//
// One convenience is being able to use [] to go inside the array, instead
diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index 6c8cb825..8745c7a9 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -1271,6 +1271,7 @@ public:
virtual TArraySizes& getArraySizes() { assert(arraySizes != nullptr); return *arraySizes; }
virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); }
+ virtual bool isScalarOrVec1() const { return isScalar() || vector1; }
virtual bool isVector() const { return vectorSize > 1 || vector1; }
virtual bool isMatrix() const { return matrixCols ? true : false; }
virtual bool isArray() const { return arraySizes != nullptr; }
diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h
index 27c798d1..8f7ffcc0 100644
--- a/glslang/Include/intermediate.h
+++ b/glslang/Include/intermediate.h
@@ -46,12 +46,19 @@
#ifndef __INTERMEDIATE_H
#define __INTERMEDIATE_H
+#if _MSC_VER >= 1900
+ #pragma warning(disable : 4464) // relative include path contains '..'
+ #pragma warning(disable : 5026) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted
+#endif
+
#include "../Include/Common.h"
#include "../Include/Types.h"
#include "../Include/ConstantUnion.h"
namespace glslang {
+class TIntermediate;
+
//
// Operators used by the high-level (parse tree) representation.
//
@@ -614,6 +621,10 @@ enum TOperator {
EOpMethodGatherCmpGreen, // ...
EOpMethodGatherCmpBlue, // ...
EOpMethodGatherCmpAlpha, // ...
+
+ // geometry methods
+ EOpMethodAppend, // Geometry shader methods
+ EOpMethodRestartStrip, // ...
};
class TIntermTraverser;
@@ -845,7 +856,7 @@ public:
virtual TIntermOperator* getAsOperator() { return this; }
virtual const TIntermOperator* getAsOperator() const { return this; }
TOperator getOp() const { return op; }
- virtual bool promote() { return true; }
+ void setOp(TOperator newOp) { op = newOp; }
bool modifiesState() const;
bool isConstructor() const;
bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; }
@@ -1024,7 +1035,6 @@ public:
virtual TIntermTyped* getRight() const { return right; }
virtual TIntermBinary* getAsBinaryNode() { return this; }
virtual const TIntermBinary* getAsBinaryNode() const { return this; }
- virtual bool promote();
virtual void updatePrecision();
protected:
TIntermTyped* left;
@@ -1044,7 +1054,6 @@ public:
virtual const TIntermTyped* getOperand() const { return operand; }
virtual TIntermUnary* getAsUnaryNode() { return this; }
virtual const TIntermUnary* getAsUnaryNode() const { return this; }
- virtual bool promote();
virtual void updatePrecision();
protected:
TIntermTyped* operand;
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index c8b1b10a..5445009c 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 "Overload400-PrecQual.1603"
-#define GLSLANG_DATE "16-Oct-2016"
+#define GLSLANG_REVISION "Overload400-PrecQual.1667"
+#define GLSLANG_DATE "27-Nov-2016"
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index 8e80bbd2..71b4b71a 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -114,7 +114,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn
{
// No operations work on blocks
if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock)
- return 0;
+ return nullptr;
// Try converting the children's base types to compatible types.
TIntermTyped* child = addConversion(op, left->getType(), right);
@@ -125,7 +125,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn
if (child)
left = child;
else
- return 0;
+ return nullptr;
}
// Convert the children's type shape to be compatible.
@@ -137,8 +137,8 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn
// one and promote it to the right type.
//
TIntermBinary* node = addBinaryNode(op, left, right, loc);
- if (! node->promote())
- return 0;
+ if (! promote(node))
+ return nullptr;
node->updatePrecision();
@@ -246,7 +246,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm
// build the node
TIntermBinary* node = addBinaryNode(op, left, right, loc);
- if (! node->promote())
+ if (! promote(node))
return nullptr;
node->updatePrecision();
@@ -275,15 +275,19 @@ TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermT
TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSourceLoc loc)
{
if (child == 0)
- return 0;
+ return nullptr;
if (child->getType().getBasicType() == EbtBlock)
- return 0;
+ return nullptr;
switch (op) {
case EOpLogicalNot:
+ if (source == EShSourceHlsl) {
+ break; // HLSL can promote logical not
+ }
+
if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) {
- return 0;
+ return nullptr;
}
break;
@@ -293,7 +297,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo
case EOpPreDecrement:
case EOpNegative:
if (child->getType().getBasicType() == EbtStruct || child->getType().isArray())
- return 0;
+ return nullptr;
default: break; // some compilers want this
}
@@ -321,8 +325,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo
child->getMatrixRows(),
child->isVector()),
child);
- if (child == 0)
- return 0;
+ if (child == nullptr)
+ return nullptr;
}
//
@@ -349,8 +353,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo
//
TIntermUnary* node = addUnaryNode(op, child, loc);
- if (! node->promote())
- return 0;
+ if (! promote(node))
+ return nullptr;
node->updatePrecision();
@@ -375,8 +379,8 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper
// including constness (which would differ from the prototype).
//
TIntermTyped* child = childNode->getAsTyped();
- if (child == 0)
- return 0;
+ if (child == nullptr)
+ return nullptr;
if (child->getAsConstantUnion()) {
TIntermTyped* folded = child->getAsConstantUnion()->fold(op, returnType);
@@ -412,7 +416,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o
//
if (node) {
aggNode = node->getAsAggregate();
- if (aggNode == 0 || aggNode->getOp() != EOpNull) {
+ if (aggNode == nullptr || aggNode->getOp() != EOpNull) {
//
// Make an aggregate containing this node.
//
@@ -447,7 +451,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o
// Generally, this is focused on basic type conversion, not shape conversion.
// See addShapeConversion().
//
-// Return 0 if a conversion can't be done.
+// Return nullptr if a conversion can't be done.
//
TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const
{
@@ -456,7 +460,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
//
switch (node->getBasicType()) {
case EbtVoid:
- return 0;
+ return nullptr;
case EbtAtomicUint:
case EbtSampler:
// opaque types can be passed to functions
@@ -474,7 +478,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
break;
// otherwise, opaque types can't even be operated on, let alone converted
- return 0;
+ return nullptr;
default:
break;
}
@@ -485,11 +489,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
// If one's a structure, then no conversions.
if (type.isStruct() || node->isStruct())
- return 0;
+ return nullptr;
// If one's an array, then no conversions.
if (type.isArray() || node->getType().isArray())
- return 0;
+ return nullptr;
// Note: callers are responsible for other aspects of shape,
// like vector and matrix sizes.
@@ -555,6 +559,10 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EOpAndAssign:
case EOpInclusiveOrAssign:
case EOpExclusiveOrAssign:
+ case EOpLogicalNot:
+ case EOpLogicalAnd:
+ case EOpLogicalOr:
+ case EOpLogicalXor:
case EOpFunctionCall:
case EOpReturn:
@@ -576,7 +584,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op))
promoteTo = type.getBasicType();
else
- return 0;
+ return nullptr;
break;
@@ -598,7 +606,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
return node;
else
- return 0;
+ return nullptr;
default:
// default is to require a match; all exceptions should have case statements above
@@ -606,7 +614,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
if (type.getBasicType() == node->getType().getBasicType())
return node;
else
- return 0;
+ return nullptr;
}
if (node->getAsConstantUnion())
@@ -615,7 +623,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
//
// Add a new newNode for the conversion.
//
- TIntermUnary* newNode = 0;
+ TIntermUnary* newNode = nullptr;
TOperator newOp = EOpNull;
@@ -634,7 +642,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EbtInt64: newOp = EOpConvInt64ToDouble; break;
case EbtUint64: newOp = EOpConvUint64ToDouble; break;
default:
- return 0;
+ return nullptr;
}
break;
case EbtFloat:
@@ -649,7 +657,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EbtInt64: newOp = EOpConvInt64ToFloat; break;
case EbtUint64: newOp = EOpConvUint64ToFloat; break;
default:
- return 0;
+ return nullptr;
}
break;
#ifdef AMD_EXTENSIONS
@@ -663,7 +671,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EbtInt64: newOp = EOpConvInt64ToFloat16; break;
case EbtUint64: newOp = EOpConvUint64ToFloat16; break;
default:
- return 0;
+ return nullptr;
}
break;
#endif
@@ -679,7 +687,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EbtInt64: newOp = EOpConvInt64ToBool; break;
case EbtUint64: newOp = EOpConvUint64ToBool; break;
default:
- return 0;
+ return nullptr;
}
break;
case EbtInt:
@@ -694,7 +702,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EbtInt64: newOp = EOpConvInt64ToInt; break;
case EbtUint64: newOp = EOpConvUint64ToInt; break;
default:
- return 0;
+ return nullptr;
}
break;
case EbtUint:
@@ -709,7 +717,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
case EbtInt64: newOp = EOpConvInt64ToUint; break;
case EbtUint64: newOp = EOpConvUint64ToUint; break;
default:
- return 0;
+ return nullptr;
}
break;
case EbtInt64:
@@ -724,7 +732,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
#endif
case EbtUint64: newOp = EOpConvUint64ToInt64; break;
default:
- return 0;
+ return nullptr;
}
break;
case EbtUint64:
@@ -739,11 +747,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
#endif
case EbtInt64: newOp = EOpConvInt64ToUint64; break;
default:
- return 0;
+ return nullptr;
}
break;
default:
- return 0;
+ return nullptr;
}
TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows());
@@ -789,6 +797,9 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type,
case EOpNotEqual:
case EOpFunctionCall:
case EOpReturn:
+ case EOpLogicalAnd:
+ case EOpLogicalOr:
+ case EOpLogicalXor:
break;
default:
return node;
@@ -803,8 +814,10 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type,
TOperator constructorOp = mapTypeToConstructorOp(type);
// scalar -> smeared -> vector, or
+ // vec1 -> scalar, or
// bigger vector -> smaller vector or scalar
if ((type.isVector() && node->getType().isScalar()) ||
+ (node->getType().isVector() && node->getVectorSize() == 1 && type.isScalar()) ||
(node->getVectorSize() > type.getVectorSize() && type.isVector()))
return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc());
@@ -841,6 +854,11 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat
case EOpModAssign: // ...
case EOpReturn: // function returns can also perform arbitrary conversions
case EOpFunctionCall: // conversion of a calling parameter
+ case EOpLogicalNot:
+ case EOpLogicalAnd:
+ case EOpLogicalOr:
+ case EOpLogicalXor:
+ case EOpConstructStruct:
return true;
default:
break;
@@ -873,6 +891,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat
case EbtFloat16:
#endif
return true;
+ case EbtBool:
+ return (source == EShSourceHlsl);
default:
return false;
}
@@ -1104,15 +1124,15 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const
// Safe way to combine two nodes into an aggregate. Works with null pointers,
// a node that's not a aggregate yet, etc.
//
-// Returns the resulting aggregate, unless 0 was passed in for
+// Returns the resulting aggregate, unless nullptr was passed in for
// both existing nodes.
//
TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* right)
{
- if (left == 0 && right == 0)
- return 0;
+ if (left == nullptr && right == nullptr)
+ return nullptr;
- TIntermAggregate* aggNode = 0;
+ TIntermAggregate* aggNode = nullptr;
if (left)
aggNode = left->getAsAggregate();
if (! aggNode || aggNode->getOp() != EOpNull) {
@@ -1139,12 +1159,12 @@ TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* r
//
// Turn an existing node into an aggregate.
//
-// Returns an aggregate, unless 0 was passed in for the existing node.
+// Returns an aggregate, unless nullptr was passed in for the existing node.
//
TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node)
{
- if (node == 0)
- return 0;
+ if (node == nullptr)
+ return nullptr;
TIntermAggregate* aggNode = new TIntermAggregate;
aggNode->getSequence().push_back(node);
@@ -1155,8 +1175,8 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node)
TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceLoc& loc)
{
- if (node == 0)
- return 0;
+ if (node == nullptr)
+ return nullptr;
TIntermAggregate* aggNode = new TIntermAggregate;
aggNode->getSequence().push_back(node);
@@ -1166,6 +1186,17 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceL
}
//
+// Make an aggregate with an empty sequence.
+//
+TIntermAggregate* TIntermediate::makeAggregate(const TSourceLoc& loc)
+{
+ TIntermAggregate* aggNode = new TIntermAggregate;
+ aggNode->setLoc(loc);
+
+ return aggNode;
+}
+
+//
// For "if" test nodes. There are three children; a condition,
// a true path, and a false path. The two paths are in the
// nodePair.
@@ -1218,7 +1249,7 @@ TIntermTyped* TIntermediate::addMethod(TIntermTyped* object, const TType& type,
// a true path, and a false path. The two paths are specified
// as separate parameters.
//
-// Returns the selection node created, or 0 if one could not be.
+// Returns the selection node created, or nullptr if one could not be.
//
TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc& loc)
{
@@ -1233,12 +1264,12 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true
if (child)
trueBlock = child;
else
- return 0;
+ return nullptr;
}
// After conversion, types have to match.
if (falseBlock->getType() != trueBlock->getType())
- return 0;
+ return nullptr;
//
// See if all the operands are constant, then fold it otherwise not.
@@ -1412,7 +1443,7 @@ TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* init
//
TIntermBranch* TIntermediate::addBranch(TOperator branchOp, const TSourceLoc& loc)
{
- return addBranch(branchOp, 0, loc);
+ return addBranch(branchOp, nullptr, loc);
}
TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expression, const TSourceLoc& loc)
@@ -1429,7 +1460,7 @@ TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expres
//
bool TIntermediate::postProcess(TIntermNode* root, EShLanguage /*language*/)
{
- if (root == 0)
+ if (root == nullptr)
return true;
// Finish off the top-level sequence
@@ -1711,18 +1742,46 @@ bool TIntermOperator::isConstructor() const
}
//
-// Make sure the type of a unary operator is appropriate for its
-// combination of operation and operand type.
+// Make sure the type of an operator is appropriate for its
+// combination of operation and operand type. This will invoke
+// promoteUnary, promoteBinary, etc as needed.
+//
+// Returns false if nothing makes sense.
+//
+bool TIntermediate::promote(TIntermOperator* node)
+{
+ if (node == nullptr)
+ return false;
+
+ if (node->getAsUnaryNode())
+ return promoteUnary(*node->getAsUnaryNode());
+
+ if (node->getAsBinaryNode())
+ return promoteBinary(*node->getAsBinaryNode());
+
+ return false;
+}
+
//
-// Returns false in nothing makes sense.
+// See TIntermediate::promote
//
-bool TIntermUnary::promote()
+bool TIntermediate::promoteUnary(TIntermUnary& node)
{
+ const TOperator op = node.getOp();
+ TIntermTyped* operand = node.getOperand();
+
switch (op) {
case EOpLogicalNot:
- if (operand->getBasicType() != EbtBool)
+ // Convert operand to a boolean type
+ if (operand->getBasicType() != EbtBool) {
+ // Add constructor to boolean type. If that fails, we can't do it, so return false.
+ TIntermTyped* converted = convertToBasicType(op, EbtBool, operand);
+ if (converted == nullptr)
+ return false;
- return false;
+ // Use the result of converting the node to a bool.
+ node.setOperand(operand = converted); // also updates stack variable
+ }
break;
case EOpBitwiseNot:
if (operand->getBasicType() != EbtInt &&
@@ -1756,8 +1815,8 @@ bool TIntermUnary::promote()
return false;
}
- setType(operand->getType());
- getWritableType().getQualifier().makeTemporary();
+ node.setType(operand->getType());
+ node.getWritableType().getQualifier().makeTemporary();
return true;
}
@@ -1774,14 +1833,33 @@ void TIntermUnary::updatePrecision()
}
}
+// If it is not already, convert this node to the given basic type.
+TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const
+{
+ if (node == nullptr)
+ return nullptr;
+
+ // It's already this basic type: nothing needs to be done, so use the node directly.
+ if (node->getBasicType() == basicType)
+ return node;
+
+ const TType& type = node->getType();
+ const TType newType(basicType, type.getQualifier().storage,
+ type.getVectorSize(), type.getMatrixCols(), type.getMatrixRows(), type.isVector());
+
+ // Add constructor to the right vectorness of the right type. If that fails, we can't do it, so return nullptr.
+ return addConversion(op, newType, node);
+}
+
//
-// Establishes the type of the resultant operation, as well as
-// makes the operator the correct one for the operands.
-//
-// Returns false if operator can't work on operands.
+// See TIntermediate::promote
//
-bool TIntermBinary::promote()
+bool TIntermediate::promoteBinary(TIntermBinary& node)
{
+ TOperator op = node.getOp();
+ TIntermTyped* left = node.getLeft();
+ TIntermTyped* right = node.getRight();
+
// Arrays and structures have to be exact matches.
if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct)
&& left->getType() != right->getType())
@@ -1789,8 +1867,8 @@ bool TIntermBinary::promote()
// Base assumption: just make the type the same as the left
// operand. Only deviations from this will be coded.
- setType(left->getType());
- type.getQualifier().clear();
+ node.setType(left->getType());
+ node.getWritableType().getQualifier().clear();
// Composite and opaque types don't having pending operator changes, e.g.,
// array, structure, and samplers. Just establish final type and correctness.
@@ -1803,7 +1881,7 @@ bool TIntermBinary::promote()
return false;
} else {
// Promote to conditional
- setType(TType(EbtBool));
+ node.setType(TType(EbtBool));
}
return true;
@@ -1831,23 +1909,46 @@ bool TIntermBinary::promote()
// Relational comparisons need numeric types and will promote to scalar Boolean.
if (left->getBasicType() == EbtBool)
return false;
- setType(TType(EbtBool));
+
+ node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize()));
break;
case EOpEqual:
case EOpNotEqual:
- // All the above comparisons result in a bool (but not the vector compares)
- setType(TType(EbtBool));
+ if (getSource() == EShSourceHlsl) {
+ const int resultWidth = std::max(left->getVectorSize(), right->getVectorSize());
+
+ // In HLSL, == or != on vectors means component-wise comparison.
+ if (resultWidth > 1) {
+ op = (op == EOpEqual) ? EOpVectorEqual : EOpVectorNotEqual;
+ node.setOp(op);
+ }
+
+ node.setType(TType(EbtBool, EvqTemporary, resultWidth));
+ } else {
+ // All the above comparisons result in a bool (but not the vector compares)
+ node.setType(TType(EbtBool));
+ }
break;
case EOpLogicalAnd:
case EOpLogicalOr:
case EOpLogicalXor:
- // logical ops operate only on scalar Booleans and will promote to scalar Boolean.
- if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix())
- return false;
+ if (getSource() == EShSourceHlsl) {
+ TIntermTyped* convertedL = convertToBasicType(op, EbtBool, left);
+ TIntermTyped* convertedR = convertToBasicType(op, EbtBool, right);
+ if (convertedL == nullptr || convertedR == nullptr)
+ return false;
+ node.setLeft(left = convertedL); // also updates stack variable
+ node.setRight(right = convertedR); // also updates stack variable
+ } else {
+ // logical ops operate only on scalar Booleans and will promote to scalar Boolean.
+ if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix())
+ return false;
+ }
+
+ node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize()));
- setType(TType(EbtBool));
break;
case EOpRightShift:
@@ -1864,6 +1965,9 @@ bool TIntermBinary::promote()
case EOpAndAssign:
case EOpInclusiveOrAssign:
case EOpExclusiveOrAssign:
+ if (getSource() == EShSourceHlsl)
+ break;
+
// Check for integer-only operands.
if ((left->getBasicType() != EbtInt && left->getBasicType() != EbtUint &&
left->getBasicType() != EbtInt64 && left->getBasicType() != EbtUint64) ||
@@ -1900,6 +2004,8 @@ bool TIntermBinary::promote()
case EOpEqual:
case EOpNotEqual:
+ case EOpVectorEqual:
+ case EOpVectorNotEqual:
case EOpLogicalAnd:
case EOpLogicalOr:
@@ -1960,33 +2066,33 @@ bool TIntermBinary::promote()
if (left->isVector()) {
if (left->getVectorSize() != right->getMatrixRows())
return false;
- op = EOpVectorTimesMatrix;
- setType(TType(basicType, EvqTemporary, right->getMatrixCols()));
+ node.setOp(op = EOpVectorTimesMatrix);
+ node.setType(TType(basicType, EvqTemporary, right->getMatrixCols()));
} else {
- op = EOpMatrixTimesScalar;
- setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows()));
+ node.setOp(op = EOpMatrixTimesScalar);
+ node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows()));
}
} else if (left->isMatrix() && !right->isMatrix()) {
if (right->isVector()) {
if (left->getMatrixCols() != right->getVectorSize())
return false;
- op = EOpMatrixTimesVector;
- setType(TType(basicType, EvqTemporary, left->getMatrixRows()));
+ node.setOp(op = EOpMatrixTimesVector);
+ node.setType(TType(basicType, EvqTemporary, left->getMatrixRows()));
} else {
- op = EOpMatrixTimesScalar;
+ node.setOp(op = EOpMatrixTimesScalar);
}
} else if (left->isMatrix() && right->isMatrix()) {
if (left->getMatrixCols() != right->getMatrixRows())
return false;
- op = EOpMatrixTimesMatrix;
- setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows()));
+ node.setOp(op = EOpMatrixTimesMatrix);
+ node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows()));
} else if (! left->isMatrix() && ! right->isMatrix()) {
if (left->isVector() && right->isVector()) {
; // leave as component product
} else if (left->isVector() || right->isVector()) {
- op = EOpVectorTimesScalar;
+ node.setOp(op = EOpVectorTimesScalar);
if (right->isVector())
- setType(TType(basicType, EvqTemporary, right->getVectorSize()));
+ node.setType(TType(basicType, EvqTemporary, right->getVectorSize()));
}
} else {
return false;
@@ -1997,7 +2103,7 @@ bool TIntermBinary::promote()
if (left->isVector()) {
if (left->getVectorSize() != right->getMatrixRows() || left->getVectorSize() != right->getMatrixCols())
return false;
- op = EOpVectorTimesMatrixAssign;
+ node.setOp(op = EOpVectorTimesMatrixAssign);
} else {
return false;
}
@@ -2005,19 +2111,19 @@ bool TIntermBinary::promote()
if (right->isVector()) {
return false;
} else {
- op = EOpMatrixTimesScalarAssign;
+ node.setOp(op = EOpMatrixTimesScalarAssign);
}
} else if (left->isMatrix() && right->isMatrix()) {
if (left->getMatrixCols() != left->getMatrixRows() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows())
return false;
- op = EOpMatrixTimesMatrixAssign;
+ node.setOp(op = EOpMatrixTimesMatrixAssign);
} else if (!left->isMatrix() && !right->isMatrix()) {
if (left->isVector() && right->isVector()) {
// leave as component product
} else if (left->isVector() || right->isVector()) {
if (! left->isVector())
return false;
- op = EOpVectorTimesScalarAssign;
+ node.setOp(op = EOpVectorTimesScalarAssign);
}
} else {
return false;
@@ -2051,6 +2157,7 @@ bool TIntermBinary::promote()
case EOpAndAssign:
case EOpInclusiveOrAssign:
case EOpExclusiveOrAssign:
+
if ((left->isMatrix() && right->isVector()) ||
(left->isVector() && right->isMatrix()) ||
left->getBasicType() != right->getBasicType())
@@ -2060,8 +2167,8 @@ bool TIntermBinary::promote()
if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize())
return false;
if (right->isVector() || right->isMatrix()) {
- type.shallowCopy(right->getType());
- type.getQualifier().makeTemporary();
+ node.getWritableType().shallowCopy(right->getType());
+ node.getWritableType().getQualifier().makeTemporary();
}
break;
@@ -2085,7 +2192,7 @@ bool TIntermBinary::promote()
case EOpExclusiveOrAssign:
case EOpLeftShiftAssign:
case EOpRightShiftAssign:
- if (getType() != left->getType())
+ if (node.getType() != left->getType())
return false;
break;
default:
diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp
index 5949cd8e..dc8c61db 100644
--- a/glslang/MachineIndependent/ParseContextBase.cpp
+++ b/glslang/MachineIndependent/ParseContextBase.cpp
@@ -221,16 +221,37 @@ void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op,
error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str());
}
+// Add a linkage symbol node for 'symbol', which
+// must have its type fully edited, as this will snapshot the type.
+// It is okay if symbol becomes invalid before finish().
+void TParseContextBase::trackLinkage(TSymbol& symbol)
+{
+ if (!parsingBuiltins)
+ intermediate.addSymbolLinkageNode(linkage, symbol);
+}
+
+// Add 'symbol' to the list of deferred linkage symbols, which
+// are later processed in finish(), at which point the symbol
+// must still be valid.
+// It is okay if the symbol's type will be subsequently edited.
+void TParseContextBase::trackLinkageDeferred(TSymbol& symbol)
+{
+ if (!parsingBuiltins)
+ linkageSymbols.push_back(&symbol);
+}
+
// Make a shared symbol have a non-shared version that can be edited by the current
// compile, such that editing its type will not change the shared version and will
-// effect all nodes sharing it.
+// effect all nodes already sharing it (non-shallow type),
+// or adopting its full type after being edited (shallow type).
void TParseContextBase::makeEditable(TSymbol*& symbol)
{
// copyUp() does a deep copy of the type.
symbol = symbolTable.copyUp(symbol);
- // Save it in the AST for linker use.
- intermediate.addSymbolLinkageNode(linkage, *symbol);
+ // Save it (deferred, so it can be edited first) in the AST for linker use.
+ if (symbol)
+ trackLinkageDeferred(*symbol);
}
// Return a writable version of the variable 'name'.
@@ -242,7 +263,7 @@ TVariable* TParseContextBase::getEditableVariable(const char* name)
{
bool builtIn;
TSymbol* symbol = symbolTable.find(name, &builtIn);
-
+
assert(symbol != nullptr);
if (symbol == nullptr)
return nullptr;
@@ -434,7 +455,7 @@ bool TParseContextBase::insertGlobalUniformBlock()
// This is the first request; we need a normal symbol table insert
inserted = symbolTable.insert(*globalUniformBlock);
if (inserted)
- intermediate.addSymbolLinkageNode(linkage, *globalUniformBlock);
+ trackLinkageDeferred(*globalUniformBlock);
} else if (firstNewMember <= numMembers) {
// This is a follow-on request; we need to amend the first insert
inserted = symbolTable.amend(*globalUniformBlock, firstNewMember);
@@ -448,4 +469,14 @@ bool TParseContextBase::insertGlobalUniformBlock()
return inserted;
}
+void TParseContextBase::finish()
+{
+ if (!parsingBuiltins) {
+ // Transfer te linkage symbols to AST nodes
+ for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i)
+ intermediate.addSymbolLinkageNode(linkage, **i);
+ intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable);
+ }
+}
+
} // end namespace glslang
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index 71ee4f38..831e3ac0 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -50,15 +50,12 @@ namespace glslang {
TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins,
int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language,
TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) :
- TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
+ TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0),
inMain(false), postMainReturn(false), currentFunctionType(nullptr), blockName(nullptr),
- limits(resources.limits), parsingBuiltins(parsingBuiltins),
+ limits(resources.limits),
atomicUintOffsets(nullptr), anyIndexLimits(false)
{
- // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms
- linkage = new TIntermAggregate;
-
// decide whether precision qualifiers should be ignored or respected
if (profile == EEsProfile || spvVersion.vulkan > 0) {
precisionManager.respectPrecisionQualifiers();
@@ -184,8 +181,8 @@ bool TParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& inp
currentScanner = &input;
ppContext.setInput(input, versionWillBeError);
yyparse(this);
- if (! parsingBuiltins)
- finalErrorCheck();
+
+ finish();
return numErrors == 0;
}
@@ -1216,7 +1213,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction
function.getType().getQualifier().precision;
} else if (TIntermAggregate* agg = node.getAsAggregate()) {
TIntermSequence& sequence = agg->getSequence();
- int numArgs = (int)sequence.size();
+ unsigned int numArgs = (unsigned int)sequence.size();
switch (agg->getOp()) {
case EOpBitfieldExtract:
numArgs = 1;
@@ -1233,7 +1230,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction
break;
}
// find the maximum precision from the arguments and parameters
- for (unsigned int arg = 0; arg < sequence.size(); ++arg) {
+ for (unsigned int arg = 0; arg < numArgs; ++arg) {
operationPrecision = std::max(operationPrecision, sequence[arg]->getAsTyped()->getQualifier().precision);
operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision);
}
@@ -2316,7 +2313,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T
// At least the dimensionalities have to match.
if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) {
- error(loc, "array constructor argument not correct type to construct array element", "constructior", "");
+ error(loc, "array constructor argument not correct type to construct array element", "constructor", "");
return true;
}
@@ -3093,7 +3090,7 @@ void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes)
// Do all the semantic checking for declaring or redeclaring an array, with and
// without a size, and make the right changes to the symbol table.
//
-void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration)
+void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol)
{
if (symbol == nullptr) {
bool currentScope;
@@ -3111,7 +3108,8 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con
//
symbol = new TVariable(&identifier, type);
symbolTable.insert(*symbol);
- newDeclaration = true;
+ if (symbolTable.atGlobalLevel())
+ trackLinkageDeferred(*symbol);
if (! symbolTable.atBuiltInLevel()) {
if (isIoResizeArray(type)) {
@@ -3271,7 +3269,8 @@ void TParseContext::nonInitConstCheck(const TSourceLoc& loc, TString& identifier
//
// Returns a redeclared and type-modified variable if a redeclarated occurred.
//
-TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, const TQualifier& qualifier, const TShaderQualifiers& publicType, bool& newDeclaration)
+TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier,
+ const TQualifier& qualifier, const TShaderQualifiers& publicType)
{
if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel())
return nullptr;
@@ -3318,11 +3317,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
// If it wasn't at a built-in level, then it's already been redeclared;
// that is, this is a redeclaration of a redeclaration; reuse that initial
// redeclaration. Otherwise, make the new one.
- if (builtIn) {
- // Copy the symbol up to make a writable version
+ if (builtIn)
makeEditable(symbol);
- newDeclaration = true;
- }
// Now, modify the type of the copy, as per the type of the current redeclaration.
@@ -3540,7 +3536,7 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT
fixIoArraySize(loc, block->getWritableType());
// Save it in the AST for linker use.
- intermediate.addSymbolLinkageNode(linkage, *block);
+ trackLinkageDeferred(*block);
}
void TParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type)
@@ -3794,8 +3790,13 @@ void TParseContext::limitCheck(const TSourceLoc& loc, int value, const char* lim
//
// Do any additional error checking, etc., once we know the parsing is done.
//
-void TParseContext::finalErrorCheck()
+void TParseContext::finish()
{
+ TParseContextBase::finish();
+
+ if (parsingBuiltins)
+ return;
+
// Check on array indexes for ES 2.0 (version 100) limitations.
for (size_t i = 0; i < needsIndexLimitationChecking.size(); ++i)
constantIndexExpressionCheck(needsIndexLimitationChecking[i]);
@@ -4971,8 +4972,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden
error(loc, "can only apply depth layout to gl_FragDepth", "layout qualifier", "");
// Check for redeclaration of built-ins and/or attempting to declare a reserved name
- bool newDeclaration = false; // true if a new entry gets added to the symbol table
- TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers, newDeclaration);
+ TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers);
if (symbol == nullptr)
reservedErrorCheck(loc, identifier);
@@ -4990,7 +4990,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden
arrayUnsizedCheck(loc, type.getQualifier(), &type.getArraySizes(), initializer != nullptr, false);
if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type))
- declareArray(loc, identifier, type, symbol, newDeclaration);
+ declareArray(loc, identifier, type, symbol);
if (initializer) {
profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, "initializer");
@@ -4999,7 +4999,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden
} else {
// non-array case
if (symbol == nullptr)
- symbol = declareNonArray(loc, identifier, type, newDeclaration);
+ symbol = declareNonArray(loc, identifier, type);
else if (type != symbol->getType())
error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str());
}
@@ -5022,10 +5022,6 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden
layoutObjectCheck(loc, *symbol);
fixOffset(loc, *symbol);
- // see if it's a linker-level object to track
- if (newDeclaration && symbolTable.atGlobalLevel())
- intermediate.addSymbolLinkageNode(linkage, *symbol);
-
return initNode;
}
@@ -5061,20 +5057,22 @@ TVariable* TParseContext::makeInternalVariable(const char* name, const TType& ty
//
// Return the successfully declared variable.
//
-TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool& newDeclaration)
+TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type)
{
// make a new variable
TVariable* variable = new TVariable(&identifier, type);
ioArrayCheck(loc, type, identifier);
+
// add variable to symbol table
- if (! symbolTable.insert(*variable)) {
- error(loc, "redefinition", variable->getName().c_str(), "");
- return nullptr;
- } else {
- newDeclaration = true;
+ if (symbolTable.insert(*variable)) {
+ if (symbolTable.atGlobalLevel())
+ trackLinkageDeferred(*variable);
return variable;
}
+
+ error(loc, "redefinition", variable->getName().c_str(), "");
+ return nullptr;
}
//
@@ -5731,7 +5729,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
fixIoArraySize(loc, variable.getWritableType());
// Save it in the AST for linker use.
- intermediate.addSymbolLinkageNode(linkage, variable);
+ trackLinkageDeferred(variable);
}
// Do all block-declaration checking regarding the combination of in/out/uniform/buffer
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index 0f60ff7f..165601d2 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -73,13 +73,16 @@ typedef std::set<int> TIdSetType;
//
class TParseContextBase : public TParseVersions {
public:
- TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, int version,
+ TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version,
EProfile profile, const SpvVersion& spvVersion, EShLanguage language,
TInfoSink& infoSink, bool forwardCompatible, EShMessages messages)
: TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
symbolTable(symbolTable),
- linkage(nullptr), scanContext(nullptr), ppContext(nullptr),
- globalUniformBlock(nullptr) { }
+ parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr),
+ globalUniformBlock(nullptr)
+ {
+ linkage = new TIntermAggregate;
+ }
virtual ~TParseContextBase() { }
virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken,
@@ -94,7 +97,6 @@ public:
virtual void setLimits(const TBuiltInResource&) = 0;
EShLanguage getLanguage() const { return language; }
- TIntermAggregate*& getLinkage() { return linkage; }
void setScanContext(TScanContext* c) { scanContext = c; }
TScanContext* getScanContext() const { return scanContext; }
void setPpContext(TPpContext* c) { ppContext = c; }
@@ -150,7 +152,8 @@ protected:
TParseContextBase(TParseContextBase&);
TParseContextBase& operator=(TParseContextBase&);
- TIntermAggregate* linkage; // aggregate node of objects the linker may need, if not referenced by the rest of the AST
+ const bool parsingBuiltins; // true if parsing built-in symbols/functions
+ TVector<TSymbol*> linkageSymbols; // these need to be transferred to 'linkage', after all editing is done
TScanContext* scanContext;
TPpContext* ppContext;
@@ -177,8 +180,14 @@ protected:
virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken,
const char* szExtraInfoFormat, TPrefixType prefix,
va_list args);
+ virtual void trackLinkage(TSymbol& symbol);
+ virtual void trackLinkageDeferred(TSymbol& symbol);
virtual void makeEditable(TSymbol*&);
virtual TVariable* getEditableVariable(const char* name);
+ virtual void finish();
+
+private:
+ TIntermAggregate* linkage;
};
//
@@ -314,7 +323,7 @@ public:
void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&);
void parameterTypeCheck(const TSourceLoc&, TStorageQualifier qualifier, const TType& type);
bool containsFieldWithBasicType(const TType& type ,TBasicType basicType);
- TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration);
+ TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&);
void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes);
void paramCheckFix(const TSourceLoc&, const TStorageQualifier&, TType& type);
void paramCheckFix(const TSourceLoc&, const TQualifier&, TType& type);
@@ -368,11 +377,11 @@ protected:
void nonInitConstCheck(const TSourceLoc&, TString& identifier, TType& type);
void inheritGlobalDefaults(TQualifier& dst) const;
TVariable* makeInternalVariable(const char* name, const TType&) const;
- TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool& newDeclaration);
- void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration);
+ TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&);
+ void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&);
TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
- void finalErrorCheck();
+ void finish() override;
public:
//
@@ -401,7 +410,6 @@ protected:
TParseContext(TParseContext&);
TParseContext& operator=(TParseContext&);
- const bool parsingBuiltins; // true if parsing built-in symbols/functions
static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex()
TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex];
TPrecisionManager precisionManager;
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index 6d044452..cc21b2ef 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -81,6 +81,28 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc
}
}
+// Create a language specific version of a parse context.
+TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& intermediate,
+ int version, EProfile profile, EShSource source,
+ EShLanguage language, TInfoSink& infoSink,
+ SpvVersion spvVersion, bool forwardCompatible, EShMessages messages,
+ bool parsingBuiltIns)
+{
+ switch (source) {
+ case EShSourceGlsl:
+ intermediate.setEntryPointName("main");
+ return new TParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion,
+ language, infoSink, forwardCompatible, messages);
+
+ case EShSourceHlsl:
+ return new HlslParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion,
+ language, infoSink, forwardCompatible, messages);
+ default:
+ infoSink.info.message(EPrefixInternalError, "Unable to determine source language");
+ return nullptr;
+ }
+}
+
// Local mapping functions for making arrays of symbol tables....
const int VersionCount = 15; // index range in MapVersionToIndex
@@ -188,17 +210,22 @@ TPoolAllocator* PerProcessGPA = 0;
//
// Parse and add to the given symbol table the content of the given shader string.
//
-bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
- TSymbolTable& symbolTable)
+bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language,
+ EShSource source, TInfoSink& infoSink, TSymbolTable& symbolTable)
{
TIntermediate intermediate(language, version, profile);
- TParseContext parseContext(symbolTable, intermediate, true, version, profile, spvVersion, language, infoSink);
+ intermediate.setSource(source);
+
+ std::unique_ptr<TParseContextBase> parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source,
+ language, infoSink, spvVersion, true, EShMsgDefault,
+ true));
+
TShader::ForbidInclude includer;
- TPpContext ppContext(parseContext, "", includer);
- TScanContext scanContext(parseContext);
- parseContext.setScanContext(&scanContext);
- parseContext.setPpContext(&ppContext);
+ TPpContext ppContext(*parseContext, "", includer);
+ TScanContext scanContext(*parseContext);
+ parseContext->setScanContext(&scanContext);
+ parseContext->setPpContext(&ppContext);
//
// Push the symbol table to give it an initial scope. This
@@ -217,7 +244,7 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil
return true;
TInputScanner input(1, builtInShaders, builtInLengths);
- if (! parseContext.parseShaderStrings(ppContext, input) != 0) {
+ if (! parseContext->parseShaderStrings(ppContext, input) != 0) {
infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins");
printf("Unable to parse built-ins\n%s\n", infoSink.info.c_str());
printf("%s\n", builtInShaders[0]);
@@ -237,10 +264,12 @@ int CommonIndex(EProfile profile, EShLanguage language)
// To initialize per-stage shared tables, with the common table already complete.
//
void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int version, EProfile profile, const SpvVersion& spvVersion,
- EShLanguage language, TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables)
+ EShLanguage language, EShSource source, TInfoSink& infoSink, TSymbolTable** commonTable,
+ TSymbolTable** symbolTables)
{
(*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]);
- InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, infoSink, *symbolTables[language]);
+ InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, source,
+ infoSink, *symbolTables[language]);
builtInParseables.identifyBuiltIns(version, profile, spvVersion, language, *symbolTables[language]);
if (profile == EEsProfile && version >= 300)
(*symbolTables[language]).setNoBuiltInRedeclarations();
@@ -259,32 +288,40 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
builtInParseables->initialize(version, profile, spvVersion);
// do the common tables
- InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, infoSink, *commonTable[EPcGeneral]);
+ InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, source,
+ infoSink, *commonTable[EPcGeneral]);
if (profile == EEsProfile)
- InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, infoSink, *commonTable[EPcFragment]);
+ InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, source,
+ infoSink, *commonTable[EPcFragment]);
// do the per-stage tables
// always have vertex and fragment
- InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, infoSink, commonTable, symbolTables);
- InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, infoSink, commonTable, symbolTables);
+ InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, source,
+ infoSink, commonTable, symbolTables);
+ InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, source,
+ infoSink, commonTable, symbolTables);
// check for tessellation
if ((profile != EEsProfile && version >= 150) ||
(profile == EEsProfile && version >= 310)) {
- InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, infoSink, commonTable, symbolTables);
- InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, infoSink, commonTable, symbolTables);
+ InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, source,
+ infoSink, commonTable, symbolTables);
+ InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, source,
+ infoSink, commonTable, symbolTables);
}
// check for geometry
if ((profile != EEsProfile && version >= 150) ||
(profile == EEsProfile && version >= 310))
- InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, infoSink, commonTable, symbolTables);
+ InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source,
+ infoSink, commonTable, symbolTables);
// check for compute
if ((profile != EEsProfile && version >= 420) ||
(profile == EEsProfile && version >= 310))
- InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, infoSink, commonTable, symbolTables);
+ InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source,
+ infoSink, commonTable, symbolTables);
return true;
}
@@ -295,7 +332,7 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf
std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source));
builtInParseables->initialize(*resources, version, profile, spvVersion, language);
- InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, infoSink, symbolTable);
+ InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, source, infoSink, symbolTable);
builtInParseables->identifyBuiltIns(version, profile, spvVersion, language, symbolTable, *resources);
return true;
@@ -694,15 +731,10 @@ bool ProcessDeferred(
// Now we can process the full shader under proper symbols and rules.
//
- TParseContextBase* parseContext;
- if (source == EShSourceHlsl) {
- parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spvVersion,
- compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages);
- } else {
- intermediate.setEntryPointName("main");
- parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spvVersion,
- compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages);
- }
+ TParseContextBase* parseContext = CreateParseContext(symbolTable, intermediate, version, profile, source,
+ compiler->getLanguage(), compiler->infoSink,
+ spvVersion, forwardCompatible, messages, false);
+
TPpContext ppContext(*parseContext, names[numPre]? names[numPre]: "", includer);
// only GLSL (bison triggered, really) needs an externally set scan context
@@ -940,14 +972,13 @@ struct DoPreprocessing {
struct DoFullParse{
bool operator()(TParseContextBase& parseContext, TPpContext& ppContext,
TInputScanner& fullInput, bool versionWillBeError,
- TSymbolTable& symbolTable, TIntermediate& intermediate,
+ TSymbolTable&, TIntermediate& intermediate,
EShOptimizationLevel optLevel, EShMessages messages)
{
bool success = true;
// Parse the full shader.
if (! parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError))
success = false;
- intermediate.addSymbolLinkageNodes(parseContext.getLinkage(), parseContext.getLanguage(), symbolTable);
if (success && intermediate.getTreeRoot()) {
if (optLevel == EShOptNoGeneration)
@@ -1494,6 +1525,7 @@ void TShader::setEntryPoint(const char* entryPoint)
void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); }
void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); }
+void TShader::setShiftImageBinding(unsigned int base) { intermediate->setShiftImageBinding(base); }
void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); }
void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); }
void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); }
@@ -1708,6 +1740,7 @@ int TProgram::getUniformArraySize(int index) const { return reflection
int TProgram::getNumLiveAttributes() const { return reflection->getNumAttributes(); }
const char* TProgram::getAttributeName(int index) const { return reflection->getAttribute(index).name.c_str(); }
int TProgram::getAttributeType(int index) const { return reflection->getAttribute(index).glDefineType; }
+const TType* TProgram::getAttributeTType(int index) const { return reflection->getAttribute(index).getType(); }
const TType* TProgram::getUniformTType(int index) const { return reflection->getUniform(index).getType(); }
const TType* TProgram::getUniformBlockTType(int index) const { return reflection->getUniformBlock(index).getType(); }
@@ -1716,7 +1749,7 @@ void TProgram::dumpReflection() { reflection->dump(); }
//
// I/O mapping implementation.
//
-bool TProgram::mapIO()
+bool TProgram::mapIO(TIoMapResolver* resolver)
{
if (! linked || ioMapper)
return false;
@@ -1725,7 +1758,7 @@ bool TProgram::mapIO()
for (int s = 0; s < EShLangCount; ++s) {
if (intermediate[s]) {
- if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink))
+ if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink, resolver))
return false;
}
}
diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp
index bd64f199..f8c963b7 100644
--- a/glslang/MachineIndependent/intermOut.cpp
+++ b/glslang/MachineIndependent/intermOut.cpp
@@ -163,6 +163,8 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node)
case EOpGreaterThan: out.debug << "Compare Greater Than"; break;
case EOpLessThanEqual: out.debug << "Compare Less Than or Equal"; break;
case EOpGreaterThanEqual: out.debug << "Compare Greater Than or Equal"; break;
+ case EOpVectorEqual: out.debug << "Equal"; break;
+ case EOpVectorNotEqual: out.debug << "NotEqual"; break;
case EOpVectorTimesScalar: out.debug << "vector-scale"; break;
case EOpVectorTimesMatrix: out.debug << "vector-times-matrix"; break;
diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp
index 15847ddb..269d6549 100644
--- a/glslang/MachineIndependent/iomapper.cpp
+++ b/glslang/MachineIndependent/iomapper.cpp
@@ -61,177 +61,295 @@
// c. implicit dead bindings are left un-bound.
//
-
-namespace glslang {
-// Map of IDs to bindings
-typedef std::unordered_map<unsigned int, int> TBindingMap;
-typedef std::unordered_set<int> TUsedBindings;
+namespace glslang {
+struct TVarEntryInfo
+{
+ int id;
+ TIntermSymbol* symbol;
+ bool live;
+ int newBinding;
+ int newSet;
-// This traverses the AST to determine which bindings are used, and which are implicit
-// (for subsequent auto-numbering)
-class TBindingTraverser : public TLiveTraverser {
-public:
- TBindingTraverser(const TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings,
- bool traverseDeadCode = false) :
- TLiveTraverser(i, traverseDeadCode, true, true, false),
- bindingMap(bindingMap),
- usedBindings(usedBindings)
- { }
-
-protected:
- virtual void visitSymbol(TIntermSymbol* base) {
- if (base->getQualifier().storage == EvqUniform)
- addUniform(*base);
- }
+ struct TOrderById
+ {
+ inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r)
+ {
+ return l.id < r.id;
+ }
+ };
- // Return the right binding base given the variable type.
- int getBindingBase(const TType& type) {
- if (type.getBasicType() == EbtSampler) {
- const TSampler& sampler = type.getSampler();
- if (sampler.isPureSampler())
- return intermediate.getShiftSamplerBinding();
- if (sampler.isTexture())
- return intermediate.getShiftTextureBinding();
+ struct TOrderByPriority
+ {
+ // ordering:
+ // 1) has both binding and set
+ // 2) has binding but no set
+ // 3) has no binding but set
+ // 4) has no binding and no set
+ inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r)
+ {
+ const TQualifier& lq = l.symbol->getQualifier();
+ const TQualifier& rq = r.symbol->getQualifier();
+
+ // simple rules:
+ // has binding gives 2 points
+ // has set gives 1 point
+ // who has the most points is more important.
+ int lPoints = (lq.hasBinding() ? 2 : 0) + (lq.hasSet() ? 1 : 0);
+ int rPoints = (rq.hasBinding() ? 2 : 0) + (rq.hasSet() ? 1 : 0);
+
+ if (lPoints == rPoints)
+ return l.id < r.id;
+ return lPoints > rPoints;
}
+ };
+};
- if (type.getQualifier().isUniformOrBuffer())
- return intermediate.getShiftUboBinding();
- return -1; // not a type with a binding
- }
- // Mark a given base symbol ID as being bound to 'binding'
- void markBinding(const TIntermSymbol& base, int binding) {
- bindingMap[base.getId()] = binding;
+typedef std::vector<TVarEntryInfo> TVarLiveMap;
+
+class TVarGatherTraverser : public TLiveTraverser
+{
+public:
+ TVarGatherTraverser(const TIntermediate& i, TVarLiveMap& vars, bool traverseDeadCode)
+ : TLiveTraverser(i, traverseDeadCode, true, true, false)
+ , varLiveList(vars)
+ {
+ }
- if (binding >= 0) {
- // const TType& type = base.getType();
- const unsigned int size = 1; // type.isArray() ? type.getCumulativeArraySize() : 1;
- for (unsigned int offset=0; offset<size; ++offset)
- usedBindings.insert(binding + offset);
+ virtual void visitSymbol(TIntermSymbol* base)
+ {
+ if (base->getQualifier().storage == EvqUniform) {
+ TVarEntryInfo ent = { base->getId(), base, !traverseAll };
+ TVarLiveMap::iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById());
+ if (at != varLiveList.end() && at->id == ent.id)
+ at->live = at->live || !traverseAll; // update live state
+ else
+ varLiveList.insert(at, ent);
}
}
- // Mark the bindings that are given explicitly, and set ones that need
- // implicit bindings to -1 for a subsequent pass. (Can't happen in this
- // pass because explicit bindings in dead code reserve the location).
- virtual void addUniform(TIntermSymbol& base)
+private:
+ TVarLiveMap& varLiveList;
+};
+
+class TVarSetTraverser : public TLiveTraverser
+{
+public:
+ TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& vars)
+ : TLiveTraverser(i, true, true, true, false)
+ , varLiveList(vars)
{
- // Skip ones we've already seen.
- if (bindingMap.find(base.getId()) != bindingMap.end())
- return;
+ }
- const TType& type = base.getType();
- const int bindingBase = getBindingBase(type);
- // Return if it's not a type we bind
- if (bindingBase == -1)
+ virtual void visitSymbol(TIntermSymbol* base)
+ {
+ TVarEntryInfo ent = { base->getId() };
+ TVarLiveMap::const_iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById());
+ if (at == varLiveList.end())
+ return;
+ if (!(at->id == ent.id))
return;
- if (type.getQualifier().hasBinding()) {
- // It has a binding: keep that one.
- markBinding(base, type.getQualifier().layoutBinding + bindingBase);
- } else if (!traverseAll) {
- // Mark it as something we need to dynamically create a binding for,
- // only if we're walking just the live code. We don't auto-number
- // in dead code.
- markBinding(base, -1);
- }
+ if (at->newBinding != -1)
+ base->getWritableType().getQualifier().layoutBinding = at->newBinding;
+ if (at->newSet != -1)
+ base->getWritableType().getQualifier().layoutSet = at->newSet;
}
- TBindingMap& bindingMap;
- TUsedBindings& usedBindings;
+ private:
+ const TVarLiveMap& varLiveList;
};
+struct TResolverAdaptor
+{
+ TResolverAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e)
+ : resolver(r)
+ , stage(s)
+ , infoSink(i)
+ , error(e)
+ {
+ }
-// This traverses the AST and applies binding maps it's given.
-class TIoMappingTraverser : public TBindingTraverser {
-public:
- TIoMappingTraverser(TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings,
- TInfoSink& infoSink, bool traverseDeadCode) :
- TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode),
- infoSink(infoSink),
- assignError(false)
- { }
+ inline void operator()(TVarEntryInfo& ent)
+ {
+ const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live);
+ if (isValid) {
+ ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live);
+ ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live);
+
+ if (ent.newBinding != -1) {
+ if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) {
+ TString err = "mapped binding out of range: " + ent.symbol->getName();
+
+ infoSink.info.message(EPrefixInternalError, err.c_str());
+ error = true;
+ }
+ }
+ if (ent.newSet != -1) {
+ if (ent.newSet >= int(TQualifier::layoutSetEnd)) {
+ TString err = "mapped set out of range: " + ent.symbol->getName();
+
+ infoSink.info.message(EPrefixInternalError, err.c_str());
+ error = true;
+ }
+ }
+ } else {
+ TString errorMsg = "Invalid binding: " + ent.symbol->getName();
+ infoSink.info.message(EPrefixInternalError, errorMsg.c_str());
+ error = true;
+ }
+ }
- bool success() const { return !assignError; }
+ EShLanguage stage;
+ TIoMapResolver& resolver;
+ TInfoSink& infoSink;
+ bool& error;
+};
-protected:
- unsigned checkBindingRange(const TIntermSymbol& base, unsigned binding)
+/*
+ * Basic implementation of glslang::TIoMapResolver that replaces the
+ * previous offset behaviour.
+ * It does the same, uses the offsets for th corresponding uniform
+ * types. Also respects the EOptionAutoMapBindings flag and binds
+ * them if needed.
+ */
+struct TDefaultIoResolver : public glslang::TIoMapResolver
+{
+ int baseSamplerBinding;
+ int baseTextureBinding;
+ int baseImageBinding;
+ int baseUboBinding;
+ bool doAutoMapping;
+ typedef std::vector<int> TSlotSet;
+ typedef std::unordered_map<int, TSlotSet> TSlotSetMap;
+ TSlotSetMap slots;
+
+ TSlotSet::iterator findSlot(int set, int slot)
{
- if (binding >= TQualifier::layoutBindingEnd) {
- TString err = "mapped binding out of range: ";
- err += base.getName();
-
- infoSink.info.message(EPrefixInternalError, err.c_str());
- assignError = true;
-
- return 0;
- }
+ return std::lower_bound(slots[set].begin(), slots[set].end(), slot);
+ }
- return binding;
+ bool checkEmpty(int set, int slot)
+ {
+ TSlotSet::iterator at = findSlot(set, slot);
+ return !(at != slots[set].end() && *at == slot);
}
- void addUniform(TIntermSymbol& base) override
+ int reserveSlot(int set, int slot)
{
- // Skip things we don't intend to bind.
- if (bindingMap.find(base.getId()) == bindingMap.end())
- return;
+ TSlotSet::iterator at = findSlot(set, slot);
+ slots[set].insert(at, slot);
+ return slot;
+ }
- const int existingBinding = bindingMap[base.getId()];
+ int getFreeSlot(int set, int base)
+ {
+ TSlotSet::iterator at = findSlot(set, base);
+ if (at == slots[set].end())
+ return reserveSlot(set, base);
+
+ // look in locksteps, if they not match, then there is a free slot
+ for (; at != slots[set].end(); ++at, ++base)
+ if (*at != base)
+ break;
+ return reserveSlot(set, base);
+ }
- // Apply existing binding, if we were given one or already made one up.
- if (existingBinding != -1) {
- base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, existingBinding);
- return;
+ bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override
+ {
+ if (type.getQualifier().hasBinding()) {
+ int set;
+ if (type.getQualifier().hasSet())
+ set = type.getQualifier().layoutSet;
+ else
+ set = 0;
+
+ if (type.getBasicType() == glslang::EbtSampler) {
+ const glslang::TSampler& sampler = type.getSampler();
+ if (sampler.isPureSampler())
+ return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding);
+
+ if (sampler.isTexture())
+ return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding);
+ }
+
+ if (type.getQualifier().isUniformOrBuffer())
+ return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding);
}
+ return true;
+ }
- if (intermediate.getAutoMapBindings()) {
- // Otherwise, find a free spot for it.
- const int freeBinding = getFreeBinding(base.getType(), getBindingBase(base.getType()));
+ int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override
+ {
+ int set;
+ if (type.getQualifier().hasSet())
+ set = type.getQualifier().layoutSet;
+ else
+ set = 0;
- markBinding(base, freeBinding);
- base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, freeBinding);
+ if (type.getQualifier().hasBinding()) {
+ if (type.getBasicType() == glslang::EbtSampler) {
+ const glslang::TSampler& sampler = type.getSampler();
+ if (sampler.isImage())
+ return reserveSlot(set, baseImageBinding + type.getQualifier().layoutBinding);
+
+ if (sampler.isPureSampler())
+ return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding);
+
+ if (sampler.isTexture())
+ return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding);
+ }
+
+ if (type.getQualifier().isUniformOrBuffer())
+ return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding);
+ } else if (is_live && doAutoMapping) {
+ // find free slot, the caller did make sure it passes all vars with binding
+ // first and now all are passed that do not have a binding and needs one
+ if (type.getBasicType() == glslang::EbtSampler) {
+ const glslang::TSampler& sampler = type.getSampler();
+ if (sampler.isImage())
+ return getFreeSlot(set, baseImageBinding);
+
+ if (sampler.isPureSampler())
+ return getFreeSlot(set, baseSamplerBinding);
+
+ if (sampler.isTexture())
+ return getFreeSlot(set, baseTextureBinding);
+ }
+
+ if (type.getQualifier().isUniformOrBuffer())
+ return getFreeSlot(set, baseUboBinding);
}
- }
- // Search for N free consecutive binding slots in [base, base+required).
- // E.g, if we want to reserve consecutive bindings for flattened arrays.
- bool hasNFreeSlots(int base, int required) {
- for (int binding = base; binding < (base + required); ++binding)
- if (usedBindings.find(binding) != usedBindings.end())
- return false;
-
- return true;
+ return -1;
}
- // Find a free binding spot
- int getFreeBinding(const TType&, int nextBinding) {
- while (!hasNFreeSlots(nextBinding, 1))
- ++nextBinding;
-
- return nextBinding;
+ int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override
+ {
+ if (type.getQualifier().hasSet())
+ return type.getQualifier().layoutSet;
+ return 0;
}
-
-private:
- bool assignError; // true if there was an error assigning the bindings
- TInfoSink& infoSink;
};
// Map I/O variables to provided offsets, and make bindings for
// unbound but live variables.
//
// Returns false if the input is too malformed to do this.
-bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate, TInfoSink& infoSink)
+bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSink &infoSink, TIoMapResolver *resolver)
{
// Trivial return if there is nothing to do.
if (intermediate.getShiftSamplerBinding() == 0 &&
intermediate.getShiftTextureBinding() == 0 &&
+ intermediate.getShiftImageBinding() == 0 &&
intermediate.getShiftUboBinding() == 0 &&
- intermediate.getAutoMapBindings() == false)
+ intermediate.getAutoMapBindings() == false &&
+ resolver == nullptr)
return true;
if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive())
@@ -241,30 +359,46 @@ bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate, TInfoSink& in
if (root == nullptr)
return false;
- // The lifetime of this data spans several passes.
- TBindingMap bindingMap;
- TUsedBindings usedBindings;
+ // if no resolver is provided, use the default resolver with the given shifts and auto map settings
+ TDefaultIoResolver defaultResolver;
+ if (resolver == nullptr) {
+ defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding();
+ defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding();
+ defaultResolver.baseImageBinding = intermediate.getShiftImageBinding();
+ defaultResolver.baseUboBinding = intermediate.getShiftUboBinding();
+ defaultResolver.doAutoMapping = intermediate.getAutoMapBindings();
- TBindingTraverser it_binding_all(intermediate, bindingMap, usedBindings, true);
- TBindingTraverser it_binding_live(intermediate, bindingMap, usedBindings, false);
- TIoMappingTraverser it_iomap(intermediate, bindingMap, usedBindings, infoSink, true);
+ resolver = &defaultResolver;
+ }
- // Traverse all (live+dead) code to find explicit bindings, so we can avoid those.
- root->traverse(&it_binding_all);
+ TVarLiveMap varMap;
+ TVarGatherTraverser iter_binding_all(intermediate, varMap, true);
+ TVarGatherTraverser iter_binding_live(intermediate, varMap, false);
- // Traverse just live code to find things that need implicit bindings.
- it_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str());
+ root->traverse(&iter_binding_all);
+ iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str());
- while (! it_binding_live.functions.empty()) {
- TIntermNode* function = it_binding_live.functions.back();
- it_binding_live.functions.pop_back();
- function->traverse(&it_binding_live);
+ while (!iter_binding_live.functions.empty()) {
+ TIntermNode* function = iter_binding_live.functions.back();
+ iter_binding_live.functions.pop_back();
+ function->traverse(&iter_binding_live);
}
- // Bind everything that needs a binding and doesn't have one.
- root->traverse(&it_iomap);
+ // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info.
+ std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderByPriority());
+
+ bool hadError = false;
+ TResolverAdaptor doResolve(stage, *resolver, infoSink, hadError);
+ std::for_each(varMap.begin(), varMap.end(), doResolve);
+
+ if (!hadError) {
+ // sort by id again, so we can use lower bound to find entries
+ std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById());
+ TVarSetTraverser iter_iomap(intermediate, varMap);
+ root->traverse(&iter_iomap);
+ }
- return it_iomap.success();
+ return !hadError;
}
} // end namespace glslang
diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h
index 68dec776..ff47543d 100644
--- a/glslang/MachineIndependent/iomapper.h
+++ b/glslang/MachineIndependent/iomapper.h
@@ -55,7 +55,7 @@ public:
virtual ~TIoMapper() {}
// grow the reflection stage by stage
- bool addStage(EShLanguage, TIntermediate&, TInfoSink&);
+ bool addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*);
};
} // end namespace glslang
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index 2e101347..050fdae0 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -60,6 +60,13 @@ void TIntermediate::error(TInfoSink& infoSink, const char* message)
++numErrors;
}
+// Link-time warning.
+void TIntermediate::warn(TInfoSink& infoSink, const char* message)
+{
+ infoSink.info.prefix(EPrefixWarning);
+ infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n";
+}
+
// TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block
// name must have the exact same set of members qualified with offset and their integral-constant
// expression values must be the same, or a link-time error results."
@@ -370,8 +377,15 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
//
void TIntermediate::finalCheck(TInfoSink& infoSink)
{
- if (source == EShSourceGlsl && numEntryPoints < 1)
- error(infoSink, "Missing entry point: Each stage requires one entry point");
+ if (getTreeRoot() == nullptr)
+ return;
+
+ if (numEntryPoints < 1) {
+ if (source == EShSourceGlsl)
+ error(infoSink, "Missing entry point: Each stage requires one entry point");
+ else
+ warn(infoSink, "Entry point not found");
+ }
if (numPushConstants > 1)
error(infoSink, "Only one push_constant block is allowed per stage");
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index aae22ecc..9ad50c74 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -144,6 +144,7 @@ public:
multiStream(false), xfbMode(false),
shiftSamplerBinding(0),
shiftTextureBinding(0),
+ shiftImageBinding(0),
shiftUboBinding(0),
autoMapBindings(false),
flattenUniformArrays(false),
@@ -174,6 +175,8 @@ public:
unsigned int getShiftSamplerBinding() const { return shiftSamplerBinding; }
void setShiftTextureBinding(unsigned int shift) { shiftTextureBinding = shift; }
unsigned int getShiftTextureBinding() const { return shiftTextureBinding; }
+ void setShiftImageBinding(unsigned int shift) { shiftImageBinding = shift; }
+ unsigned int getShiftImageBinding() const { return shiftImageBinding; }
void setShiftUboBinding(unsigned int shift) { shiftUboBinding = shift; }
unsigned int getShiftUboBinding() const { return shiftUboBinding; }
void setAutoMapBindings(bool map) { autoMapBindings = map; }
@@ -218,6 +221,7 @@ public:
TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&);
TIntermAggregate* makeAggregate(TIntermNode* node);
TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&);
+ TIntermAggregate* makeAggregate(const TSourceLoc&);
TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc);
bool areAllChildConst(TIntermAggregate* aggrNode);
TIntermNode* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&);
@@ -246,6 +250,9 @@ public:
TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const;
TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const;
+ // Add conversion from node's type to given basic type.
+ TIntermTyped* convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const;
+
// Constant folding (in Constant.cpp)
TIntermTyped* fold(TIntermAggregate* aggrNode);
TIntermTyped* foldConstructor(TIntermAggregate* aggrNode);
@@ -257,7 +264,6 @@ public:
// Linkage related
void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&);
- void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&);
void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&);
bool setInvocations(int i)
@@ -380,6 +386,7 @@ public:
protected:
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
void error(TInfoSink& infoSink, const char*);
+ void warn(TInfoSink& infoSink, const char*);
void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
void mergeImplicitArraySizes(TType&, const TType&);
@@ -390,13 +397,18 @@ protected:
bool userOutputUsed() const;
static int getBaseAlignmentScalar(const TType&, int& size);
bool isSpecializationOperation(const TIntermOperator&) const;
-
+ bool promote(TIntermOperator*);
+ bool promoteUnary(TIntermUnary&);
+ bool promoteBinary(TIntermBinary&);
+ void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&);
+
const EShLanguage language; // stage, known at construction time
EShSource source; // source language, known a bit later
std::string entryPointName;
std::string entryPointMangledName;
unsigned int shiftSamplerBinding;
unsigned int shiftTextureBinding;
+ unsigned int shiftImageBinding;
unsigned int shiftUboBinding;
bool autoMapBindings;
bool flattenUniformArrays;
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index e5e8b4d7..6793cdd3 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -306,6 +306,7 @@ public:
void setEntryPoint(const char* entryPoint);
void setShiftSamplerBinding(unsigned int base);
void setShiftTextureBinding(unsigned int base);
+ void setShiftImageBinding(unsigned int base);
void setShiftUboBinding(unsigned int base);
void setAutoMapBindings(bool map);
void setFlattenUniformArrays(bool flatten);
@@ -445,7 +446,36 @@ private:
class TReflection;
class TIoMapper;
-// Make one TProgram per set of shaders that will get linked together. Add all
+// Allows to customize the binding layout after linking.
+// All used uniform variables will invoke at least validateBinding.
+// If validateBinding returned true then the other resolveBinding
+// and resolveSet are invoked to resolve the binding and descriptor
+// set index respectively.
+// Invocations happen in a particular order:
+// 1) var with binding and set already defined
+// 2) var with binding but no set defined
+// 3) var with set but no binding defined
+// 4) var with no binding and no set defined
+//
+// NOTE: that still limit checks are applied to bindings and sets
+// and may result in an error.
+class TIoMapResolver
+{
+public:
+ virtual ~TIoMapResolver() {}
+
+ // Should return true if the resulting/current binding would be ok.
+ // Basic idea is to do aliasing binding checks with this.
+ virtual bool validateBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0;
+ // Should return a value >= 0 if the current binding should be overridden.
+ // Return -1 if the current binding (including no binding) should be kept.
+ virtual int resolveBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0;
+ // Should return a value >= 0 if the current set should be overriden.
+ // Return -1 if the current set (including no set) should be kept.
+ virtual int resolveSet(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0;
+};
+
+// Make one TProgram per set of shaders that will get linked together. Add all
// the shaders that are to be linked together. After calling shader.parse()
// for all shaders, call link().
//
@@ -481,11 +511,14 @@ public:
int getAttributeType(int index) const; // can be used for glGetActiveAttrib()
const TType* getUniformTType(int index) const; // returns a TType*
const TType* getUniformBlockTType(int index) const; // returns a TType*
+ const TType* getAttributeTType(int index) const; // returns a TType*
void dumpReflection();
// I/O mapping: apply base offsets and map live unbound variables
- bool mapIO();
+ // If resolver is not provided it uses the previous approach
+ // and respects auto assignment and offsets.
+ bool mapIO(TIoMapResolver* resolver = NULL);
protected:
bool linkStage(EShLanguage, EShMessages);
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index b50816a1..429f445f 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -86,11 +86,14 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.array.multidim.frag", "main"},
{"hlsl.assoc.frag", "PixelShaderFunction"},
{"hlsl.attribute.frag", "PixelShaderFunction"},
+ {"hlsl.attribute.expression.comp", "main"},
{"hlsl.basic.comp", "main"},
+ {"hlsl.basic.geom", "main"},
{"hlsl.buffer.frag", "PixelShaderFunction"},
{"hlsl.calculatelod.dx10.frag", "main"},
{"hlsl.calculatelodunclamped.dx10.frag", "main"},
{"hlsl.cast.frag", "PixelShaderFunction"},
+ {"hlsl.comparison.vec.frag", "main"},
{"hlsl.conditional.frag", "PixelShaderFunction"},
{"hlsl.constructexpr.frag", "main"},
{"hlsl.depthGreater.frag", "PixelShaderFunction"},
@@ -116,6 +119,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.getdimensions.rw.dx10.frag", "main"},
{"hlsl.getdimensions.dx10.vert", "main"},
{"hlsl.getsampleposition.dx10.frag", "main"},
+ {"hlsl.identifier.sample.frag", "main"},
{"hlsl.if.frag", "PixelShaderFunction"},
{"hlsl.inoutquals.frag", "main"},
{"hlsl.init.frag", "ShaderFunction"},
@@ -142,15 +146,26 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.load.rwtexture.array.dx10.frag", "main"},
{"hlsl.load.offset.dx10.frag", "main"},
{"hlsl.load.offsetarray.dx10.frag", "main"},
+ {"hlsl.logical.unary.frag", "main"},
+ {"hlsl.logical.binary.frag", "main"},
+ {"hlsl.logical.binary.vec.frag", "main"},
+ {"hlsl.matNx1.frag", "main"},
+ {"hlsl.mintypes.frag", "main"},
{"hlsl.multiEntry.vert", "RealEntrypoint"},
{"hlsl.multiReturn.frag", "main"},
{"hlsl.matrixindex.frag", "main"},
{"hlsl.numericsuffixes.frag", "main"},
+ {"hlsl.numthreads.comp", "main_aux1"},
{"hlsl.overload.frag", "PixelShaderFunction"},
+ {"hlsl.partialInit.frag", "PixelShaderFunction"},
{"hlsl.pp.line.frag", "main"},
{"hlsl.precise.frag", "main"},
+ {"hlsl.promote.binary.frag", "main"},
+ {"hlsl.promote.vec1.frag", "main"},
{"hlsl.promotions.frag", "main"},
+ {"hlsl.rw.atomics.frag", "main"},
{"hlsl.rw.bracket.frag", "main"},
+ {"hlsl.rw.register.frag", "main"},
{"hlsl.rw.scalar.bracket.frag", "main"},
{"hlsl.rw.vec2.bracket.frag", "main"},
{"hlsl.sample.array.dx10.frag", "main"},
@@ -179,7 +194,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.samplelevel.basic.dx10.vert", "main"},
{"hlsl.samplelevel.offset.dx10.frag", "main"},
{"hlsl.samplelevel.offsetarray.dx10.frag", "main"},
- { "hlsl.sample.sub-vec4.dx10.frag", "main"},
+ {"hlsl.sample.sub-vec4.dx10.frag", "main"},
{"hlsl.semicolons.frag", "main"},
{"hlsl.shapeConv.frag", "main"},
{"hlsl.shapeConvRet.frag", "main"},
@@ -188,6 +203,8 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.structin.vert", "main"},
{"hlsl.intrinsics.vert", "VertexShaderFunction"},
{"hlsl.matType.frag", "PixelShaderFunction"},
+ {"hlsl.matType.bool.frag", "main"},
+ {"hlsl.matType.int.frag", "main"},
{"hlsl.max.frag", "PixelShaderFunction"},
{"hlsl.precedence.frag", "PixelShaderFunction"},
{"hlsl.precedence2.frag", "PixelShaderFunction"},
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index a55af518..414fa7b7 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -46,6 +46,7 @@ struct IoMapData {
const char* entryPoint;
int baseSamplerBinding;
int baseTextureBinding;
+ int baseImageBinding;
int baseUboBinding;
bool autoMapBindings;
bool flattenUniforms;
@@ -123,6 +124,7 @@ TEST_P(HlslIoMap, FromFile)
Target::Spv, GetParam().entryPoint,
GetParam().baseSamplerBinding,
GetParam().baseTextureBinding,
+ GetParam().baseImageBinding,
GetParam().baseUboBinding,
GetParam().autoMapBindings,
GetParam().flattenUniforms);
@@ -136,6 +138,7 @@ TEST_P(GlslIoMap, FromFile)
Target::Spv, GetParam().entryPoint,
GetParam().baseSamplerBinding,
GetParam().baseTextureBinding,
+ GetParam().baseImageBinding,
GetParam().baseUboBinding,
GetParam().autoMapBindings,
GetParam().flattenUniforms);
@@ -233,6 +236,7 @@ INSTANTIATE_TEST_CASE_P(
"spv.offsets.frag",
"spv.Operations.frag",
"spv.intOps.vert",
+ "spv.noWorkgroup.comp",
"spv.precision.frag",
"spv.prepost.frag",
"spv.qualifiers.vert",
@@ -283,10 +287,11 @@ INSTANTIATE_TEST_CASE_P(
INSTANTIATE_TEST_CASE_P(
Hlsl, HlslIoMap,
::testing::ValuesIn(std::vector<IoMapData>{
- { "spv.register.autoassign.frag", "main_ep", 5, 10, 20, true, false },
- { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false },
- { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true },
- { "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true },
+ { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, true, false },
+ { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, false, false },
+ { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, true, true },
+ { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, true, true },
+ { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, true, true },
{ "spv.register.autoassign.rangetest.frag", "main",
glslang::TQualifier::layoutBindingEnd-2,
glslang::TQualifier::layoutBindingEnd+5,
@@ -299,8 +304,8 @@ INSTANTIATE_TEST_CASE_P(
INSTANTIATE_TEST_CASE_P(
Hlsl, GlslIoMap,
::testing::ValuesIn(std::vector<IoMapData>{
- { "spv.glsl.register.autoassign.frag", "main", 5, 10, 20, true, false },
- { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 15, false, false },
+ { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, true, false },
+ { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, false, false },
}),
FileNameAsCustomTestSuffixIoMap
);
diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h
index c08c6cc5..e795e8dc 100644
--- a/gtests/TestFixture.h
+++ b/gtests/TestFixture.h
@@ -239,6 +239,7 @@ public:
const std::string& entryPointName, EShMessages controls,
int baseSamplerBinding,
int baseTextureBinding,
+ int baseImageBinding,
int baseUboBinding,
bool autoMapBindings,
bool flattenUniformArrays)
@@ -248,6 +249,7 @@ public:
glslang::TShader shader(kind);
shader.setShiftSamplerBinding(baseSamplerBinding);
shader.setShiftTextureBinding(baseTextureBinding);
+ shader.setShiftImageBinding(baseImageBinding);
shader.setShiftUboBinding(baseUboBinding);
shader.setAutoMapBindings(autoMapBindings);
shader.setFlattenUniformArrays(flattenUniformArrays);
@@ -426,6 +428,7 @@ public:
const std::string& entryPointName,
int baseSamplerBinding,
int baseTextureBinding,
+ int baseImageBinding,
int baseUboBinding,
bool autoMapBindings,
bool flattenUniformArrays)
@@ -440,7 +443,7 @@ public:
const EShMessages controls = DeriveOptions(source, semantics, target);
GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls,
- baseSamplerBinding, baseTextureBinding, baseUboBinding,
+ baseSamplerBinding, baseTextureBinding, baseImageBinding, baseUboBinding,
autoMapBindings,
flattenUniformArrays);
diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt
index c7537e27..ec5f1a56 100755
--- a/hlsl/CMakeLists.txt
+++ b/hlsl/CMakeLists.txt
@@ -1,4 +1,5 @@
set(SOURCES
+ hlslAttributes.cpp
hlslParseHelper.cpp
hlslScanContext.cpp
hlslOpMap.cpp
@@ -6,7 +7,8 @@ set(SOURCES
hlslGrammar.cpp
hlslParseables.cpp)
-set(HEADERS
+ set(HEADERS
+ hlslAttributes.h
hlslParseHelper.h
hlslTokens.h
hlslScanContext.h
diff --git a/hlsl/hlslAttributes.cpp b/hlsl/hlslAttributes.cpp
new file mode 100644
index 00000000..966ff352
--- /dev/null
+++ b/hlsl/hlslAttributes.cpp
@@ -0,0 +1,110 @@
+//
+//Copyright (C) 2016 LunarG, Inc.
+//
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of Google, Inc., nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+
+#include "hlslAttributes.h"
+#include <cstdlib>
+#include <cctype>
+
+namespace glslang {
+ // Map the given string to an attribute enum from TAttributeType,
+ // or EatNone if invalid.
+ TAttributeType TAttributeMap::attributeFromName(const TString& name)
+ {
+ // These are case insensitive.
+ TString lowername(name);
+ std::transform(lowername.begin(), lowername.end(), lowername.begin(), ::tolower);
+
+ if (lowername == "allow_uav_condition")
+ return EatAllow_uav_condition;
+ else if (lowername == "branch")
+ return EatBranch;
+ else if (lowername == "call")
+ return EatCall;
+ else if (lowername == "domain")
+ return EatDomain;
+ else if (lowername == "earlydepthstencil")
+ return EatEarlyDepthStencil;
+ else if (lowername == "fastopt")
+ return EatFastOpt;
+ else if (lowername == "flatten")
+ return EatFlatten;
+ else if (lowername == "forcecase")
+ return EatForceCase;
+ else if (lowername == "instance")
+ return EatInstance;
+ else if (lowername == "maxtessfactor")
+ return EatMaxTessFactor;
+ else if (lowername == "maxvertexcount")
+ return EatMaxVertexCount;
+ else if (lowername == "numthreads")
+ return EatNumThreads;
+ else if (lowername == "outputcontrolpoints")
+ return EatOutputControlPoints;
+ else if (lowername == "outputtopology")
+ return EatOutputTopology;
+ else if (lowername == "partitioning")
+ return EatPartitioning;
+ else if (lowername == "patchconstantfunc")
+ return EatPatchConstantFunc;
+ else if (lowername == "unroll")
+ return EatUnroll;
+ else
+ return EatNone;
+ }
+
+ // Look up entry, inserting if it's not there, and if name is a valid attribute name
+ // as known by attributeFromName.
+ TAttributeType TAttributeMap::setAttribute(const TString* name, TIntermAggregate* value)
+ {
+ if (name == nullptr)
+ return EatNone;
+
+ const TAttributeType attr = attributeFromName(*name);
+
+ if (attr != EatNone)
+ attributes[attr] = value;
+
+ return attr;
+ }
+
+ // Look up entry (const version), and return aggregate node. This cannot change the map.
+ const TIntermAggregate* TAttributeMap::operator[](TAttributeType attr) const
+ {
+ const auto entry = attributes.find(attr);
+
+ return (entry == attributes.end()) ? nullptr : entry->second;
+ }
+
+} // end namespace glslang
diff --git a/hlsl/hlslAttributes.h b/hlsl/hlslAttributes.h
new file mode 100644
index 00000000..312a4564
--- /dev/null
+++ b/hlsl/hlslAttributes.h
@@ -0,0 +1,97 @@
+//
+//Copyright (C) 2016 LunarG, Inc.
+//
+//All rights reserved.
+//
+//Redistribution and use in source and binary forms, with or without
+//modification, are permitted provided that the following conditions
+//are met:
+//
+// Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+//
+// Neither the name of Google, Inc., nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+//POSSIBILITY OF SUCH DAMAGE.
+//
+
+#ifndef HLSLATTRIBUTES_H_
+#define HLSLATTRIBUTES_H_
+
+#include <unordered_map>
+#include <functional>
+#include "hlslScanContext.h"
+#include "../glslang/Include/Common.h"
+
+namespace glslang {
+ enum TAttributeType {
+ EatNone,
+ EatAllow_uav_condition,
+ EatBranch,
+ EatCall,
+ EatDomain,
+ EatEarlyDepthStencil,
+ EatFastOpt,
+ EatFlatten,
+ EatForceCase,
+ EatInstance,
+ EatMaxTessFactor,
+ EatNumThreads,
+ EatMaxVertexCount,
+ EatOutputControlPoints,
+ EatOutputTopology,
+ EatPartitioning,
+ EatPatchConstantFunc,
+ EatUnroll,
+ };
+}
+
+namespace std {
+ // Allow use of TAttributeType enum in hash_map without calling code having to cast.
+ template <> struct hash<glslang::TAttributeType> {
+ std::size_t operator()(glslang::TAttributeType attr) const {
+ return std::hash<int>()(int(attr));
+ }
+ };
+} // end namespace std
+
+namespace glslang {
+ class TIntermAggregate;
+
+ class TAttributeMap {
+ public:
+ // Search for and potentially add the attribute into the map. Return the
+ // attribute type enum for it, if found, else EatNone.
+ TAttributeType setAttribute(const TString* name, TIntermAggregate* value);
+
+ // Const lookup: search for (but do not modify) the attribute in the map.
+ const TIntermAggregate* operator[](TAttributeType) const;
+
+ protected:
+ // Find an attribute enum given its name.
+ static TAttributeType attributeFromName(const TString&);
+
+ std::unordered_map<TAttributeType, TIntermAggregate*> attributes;
+ };
+} // end namespace glslang
+
+
+#endif // HLSLATTRIBUTES_H_
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index 7766f857..10dfcc83 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -53,6 +53,7 @@
#include "hlslTokens.h"
#include "hlslGrammar.h"
+#include "hlslAttributes.h"
namespace glslang {
@@ -84,6 +85,19 @@ bool HlslGrammar::acceptIdentifier(HlslToken& idToken)
return true;
}
+ // Even though "sample" is a keyword (for interpolation modifiers), it IS still accepted as
+ // an identifier. This appears to be a solitary exception: other interp modifier keywords such
+ // as "linear" or "centroid" NOT valid identifiers. This code special cases "sample",
+ // so e.g, "int sample;" is accepted.
+ if (peekTokenClass(EHTokSample)) {
+ idToken.string = NewPoolTString("sample");
+ idToken.tokenClass = EHTokIdentifier;
+ idToken.symbol = nullptr;
+ idToken.loc = token.loc;
+ advanceToken();
+ return true;
+ }
+
return false;
}
@@ -268,6 +282,10 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node)
node = nullptr;
bool list = false;
+ // attributes
+ TAttributeMap attributes;
+ acceptAttributes(attributes);
+
// typedef
bool typedefDecl = acceptTokenClass(EHTokTypedef);
@@ -302,7 +320,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node)
parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", "");
if (typedefDecl)
parseContext.error(idToken.loc, "function body can't be in a typedef", "{", "");
- return acceptFunctionDefinition(function, node);
+ return acceptFunctionDefinition(function, node, attributes);
} else {
if (typedefDecl)
parseContext.error(idToken.loc, "function typedefs not implemented", "{", "");
@@ -464,9 +482,14 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type)
// Some qualifiers are set when parsing the type. Merge those with
// whatever comes from acceptQualifier.
assert(qualifier.layoutFormat == ElfNone);
+
qualifier.layoutFormat = type.getQualifier().layoutFormat;
+ qualifier.precision = type.getQualifier().precision;
- type.getQualifier() = qualifier;
+ if (type.getQualifier().storage == EvqVaryingOut)
+ qualifier.storage = type.getQualifier().storage;
+
+ type.getQualifier() = qualifier;
}
return true;
@@ -539,6 +562,35 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier)
if (! acceptLayoutQualifierList(qualifier))
return false;
continue;
+
+ // GS geometries: these are specified on stage input variables, and are an error (not verified here)
+ // for output variables.
+ case EHTokPoint:
+ qualifier.storage = EvqIn;
+ if (!parseContext.handleInputGeometry(token.loc, ElgPoints))
+ return false;
+ break;
+ case EHTokLine:
+ qualifier.storage = EvqIn;
+ if (!parseContext.handleInputGeometry(token.loc, ElgLines))
+ return false;
+ break;
+ case EHTokTriangle:
+ qualifier.storage = EvqIn;
+ if (!parseContext.handleInputGeometry(token.loc, ElgTriangles))
+ return false;
+ break;
+ case EHTokLineAdj:
+ qualifier.storage = EvqIn;
+ if (!parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency))
+ return false;
+ break;
+ case EHTokTriangleAdj:
+ qualifier.storage = EvqIn;
+ if (!parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency))
+ return false;
+ break;
+
default:
return true;
}
@@ -603,7 +655,7 @@ bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier)
// | UINT
// | BOOL
//
-bool HlslGrammar::acceptTemplateType(TBasicType& basicType)
+bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType)
{
switch (peek()) {
case EHTokFloat:
@@ -647,7 +699,7 @@ bool HlslGrammar::acceptVectorTemplateType(TType& type)
}
TBasicType basicType;
- if (! acceptTemplateType(basicType)) {
+ if (! acceptTemplateVecMatBasicType(basicType)) {
expected("scalar type");
return false;
}
@@ -699,7 +751,7 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type)
}
TBasicType basicType;
- if (! acceptTemplateType(basicType)) {
+ if (! acceptTemplateVecMatBasicType(basicType)) {
expected("scalar type");
return false;
}
@@ -748,6 +800,56 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type)
return true;
}
+// layout_geometry
+// : LINESTREAM
+// | POINTSTREAM
+// | TRIANGLESTREAM
+//
+bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry)
+{
+ // read geometry type
+ const EHlslTokenClass geometryType = peek();
+
+ switch (geometryType) {
+ case EHTokPointStream: geometry = ElgPoints; break;
+ case EHTokLineStream: geometry = ElgLineStrip; break;
+ case EHTokTriangleStream: geometry = ElgTriangleStrip; break;
+ default:
+ return false; // not a layout geometry
+ }
+
+ advanceToken(); // consume the layout keyword
+ return true;
+}
+
+// stream_out_template_type
+// : output_primitive_geometry_type LEFT_ANGLE type RIGHT_ANGLE
+//
+bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geometry)
+{
+ geometry = ElgNone;
+
+ if (! acceptOutputPrimitiveGeometry(geometry))
+ return false;
+
+ if (! acceptTokenClass(EHTokLeftAngle))
+ return false;
+
+ if (! acceptType(type)) {
+ expected("stream output type");
+ return false;
+ }
+
+ type.getQualifier().storage = EvqVaryingOut;
+
+ if (! acceptTokenClass(EHTokRightAngle)) {
+ expected("right angle bracket");
+ return false;
+ }
+
+ return true;
+}
+
// annotations
// : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE
//
@@ -967,6 +1069,14 @@ bool HlslGrammar::acceptTextureType(TType& type)
// Otherwise, return false, and don't advance
bool HlslGrammar::acceptType(TType& type)
{
+ // Basic types for min* types, broken out here in case of future
+ // changes, e.g, to use native halfs.
+ static const TBasicType min16float_bt = EbtFloat;
+ static const TBasicType min10float_bt = EbtFloat;
+ static const TBasicType min16int_bt = EbtInt;
+ static const TBasicType min12int_bt = EbtInt;
+ static const TBasicType min16uint_bt = EbtUint;
+
switch (peek()) {
case EHTokVector:
return acceptVectorTemplateType(type);
@@ -976,6 +1086,20 @@ bool HlslGrammar::acceptType(TType& type)
return acceptMatrixTemplateType(type);
break;
+ case EHTokPointStream: // fall through
+ case EHTokLineStream: // ...
+ case EHTokTriangleStream: // ...
+ {
+ TLayoutGeometry geometry;
+ if (! acceptStreamOutTemplateType(type, geometry))
+ return false;
+
+ if (! parseContext.handleOutputGeometry(token.loc, geometry))
+ return false;
+
+ return true;
+ }
+
case EHTokSampler: // fall through
case EHTokSampler1d: // ...
case EHTokSampler2d: // ...
@@ -1118,6 +1242,91 @@ bool HlslGrammar::acceptType(TType& type)
new(&type) TType(EbtBool, EvqTemporary, 4);
break;
+ case EHTokMin16float:
+ new(&type) TType(min16float_bt, EvqTemporary, EpqMedium);
+ break;
+ case EHTokMin16float1:
+ new(&type) TType(min16float_bt, EvqTemporary, EpqMedium);
+ type.makeVector();
+ break;
+ case EHTokMin16float2:
+ new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 2);
+ break;
+ case EHTokMin16float3:
+ new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 3);
+ break;
+ case EHTokMin16float4:
+ new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4);
+ break;
+
+ case EHTokMin10float:
+ new(&type) TType(min10float_bt, EvqTemporary, EpqMedium);
+ break;
+ case EHTokMin10float1:
+ new(&type) TType(min10float_bt, EvqTemporary, EpqMedium);
+ type.makeVector();
+ break;
+ case EHTokMin10float2:
+ new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 2);
+ break;
+ case EHTokMin10float3:
+ new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 3);
+ break;
+ case EHTokMin10float4:
+ new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4);
+ break;
+
+ case EHTokMin16int:
+ new(&type) TType(min16int_bt, EvqTemporary, EpqMedium);
+ break;
+ case EHTokMin16int1:
+ new(&type) TType(min16int_bt, EvqTemporary, EpqMedium);
+ type.makeVector();
+ break;
+ case EHTokMin16int2:
+ new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 2);
+ break;
+ case EHTokMin16int3:
+ new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 3);
+ break;
+ case EHTokMin16int4:
+ new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4);
+ break;
+
+ case EHTokMin12int:
+ new(&type) TType(min12int_bt, EvqTemporary, EpqMedium);
+ break;
+ case EHTokMin12int1:
+ new(&type) TType(min12int_bt, EvqTemporary, EpqMedium);
+ type.makeVector();
+ break;
+ case EHTokMin12int2:
+ new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 2);
+ break;
+ case EHTokMin12int3:
+ new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 3);
+ break;
+ case EHTokMin12int4:
+ new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4);
+ break;
+
+ case EHTokMin16uint:
+ new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium);
+ break;
+ case EHTokMin16uint1:
+ new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium);
+ type.makeVector();
+ break;
+ case EHTokMin16uint2:
+ new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 2);
+ break;
+ case EHTokMin16uint3:
+ new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 3);
+ break;
+ case EHTokMin16uint4:
+ new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 4);
+ break;
+
case EHTokInt1x1:
new(&type) TType(EbtInt, EvqTemporary, 0, 1, 1);
break;
@@ -1594,13 +1803,13 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function)
// Do the work to create the function definition in addition to
// parsing the body (compound_statement).
-bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node)
+bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node, const TAttributeMap& attributes)
{
TFunction& functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */);
TSourceLoc loc = token.loc;
// This does a pushScope()
- node = parseContext.handleFunctionDefinition(loc, functionDeclarator);
+ node = parseContext.handleFunctionDefinition(loc, functionDeclarator, attributes);
// compound_statement
TIntermNode* functionBody = nullptr;
@@ -1687,7 +1896,8 @@ bool HlslGrammar::acceptExpression(TIntermTyped*& node)
}
// initializer
-// : LEFT_BRACE initializer_list RIGHT_BRACE
+// : LEFT_BRACE RIGHT_BRACE
+// | LEFT_BRACE initializer_list RIGHT_BRACE
//
// initializer_list
// : assignment_expression COMMA assignment_expression COMMA ...
@@ -1698,8 +1908,15 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node)
if (! acceptTokenClass(EHTokLeftBrace))
return false;
- // initializer_list
+ // RIGHT_BRACE
TSourceLoc loc = token.loc;
+ if (acceptTokenClass(EHTokRightBrace)) {
+ // a zero-length initializer list
+ node = intermediate.makeAggregate(loc);
+ return true;
+ }
+
+ // initializer_list
node = nullptr;
do {
// assignment_expression
@@ -1935,7 +2152,10 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node)
return true;
node = intermediate.addUnaryMath(unaryOp, node, loc);
- node = parseContext.handleLvalue(loc, "unary operator", node);
+
+ // These unary ops require lvalues
+ if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement)
+ node = parseContext.handleLvalue(loc, "unary operator", node);
return node != nullptr;
}
@@ -2248,7 +2468,8 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement)
statement = nullptr;
// attributes
- acceptAttributes();
+ TAttributeMap attributes;
+ acceptAttributes(attributes);
// attributed_statement
switch (peek()) {
@@ -2321,42 +2542,70 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement)
// | FLATTEN
// | FORCECASE
// | CALL
-//
-void HlslGrammar::acceptAttributes()
+// | DOMAIN
+// | EARLYDEPTHSTENCIL
+// | INSTANCE
+// | MAXTESSFACTOR
+// | OUTPUTCONTROLPOINTS
+// | OUTPUTTOPOLOGY
+// | PARTITIONING
+// | PATCHCONSTANTFUNC
+// | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN
+//
+void HlslGrammar::acceptAttributes(TAttributeMap& attributes)
{
- // For now, accept the [ XXX(X) ] syntax, but drop.
+ // For now, accept the [ XXX(X) ] syntax, but drop all but
+ // numthreads, which is used to set the CS local size.
// TODO: subset to correct set? Pass on?
do {
+ HlslToken idToken;
+
// LEFT_BRACKET?
if (! acceptTokenClass(EHTokLeftBracket))
return;
// attribute
- if (peekTokenClass(EHTokIdentifier)) {
- // 'token.string' is the attribute
- advanceToken();
+ if (acceptIdentifier(idToken)) {
+ // 'idToken.string' is the attribute
} else if (! peekTokenClass(EHTokRightBracket)) {
expected("identifier");
advanceToken();
}
- // (x)
+ TIntermAggregate* expressions = nullptr;
+
+ // (x, ...)
if (acceptTokenClass(EHTokLeftParen)) {
+ expressions = new TIntermAggregate;
+
TIntermTyped* node;
- if (! acceptLiteral(node))
- expected("literal");
- // 'node' has the literal in it
+ bool expectingExpression = false;
+
+ while (acceptAssignmentExpression(node)) {
+ expectingExpression = false;
+ expressions->getSequence().push_back(node);
+ if (acceptTokenClass(EHTokComma))
+ expectingExpression = true;
+ }
+
+ // 'expressions' is an aggregate with the expressions in it
if (! acceptTokenClass(EHTokRightParen))
expected(")");
+
+ // Error for partial or missing expression
+ if (expectingExpression || expressions->getSequence().empty())
+ expected("expression");
}
// RIGHT_BRACKET
- if (acceptTokenClass(EHTokRightBracket))
- continue;
-
- expected("]");
- return;
+ if (!acceptTokenClass(EHTokRightBracket)) {
+ expected("]");
+ return;
+ }
+ // Add any values we found into the attribute map. This accepts
+ // (and ignores) values not mapping to a known TAttributeType;
+ attributes.setAttribute(idToken.string, expressions);
} while (true);
}
diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h
index 992eb5e9..8804b217 100755
--- a/hlsl/hlslGrammar.h
+++ b/hlsl/hlslGrammar.h
@@ -43,6 +43,8 @@
namespace glslang {
+ class TAttributeMap; // forward declare
+
// Should just be the grammar aspect of HLSL.
// Described in more detail in hlslGrammar.cpp.
@@ -70,9 +72,11 @@ namespace glslang {
bool acceptQualifier(TQualifier&);
bool acceptLayoutQualifierList(TQualifier&);
bool acceptType(TType&);
- bool acceptTemplateType(TBasicType&);
+ bool acceptTemplateVecMatBasicType(TBasicType&);
bool acceptVectorTemplateType(TType&);
bool acceptMatrixTemplateType(TType&);
+ bool acceptStreamOutTemplateType(TType&, TLayoutGeometry&);
+ bool acceptOutputPrimitiveGeometry(TLayoutGeometry&);
bool acceptAnnotations(TQualifier&);
bool acceptSamplerType(TType&);
bool acceptTextureType(TType&);
@@ -80,7 +84,7 @@ namespace glslang {
bool acceptStructDeclarationList(TTypeList*&);
bool acceptFunctionParameters(TFunction&);
bool acceptParameterDeclaration(TFunction&);
- bool acceptFunctionDefinition(TFunction&, TIntermNode*&);
+ bool acceptFunctionDefinition(TFunction&, TIntermNode*&, const TAttributeMap&);
bool acceptParenExpression(TIntermTyped*&);
bool acceptExpression(TIntermTyped*&);
bool acceptInitializer(TIntermTyped*&);
@@ -98,7 +102,7 @@ namespace glslang {
bool acceptScopedStatement(TIntermNode*&);
bool acceptScopedCompoundStatement(TIntermNode*&);
bool acceptNestedStatement(TIntermNode*&);
- void acceptAttributes();
+ void acceptAttributes(TAttributeMap&);
bool acceptSelectionStatement(TIntermNode*&);
bool acceptSwitchStatement(TIntermNode*&);
bool acceptIterationStatement(TIntermNode*&);
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index b4c417d9..8685dcd8 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -37,6 +37,7 @@
#include "hlslParseHelper.h"
#include "hlslScanContext.h"
#include "hlslGrammar.h"
+#include "hlslAttributes.h"
#include "../glslang/MachineIndependent/Scan.h"
#include "../glslang/MachineIndependent/preprocessor/PpContext.h"
@@ -44,23 +45,21 @@
#include "../glslang/OSDependent/osinclude.h"
#include <algorithm>
+#include <cctype>
namespace glslang {
-HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool /*parsingBuiltins*/,
+HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins,
int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink,
bool forwardCompatible, EShMessages messages) :
- TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
+ TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages),
contextPragma(true, false),
loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0),
- postMainReturn(false),
+ postEntryPointReturn(false),
limits(resources.limits),
entryPointOutput(nullptr),
nextInLocation(0), nextOutLocation(0)
{
- // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms
- linkage = new TIntermAggregate;
-
globalUniformDefaults.clear();
globalUniformDefaults.layoutMatrix = ElmRowMajor;
globalUniformDefaults.layoutPacking = ElpStd140;
@@ -127,6 +126,8 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner&
return false;
}
+ finish();
+
return numErrors == 0;
}
@@ -154,7 +155,7 @@ TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const
{
const int components = txType.getVectorSize();
- const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) {
+ const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) -> TLayoutFormat {
if (intermediate.getNoStorageFormat())
return ElfNone;
@@ -260,7 +261,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char*
};
// Helper to complete sequence by adding trailing variable, so we evaluate to the right value.
- const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) {
+ const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) -> TIntermAggregate* {
// Add a trailing use of the temp, so the sequence returns the proper value.
sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp));
sequence->setOperator(EOpSequence);
@@ -279,7 +280,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char*
};
// helper to create a temporary variable
- const auto addTmpVar = [&](const char* name, const TType& derefType) {
+ const auto addTmpVar = [&](const char* name, const TType& derefType) -> TIntermSymbol* {
TVariable* tmpVar = makeInternalVariable(name, derefType);
tmpVar->getWritableType().getQualifier().makeTemporary();
return intermediate.addSymbol(*tmpVar, loc);
@@ -757,6 +758,13 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt
return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc);
}
}
+ } else if (field == "Append" ||
+ field == "RestartStrip") {
+ // These methods only valid on stage in variables
+ // TODO: ... which are stream out types, if there's any way to test that here.
+ if (base->getType().getQualifier().storage == EvqVaryingOut) {
+ return intermediate.addMethod(base, TType(EbtVoid), &field, loc);
+ }
}
// It's not .length() if we get to here.
@@ -949,9 +957,9 @@ void HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& vari
++binding;
memberVariables.push_back(memberVariable);
- intermediate.addSymbolLinkageNode(linkage, *memberVariable);
+ trackLinkageDeferred(*memberVariable);
}
-
+
flattenMap[variable.getUniqueId()] = memberVariables;
}
@@ -988,7 +996,7 @@ void HlslParseContext::assignLocations(TVariable& variable)
nextOutLocation += intermediate.computeTypeLocationSize(variable.getType());
}
}
- intermediate.addSymbolLinkageNode(linkage, variable);
+ trackLinkage(variable);
}
};
@@ -1045,7 +1053,8 @@ TFunction& HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFu
// Handle seeing the function prototype in front of a function definition in the grammar.
// The body is handled after this function returns.
//
-TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function)
+TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function,
+ const TAttributeMap& attributes)
{
currentCaller = function.getMangledName();
TSymbol* symbol = symbolTable.find(function.getMangledName());
@@ -1132,7 +1141,23 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l
intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc);
loopNestingLevel = 0;
controlFlowNestingLevel = 0;
- postMainReturn = false;
+ postEntryPointReturn = false;
+
+ // Handle function attributes
+ if (inEntryPoint) {
+ const TIntermAggregate* numThreads = attributes[EatNumThreads];
+ if (numThreads != nullptr) {
+ const TIntermSequence& sequence = numThreads->getSequence();
+
+ for (int lid = 0; lid < int(sequence.size()); ++lid)
+ intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst());
+ }
+
+ const TIntermAggregate* maxVertexCount = attributes[EatMaxVertexCount];
+ if (maxVertexCount != nullptr) {
+ intermediate.setVertices(maxVertexCount->getSequence()[0]->getAsConstantUnion()->getConstArray()[0].getIConst());
+ }
+ }
return paramNodes;
}
@@ -1397,13 +1422,13 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op
TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage)
{
switch (op) {
- case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd;
- case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd;
+ case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd;
+ case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd;
case EOpInterlockedCompareExchange: return isImage ? EOpImageAtomicCompSwap : EOpAtomicCompSwap;
- case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax;
- case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin;
- case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr;
- case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor;
+ case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax;
+ case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin;
+ case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr;
+ case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor;
case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange;
case EOpInterlockedCompareStore: // TODO: ...
default:
@@ -1440,7 +1465,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
if (!node || !node->getAsOperator())
return;
- const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) {
+ const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) -> TIntermTyped* {
// Sampler return must always be a vec4, but we can construct a shorter vector
result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize()));
@@ -1496,6 +1521,10 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
constructCoord->getSequence().push_back(arg1);
constructCoord->setLoc(loc);
+ // The input vector should never be less than 2, since there's always a bias.
+ // The max is for safety, and should be a no-op.
+ constructCoord->setType(TType(arg1->getBasicType(), EvqTemporary, std::max(arg1->getVectorSize() - 1, 0)));
+
TIntermAggregate* tex = new TIntermAggregate(EOpTexture);
tex->getSequence().push_back(arg0); // sampler
tex->getSequence().push_back(constructCoord); // coordinate
@@ -1725,6 +1754,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
if (coordDimWithCmpVal != 5) // cube array shadow is special.
coordWithCmp->getSequence().push_back(argCmpVal);
coordWithCmp->setLoc(loc);
+ coordWithCmp->setType(TType(argCoord->getBasicType(), EvqTemporary, std::min(coordDimWithCmpVal, 4)));
TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture);
if (argOffset != nullptr)
@@ -2048,10 +2078,80 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType
}
//
+// Decompose geometry shader methods
+//
+void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments)
+{
+ if (!node || !node->getAsOperator())
+ return;
+
+ const TOperator op = node->getAsOperator()->getOp();
+ const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr;
+
+ switch (op) {
+ case EOpMethodAppend:
+ if (argAggregate) {
+ TIntermAggregate* sequence = nullptr;
+ TIntermAggregate* emit = new TIntermAggregate(EOpEmitVertex);
+
+ emit->setLoc(loc);
+ emit->setType(TType(EbtVoid));
+
+ sequence = intermediate.growAggregate(sequence,
+ intermediate.addAssign(EOpAssign,
+ argAggregate->getSequence()[0]->getAsTyped(),
+ argAggregate->getSequence()[1]->getAsTyped(), loc),
+ loc);
+
+ sequence = intermediate.growAggregate(sequence, emit);
+
+ sequence->setOperator(EOpSequence);
+ sequence->setLoc(loc);
+ sequence->setType(TType(EbtVoid));
+ node = sequence;
+ }
+ break;
+
+ case EOpMethodRestartStrip:
+ {
+ TIntermAggregate* cut = new TIntermAggregate(EOpEndPrimitive);
+ cut->setLoc(loc);
+ cut->setType(TType(EbtVoid));
+ node = cut;
+ }
+ break;
+
+ default:
+ break; // most pass through unchanged
+ }
+}
+
+//
// Optionally decompose intrinsics to AST opcodes.
//
void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments)
{
+ // Helper to find image data for image atomics:
+ // OpImageLoad(image[idx])
+ // We take the image load apart and add its params to the atomic op aggregate node
+ const auto imageAtomicParams = [this, &loc, &node](TIntermAggregate* atomic, TIntermTyped* load) {
+ TIntermAggregate* loadOp = load->getAsAggregate();
+ if (loadOp == nullptr) {
+ error(loc, "unknown image type in atomic operation", "", "");
+ node = nullptr;
+ return;
+ }
+
+ atomic->getSequence().push_back(loadOp->getSequence()[0]);
+ atomic->getSequence().push_back(loadOp->getSequence()[1]);
+ };
+
+ // Return true if this is an imageLoad, which we will change to an image atomic.
+ const auto isImageParam = [](TIntermTyped* image) -> bool {
+ TIntermAggregate* imageAggregate = image->getAsAggregate();
+ return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad;
+ };
+
// HLSL intrinsics can be pass through to native AST opcodes, or decomposed here to existing AST
// opcodes for compatibility with existing software stacks.
static const bool decomposeHlslIntrinsics = true;
@@ -2232,27 +2332,43 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*&
case EOpInterlockedXor: // ...
case EOpInterlockedExchange: // always has output arg
{
- TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped();
- TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped();
-
- const bool isImage = arg0->getType().isImage();
- const TOperator atomicOp = mapAtomicOp(loc, op, isImage);
+ TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest
+ TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // value
+ TIntermTyped* arg2 = nullptr;
- if (argAggregate->getSequence().size() > 2) {
- // optional output param is present. return value goes to arg2.
- TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped();
+ if (argAggregate->getSequence().size() > 2)
+ arg2 = argAggregate->getSequence()[2]->getAsTyped();
- TIntermAggregate* atomic = new TIntermAggregate(atomicOp);
- atomic->getSequence().push_back(arg0);
+ const bool isImage = isImageParam(arg0);
+ const TOperator atomicOp = mapAtomicOp(loc, op, isImage);
+ TIntermAggregate* atomic = new TIntermAggregate(atomicOp);
+ atomic->setType(arg0->getType());
+ atomic->getWritableType().getQualifier().makeTemporary();
+ atomic->setLoc(loc);
+
+ if (isImage) {
+ // orig_value = imageAtomicOp(image, loc, data)
+ imageAtomicParams(atomic, arg0);
atomic->getSequence().push_back(arg1);
- atomic->setLoc(loc);
- atomic->setType(arg0->getType());
- atomic->getWritableType().getQualifier().makeTemporary();
- node = intermediate.addAssign(EOpAssign, arg2, atomic, loc);
+ if (argAggregate->getSequence().size() > 2) {
+ node = intermediate.addAssign(EOpAssign, arg2, atomic, loc);
+ } else {
+ node = atomic; // no assignment needed, as there was no out var.
+ }
} else {
- // Set the matching operator. Since output is absent, this is all we need to do.
- node->getAsAggregate()->setOperator(atomicOp);
+ // Normal memory variable:
+ // arg0 = mem, arg1 = data, arg2(optional,out) = orig_value
+ if (argAggregate->getSequence().size() > 2) {
+ // optional output param is present. return value goes to arg2.
+ atomic->getSequence().push_back(arg0);
+ atomic->getSequence().push_back(arg1);
+
+ node = intermediate.addAssign(EOpAssign, arg2, atomic, loc);
+ } else {
+ // Set the matching operator. Since output is absent, this is all we need to do.
+ node->getAsAggregate()->setOperator(atomicOp);
+ }
}
break;
@@ -2265,15 +2381,20 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*&
TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); // value
TIntermTyped* arg3 = argAggregate->getSequence()[3]->getAsTyped(); // orig
- const bool isImage = arg0->getType().isImage();
+ const bool isImage = isImageParam(arg0);
TIntermAggregate* atomic = new TIntermAggregate(mapAtomicOp(loc, op, isImage));
- atomic->getSequence().push_back(arg0);
- atomic->getSequence().push_back(arg1);
- atomic->getSequence().push_back(arg2);
atomic->setLoc(loc);
atomic->setType(arg2->getType());
atomic->getWritableType().getQualifier().makeTemporary();
+ if (isImage) {
+ imageAtomicParams(atomic, arg0);
+ } else {
+ atomic->getSequence().push_back(arg0);
+ }
+
+ atomic->getSequence().push_back(arg1);
+ atomic->getSequence().push_back(arg2);
node = intermediate.addAssign(EOpAssign, arg3, atomic, loc);
break;
@@ -2488,8 +2609,9 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct
result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate());
}
- decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions
- decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions
+ decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions
+ decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions
+ decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions
}
}
@@ -3027,11 +3149,12 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi
}
// TODO: learn what all these really mean and how they interact with regNumber and subComponent
- switch (desc[0]) {
+ switch (std::tolower(desc[0])) {
case 'b':
case 't':
case 'c':
case 's':
+ case 'u':
qualifier.layoutBinding = regNumber + subComponent;
break;
default:
@@ -3162,7 +3285,7 @@ bool HlslParseContext::builtInName(const TString& /*identifier*/)
//
// Returns true if there was an error in construction.
//
-bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*node*/, TFunction& function,
+bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, TFunction& function,
TOperator op, TType& type)
{
type.shallowCopy(function.getType());
@@ -3258,7 +3381,7 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no
// At least the dimensionalities have to match.
if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) {
- error(loc, "array constructor argument not correct type to construct array element", "constructior", "");
+ error(loc, "array constructor argument not correct type to construct array element", "constructor", "");
return true;
}
@@ -3288,6 +3411,9 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no
return true;
}
+ if (op == EOpConstructStruct && ! type.isArray() && isZeroConstructor(node))
+ return false;
+
if (op == EOpConstructStruct && ! type.isArray() && (int)type.getStruct()->size() != function.getParamCount()) {
error(loc, "Number of constructor parameters does not match the number of structure fields", "constructor", "");
return true;
@@ -3299,11 +3425,15 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no
return true;
}
- // TIntermTyped* typed = node->getAsTyped();
-
return false;
}
+bool HlslParseContext::isZeroConstructor(const TIntermNode* node)
+{
+ return node->getAsTyped()->isScalar() && node->getAsConstantUnion() &&
+ node->getAsConstantUnion()->getConstArray()[0].getIConst() == 0;
+}
+
// Verify all the correct semantics for constructing a combined texture/sampler.
// Return true if the semantics are incorrect.
bool HlslParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const TFunction& function)
@@ -3530,7 +3660,7 @@ void HlslParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes)
// Do all the semantic checking for declaring or redeclaring an array, with and
// without a size, and make the right changes to the symbol table.
//
-void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration)
+void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool track)
{
if (! symbol) {
bool currentScope;
@@ -3547,7 +3677,8 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier,
//
symbol = new TVariable(&identifier, type);
symbolTable.insert(*symbol);
- newDeclaration = true;
+ if (track && symbolTable.atGlobalLevel())
+ trackLinkageDeferred(*symbol);
return;
}
@@ -3570,7 +3701,6 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier,
// redeclareBuiltinVariable() should have already done the copyUp()
TType& existingType = symbol->getWritableType();
-
if (existingType.isExplicitlySizedArray()) {
// be more lenient for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size
return;
@@ -3637,7 +3767,7 @@ void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNod
//
TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& /*loc*/, const TString& identifier,
const TQualifier& /*qualifier*/,
- const TShaderQualifiers& /*publicType*/, bool& /*newDeclaration*/)
+ const TShaderQualifiers& /*publicType*/)
{
if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel())
return nullptr;
@@ -3762,7 +3892,7 @@ void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& n
symbolTable.insert(*block);
// Save it in the AST for linker use.
- intermediate.addSymbolLinkageNode(linkage, *block);
+ trackLinkageDeferred(*block);
}
void HlslParseContext::paramFix(TType& type)
@@ -4236,6 +4366,14 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu
TVector<const TFunction*> candidateList;
symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn);
+ // These builtin ops can accept any type, so we bypass the argument selection
+ if (candidateList.size() == 1 && builtIn &&
+ (candidateList[0]->getBuiltInOp() == EOpMethodAppend ||
+ candidateList[0]->getBuiltInOp() == EOpMethodRestartStrip)) {
+
+ return candidateList[0];
+ }
+
// can 'from' convert to 'to'?
const auto convertible = [this](const TType& from, const TType& to) -> bool {
if (from == to)
@@ -4251,8 +4389,8 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu
return false;
// shapes have to be convertible
- if ((from.isScalar() && to.isScalar()) ||
- (from.isScalar() && to.isVector()) ||
+ if ((from.isScalarOrVec1() && to.isScalarOrVec1()) ||
+ (from.isScalarOrVec1() && to.isVector()) ||
(from.isVector() && to.isVector() && from.getVectorSize() >= to.getVectorSize()))
return true;
@@ -4355,8 +4493,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i
return nullptr;
// Check for redeclaration of built-ins and/or attempting to declare a reserved name
- bool newDeclaration = false; // true if a new entry gets added to the symbol table
- TSymbol* symbol = nullptr; // = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), parseType.shaderQualifiers, newDeclaration);
+ TSymbol* symbol = nullptr;
inheritGlobalDefaults(type.getQualifier());
@@ -4365,14 +4502,14 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i
// Declare the variable
if (type.isArray()) {
// array case
- declareArray(loc, identifier, type, symbol, newDeclaration);
flattenVar = shouldFlatten(type);
+ declareArray(loc, identifier, type, symbol, !flattenVar);
if (flattenVar)
flatten(loc, *symbol->getAsVariable());
} else {
// non-array case
if (! symbol)
- symbol = declareNonArray(loc, identifier, type, newDeclaration);
+ symbol = declareNonArray(loc, identifier, type);
else if (type != symbol->getType())
error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str());
}
@@ -4394,13 +4531,6 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i
initNode = executeInitializer(loc, initializer, variable);
}
- // see if it's a linker-level object to track. if it's flattened above,
- // that process added linkage objects for the flattened symbols, we don't
- // add the aggregate here.
- if (!flattenVar)
- if (newDeclaration && symbolTable.atGlobalLevel())
- intermediate.addSymbolLinkageNode(linkage, *symbol);
-
return initNode;
}
@@ -4436,19 +4566,20 @@ TVariable* HlslParseContext::makeInternalVariable(const char* name, const TType&
//
// Return the successfully declared variable.
//
-TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool& newDeclaration)
+TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type)
{
// make a new variable
TVariable* variable = new TVariable(&identifier, type);
// add variable to symbol table
- if (! symbolTable.insert(*variable)) {
- error(loc, "redefinition", variable->getName().c_str(), "");
- return nullptr;
- } else {
- newDeclaration = true;
+ if (symbolTable.insert(*variable)) {
+ if (symbolTable.atGlobalLevel())
+ trackLinkageDeferred(*variable);
return variable;
}
+
+ error(loc, "redefinition", variable->getName().c_str(), "");
+ return nullptr;
}
//
@@ -4470,7 +4601,8 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm
// constructor-style subtree, allowing the rest of the code to operate
// identically for both kinds of initializers.
//
- initializer = convertInitializerList(loc, variable->getType(), initializer);
+ if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull)
+ initializer = convertInitializerList(loc, variable->getType(), initializer);
if (! initializer) {
// error recovery; don't leave const without constant values
if (qualifier == EvqConst)
@@ -4547,6 +4679,11 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm
// creating a constructor-style initializer, ensuring we get the
// same form.
//
+// Returns a node representing an expression for the initializer list expressed
+// as the correct type.
+//
+// Returns nullptr if there is an error.
+//
TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, const TType& type, TIntermTyped* initializer)
{
// Will operate recursively. Once a subtree is found that is constructor style,
@@ -4555,8 +4692,15 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
// see if we have bottomed out in the tree within the initializer-list part
TIntermAggregate* initList = initializer->getAsAggregate();
- if (! initList || initList->getOp() != EOpNull)
- return initializer;
+ if (! initList || initList->getOp() != EOpNull) {
+ // We don't have a list, but if it's a scalar and the 'type' is a
+ // composite, we need to lengthen below to make it useful.
+ // Otherwise, this is an already formed object to initialize with.
+ if (type.isScalar() || !initializer->getType().isScalar())
+ return initializer;
+ else
+ initList = intermediate.makeAggregate(initializer);
+ }
// Of the initializer-list set of nodes, need to process bottom up,
// so recurse deep, then process on the way up.
@@ -4570,7 +4714,8 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below
// edit array sizes to fill in unsized dimensions
- arrayType.changeOuterArraySize((int)initList->getSequence().size());
+ if (type.isImplicitlySizedArray())
+ arrayType.changeOuterArraySize((int)initList->getSequence().size());
TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped();
if (arrayType.isArrayOfArrays() && firstInit->getType().isArray() &&
arrayType.getArraySizes().getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) {
@@ -4580,8 +4725,12 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
}
}
+ // lengthen list to be long enough
+ lengthenList(loc, initList->getSequence(), arrayType.getOuterArraySize());
+
+ // recursively process each element
TType elementType(arrayType, 0); // dereferenced type
- for (size_t i = 0; i < initList->getSequence().size(); ++i) {
+ for (int i = 0; i < arrayType.getOuterArraySize(); ++i) {
initList->getSequence()[i] = convertInitializerList(loc, elementType, initList->getSequence()[i]->getAsTyped());
if (initList->getSequence()[i] == nullptr)
return nullptr;
@@ -4589,6 +4738,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
return addConstructor(loc, initList, arrayType);
} else if (type.isStruct()) {
+ // lengthen list to be long enough
+ lengthenList(loc, initList->getSequence(), type.getStruct()->size());
+
if (type.getStruct()->size() != initList->getSequence().size()) {
error(loc, "wrong number of structure members", "initializer list", "");
return nullptr;
@@ -4604,6 +4756,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
// a series of rows and columns. We can just use the list directly as
// a constructor; no further processing needed.
} else {
+ // lengthen list to be long enough
+ lengthenList(loc, initList->getSequence(), type.getMatrixCols());
+
if (type.getMatrixCols() != (int)initList->getSequence().size()) {
error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString().c_str());
return nullptr;
@@ -4616,6 +4771,10 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
}
}
} else if (type.isVector()) {
+ // lengthen list to be long enough
+ lengthenList(loc, initList->getSequence(), type.getVectorSize());
+
+ // error check; we're at bottom, so work is finished below
if (type.getVectorSize() != (int)initList->getSequence().size()) {
error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString().c_str());
return nullptr;
@@ -4625,7 +4784,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
error(loc, "scalar expected one element:", "initializer list", type.getCompleteString().c_str());
return nullptr;
}
- } else {
+ } else {
error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str());
return nullptr;
}
@@ -4637,9 +4796,19 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co
emulatedConstructorArguments = initList->getSequence()[0];
else
emulatedConstructorArguments = initList;
+
return addConstructor(loc, emulatedConstructorArguments, type);
}
+// Lengthen list to be long enough to cover any gap from the current list size
+// to 'size'. If the list is longer, do nothing.
+// The value to lengthen with is the default for short lists.
+void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list, int size)
+{
+ for (int c = (int)list.size(); c < size; ++c)
+ list.push_back(intermediate.addConstantUnion(0, loc));
+}
+
//
// Test for the correctness of the parameters passed to various constructor functions
// and also convert them to the right data type, if allowed and required.
@@ -4651,6 +4820,10 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod
if (node == nullptr || node->getAsTyped() == nullptr)
return nullptr;
+ // Handle the idiom "(struct type)0"
+ if (type.isStruct() && isZeroConstructor(node))
+ return convertInitializerList(loc, type, intermediate.makeAggregate(loc));
+
TIntermAggregate* aggrNode = node->getAsAggregate();
TOperator op = intermediate.mapTypeToConstructorOp(type);
@@ -4961,7 +5134,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS
}
// Save it in the AST for linker use.
- intermediate.addSymbolLinkageNode(linkage, variable);
+ trackLinkageDeferred(variable);
}
void HlslParseContext::finalizeGlobalUniformBlockLayout(TVariable& block)
@@ -5151,6 +5324,53 @@ void HlslParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier
}
//
+// Update the intermediate for the given input geometry
+//
+bool HlslParseContext::handleInputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry)
+{
+ switch (geometry) {
+ case ElgPoints: // fall through
+ case ElgLines: // ...
+ case ElgTriangles: // ...
+ case ElgLinesAdjacency: // ...
+ case ElgTrianglesAdjacency: // ...
+ if (! intermediate.setInputPrimitive(geometry)) {
+ error(loc, "input primitive geometry redefinition", TQualifier::getGeometryString(geometry), "");
+ return false;
+ }
+ break;
+
+ default:
+ error(loc, "cannot apply to 'in'", TQualifier::getGeometryString(geometry), "");
+ return false;
+ }
+
+ return true;
+}
+
+//
+// Update the intermediate for the given output geometry
+//
+bool HlslParseContext::handleOutputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry)
+{
+ switch (geometry) {
+ case ElgPoints:
+ case ElgLineStrip:
+ case ElgTriangleStrip:
+ if (! intermediate.setOutputPrimitive(geometry)) {
+ error(loc, "output primitive geometry redefinition", TQualifier::getGeometryString(geometry), "");
+ return false;
+ }
+ break;
+ default:
+ error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(geometry), "");
+ return false;
+ }
+
+ return true;
+}
+
+//
// Updating default qualifier for the case of a declaration with just a qualifier,
// no type, block, or identifier.
//
@@ -5179,16 +5399,7 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc,
error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), "");
}
} else if (publicType.qualifier.storage == EvqVaryingOut) {
- switch (publicType.shaderQualifiers.geometry) {
- case ElgPoints:
- case ElgLineStrip:
- case ElgTriangleStrip:
- if (! intermediate.setOutputPrimitive(publicType.shaderQualifiers.geometry))
- error(loc, "cannot change previously set output primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), "");
- break;
- default:
- error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), "");
- }
+ handleOutputGeometry(loc, publicType.shaderQualifiers.geometry);
} else
error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), GetStorageQualifierString(publicType.qualifier.storage));
}
diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h
index 2eeba5ac..246c7c49 100755
--- a/hlsl/hlslParseHelper.h
+++ b/hlsl/hlslParseHelper.h
@@ -41,6 +41,8 @@
namespace glslang {
+class TAttributeMap; // forward declare
+
class HlslParseContext : public TParseContextBase {
public:
HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins,
@@ -69,7 +71,7 @@ public:
TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field);
void assignLocations(TVariable& variable);
TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype);
- TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&);
+ TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributeMap&);
void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node);
void remapEntryPointIO(TFunction& function);
void remapNonEntryPointIO(TFunction& function);
@@ -79,6 +81,7 @@ public:
TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*);
void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
+ void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*);
void addInputArgumentConversions(const TFunction&, TIntermNode*&) const;
TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&);
@@ -112,7 +115,7 @@ public:
bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType);
void mergeQualifiers(TQualifier& dst, const TQualifier& src);
int computeSamplerTypeIndex(TSampler&);
- TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration);
+ TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&);
void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes);
void paramFix(TType& type);
void specializationCheck(const TSourceLoc&, const TType&, const char* op);
@@ -125,6 +128,7 @@ public:
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, TType&, TIntermTyped* initializer = 0);
+ void lengthenList(const TSourceLoc&, TIntermSequence& list, int size);
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);
@@ -158,13 +162,17 @@ public:
TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&);
+ bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry);
+ bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry);
+
protected:
void inheritGlobalDefaults(TQualifier& dst) const;
TVariable* makeInternalVariable(const char* name, const TType&) const;
- TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool& newDeclaration);
- void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration);
+ TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&);
+ void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track);
TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
+ bool isZeroConstructor(const TIntermNode*);
TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage);
// Return true if this node requires L-value conversion (e.g, to an imageStore).
@@ -187,7 +195,7 @@ protected:
int controlFlowNestingLevel; // 0 if outside all flow control
TList<TIntermSequence*> switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting
bool inEntryPoint; // if inside a function, true if the function is the entry point
- bool postMainReturn; // if inside a function, true if the function is the entry point and this is after a return statement
+ bool postEntryPointReturn; // 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
TBuiltInResource resources;
diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp
index d33cfb89..05dc7cfb 100755
--- a/hlsl/hlslParseables.cpp
+++ b/hlsl/hlslParseables.cpp
@@ -55,7 +55,7 @@
namespace { // anonymous namespace functions
-const bool UseHlslTypes = false;
+const bool UseHlslTypes = true;
const char* BaseTypeName(const char argOrder, const char* scalarName, const char* vecName, const char* matName)
{
@@ -245,26 +245,25 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
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 's': s += "SamplerComparisonState"; 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 && isImage) ? "RWBuffer" :
isBuffer ? "Buffer" :
- isImage ? "RWTexture" : "Texture"); break;
- case 'i': s += ((isBuffer && isImage) ? "RWBuffer <int4>" :
- isBuffer ? "Buffer <int4>" :
- isImage ? "RWTexture <int4>" : "Texture <int4>"); break;
- case 'u': s += ((isBuffer && isImage) ? "RWBuffer <uint4>" :
- isBuffer ? "Buffer <uint4>" :
- isImage ? "RWTexture <uint4>" : "Texture <uint4>");break;
- default: s += "UNKNOWN_TYPE"; break;
+ isImage ? "RWTexture" : "Texture"); break;
+ case 'i': s += ((isBuffer && isImage) ? "RWBuffer" :
+ isBuffer ? "Buffer" :
+ isImage ? "RWTexture" : "Texture"); break;
+ case 'u': s += ((isBuffer && isImage) ? "RWBuffer" :
+ isBuffer ? "Buffer" :
+ isImage ? "RWTexture" : "Texture"); break;
+ default: s += "UNKNOWN_TYPE"; break;
}
} else {
switch (type) {
@@ -337,36 +336,55 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons
if (isArrayed)
s += "Array";
+ // For HLSL, append return type for texture types
+ if (UseHlslTypes) {
+ switch (type) {
+ case 'i': s += "<int4>"; break;
+ case 'u': s += "<uint4>"; break;
+ case 'T': s += "<float4>"; break;
+ default: break;
+ }
+ }
+
return s;
}
-// TODO: the GLSL parser is currently used to parse HLSL prototypes. However, many valid HLSL prototypes
+// The GLSL parser can be used to parse a subset of HLSL prototypes. However, many valid HLSL prototypes
// are not valid GLSL prototypes. This rejects the invalid ones. Thus, there is a single switch below
// to enable creation of the entire HLSL space.
-inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char argOrder, char argType,
- int dim0, int dim1, int dim0Max, int dim1Max)
+inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1)
{
- const bool isVec = dim0Max > 1 || argType == 'V';
- const bool isMat = dim1Max > 1 || argType == 'M';
-
- if (!IsTextureType(argOrder) &&
- ((isVec && dim0 == 1) || // avoid vec1
- (isMat && dim0 == 1 && dim1 == 1))) // avoid mat1x1
- return false;
+ const bool isVec = (argOrder == 'V');
+ const bool isMat = (argOrder == 'M');
- const std::string name(cname); // for ease of comparison. slow, but temporary, until HLSL parser is online.
+ const std::string name(cname);
- if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile
+ // these do not have vec1 versions
+ if (dim0 == 1 && (name == "length" || name == "normalize" || name == "reflect" || name == "refract"))
return false;
- if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) ||
- (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B')))
+ if (!IsTextureType(argOrder) && (isVec && dim0 == 1)) // avoid vec1
return false;
- if (name == "GetRenderTargetSamplePosition" ||
- name == "tex1D" ||
- name == "tex1Dgrad")
- return false;
+ if (UseHlslTypes) {
+ // NO further restrictions for HLSL
+ } else {
+ // GLSL parser restrictions
+ if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) ||
+ (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B')))
+ return false;
+
+ if (isMat && dim0 == 1 && dim1 == 1) // avoid mat1x1
+ return false;
+
+ if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile
+ return false;
+
+ if (name == "GetRenderTargetSamplePosition" ||
+ name == "tex1D" ||
+ name == "tex1Dgrad")
+ return false;
+ }
return true;
}
@@ -503,6 +521,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
static const EShLanguageMask EShLangCS = EShLangAll;
static const EShLanguageMask EShLangPS = EShLangAll;
static const EShLanguageMask EShLangHS = EShLangAll;
+ static const EShLanguageMask EShLangGS = EShLangAll;
// This structure encodes the prototype information for each HLSL intrinsic.
// Because explicit enumeration would be cumbersome, it's procedurally generated.
@@ -535,10 +554,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
{ "abort", nullptr, nullptr, "-", "-", EShLangAll },
{ "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll },
{ "acos", nullptr, nullptr, "SVM", "F", EShLangAll },
- { "all", "S", "B", "SVM", "BFI", EShLangAll },
+ { "all", "S", "B", "SVM", "BFIU", EShLangAll },
{ "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS },
{ "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS },
- { "any", "S", "B", "SVM", "BFI", EShLangAll },
+ { "any", "S", "B", "SVM", "BFIU", EShLangAll },
{ "asdouble", "S", "D", "S,", "U,", EShLangAll },
{ "asdouble", "V2", "D", "V2,", "U,", EShLangAll },
{ "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll },
@@ -683,7 +702,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
{ "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS },
{ "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS },
{ "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS },
- { "transpose", "^M", nullptr, "M", "F", EShLangAll },
+ { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll },
{ "trunc", nullptr, nullptr, "SVM", "F", EShLangAll },
// Texture object methods. Return type can be overridden by shader declaration.
@@ -832,16 +851,14 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
{ "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
+ // geometry methods
+ { "Append", "-", "-", "-", "-", EShLangGS },
+ { "RestartStrip", "-", "-", "-", "-", EShLangGS },
// 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 },
};
- // Set this to true to avoid generating prototypes that will be invalid for the GLSL parser.
- // TODO: turn it off (and remove the code) when the HLSL parser can be used to parse builtins.
- static const bool skipInvalidGlsl = true;
-
// Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it.
for (int icount = 0; hlslIntrinsics[icount].name; ++icount) {
const auto& intrinsic = hlslIntrinsics[icount];
@@ -877,8 +894,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c
const char* retOrder = intrinsic.retOrder ? intrinsic.retOrder : argOrder;
const char* retType = intrinsic.retType ? intrinsic.retType : argType;
- if (skipInvalidGlsl && !IsValidGlsl(intrinsic.name, *retOrder, *retType, *argOrder, *argType,
- dim0, dim1, dim0Max, dim1Max))
+ if (!IsValid(intrinsic.name, *retOrder, *retType, *argOrder, *argType, dim0, dim1))
continue;
// Reject some forms of sample methods that don't exist.
@@ -1143,6 +1159,10 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil
symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen);
symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue);
symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha);
+
+ // GS methods
+ symbolTable.relateToOperator("Append", EOpMethodAppend);
+ symbolTable.relateToOperator("RestartStrip", EOpMethodRestartStrip);
}
//
diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp
index f25bdd8c..4e355ba7 100755
--- a/hlsl/hlslScanContext.cpp
+++ b/hlsl/hlslScanContext.cpp
@@ -119,6 +119,16 @@ void HlslScanContext::fillInKeywordMap()
(*KeywordMap)["inout"] = EHTokInOut;
(*KeywordMap)["layout"] = EHTokLayout;
+ (*KeywordMap)["point"] = EHTokPoint;
+ (*KeywordMap)["line"] = EHTokLine;
+ (*KeywordMap)["triangle"] = EHTokTriangle;
+ (*KeywordMap)["lineadj"] = EHTokLineAdj;
+ (*KeywordMap)["triangleadj"] = EHTokTriangleAdj;
+
+ (*KeywordMap)["PointStream"] = EHTokPointStream;
+ (*KeywordMap)["LineStream"] = EHTokLineStream;
+ (*KeywordMap)["TriangleStream"] = EHTokTriangleStream;
+
(*KeywordMap)["Buffer"] = EHTokBuffer;
(*KeywordMap)["vector"] = EHTokVector;
(*KeywordMap)["matrix"] = EHTokMatrix;
@@ -136,7 +146,7 @@ void HlslScanContext::fillInKeywordMap()
(*KeywordMap)["min10float"] = EHTokMin10float;
(*KeywordMap)["min16int"] = EHTokMin16int;
(*KeywordMap)["min12int"] = EHTokMin12int;
- (*KeywordMap)["min16uint"] = EHTokMin16int;
+ (*KeywordMap)["min16uint"] = EHTokMin16uint;
(*KeywordMap)["bool1"] = EHTokBool1;
(*KeywordMap)["bool2"] = EHTokBool2;
@@ -159,6 +169,43 @@ void HlslScanContext::fillInKeywordMap()
(*KeywordMap)["uint3"] = EHTokUint3;
(*KeywordMap)["uint4"] = EHTokUint4;
+ (*KeywordMap)["min16float1"] = EHTokMin16float1;
+ (*KeywordMap)["min16float2"] = EHTokMin16float2;
+ (*KeywordMap)["min16float3"] = EHTokMin16float3;
+ (*KeywordMap)["min16float4"] = EHTokMin16float4;
+ (*KeywordMap)["min10float1"] = EHTokMin10float1;
+ (*KeywordMap)["min10float2"] = EHTokMin10float2;
+ (*KeywordMap)["min10float3"] = EHTokMin10float3;
+ (*KeywordMap)["min10float4"] = EHTokMin10float4;
+ (*KeywordMap)["min16int1"] = EHTokMin16int1;
+ (*KeywordMap)["min16int2"] = EHTokMin16int2;
+ (*KeywordMap)["min16int3"] = EHTokMin16int3;
+ (*KeywordMap)["min16int4"] = EHTokMin16int4;
+ (*KeywordMap)["min12int1"] = EHTokMin12int1;
+ (*KeywordMap)["min12int2"] = EHTokMin12int2;
+ (*KeywordMap)["min12int3"] = EHTokMin12int3;
+ (*KeywordMap)["min12int4"] = EHTokMin12int4;
+ (*KeywordMap)["min16uint1"] = EHTokMin16uint1;
+ (*KeywordMap)["min16uint2"] = EHTokMin16uint2;
+ (*KeywordMap)["min16uint3"] = EHTokMin16uint3;
+ (*KeywordMap)["min16uint4"] = EHTokMin16uint4;
+
+ (*KeywordMap)["bool1x1"] = EHTokBool1x1;
+ (*KeywordMap)["bool1x2"] = EHTokBool1x2;
+ (*KeywordMap)["bool1x3"] = EHTokBool1x3;
+ (*KeywordMap)["bool1x4"] = EHTokBool1x4;
+ (*KeywordMap)["bool2x1"] = EHTokBool2x1;
+ (*KeywordMap)["bool2x2"] = EHTokBool2x2;
+ (*KeywordMap)["bool2x3"] = EHTokBool2x3;
+ (*KeywordMap)["bool2x4"] = EHTokBool2x4;
+ (*KeywordMap)["bool3x1"] = EHTokBool3x1;
+ (*KeywordMap)["bool3x2"] = EHTokBool3x2;
+ (*KeywordMap)["bool3x3"] = EHTokBool3x3;
+ (*KeywordMap)["bool3x4"] = EHTokBool3x4;
+ (*KeywordMap)["bool4x1"] = EHTokBool4x1;
+ (*KeywordMap)["bool4x2"] = EHTokBool4x2;
+ (*KeywordMap)["bool4x3"] = EHTokBool4x3;
+ (*KeywordMap)["bool4x4"] = EHTokBool4x4;
(*KeywordMap)["int1x1"] = EHTokInt1x1;
(*KeywordMap)["int1x2"] = EHTokInt1x2;
(*KeywordMap)["int1x3"] = EHTokInt1x3;
@@ -475,7 +522,20 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier()
case EHTokLayout:
return keyword;
- // template types
+ // primitive types
+ case EHTokPoint:
+ case EHTokLine:
+ case EHTokTriangle:
+ case EHTokLineAdj:
+ case EHTokTriangleAdj:
+ return keyword;
+
+ // stream out types
+ case EHTokPointStream:
+ case EHTokLineStream:
+ case EHTokTriangleStream:
+ return keyword;
+
case EHTokBuffer:
case EHTokVector:
case EHTokMatrix:
@@ -518,8 +578,44 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier()
case EHTokUint2:
case EHTokUint3:
case EHTokUint4:
+ case EHTokMin16float1:
+ case EHTokMin16float2:
+ case EHTokMin16float3:
+ case EHTokMin16float4:
+ case EHTokMin10float1:
+ case EHTokMin10float2:
+ case EHTokMin10float3:
+ case EHTokMin10float4:
+ case EHTokMin16int1:
+ case EHTokMin16int2:
+ case EHTokMin16int3:
+ case EHTokMin16int4:
+ case EHTokMin12int1:
+ case EHTokMin12int2:
+ case EHTokMin12int3:
+ case EHTokMin12int4:
+ case EHTokMin16uint1:
+ case EHTokMin16uint2:
+ case EHTokMin16uint3:
+ case EHTokMin16uint4:
// matrix types
+ case EHTokBool1x1:
+ case EHTokBool1x2:
+ case EHTokBool1x3:
+ case EHTokBool1x4:
+ case EHTokBool2x1:
+ case EHTokBool2x2:
+ case EHTokBool2x3:
+ case EHTokBool2x4:
+ case EHTokBool3x1:
+ case EHTokBool3x2:
+ case EHTokBool3x3:
+ case EHTokBool3x4:
+ case EHTokBool4x1:
+ case EHTokBool4x2:
+ case EHTokBool4x3:
+ case EHTokBool4x4:
case EHTokInt1x1:
case EHTokInt1x2:
case EHTokInt1x3:
@@ -536,6 +632,22 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier()
case EHTokInt4x2:
case EHTokInt4x3:
case EHTokInt4x4:
+ case EHTokUint1x1:
+ case EHTokUint1x2:
+ case EHTokUint1x3:
+ case EHTokUint1x4:
+ case EHTokUint2x1:
+ case EHTokUint2x2:
+ case EHTokUint2x3:
+ case EHTokUint2x4:
+ case EHTokUint3x1:
+ case EHTokUint3x2:
+ case EHTokUint3x3:
+ case EHTokUint3x4:
+ case EHTokUint4x1:
+ case EHTokUint4x2:
+ case EHTokUint4x3:
+ case EHTokUint4x4:
case EHTokFloat1x1:
case EHTokFloat1x2:
case EHTokFloat1x3:
diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h
index 2994001d..6902070c 100755
--- a/hlsl/hlslTokens.h
+++ b/hlsl/hlslTokens.h
@@ -66,6 +66,18 @@ enum EHlslTokenClass {
EHTokInOut,
EHTokLayout,
+ // primitive types
+ EHTokPoint,
+ EHTokLine,
+ EHTokTriangle,
+ EHTokLineAdj,
+ EHTokTriangleAdj,
+
+ // stream out types
+ EHTokPointStream,
+ EHTokLineStream,
+ EHTokTriangleStream,
+
// template types
EHTokBuffer,
EHTokVector,
@@ -108,6 +120,26 @@ enum EHlslTokenClass {
EHTokUint2,
EHTokUint3,
EHTokUint4,
+ EHTokMin16float1,
+ EHTokMin16float2,
+ EHTokMin16float3,
+ EHTokMin16float4,
+ EHTokMin10float1,
+ EHTokMin10float2,
+ EHTokMin10float3,
+ EHTokMin10float4,
+ EHTokMin16int1,
+ EHTokMin16int2,
+ EHTokMin16int3,
+ EHTokMin16int4,
+ EHTokMin12int1,
+ EHTokMin12int2,
+ EHTokMin12int3,
+ EHTokMin12int4,
+ EHTokMin16uint1,
+ EHTokMin16uint2,
+ EHTokMin16uint3,
+ EHTokMin16uint4,
// matrix types
EHTokInt1x1,