Merge branch 'master' of github.com:google/glslang into loopgen
Change-Id: Ie8236430bb9e30a9be2e0c1573c42183c2f4d0d4
This commit is contained in:
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -12,3 +12,6 @@
|
||||
*.c text eof=lf
|
||||
*.cpp text eof=lf
|
||||
*.y text eof=lf
|
||||
*.out text eof=lf
|
||||
*.conf text eof=lf
|
||||
*.err text eof=lf
|
||||
|
||||
@@ -5,7 +5,6 @@ set(CMAKE_INSTALL_PREFIX "install" CACHE STRING "prefix")
|
||||
project(glslang)
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_GENERATOR_TOOLSET "v110" CACHE STRING "Platform Toolset" FORCE)
|
||||
include(ChooseMSVCCRT.cmake)
|
||||
add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
|
||||
elseif(UNIX)
|
||||
|
||||
@@ -85,17 +85,17 @@ public:
|
||||
bool visitLoop(glslang::TVisit, glslang::TIntermLoop*);
|
||||
bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*);
|
||||
|
||||
void dumpSpv(std::vector<unsigned int>& out) { builder.dump(out); }
|
||||
void dumpSpv(std::vector<unsigned int>& out);
|
||||
|
||||
protected:
|
||||
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
||||
spv::Id getSampledType(const glslang::TSampler&);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type, bool explicitLayout);
|
||||
bool requiresExplicitLayout(const glslang::TType& type) const;
|
||||
int getArrayStride(const glslang::TType& arrayType);
|
||||
int getMatrixStride(const glslang::TType& matrixType);
|
||||
void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&);
|
||||
glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const;
|
||||
int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
|
||||
int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
|
||||
void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset, glslang::TLayoutPacking, glslang::TLayoutMatrix);
|
||||
|
||||
bool isShaderEntrypoint(const glslang::TIntermAggregate* node);
|
||||
void makeFunctions(const glslang::TIntermSequence&);
|
||||
@@ -108,6 +108,7 @@ protected:
|
||||
spv::Id handleUserFunctionCall(const glslang::TIntermAggregate*);
|
||||
|
||||
spv::Id createBinaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison = true);
|
||||
spv::Id createBinaryMatrixOperation(spv::Op, spv::Decoration precision, spv::Id typeId, spv::Id left, spv::Id right);
|
||||
spv::Id createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy);
|
||||
spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Id destTypeId, spv::Id operand);
|
||||
spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
|
||||
@@ -132,14 +133,15 @@ protected:
|
||||
spv::Builder builder;
|
||||
bool inMain;
|
||||
bool mainTerminated;
|
||||
bool linkageOnly;
|
||||
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;
|
||||
spv::Id stdBuiltins;
|
||||
|
||||
std::unordered_map<int, spv::Id> symbolValues;
|
||||
std::unordered_set<int> constReadOnlyParameters; // set of formal function parameters that have glslang qualifier constReadOnly, so we know they are not local function "const" that are write-once
|
||||
std::unordered_map<std::string, spv::Function*> functionMap;
|
||||
std::unordered_map<const glslang::TTypeList*, spv::Id> structMap;
|
||||
std::unordered_map<const glslang::TTypeList*, spv::Id> structMap[glslang::ElpCount][glslang::ElmCount];
|
||||
std::unordered_map<const glslang::TTypeList*, std::vector<int> > memberRemapper; // for mapping glslang block indices to spv indices (e.g., due to hidden members)
|
||||
std::stack<bool> breakForLoop; // false means break for switch
|
||||
};
|
||||
@@ -227,7 +229,7 @@ spv::Dim TranslateDimensionality(const glslang::TSampler& sampler)
|
||||
spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type)
|
||||
{
|
||||
switch (type.getQualifier().precision) {
|
||||
case glslang::EpqLow: return spv::DecorationRelaxedPrecision; // TODO: Map instead to 16-bit types?
|
||||
case glslang::EpqLow: return spv::DecorationRelaxedPrecision;
|
||||
case glslang::EpqMedium: return spv::DecorationRelaxedPrecision;
|
||||
case glslang::EpqHigh: return spv::NoPrecision;
|
||||
default:
|
||||
@@ -254,14 +256,17 @@ spv::Decoration TranslateBlockDecoration(const glslang::TType& type)
|
||||
}
|
||||
|
||||
// Translate glslang type to SPIR-V layout decorations.
|
||||
spv::Decoration TranslateLayoutDecoration(const glslang::TType& type)
|
||||
spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::TLayoutMatrix matrixLayout)
|
||||
{
|
||||
if (type.isMatrix()) {
|
||||
switch (type.getQualifier().layoutMatrix) {
|
||||
switch (matrixLayout) {
|
||||
case glslang::ElmRowMajor:
|
||||
return spv::DecorationRowMajor;
|
||||
default:
|
||||
case glslang::ElmColumnMajor:
|
||||
return spv::DecorationColMajor;
|
||||
default:
|
||||
// opaque layouts don't need a majorness
|
||||
return (spv::Decoration)spv::BadValue;
|
||||
}
|
||||
} else {
|
||||
switch (type.getBasicType()) {
|
||||
@@ -293,30 +298,30 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type)
|
||||
// Translate glslang type to SPIR-V interpolation decorations.
|
||||
// Returns spv::Decoration(spv::BadValue) when no decoration
|
||||
// should be applied.
|
||||
spv::Decoration TranslateInterpolationDecoration(const glslang::TType& type)
|
||||
spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier)
|
||||
{
|
||||
if (type.getQualifier().smooth) {
|
||||
if (qualifier.smooth) {
|
||||
// Smooth decoration doesn't exist in SPIR-V 1.0
|
||||
return (spv::Decoration)spv::BadValue;
|
||||
}
|
||||
if (type.getQualifier().nopersp)
|
||||
if (qualifier.nopersp)
|
||||
return spv::DecorationNoPerspective;
|
||||
else if (type.getQualifier().patch)
|
||||
else if (qualifier.patch)
|
||||
return spv::DecorationPatch;
|
||||
else if (type.getQualifier().flat)
|
||||
else if (qualifier.flat)
|
||||
return spv::DecorationFlat;
|
||||
else if (type.getQualifier().centroid)
|
||||
else if (qualifier.centroid)
|
||||
return spv::DecorationCentroid;
|
||||
else if (type.getQualifier().sample)
|
||||
else if (qualifier.sample)
|
||||
return spv::DecorationSample;
|
||||
else
|
||||
return (spv::Decoration)spv::BadValue;
|
||||
}
|
||||
|
||||
// If glslang type is invaraiant, return SPIR-V invariant decoration.
|
||||
spv::Decoration TranslateInvariantDecoration(const glslang::TType& type)
|
||||
spv::Decoration TranslateInvariantDecoration(const glslang::TQualifier& qualifier)
|
||||
{
|
||||
if (type.getQualifier().invariant)
|
||||
if (qualifier.invariant)
|
||||
return spv::DecorationInvariant;
|
||||
else
|
||||
return (spv::Decoration)spv::BadValue;
|
||||
@@ -414,6 +419,34 @@ spv::ImageFormat TranslateImageFormat(const glslang::TType& type)
|
||||
}
|
||||
}
|
||||
|
||||
void InheritQualifiers(glslang::TQualifier& child, const glslang::TQualifier& parent)
|
||||
{
|
||||
if (child.layoutMatrix == glslang::ElmNone)
|
||||
child.layoutMatrix = parent.layoutMatrix;
|
||||
|
||||
if (parent.invariant)
|
||||
child.invariant = true;
|
||||
if (parent.nopersp)
|
||||
child.nopersp = true;
|
||||
if (parent.flat)
|
||||
child.flat = true;
|
||||
if (parent.centroid)
|
||||
child.centroid = true;
|
||||
if (parent.patch)
|
||||
child.patch = true;
|
||||
if (parent.sample)
|
||||
child.sample = true;
|
||||
}
|
||||
|
||||
bool HasNonLayoutQualifiers(const glslang::TQualifier& qualifier)
|
||||
{
|
||||
// This should list qualifiers that simultaneous satisify:
|
||||
// - struct members can inherit from a struct declaration
|
||||
// - effect decorations on the struct members (note smooth does not, and expecting something like volatile to effect the whole object)
|
||||
// - are not part of the offset/st430/etc or row/column-major layout
|
||||
return qualifier.invariant || qualifier.nopersp || qualifier.flat || qualifier.centroid || qualifier.patch || qualifier.sample;
|
||||
}
|
||||
|
||||
//
|
||||
// Implement the TGlslangToSpvTraverser class.
|
||||
//
|
||||
@@ -550,6 +583,16 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
||||
|
||||
}
|
||||
|
||||
// Finish everything and dump
|
||||
void TGlslangToSpvTraverser::dumpSpv(std::vector<unsigned int>& out)
|
||||
{
|
||||
// finish off the entry-point SPV instruction by adding the Input/Output <id>
|
||||
for (auto it : iOSet)
|
||||
entryPoint->addIdOperand(it);
|
||||
|
||||
builder.dump(out);
|
||||
}
|
||||
|
||||
TGlslangToSpvTraverser::~TGlslangToSpvTraverser()
|
||||
{
|
||||
if (! mainTerminated) {
|
||||
@@ -580,6 +623,14 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
|
||||
// Formal function parameters were mapped during makeFunctions().
|
||||
spv::Id id = getSymbolId(symbol);
|
||||
|
||||
// Include all "static use" and "linkage only" interface variables on the OpEntryPoint instruction
|
||||
if (builder.isPointer(id)) {
|
||||
spv::StorageClass sc = builder.getStorageClass(id);
|
||||
if (sc == spv::StorageClassInput || sc == spv::StorageClassOutput)
|
||||
iOSet.insert(id);
|
||||
}
|
||||
|
||||
// Only process non-linkage-only nodes for generating actual static uses
|
||||
if (! linkageOnly) {
|
||||
// Prepare to generate code for the access
|
||||
|
||||
@@ -596,11 +647,6 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
|
||||
builder.setAccessChainRValue(id);
|
||||
else
|
||||
builder.setAccessChainLValue(id);
|
||||
} else {
|
||||
// finish off the entry-point SPV instruction by adding the Input/Output <id>
|
||||
spv::StorageClass sc = builder.getStorageClass(id);
|
||||
if (sc == spv::StorageClassInput || sc == spv::StorageClassOutput)
|
||||
entryPoint->addIdOperand(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -767,16 +813,14 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
|
||||
convertGlslangToSpvType(node->getType()), left, right,
|
||||
node->getLeft()->getType().getBasicType());
|
||||
|
||||
builder.clearAccessChain();
|
||||
if (! result) {
|
||||
spv::MissingFunctionality("unknown glslang binary operation");
|
||||
return true; // pick up a child as the place-holder result
|
||||
} else {
|
||||
builder.clearAccessChain();
|
||||
builder.setAccessChainRValue(result);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node)
|
||||
@@ -821,7 +865,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
|
||||
|
||||
if (node->getOp() == glslang::EOpAtomicCounterIncrement ||
|
||||
node->getOp() == glslang::EOpAtomicCounterDecrement ||
|
||||
node->getOp() == glslang::EOpAtomicCounter)
|
||||
node->getOp() == glslang::EOpAtomicCounter ||
|
||||
node->getOp() == glslang::EOpInterpolateAtCentroid)
|
||||
operand = builder.accessChainGetLValue(); // Special case l-value operands
|
||||
else
|
||||
operand = builder.accessChainLoad(convertGlslangToSpvType(node->getOperand()->getType()));
|
||||
@@ -888,10 +933,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
|
||||
|
||||
default:
|
||||
spv::MissingFunctionality("unknown glslang unary");
|
||||
break;
|
||||
return true; // pick up operand as placeholder result
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TIntermAggregate* node)
|
||||
@@ -1173,6 +1216,11 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
if (arg == 1)
|
||||
lvalue = true;
|
||||
break;
|
||||
case glslang::EOpInterpolateAtSample:
|
||||
case glslang::EOpInterpolateAtOffset:
|
||||
if (arg == 0)
|
||||
lvalue = true;
|
||||
break;
|
||||
case glslang::EOpAtomicAdd:
|
||||
case glslang::EOpAtomicMin:
|
||||
case glslang::EOpAtomicMax:
|
||||
@@ -1226,7 +1274,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
|
||||
if (! result) {
|
||||
spv::MissingFunctionality("unknown glslang aggregate");
|
||||
return true;
|
||||
return true; // pick up a child as a placeholder operand
|
||||
} else {
|
||||
builder.clearAccessChain();
|
||||
builder.setAccessChainRValue(result);
|
||||
@@ -1469,18 +1517,19 @@ spv::Id TGlslangToSpvTraverser::getSampledType(const glslang::TSampler& sampler)
|
||||
}
|
||||
}
|
||||
|
||||
// Convert from a glslang type to an SPV type, by calling into
|
||||
// recursive version of this function.
|
||||
// Convert from a glslang type to an SPV type, by calling into a
|
||||
// recursive version of this function. This establishes the inherited
|
||||
// layout state rooted from the top-level type.
|
||||
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type)
|
||||
{
|
||||
return convertGlslangToSpvType(type, requiresExplicitLayout(type));
|
||||
return convertGlslangToSpvType(type, getExplicitLayout(type), type.getQualifier());
|
||||
}
|
||||
|
||||
// Do full recursive conversion of an arbitrary glslang type to a SPIR-V Id.
|
||||
// explicitLayout can be kept the same throughout the heirarchical recursive walk.
|
||||
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, bool explicitLayout)
|
||||
spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking explicitLayout, const glslang::TQualifier& qualifier)
|
||||
{
|
||||
spv::Id spvType = 0;
|
||||
spv::Id spvType = spv::NoResult;
|
||||
|
||||
switch (type.getBasicType()) {
|
||||
case glslang::EbtVoid:
|
||||
@@ -1523,8 +1572,12 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
// If we've seen this struct type, return it
|
||||
const glslang::TTypeList* glslangStruct = type.getStruct();
|
||||
std::vector<spv::Id> structFields;
|
||||
spvType = structMap[glslangStruct];
|
||||
if (spvType)
|
||||
|
||||
// Try to share structs for different layouts, but not yet for other
|
||||
// kinds of qualification (primarily not yet including interpolant qualification).
|
||||
if (! HasNonLayoutQualifiers(qualifier))
|
||||
spvType = structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct];
|
||||
if (spvType != spv::NoResult)
|
||||
break;
|
||||
|
||||
// else, we haven't seen it...
|
||||
@@ -1542,13 +1595,17 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
} else {
|
||||
if (type.getBasicType() == glslang::EbtBlock)
|
||||
memberRemapper[glslangStruct][i] = i - memberDelta;
|
||||
structFields.push_back(convertGlslangToSpvType(glslangType, explicitLayout));
|
||||
// modify just this child's view of the qualifier
|
||||
glslang::TQualifier subQualifier = glslangType.getQualifier();
|
||||
InheritQualifiers(subQualifier, qualifier);
|
||||
structFields.push_back(convertGlslangToSpvType(glslangType, explicitLayout, subQualifier));
|
||||
}
|
||||
}
|
||||
|
||||
// Make the SPIR-V type
|
||||
spvType = builder.makeStructType(structFields, type.getTypeName().c_str());
|
||||
structMap[glslangStruct] = spvType;
|
||||
if (! HasNonLayoutQualifiers(qualifier))
|
||||
structMap[explicitLayout][qualifier.layoutMatrix][glslangStruct] = spvType;
|
||||
|
||||
// Name and decorate the non-hidden members
|
||||
int offset = -1;
|
||||
@@ -1557,31 +1614,35 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
int member = i;
|
||||
if (type.getBasicType() == glslang::EbtBlock)
|
||||
member = memberRemapper[glslangStruct][i];
|
||||
|
||||
// modify just this child's view of the qualifier
|
||||
glslang::TQualifier subQualifier = glslangType.getQualifier();
|
||||
InheritQualifiers(subQualifier, qualifier);
|
||||
|
||||
// using -1 above to indicate a hidden member
|
||||
if (member >= 0) {
|
||||
builder.addMemberName(spvType, member, glslangType.getFieldName().c_str());
|
||||
addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangType));
|
||||
addMemberDecoration(spvType, member, TranslateLayoutDecoration(glslangType, subQualifier.layoutMatrix));
|
||||
addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangType));
|
||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(glslangType));
|
||||
addMemberDecoration(spvType, member, TranslateInvariantDecoration(glslangType));
|
||||
addMemberDecoration(spvType, member, TranslateInterpolationDecoration(subQualifier));
|
||||
addMemberDecoration(spvType, member, TranslateInvariantDecoration(subQualifier));
|
||||
if (glslangType.getQualifier().hasLocation())
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationLocation, glslangType.getQualifier().layoutLocation);
|
||||
if (glslangType.getQualifier().hasComponent())
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent);
|
||||
if (glslangType.getQualifier().hasXfbOffset())
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutXfbOffset);
|
||||
else if (explicitLayout) {
|
||||
else if (explicitLayout != glslang::ElpNone) {
|
||||
// figure out what to do with offset, which is accumulating
|
||||
int nextOffset;
|
||||
updateMemberOffset(type, glslangType, offset, nextOffset);
|
||||
updateMemberOffset(type, glslangType, offset, nextOffset, explicitLayout, subQualifier.layoutMatrix);
|
||||
if (offset >= 0)
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset);
|
||||
offset = nextOffset;
|
||||
}
|
||||
|
||||
if (glslangType.isMatrix() && explicitLayout) {
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangType));
|
||||
}
|
||||
if (glslangType.isMatrix() && explicitLayout != glslang::ElpNone)
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride, getMatrixStride(glslangType, explicitLayout, subQualifier.layoutMatrix));
|
||||
|
||||
// built-in variable decorations
|
||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangType.getQualifier().builtIn);
|
||||
@@ -1591,7 +1652,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
}
|
||||
|
||||
// Decorate the structure
|
||||
addDecoration(spvType, TranslateLayoutDecoration(type));
|
||||
addDecoration(spvType, TranslateLayoutDecoration(type, qualifier.layoutMatrix));
|
||||
addDecoration(spvType, TranslateBlockDecoration(type));
|
||||
if (type.getQualifier().hasStream())
|
||||
builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream);
|
||||
@@ -1617,10 +1678,38 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
}
|
||||
|
||||
if (type.isArray()) {
|
||||
int stride = 0; // keep this 0 unless doing an explicit layout; 0 will mean no decoration, no stride
|
||||
|
||||
// Do all but the outer dimension
|
||||
if (type.getArraySizes()->getNumDims() > 1) {
|
||||
// We need to decorate array strides for types needing explicit layout, except blocks.
|
||||
if (explicitLayout != glslang::ElpNone && type.getBasicType() != glslang::EbtBlock) {
|
||||
// Use a dummy glslang type for querying internal strides of
|
||||
// arrays of arrays, but using just a one-dimensional array.
|
||||
glslang::TType simpleArrayType(type, 0); // deference type of the array
|
||||
while (simpleArrayType.getArraySizes().getNumDims() > 1)
|
||||
simpleArrayType.getArraySizes().dereference();
|
||||
|
||||
// Will compute the higher-order strides here, rather than making a whole
|
||||
// pile of types and doing repetitive recursion on their contents.
|
||||
stride = getArrayStride(simpleArrayType, explicitLayout, qualifier.layoutMatrix);
|
||||
}
|
||||
|
||||
// make the arrays
|
||||
for (int dim = type.getArraySizes()->getNumDims() - 1; dim > 0; --dim) {
|
||||
assert(type.getArraySizes()->getDimSize(dim) > 0);
|
||||
spvType = builder.makeArrayType(spvType, type.getArraySizes()->getDimSize(dim));
|
||||
int size = type.getArraySizes()->getDimSize(dim);
|
||||
assert(size > 0);
|
||||
spvType = builder.makeArrayType(spvType, size, stride);
|
||||
if (stride > 0)
|
||||
builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
|
||||
stride *= size;
|
||||
}
|
||||
} else {
|
||||
// single-dimensional array, and don't yet have stride
|
||||
|
||||
// We need to decorate array strides for types needing explicit layout, except blocks.
|
||||
if (explicitLayout != glslang::ElpNone && type.getBasicType() != glslang::EbtBlock)
|
||||
stride = getArrayStride(type, explicitLayout, qualifier.layoutMatrix);
|
||||
}
|
||||
|
||||
// Do the outer dimension, which might not be known for a runtime-sized array
|
||||
@@ -1628,55 +1717,62 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
spvType = builder.makeRuntimeArray(spvType);
|
||||
} else {
|
||||
assert(type.getOuterArraySize() > 0);
|
||||
spvType = builder.makeArrayType(spvType, type.getOuterArraySize());
|
||||
spvType = builder.makeArrayType(spvType, type.getOuterArraySize(), stride);
|
||||
}
|
||||
|
||||
// TODO: explicit layout still needs to be done hierarchically for arrays of arrays, which
|
||||
// may still require additional "link time" support from the front-end
|
||||
// for arrays of arrays
|
||||
|
||||
// We need to decorate array strides for types needing explicit layout,
|
||||
// except for the very top if it is an array of blocks; that array is
|
||||
// not laid out in memory in a way needing a stride.
|
||||
if (explicitLayout && type.getBasicType() != glslang::EbtBlock)
|
||||
builder.addDecoration(spvType, spv::DecorationArrayStride, getArrayStride(type));
|
||||
if (stride > 0)
|
||||
builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
|
||||
}
|
||||
|
||||
return spvType;
|
||||
}
|
||||
|
||||
bool TGlslangToSpvTraverser::requiresExplicitLayout(const glslang::TType& type) const
|
||||
// Decide whether or not this type should be
|
||||
// decorated with offsets and strides, and if so
|
||||
// whether std140 or std430 rules should be applied.
|
||||
glslang::TLayoutPacking TGlslangToSpvTraverser::getExplicitLayout(const glslang::TType& type) const
|
||||
{
|
||||
return type.getBasicType() == glslang::EbtBlock &&
|
||||
type.getQualifier().layoutPacking != glslang::ElpShared &&
|
||||
type.getQualifier().layoutPacking != glslang::ElpPacked &&
|
||||
(type.getQualifier().storage == glslang::EvqUniform ||
|
||||
type.getQualifier().storage == glslang::EvqBuffer);
|
||||
// has to be a block
|
||||
if (type.getBasicType() != glslang::EbtBlock)
|
||||
return glslang::ElpNone;
|
||||
|
||||
// has to be a uniform or buffer block
|
||||
if (type.getQualifier().storage != glslang::EvqUniform &&
|
||||
type.getQualifier().storage != glslang::EvqBuffer)
|
||||
return glslang::ElpNone;
|
||||
|
||||
// return the layout to use
|
||||
switch (type.getQualifier().layoutPacking) {
|
||||
case glslang::ElpStd140:
|
||||
case glslang::ElpStd430:
|
||||
return type.getQualifier().layoutPacking;
|
||||
default:
|
||||
return glslang::ElpNone;
|
||||
}
|
||||
}
|
||||
|
||||
// Given an array type, returns the integer stride required for that array
|
||||
int TGlslangToSpvTraverser::getArrayStride(const glslang::TType& arrayType)
|
||||
int TGlslangToSpvTraverser::getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout)
|
||||
{
|
||||
int size;
|
||||
int stride = glslangIntermediate->getBaseAlignment(arrayType, size, arrayType.getQualifier().layoutPacking == glslang::ElpStd140);
|
||||
if (arrayType.isMatrix()) {
|
||||
// GLSL strides are set to alignments of the matrix flattened to individual rows/cols,
|
||||
// but SPV needs an array stride for the whole matrix, not the rows/cols
|
||||
if (arrayType.getQualifier().layoutMatrix == glslang::ElmRowMajor)
|
||||
stride *= arrayType.getMatrixRows();
|
||||
else
|
||||
stride *= arrayType.getMatrixCols();
|
||||
}
|
||||
int stride;
|
||||
glslangIntermediate->getBaseAlignment(arrayType, size, stride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor);
|
||||
|
||||
return stride;
|
||||
}
|
||||
|
||||
// Given a matrix type, returns the integer stride required for that matrix
|
||||
// Given a matrix type, or array (of array) of matrixes type, returns the integer stride required for that matrix
|
||||
// when used as a member of an interface block
|
||||
int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType)
|
||||
int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout)
|
||||
{
|
||||
glslang::TType elementType;
|
||||
elementType.shallowCopy(matrixType);
|
||||
elementType.clearArraySizes();
|
||||
|
||||
int size;
|
||||
return glslangIntermediate->getBaseAlignment(matrixType, size, matrixType.getQualifier().layoutPacking == glslang::ElpStd140);
|
||||
int stride;
|
||||
glslangIntermediate->getBaseAlignment(elementType, size, stride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor);
|
||||
|
||||
return stride;
|
||||
}
|
||||
|
||||
// Given a member type of a struct, realign the current offset for it, and compute
|
||||
@@ -1685,14 +1781,12 @@ int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType)
|
||||
// 'currentOffset' should be passed in already initialized, ready to modify, and reflecting
|
||||
// the migration of data from nextOffset -> currentOffset. It should be -1 on the first call.
|
||||
// -1 means a non-forced member offset (no decoration needed).
|
||||
void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset)
|
||||
void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset,
|
||||
glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout)
|
||||
{
|
||||
// this will get a positive value when deemed necessary
|
||||
nextOffset = -1;
|
||||
|
||||
bool forceOffset = structType.getQualifier().layoutPacking == glslang::ElpStd140 ||
|
||||
structType.getQualifier().layoutPacking == glslang::ElpStd430;
|
||||
|
||||
// override anything in currentOffset with user-set offset
|
||||
if (memberType.getQualifier().hasOffset())
|
||||
currentOffset = memberType.getQualifier().layoutOffset;
|
||||
@@ -1702,14 +1796,14 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType
|
||||
// once cross-compilation unit GLSL validation is done, as the original user
|
||||
// settings are needed in layoutOffset, and then the following will come into play.
|
||||
|
||||
if (! forceOffset) {
|
||||
if (explicitLayout == glslang::ElpNone) {
|
||||
if (! memberType.getQualifier().hasOffset())
|
||||
currentOffset = -1;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Getting this far means we are forcing offsets
|
||||
// Getting this far means we need explicit offsets
|
||||
if (currentOffset < 0)
|
||||
currentOffset = 0;
|
||||
|
||||
@@ -1717,7 +1811,8 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType
|
||||
// but possibly not yet correctly aligned.
|
||||
|
||||
int memberSize;
|
||||
int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, memberType.getQualifier().layoutPacking == glslang::ElpStd140);
|
||||
int dummyStride;
|
||||
int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, dummyStride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor);
|
||||
glslang::RoundToPow2(currentOffset, memberAlignment);
|
||||
nextOffset = currentOffset + memberSize;
|
||||
}
|
||||
@@ -1876,6 +1971,9 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
|
||||
// Check for queries
|
||||
if (cracked.query) {
|
||||
// a sampled image needs to have the image extracted first
|
||||
if (builder.isSampledImage(params.sampler))
|
||||
params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
|
||||
switch (node->getOp()) {
|
||||
case glslang::EOpImageQuerySize:
|
||||
case glslang::EOpTextureQuerySize:
|
||||
@@ -1904,15 +2002,19 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
auto opIt = arguments.begin();
|
||||
operands.push_back(*(opIt++));
|
||||
operands.push_back(*(opIt++));
|
||||
if (node->getOp() == glslang::EOpImageStore)
|
||||
operands.push_back(*(opIt++));
|
||||
if (node->getOp() == glslang::EOpImageLoad) {
|
||||
if (sampler.ms) {
|
||||
operands.push_back(spv::ImageOperandsSampleMask);
|
||||
operands.push_back(*(opIt++));
|
||||
operands.push_back(*opIt);
|
||||
}
|
||||
return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands);
|
||||
} else if (node->getOp() == glslang::EOpImageStore) {
|
||||
if (sampler.ms) {
|
||||
operands.push_back(*(opIt + 1));
|
||||
operands.push_back(spv::ImageOperandsSampleMask);
|
||||
operands.push_back(*opIt);
|
||||
} else
|
||||
operands.push_back(*opIt);
|
||||
builder.createNoResultOp(spv::OpImageWrite, operands);
|
||||
return spv::NoResult;
|
||||
} else {
|
||||
@@ -1966,7 +2068,7 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
|
||||
std::vector<spv::Id> indexes;
|
||||
int comp;
|
||||
if (cracked.proj)
|
||||
comp = 3;
|
||||
comp = 2; // "The resulting 3rd component of P in the shadow forms is used as Dref"
|
||||
else
|
||||
comp = builder.getNumComponents(params.coords) - 1;
|
||||
indexes.push_back(comp);
|
||||
@@ -2138,26 +2240,17 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
|
||||
break;
|
||||
case glslang::EOpVectorTimesMatrix:
|
||||
case glslang::EOpVectorTimesMatrixAssign:
|
||||
assert(builder.isVector(left));
|
||||
assert(builder.isMatrix(right));
|
||||
binOp = spv::OpVectorTimesMatrix;
|
||||
break;
|
||||
case glslang::EOpMatrixTimesVector:
|
||||
assert(builder.isMatrix(left));
|
||||
assert(builder.isVector(right));
|
||||
binOp = spv::OpMatrixTimesVector;
|
||||
break;
|
||||
case glslang::EOpMatrixTimesScalar:
|
||||
case glslang::EOpMatrixTimesScalarAssign:
|
||||
if (builder.isMatrix(right))
|
||||
std::swap(left, right);
|
||||
assert(builder.isScalar(right));
|
||||
binOp = spv::OpMatrixTimesScalar;
|
||||
break;
|
||||
case glslang::EOpMatrixTimesMatrix:
|
||||
case glslang::EOpMatrixTimesMatrixAssign:
|
||||
assert(builder.isMatrix(left));
|
||||
assert(builder.isMatrix(right));
|
||||
binOp = spv::OpMatrixTimesMatrix;
|
||||
break;
|
||||
case glslang::EOpOuterProduct:
|
||||
@@ -2236,29 +2329,8 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
|
||||
// handle mapped binary operations (should be non-comparison)
|
||||
if (binOp != spv::OpNop) {
|
||||
assert(comparison == false);
|
||||
if (builder.isMatrix(left) || builder.isMatrix(right)) {
|
||||
switch (binOp) {
|
||||
case spv::OpMatrixTimesScalar:
|
||||
case spv::OpVectorTimesMatrix:
|
||||
case spv::OpMatrixTimesVector:
|
||||
case spv::OpMatrixTimesMatrix:
|
||||
break;
|
||||
case spv::OpFDiv:
|
||||
// turn it into a multiply...
|
||||
assert(builder.isMatrix(left) && builder.isScalar(right));
|
||||
right = builder.createBinOp(spv::OpFDiv, builder.getTypeId(right), builder.makeFloatConstant(1.0F), right);
|
||||
binOp = spv::OpFMul;
|
||||
break;
|
||||
default:
|
||||
spv::MissingFunctionality("binary operation on matrix");
|
||||
break;
|
||||
}
|
||||
|
||||
spv::Id id = builder.createBinOp(binOp, typeId, left, right);
|
||||
builder.setPrecision(id, precision);
|
||||
|
||||
return id;
|
||||
}
|
||||
if (builder.isMatrix(left) || builder.isMatrix(right))
|
||||
return createBinaryMatrixOperation(binOp, precision, typeId, left, right);
|
||||
|
||||
// No matrix involved; make both operands be the same number of components, if needed
|
||||
if (needMatchingVectors)
|
||||
@@ -2278,7 +2350,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
|
||||
if (reduceComparison && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) {
|
||||
assert(op == glslang::EOpEqual || op == glslang::EOpNotEqual);
|
||||
|
||||
return builder.createCompare(precision, left, right, op == glslang::EOpEqual);
|
||||
return builder.createCompositeCompare(precision, left, right, op == glslang::EOpEqual);
|
||||
}
|
||||
|
||||
switch (op) {
|
||||
@@ -2342,6 +2414,111 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
|
||||
return 0;
|
||||
}
|
||||
|
||||
//
|
||||
// Translate AST matrix operation to SPV operation, already having SPV-based operands/types.
|
||||
// These can be any of:
|
||||
//
|
||||
// matrix * scalar
|
||||
// scalar * matrix
|
||||
// matrix * matrix linear algebraic
|
||||
// matrix * vector
|
||||
// vector * matrix
|
||||
// matrix * matrix componentwise
|
||||
// matrix op matrix op in {+, -, /}
|
||||
// matrix op scalar op in {+, -, /}
|
||||
// scalar op matrix op in {+, -, /}
|
||||
//
|
||||
spv::Id TGlslangToSpvTraverser::createBinaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Id typeId, spv::Id left, spv::Id right)
|
||||
{
|
||||
bool firstClass = true;
|
||||
|
||||
// First, handle first-class matrix operations (* and matrix/scalar)
|
||||
switch (op) {
|
||||
case spv::OpFDiv:
|
||||
if (builder.isMatrix(left) && builder.isScalar(right)) {
|
||||
// turn matrix / scalar into a multiply...
|
||||
right = builder.createBinOp(spv::OpFDiv, builder.getTypeId(right), builder.makeFloatConstant(1.0F), right);
|
||||
op = spv::OpMatrixTimesScalar;
|
||||
} else
|
||||
firstClass = false;
|
||||
break;
|
||||
case spv::OpMatrixTimesScalar:
|
||||
if (builder.isMatrix(right))
|
||||
std::swap(left, right);
|
||||
assert(builder.isScalar(right));
|
||||
break;
|
||||
case spv::OpVectorTimesMatrix:
|
||||
assert(builder.isVector(left));
|
||||
assert(builder.isMatrix(right));
|
||||
break;
|
||||
case spv::OpMatrixTimesVector:
|
||||
assert(builder.isMatrix(left));
|
||||
assert(builder.isVector(right));
|
||||
break;
|
||||
case spv::OpMatrixTimesMatrix:
|
||||
assert(builder.isMatrix(left));
|
||||
assert(builder.isMatrix(right));
|
||||
break;
|
||||
default:
|
||||
firstClass = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (firstClass) {
|
||||
spv::Id id = builder.createBinOp(op, typeId, left, right);
|
||||
builder.setPrecision(id, precision);
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
// Handle component-wise +, -, *, and / for all combinations of type.
|
||||
// The result type of all of them is the same type as the (a) matrix operand.
|
||||
// The algorithm is to:
|
||||
// - break the matrix(es) into vectors
|
||||
// - smear any scalar to a vector
|
||||
// - do vector operations
|
||||
// - make a matrix out the vector results
|
||||
switch (op) {
|
||||
case spv::OpFAdd:
|
||||
case spv::OpFSub:
|
||||
case spv::OpFDiv:
|
||||
case spv::OpFMul:
|
||||
{
|
||||
// one time set up...
|
||||
bool leftMat = builder.isMatrix(left);
|
||||
bool rightMat = builder.isMatrix(right);
|
||||
unsigned int numCols = leftMat ? builder.getNumColumns(left) : builder.getNumColumns(right);
|
||||
int numRows = leftMat ? builder.getNumRows(left) : builder.getNumRows(right);
|
||||
spv::Id scalarType = builder.getScalarTypeId(typeId);
|
||||
spv::Id vecType = builder.makeVectorType(scalarType, numRows);
|
||||
std::vector<spv::Id> results;
|
||||
spv::Id smearVec = spv::NoResult;
|
||||
if (builder.isScalar(left))
|
||||
smearVec = builder.smearScalar(precision, left, vecType);
|
||||
else if (builder.isScalar(right))
|
||||
smearVec = builder.smearScalar(precision, right, vecType);
|
||||
|
||||
// do each vector op
|
||||
for (unsigned int c = 0; c < numCols; ++c) {
|
||||
std::vector<unsigned int> indexes;
|
||||
indexes.push_back(c);
|
||||
spv::Id leftVec = leftMat ? builder.createCompositeExtract( left, vecType, indexes) : smearVec;
|
||||
spv::Id rightVec = rightMat ? builder.createCompositeExtract(right, vecType, indexes) : smearVec;
|
||||
results.push_back(builder.createBinOp(op, vecType, leftVec, rightVec));
|
||||
builder.setPrecision(results.back(), precision);
|
||||
}
|
||||
|
||||
// put the pieces together
|
||||
spv::Id id = builder.createCompositeConstruct(typeId, results);
|
||||
builder.setPrecision(id, precision);
|
||||
return id;
|
||||
}
|
||||
default:
|
||||
assert(0);
|
||||
return spv::NoResult;
|
||||
}
|
||||
}
|
||||
|
||||
spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy)
|
||||
{
|
||||
spv::Op unaryOp = spv::OpNop;
|
||||
@@ -2471,6 +2648,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
||||
unaryOp = spv::OpIsInf;
|
||||
break;
|
||||
|
||||
case glslang::EOpFloatBitsToInt:
|
||||
case glslang::EOpFloatBitsToUint:
|
||||
case glslang::EOpIntBitsToFloat:
|
||||
case glslang::EOpUintBitsToFloat:
|
||||
unaryOp = spv::OpBitcast;
|
||||
break;
|
||||
|
||||
case glslang::EOpPackSnorm2x16:
|
||||
libCall = spv::GLSLstd450PackSnorm2x16;
|
||||
break;
|
||||
@@ -2535,7 +2719,9 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
||||
case glslang::EOpFwidthCoarse:
|
||||
unaryOp = spv::OpFwidthCoarse;
|
||||
break;
|
||||
|
||||
case glslang::EOpInterpolateAtCentroid:
|
||||
libCall = spv::GLSLstd450InterpolateAtCentroid;
|
||||
break;
|
||||
case glslang::EOpAny:
|
||||
unaryOp = spv::OpAny;
|
||||
break;
|
||||
@@ -2809,6 +2995,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
||||
libCall = spv::GLSLstd450UMin;
|
||||
else
|
||||
libCall = spv::GLSLstd450SMin;
|
||||
builder.promoteScalar(precision, operands.front(), operands.back());
|
||||
break;
|
||||
case glslang::EOpModf:
|
||||
libCall = spv::GLSLstd450Modf;
|
||||
@@ -2820,6 +3007,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
||||
libCall = spv::GLSLstd450UMax;
|
||||
else
|
||||
libCall = spv::GLSLstd450SMax;
|
||||
builder.promoteScalar(precision, operands.front(), operands.back());
|
||||
break;
|
||||
case glslang::EOpPow:
|
||||
libCall = spv::GLSLstd450Pow;
|
||||
@@ -2838,18 +3026,24 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
||||
libCall = spv::GLSLstd450UClamp;
|
||||
else
|
||||
libCall = spv::GLSLstd450SClamp;
|
||||
builder.promoteScalar(precision, operands.front(), operands[1]);
|
||||
builder.promoteScalar(precision, operands.front(), operands[2]);
|
||||
break;
|
||||
case glslang::EOpMix:
|
||||
if (isFloat)
|
||||
libCall = spv::GLSLstd450FMix;
|
||||
else
|
||||
libCall = spv::GLSLstd450IMix;
|
||||
builder.promoteScalar(precision, operands.front(), operands.back());
|
||||
break;
|
||||
case glslang::EOpStep:
|
||||
libCall = spv::GLSLstd450Step;
|
||||
builder.promoteScalar(precision, operands.front(), operands.back());
|
||||
break;
|
||||
case glslang::EOpSmoothStep:
|
||||
libCall = spv::GLSLstd450SmoothStep;
|
||||
builder.promoteScalar(precision, operands[0], operands[2]);
|
||||
builder.promoteScalar(precision, operands[1], operands[2]);
|
||||
break;
|
||||
|
||||
case glslang::EOpDistance:
|
||||
@@ -2867,7 +3061,12 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
|
||||
case glslang::EOpRefract:
|
||||
libCall = spv::GLSLstd450Refract;
|
||||
break;
|
||||
|
||||
case glslang::EOpInterpolateAtSample:
|
||||
libCall = spv::GLSLstd450InterpolateAtSample;
|
||||
break;
|
||||
case glslang::EOpInterpolateAtOffset:
|
||||
libCall = spv::GLSLstd450InterpolateAtOffset;
|
||||
break;
|
||||
case glslang::EOpAddCarry:
|
||||
opCode = spv::OpIAddCarry;
|
||||
typeId = builder.makeStructResultType(typeId0, typeId0);
|
||||
@@ -3027,7 +3226,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
||||
|
||||
if (! symbol->getType().isStruct()) {
|
||||
addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
|
||||
addDecoration(id, TranslateInterpolationDecoration(symbol->getType()));
|
||||
addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
|
||||
if (symbol->getQualifier().hasLocation())
|
||||
builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
|
||||
if (symbol->getQualifier().hasIndex())
|
||||
@@ -3044,7 +3243,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
||||
}
|
||||
}
|
||||
|
||||
addDecoration(id, TranslateInvariantDecoration(symbol->getType()));
|
||||
addDecoration(id, TranslateInvariantDecoration(symbol->getType().getQualifier()));
|
||||
if (symbol->getQualifier().hasStream())
|
||||
builder.addDecoration(id, spv::DecorationStream, symbol->getQualifier().layoutStream);
|
||||
if (symbol->getQualifier().hasSet())
|
||||
|
||||
@@ -281,19 +281,24 @@ Id Builder::makeMatrixType(Id component, int cols, int rows)
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
Id Builder::makeArrayType(Id element, unsigned size)
|
||||
// TODO: performance: track arrays per stride
|
||||
// If a stride is supplied (non-zero) make an array.
|
||||
// If no stride (0), reuse previous array types.
|
||||
Id Builder::makeArrayType(Id element, unsigned size, int stride)
|
||||
{
|
||||
// First, we need a constant instruction for the size
|
||||
Id sizeId = makeUintConstant(size);
|
||||
|
||||
// try to find existing type
|
||||
Instruction* type;
|
||||
if (stride == 0) {
|
||||
// try to find existing type
|
||||
for (int t = 0; t < (int)groupedTypes[OpTypeArray].size(); ++t) {
|
||||
type = groupedTypes[OpTypeArray][t];
|
||||
if (type->getIdOperand(0) == element &&
|
||||
type->getIdOperand(1) == sizeId)
|
||||
return type->getResultId();
|
||||
}
|
||||
}
|
||||
|
||||
// not found, make it
|
||||
type = new Instruction(getUniqueId(), NoType, OpTypeArray);
|
||||
@@ -435,7 +440,7 @@ Op Builder::getMostBasicTypeClass(Id typeId) const
|
||||
}
|
||||
}
|
||||
|
||||
int Builder::getNumTypeComponents(Id typeId) const
|
||||
int Builder::getNumTypeConstituents(Id typeId) const
|
||||
{
|
||||
Instruction* instr = module.getInstruction(typeId);
|
||||
|
||||
@@ -447,7 +452,10 @@ int Builder::getNumTypeComponents(Id typeId) const
|
||||
return 1;
|
||||
case OpTypeVector:
|
||||
case OpTypeMatrix:
|
||||
case OpTypeArray:
|
||||
return instr->getImmediateOperand(1);
|
||||
case OpTypeStruct:
|
||||
return instr->getNumOperands();
|
||||
default:
|
||||
assert(0);
|
||||
return 1;
|
||||
@@ -1174,9 +1182,9 @@ void Builder::promoteScalar(Decoration precision, Id& left, Id& right)
|
||||
int direction = getNumComponents(right) - getNumComponents(left);
|
||||
|
||||
if (direction > 0)
|
||||
left = smearScalar(precision, left, getTypeId(right));
|
||||
left = smearScalar(precision, left, makeVectorType(getTypeId(left), getNumComponents(right)));
|
||||
else if (direction < 0)
|
||||
right = smearScalar(precision, right, getTypeId(left));
|
||||
right = smearScalar(precision, right, makeVectorType(getTypeId(right), getNumComponents(left)));
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -1185,6 +1193,7 @@ void Builder::promoteScalar(Decoration precision, Id& left, Id& right)
|
||||
Id Builder::smearScalar(Decoration /*precision*/, Id scalar, Id vectorType)
|
||||
{
|
||||
assert(getNumComponents(scalar) == 1);
|
||||
assert(getTypeId(scalar) == getScalarTypeId(vectorType));
|
||||
|
||||
int numComponents = getNumTypeComponents(vectorType);
|
||||
if (numComponents == 1)
|
||||
@@ -1365,14 +1374,12 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
|
||||
case Dim2D:
|
||||
case DimCube:
|
||||
case DimRect:
|
||||
case DimSubpassData:
|
||||
numComponents = 2;
|
||||
break;
|
||||
case Dim3D:
|
||||
numComponents = 3;
|
||||
break;
|
||||
case DimSubpassData:
|
||||
MissingFunctionality("input-attachment dim");
|
||||
break;
|
||||
|
||||
default:
|
||||
assert(0);
|
||||
@@ -1410,88 +1417,79 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
|
||||
return query->getResultId();
|
||||
}
|
||||
|
||||
// Comments in header
|
||||
Id Builder::createCompare(Decoration precision, Id value1, Id value2, bool equal)
|
||||
// External comments in header.
|
||||
// Operates recursively to visit the composite's hierarchy.
|
||||
Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, bool equal)
|
||||
{
|
||||
Id boolType = makeBoolType();
|
||||
Id valueType = getTypeId(value1);
|
||||
|
||||
Id resultId;
|
||||
|
||||
int numConstituents = getNumTypeConstituents(valueType);
|
||||
|
||||
// Scalars and Vectors
|
||||
|
||||
if (isScalarType(valueType) || isVectorType(valueType)) {
|
||||
assert(valueType == getTypeId(value2));
|
||||
assert(! isScalar(value1));
|
||||
|
||||
// Vectors
|
||||
|
||||
if (isVectorType(valueType)) {
|
||||
Id boolVectorType = makeVectorType(boolType, getNumTypeComponents(valueType));
|
||||
Id boolVector;
|
||||
// These just need a single comparison, just have
|
||||
// to figure out what it is.
|
||||
Op op;
|
||||
if (getMostBasicTypeClass(valueType) == OpTypeFloat)
|
||||
switch (getMostBasicTypeClass(valueType)) {
|
||||
case OpTypeFloat:
|
||||
op = equal ? OpFOrdEqual : OpFOrdNotEqual;
|
||||
else
|
||||
break;
|
||||
case OpTypeInt:
|
||||
op = equal ? OpIEqual : OpINotEqual;
|
||||
|
||||
boolVector = createBinOp(op, boolVectorType, value1, value2);
|
||||
setPrecision(boolVector, precision);
|
||||
|
||||
// Reduce vector compares with any() and all().
|
||||
|
||||
op = equal ? OpAll : OpAny;
|
||||
|
||||
return createUnaryOp(op, boolType, boolVector);
|
||||
break;
|
||||
case OpTypeBool:
|
||||
op = equal ? OpLogicalEqual : OpLogicalNotEqual;
|
||||
precision = NoPrecision;
|
||||
break;
|
||||
}
|
||||
|
||||
spv::MissingFunctionality("Composite comparison of non-vectors");
|
||||
if (isScalarType(valueType)) {
|
||||
// scalar
|
||||
resultId = createBinOp(op, boolType, value1, value2);
|
||||
setPrecision(resultId, precision);
|
||||
} else {
|
||||
// vector
|
||||
resultId = createBinOp(op, makeVectorType(boolType, numConstituents), value1, value2);
|
||||
setPrecision(resultId, precision);
|
||||
// reduce vector compares...
|
||||
resultId = createUnaryOp(equal ? OpAll : OpAny, boolType, resultId);
|
||||
}
|
||||
|
||||
return NoResult;
|
||||
return resultId;
|
||||
}
|
||||
|
||||
// Recursively handle aggregates, which include matrices, arrays, and structures
|
||||
// and accumulate the results.
|
||||
// Only structs, arrays, and matrices should be left.
|
||||
// They share in common the reduction operation across their constituents.
|
||||
assert(isAggregateType(valueType) || isMatrixType(valueType));
|
||||
|
||||
// Matrices
|
||||
// Compare each pair of constituents
|
||||
for (int constituent = 0; constituent < numConstituents; ++constituent) {
|
||||
std::vector<unsigned> indexes(1, constituent);
|
||||
Id constituentType1 = getContainedTypeId(getTypeId(value1), constituent);
|
||||
Id constituentType2 = getContainedTypeId(getTypeId(value2), constituent);
|
||||
Id constituent1 = createCompositeExtract(value1, constituentType1, indexes);
|
||||
Id constituent2 = createCompositeExtract(value2, constituentType2, indexes);
|
||||
|
||||
// Arrays
|
||||
Id subResultId = createCompositeCompare(precision, constituent1, constituent2, equal);
|
||||
|
||||
//int numElements;
|
||||
//const llvm::ArrayType* arrayType = llvm::dyn_cast<llvm::ArrayType>(value1->getType());
|
||||
//if (arrayType)
|
||||
// numElements = (int)arrayType->getNumElements();
|
||||
//else {
|
||||
// // better be structure
|
||||
// const llvm::StructType* structType = llvm::dyn_cast<llvm::StructType>(value1->getType());
|
||||
// assert(structType);
|
||||
// numElements = structType->getNumElements();
|
||||
//}
|
||||
if (constituent == 0)
|
||||
resultId = subResultId;
|
||||
else
|
||||
resultId = createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId);
|
||||
}
|
||||
|
||||
//assert(numElements > 0);
|
||||
|
||||
//for (int element = 0; element < numElements; ++element) {
|
||||
// // Get intermediate comparison values
|
||||
// llvm::Value* element1 = builder.CreateExtractValue(value1, element, "element1");
|
||||
// setInstructionPrecision(element1, precision);
|
||||
// llvm::Value* element2 = builder.CreateExtractValue(value2, element, "element2");
|
||||
// setInstructionPrecision(element2, precision);
|
||||
|
||||
// llvm::Value* subResult = createCompare(precision, element1, element2, equal, "comp");
|
||||
|
||||
// // Accumulate intermediate comparison
|
||||
// if (element == 0)
|
||||
// result = subResult;
|
||||
// else {
|
||||
// if (equal)
|
||||
// result = builder.CreateAnd(result, subResult);
|
||||
// else
|
||||
// result = builder.CreateOr(result, subResult);
|
||||
// setInstructionPrecision(result, precision);
|
||||
// }
|
||||
//}
|
||||
|
||||
//return result;
|
||||
return resultId;
|
||||
}
|
||||
|
||||
// OpCompositeConstruct
|
||||
Id Builder::createCompositeConstruct(Id typeId, std::vector<Id>& constituents)
|
||||
{
|
||||
assert(isAggregateType(typeId) || (getNumTypeComponents(typeId) > 1 && getNumTypeComponents(typeId) == (int)constituents.size()));
|
||||
assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && getNumTypeConstituents(typeId) == (int)constituents.size()));
|
||||
|
||||
Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct);
|
||||
for (int c = 0; c < (int)constituents.size(); ++c)
|
||||
@@ -2146,7 +2144,6 @@ void TbdFunctionality(const char* tbd)
|
||||
void MissingFunctionality(const char* fun)
|
||||
{
|
||||
printf("Missing functionality: %s\n", fun);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
}; // end spv namespace
|
||||
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
Id makeStructResultType(Id type0, Id type1);
|
||||
Id makeVectorType(Id component, int size);
|
||||
Id makeMatrixType(Id component, int cols, int rows);
|
||||
Id makeArrayType(Id element, unsigned size);
|
||||
Id makeArrayType(Id element, unsigned size, int stride); // 0 means no stride decoration
|
||||
Id makeRuntimeArray(Id element);
|
||||
Id makeFunctionType(Id returnType, std::vector<Id>& paramTypes);
|
||||
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format);
|
||||
@@ -116,7 +116,8 @@ public:
|
||||
Op getTypeClass(Id typeId) const { return getOpCode(typeId); }
|
||||
Op getMostBasicTypeClass(Id typeId) const;
|
||||
int getNumComponents(Id resultId) const { return getNumTypeComponents(getTypeId(resultId)); }
|
||||
int getNumTypeComponents(Id typeId) const;
|
||||
int getNumTypeConstituents(Id typeId) const;
|
||||
int getNumTypeComponents(Id typeId) const { return getNumTypeConstituents(typeId); }
|
||||
Id getScalarTypeId(Id typeId) const;
|
||||
Id getContainedTypeId(Id typeId) const;
|
||||
Id getContainedTypeId(Id typeId, int) const;
|
||||
@@ -127,8 +128,9 @@ public:
|
||||
bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); }
|
||||
bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); }
|
||||
bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); }
|
||||
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
|
||||
bool isSampledImage(Id resultId) const { return isSampledImageType(getTypeId(resultId)); }
|
||||
|
||||
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
|
||||
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
|
||||
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
|
||||
bool isVectorType(Id typeId) const { return getTypeClass(typeId) == OpTypeVector; }
|
||||
@@ -149,7 +151,7 @@ public:
|
||||
int getTypeNumColumns(Id typeId) const
|
||||
{
|
||||
assert(isMatrixType(typeId));
|
||||
return getNumTypeComponents(typeId);
|
||||
return getNumTypeConstituents(typeId);
|
||||
}
|
||||
int getNumColumns(Id resultId) const { return getTypeNumColumns(getTypeId(resultId)); }
|
||||
int getTypeNumRows(Id typeId) const
|
||||
@@ -264,11 +266,13 @@ public:
|
||||
// (No true lvalue or stores are used.)
|
||||
Id createLvalueSwizzle(Id typeId, Id target, Id source, std::vector<unsigned>& channels);
|
||||
|
||||
// If the value passed in is an instruction and the precision is not EMpNone,
|
||||
// If the value passed in is an instruction and the precision is not NoPrecision,
|
||||
// it gets tagged with the requested precision.
|
||||
void setPrecision(Id /* value */, Decoration /* precision */)
|
||||
void setPrecision(Id /* value */, Decoration precision)
|
||||
{
|
||||
// TODO
|
||||
if (precision != NoPrecision) {
|
||||
;// TODO
|
||||
}
|
||||
}
|
||||
|
||||
// Can smear a scalar to a vector for the following forms:
|
||||
@@ -278,12 +282,17 @@ public:
|
||||
// - promoteScalar(scalar, scalar) // do nothing
|
||||
// Other forms are not allowed.
|
||||
//
|
||||
// Generally, the type of 'scalar' does not need to be the same type as the components in 'vector'.
|
||||
// The type of the created vector is a vector of components of the same type as the scalar.
|
||||
//
|
||||
// Note: One of the arguments will change, with the result coming back that way rather than
|
||||
// through the return value.
|
||||
void promoteScalar(Decoration precision, Id& left, Id& right);
|
||||
|
||||
// make a value by smearing the scalar to fill the type
|
||||
Id smearScalar(Decoration precision, Id scalarVal, Id);
|
||||
// Make a value by smearing the scalar to fill the type.
|
||||
// vectorType should be the correct type for making a vector of scalarVal.
|
||||
// (No conversions are done.)
|
||||
Id smearScalar(Decoration precision, Id scalarVal, Id vectorType);
|
||||
|
||||
// Create a call to a built-in function.
|
||||
Id createBuiltinCall(Decoration precision, Id resultType, Id builtins, int entryPoint, std::vector<Id>& args);
|
||||
@@ -316,7 +325,7 @@ public:
|
||||
Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id);
|
||||
|
||||
// Reduction comparision for composites: For equal and not-equal resulting in a scalar.
|
||||
Id createCompare(Decoration precision, Id, Id, bool /* true if for equal, fales if for not-equal */);
|
||||
Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */);
|
||||
|
||||
// OpCompositeConstruct
|
||||
Id createCompositeConstruct(Id typeId, std::vector<Id>& constituents);
|
||||
|
||||
@@ -300,7 +300,12 @@ public:
|
||||
|
||||
Instruction* getInstruction(Id id) const { return idToInstruction[id]; }
|
||||
spv::Id getTypeId(Id resultId) const { return idToInstruction[resultId]->getTypeId(); }
|
||||
StorageClass getStorageClass(Id typeId) const { return (StorageClass)idToInstruction[typeId]->getImmediateOperand(0); }
|
||||
StorageClass getStorageClass(Id typeId) const
|
||||
{
|
||||
assert(idToInstruction[typeId]->getOpCode() == spv::OpTypePointer);
|
||||
return (StorageClass)idToInstruction[typeId]->getImmediateOperand(0);
|
||||
}
|
||||
|
||||
void dump(std::vector<unsigned int>& out) const
|
||||
{
|
||||
for (int f = 0; f < (int)functions.size(); ++f)
|
||||
|
||||
@@ -827,7 +827,7 @@ int C_DECL main(int argc, char* argv[])
|
||||
// Print out all the resulting infologs
|
||||
for (int w = 0; w < NumWorkItems; ++w) {
|
||||
if (Work[w]) {
|
||||
if (printShaderNames)
|
||||
if (printShaderNames || Work[w]->results.size() > 0)
|
||||
PutsIfNonEmpty(Work[w]->name.c_str());
|
||||
PutsIfNonEmpty(Work[w]->results.c_str());
|
||||
delete Work[w];
|
||||
|
||||
@@ -43,3 +43,8 @@ void barWxyz()
|
||||
ivec4 t42 = texelFetch(ismsa, ivec3(2), samp);
|
||||
uvec4 t43 = texelFetch(usmsa, p3, samp);
|
||||
}
|
||||
|
||||
int primitiveID()
|
||||
{
|
||||
return gl_PrimitiveID;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ struct s {
|
||||
};
|
||||
|
||||
in s badout; // ERROR, can't contain a sampler
|
||||
|
||||
// ERROR, can't have int in struct without flat
|
||||
struct S2 {
|
||||
vec3 c;
|
||||
float f;
|
||||
|
||||
@@ -39,3 +39,5 @@ void foo()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
layout(vertices = 0) out; // ERROR, can't be 0
|
||||
|
||||
@@ -146,3 +146,8 @@ void interp()
|
||||
interpolateAtCentroid(sampInArray[2].xy);
|
||||
interpolateAtSample(sampInArray[2].x.x, 2);
|
||||
}
|
||||
|
||||
int layer()
|
||||
{
|
||||
return gl_Layer;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
100Limits.vert
|
||||
ERROR: 0:24: 'limitation' : while loops not available
|
||||
ERROR: 0:26: 'limitation' : do-while loops not available
|
||||
ERROR: 0:28: 'limitations' : inductive-loop init-declaration requires the form "type-specifier loop-index = constant-expression"
|
||||
|
||||
@@ -101,6 +101,11 @@ ERROR: node is still EOpNull!
|
||||
0:44 'usmsa' (uniform usampler2DMSArray)
|
||||
0:44 'p3' (flat in 3-component vector of int)
|
||||
0:44 'samp' (flat in int)
|
||||
0:47 Function Definition: primitiveID( (global int)
|
||||
0:47 Function Parameters:
|
||||
0:49 Sequence
|
||||
0:49 Branch: Return with expression
|
||||
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)
|
||||
@@ -216,6 +221,11 @@ ERROR: node is still EOpNull!
|
||||
0:44 'usmsa' (uniform usampler2DMSArray)
|
||||
0:44 'p3' (flat in 3-component vector of int)
|
||||
0:44 'samp' (flat in int)
|
||||
0:47 Function Definition: primitiveID( (global int)
|
||||
0:47 Function Parameters:
|
||||
0:49 Sequence
|
||||
0:49 Branch: Return with expression
|
||||
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)
|
||||
|
||||
@@ -586,7 +586,7 @@ ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 400
|
||||
vertices = 0
|
||||
vertices = -1
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: main( (global void)
|
||||
0:8 Function Parameters:
|
||||
@@ -603,7 +603,8 @@ ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size
|
||||
ERROR: 0:26: 'gl_PointSize' : no such field in structure
|
||||
ERROR: 0:26: 'assign' : cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
|
||||
ERROR: 0:29: 'out' : type must be an array: outf
|
||||
ERROR: 6 compilation errors. No code generated.
|
||||
ERROR: 0:43: 'vertices' : must be greater than 0
|
||||
ERROR: 7 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
|
||||
@@ -4,6 +4,7 @@ ERROR: 0:30: 'noperspective' : Reserved word.
|
||||
ERROR: 0:30: 'noperspective' : not supported with this profile: es
|
||||
ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads
|
||||
ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type
|
||||
ERROR: 0:39: 'structure' : must be qualified as flat in
|
||||
ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout
|
||||
ERROR: 0:60: 'texel offset' : argument must be compile-time constant
|
||||
ERROR: 0:62: 'texel offset' : argument must be compile-time constant
|
||||
@@ -43,7 +44,7 @@ ERROR: 0:157: 'invariant' : can only apply to an output
|
||||
ERROR: 0:158: 'invariant' : can only apply to an output
|
||||
ERROR: 0:160: 'imageBuffer' : Reserved word.
|
||||
ERROR: 0:160: '' : syntax error
|
||||
ERROR: 44 compilation errors. No code generated.
|
||||
ERROR: 45 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 300
|
||||
|
||||
@@ -12,8 +12,8 @@ ERROR: 7 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 410
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = -1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
ERROR: node is still EOpNull!
|
||||
@@ -65,8 +65,8 @@ ERROR: Linking geometry stage: At least one shader must specify an output layout
|
||||
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
|
||||
|
||||
Shader version: 410
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = 1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
ERROR: node is still EOpNull!
|
||||
|
||||
@@ -5,7 +5,7 @@ ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 400
|
||||
vertices = 0
|
||||
vertices = -1
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: main( (global void)
|
||||
0:8 Function Parameters:
|
||||
@@ -20,7 +20,7 @@ Linked tessellation control stage:
|
||||
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
|
||||
|
||||
Shader version: 400
|
||||
vertices = 0
|
||||
vertices = -1
|
||||
ERROR: node is still EOpNull!
|
||||
0:8 Function Definition: main( (global void)
|
||||
0:8 Function Parameters:
|
||||
|
||||
@@ -10,8 +10,8 @@ ERROR: 6 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = -1
|
||||
max_vertices = -1
|
||||
input primitive = triangles
|
||||
output primitive = none
|
||||
ERROR: node is still EOpNull!
|
||||
@@ -137,8 +137,8 @@ ERROR: Linking geometry stage: At least one shader must specify an output layout
|
||||
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
|
||||
|
||||
Shader version: 420
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = 1
|
||||
max_vertices = -1
|
||||
input primitive = triangles
|
||||
output primitive = none
|
||||
ERROR: node is still EOpNull!
|
||||
|
||||
@@ -6,7 +6,8 @@ ERROR: 0:12: 'vertices' : inconsistent output number of vertices for array size
|
||||
ERROR: 0:26: 'gl_PointSize' : no such field in structure
|
||||
ERROR: 0:26: 'assign' : cannot convert from 'temp float' to 'temp block{out 4-component vector of float Position gl_Position}'
|
||||
ERROR: 0:29: 'out' : type must be an array: outf
|
||||
ERROR: 6 compilation errors. No code generated.
|
||||
ERROR: 0:43: 'vertices' : must be greater than 0
|
||||
ERROR: 7 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
|
||||
@@ -5,8 +5,8 @@ ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 420
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = -1
|
||||
max_vertices = -1
|
||||
input primitive = triangles
|
||||
output primitive = none
|
||||
ERROR: node is still EOpNull!
|
||||
@@ -44,8 +44,8 @@ ERROR: Linking geometry stage: At least one shader must specify an output layout
|
||||
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
|
||||
|
||||
Shader version: 420
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = 1
|
||||
max_vertices = -1
|
||||
input primitive = triangles
|
||||
output primitive = none
|
||||
ERROR: node is still EOpNull!
|
||||
|
||||
@@ -77,6 +77,11 @@ ERROR: node is still EOpNull!
|
||||
0:147 0 (const int)
|
||||
0:147 Constant:
|
||||
0:147 2 (const int)
|
||||
0:150 Function Definition: layer( (global int)
|
||||
0:150 Function Parameters:
|
||||
0:152 Sequence
|
||||
0:152 Branch: Return with expression
|
||||
0:152 'gl_Layer' (flat in int Layer)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
|
||||
0:? 'b' (layout(location=4 component=1 ) smooth in float)
|
||||
@@ -145,6 +150,11 @@ ERROR: node is still EOpNull!
|
||||
0:147 0 (const int)
|
||||
0:147 Constant:
|
||||
0:147 2 (const int)
|
||||
0:150 Function Definition: layer( (global int)
|
||||
0:150 Function Parameters:
|
||||
0:152 Sequence
|
||||
0:152 Branch: Return with expression
|
||||
0:152 'gl_Layer' (flat in int Layer)
|
||||
0:? Linker Objects
|
||||
0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float)
|
||||
0:? 'b' (layout(location=4 component=1 ) smooth in float)
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = -1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
0:? Sequence
|
||||
@@ -40,8 +40,8 @@ ERROR: Linking geometry stage: At least one shader must specify an output layout
|
||||
ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
|
||||
|
||||
Shader version: 450
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = 1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = none
|
||||
0:? Sequence
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
Shader version: 450
|
||||
vertices = 0
|
||||
vertices = -1
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (global void)
|
||||
0:11 Function Parameters:
|
||||
@@ -37,7 +37,7 @@ Linked tessellation control stage:
|
||||
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
|
||||
|
||||
Shader version: 450
|
||||
vertices = 0
|
||||
vertices = -1
|
||||
0:? Sequence
|
||||
0:11 Function Definition: main( (global void)
|
||||
0:11 Function Parameters:
|
||||
|
||||
@@ -257,6 +257,19 @@ ERROR: node is still EOpNull!
|
||||
0:120 1.000000
|
||||
0:120 Constant:
|
||||
0:120 3 (const int)
|
||||
0:126 Function Definition: foo3( (global void)
|
||||
0:126 Function Parameters:
|
||||
0:128 Sequence
|
||||
0:128 Sequence
|
||||
0:128 move second child to first child (temp 3X2 matrix of float)
|
||||
0:128 'r32' (temp 3X2 matrix of float)
|
||||
0:128 Constant:
|
||||
0:128 43.000000
|
||||
0:128 64.000000
|
||||
0:128 51.000000
|
||||
0:128 76.000000
|
||||
0:128 59.000000
|
||||
0:128 88.000000
|
||||
0:? Linker Objects
|
||||
0:? 'a' (const int)
|
||||
0:? 1 (const int)
|
||||
@@ -331,6 +344,18 @@ ERROR: node is still EOpNull!
|
||||
0:? 4.000000
|
||||
0:? 5.000000
|
||||
0:? 'a4' (global 2-element array of float)
|
||||
0:? 'mm2' (const 2X2 matrix of float)
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? 'mm32' (const 3X2 matrix of float)
|
||||
0:? 10.000000
|
||||
0:? 11.000000
|
||||
0:? 12.000000
|
||||
0:? 13.000000
|
||||
0:? 14.000000
|
||||
0:? 15.000000
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
@@ -584,6 +609,19 @@ ERROR: node is still EOpNull!
|
||||
0:120 1.000000
|
||||
0:120 Constant:
|
||||
0:120 3 (const int)
|
||||
0:126 Function Definition: foo3( (global void)
|
||||
0:126 Function Parameters:
|
||||
0:128 Sequence
|
||||
0:128 Sequence
|
||||
0:128 move second child to first child (temp 3X2 matrix of float)
|
||||
0:128 'r32' (temp 3X2 matrix of float)
|
||||
0:128 Constant:
|
||||
0:128 43.000000
|
||||
0:128 64.000000
|
||||
0:128 51.000000
|
||||
0:128 76.000000
|
||||
0:128 59.000000
|
||||
0:128 88.000000
|
||||
0:? Linker Objects
|
||||
0:? 'a' (const int)
|
||||
0:? 1 (const int)
|
||||
@@ -658,4 +696,16 @@ ERROR: node is still EOpNull!
|
||||
0:? 4.000000
|
||||
0:? 5.000000
|
||||
0:? 'a4' (global 2-element array of float)
|
||||
0:? 'mm2' (const 2X2 matrix of float)
|
||||
0:? 1.000000
|
||||
0:? 2.000000
|
||||
0:? 3.000000
|
||||
0:? 4.000000
|
||||
0:? 'mm32' (const 3X2 matrix of float)
|
||||
0:? 10.000000
|
||||
0:? 11.000000
|
||||
0:? 12.000000
|
||||
0:? 13.000000
|
||||
0:? 14.000000
|
||||
0:? 15.000000
|
||||
|
||||
|
||||
@@ -18,8 +18,8 @@ ERROR: 1 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 150
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = -1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = points
|
||||
ERROR: node is still EOpNull!
|
||||
@@ -29,8 +29,8 @@ ERROR: node is still EOpNull!
|
||||
|
||||
noMain2.geom
|
||||
Shader version: 150
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = -1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = line_strip
|
||||
0:? Sequence
|
||||
@@ -52,8 +52,8 @@ ERROR: Linking fragment stage: Multiple function bodies in multiple compilation
|
||||
main(
|
||||
|
||||
Shader version: 150
|
||||
invocations = 0
|
||||
max_vertices = 0
|
||||
invocations = 1
|
||||
max_vertices = -1
|
||||
input primitive = none
|
||||
output primitive = points
|
||||
ERROR: node is still EOpNull!
|
||||
|
||||
35
Test/baseResults/max_vertices_0.geom.out
Normal file
35
Test/baseResults/max_vertices_0.geom.out
Normal file
@@ -0,0 +1,35 @@
|
||||
max_vertices_0.geom
|
||||
Shader version: 330
|
||||
invocations = -1
|
||||
max_vertices = 0
|
||||
input primitive = points
|
||||
output primitive = triangle_strip
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( (global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 EndPrimitive (global void)
|
||||
0:11 EndPrimitive (global void)
|
||||
0:? Linker Objects
|
||||
0:? 'v_geom_FragColor' (in 1-element array of 4-component vector of float)
|
||||
0:? 'v_frag_FragColor' (layout(stream=0 ) out 4-component vector of float)
|
||||
|
||||
|
||||
Linked geometry stage:
|
||||
|
||||
|
||||
Shader version: 330
|
||||
invocations = 1
|
||||
max_vertices = 0
|
||||
input primitive = points
|
||||
output primitive = triangle_strip
|
||||
0:? Sequence
|
||||
0:8 Function Definition: main( (global void)
|
||||
0:8 Function Parameters:
|
||||
0:10 Sequence
|
||||
0:10 EndPrimitive (global void)
|
||||
0:11 EndPrimitive (global void)
|
||||
0:? Linker Objects
|
||||
0:? 'v_geom_FragColor' (in 1-element array of 4-component vector of float)
|
||||
0:? 'v_frag_FragColor' (layout(stream=0 ) out 4-component vector of float)
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
EntryPoint Fragment 4 "main" 36
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 100
|
||||
Name 4 "main"
|
||||
|
||||
@@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 212
|
||||
// Id's are bound by 214
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 78 17 68 98 182 183 184 185 185 171
|
||||
EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186 187
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
SourceExtension "GL_ARB_gpu_shader5"
|
||||
@@ -33,38 +33,38 @@ Linked fragment stage:
|
||||
Name 55 "samp2DS"
|
||||
Name 68 "io"
|
||||
Name 72 "Sca"
|
||||
Name 78 "i"
|
||||
Name 86 "Isca"
|
||||
Name 98 "uo"
|
||||
Name 102 "Usca"
|
||||
Name 113 "a"
|
||||
Name 117 "Scas"
|
||||
Name 122 "f"
|
||||
Name 131 "c"
|
||||
Name 152 "a1"
|
||||
Name 155 "m43"
|
||||
Name 158 "b"
|
||||
Name 165 "sampC"
|
||||
Name 171 "gl_ClipDistance"
|
||||
Name 181 "b"
|
||||
Name 182 "fflat"
|
||||
Name 183 "fsmooth"
|
||||
Name 184 "fnop"
|
||||
Name 185 "gl_Color"
|
||||
Name 192 "bounds"
|
||||
Name 193 "s2D"
|
||||
Name 194 "s2DR"
|
||||
Name 198 "s2DRS"
|
||||
Name 202 "s1D"
|
||||
Name 203 "s2DS"
|
||||
Name 205 "f"
|
||||
Name 207 "v2"
|
||||
Name 209 "v3"
|
||||
Name 211 "v4"
|
||||
Decorate 171(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 182(fflat) Flat
|
||||
Decorate 184(fnop) NoPerspective
|
||||
Decorate 192(bounds) Binding 0
|
||||
Name 79 "i"
|
||||
Name 87 "Isca"
|
||||
Name 99 "uo"
|
||||
Name 103 "Usca"
|
||||
Name 114 "a"
|
||||
Name 118 "Scas"
|
||||
Name 124 "f"
|
||||
Name 133 "c"
|
||||
Name 154 "a1"
|
||||
Name 157 "m43"
|
||||
Name 160 "b"
|
||||
Name 167 "sampC"
|
||||
Name 173 "gl_ClipDistance"
|
||||
Name 183 "b"
|
||||
Name 184 "fflat"
|
||||
Name 185 "fsmooth"
|
||||
Name 186 "fnop"
|
||||
Name 187 "gl_Color"
|
||||
Name 194 "bounds"
|
||||
Name 195 "s2D"
|
||||
Name 196 "s2DR"
|
||||
Name 200 "s2DRS"
|
||||
Name 204 "s1D"
|
||||
Name 205 "s2DS"
|
||||
Name 207 "f"
|
||||
Name 209 "v2"
|
||||
Name 211 "v3"
|
||||
Name 213 "v4"
|
||||
Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 184(fflat) Flat
|
||||
Decorate 186(fnop) NoPerspective
|
||||
Decorate 194(bounds) Binding 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
14: TypeFloat 32
|
||||
@@ -107,94 +107,94 @@ Linked fragment stage:
|
||||
71: TypePointer UniformConstant 70
|
||||
72(Sca): 71(ptr) Variable UniformConstant
|
||||
74: 26(int) Constant 3
|
||||
77: TypePointer Input 15(fvec4)
|
||||
78(i): 77(ptr) Variable Input
|
||||
83: TypeImage 26(int) Cube array sampled format:Unknown
|
||||
84: TypeSampledImage 83
|
||||
85: TypePointer UniformConstant 84
|
||||
86(Isca): 85(ptr) Variable UniformConstant
|
||||
89: 14(float) Constant 1060320051
|
||||
90: TypeVector 26(int) 4
|
||||
95: TypeInt 32 0
|
||||
96: TypeVector 95(int) 4
|
||||
97: TypePointer Output 96(ivec4)
|
||||
98(uo): 97(ptr) Variable Output
|
||||
99: TypeImage 95(int) Cube array sampled format:Unknown
|
||||
100: TypeSampledImage 99
|
||||
101: TypePointer UniformConstant 100
|
||||
102(Usca): 101(ptr) Variable UniformConstant
|
||||
108: 14(float) Constant 1071225242
|
||||
112: TypePointer Private 39(fvec3)
|
||||
113(a): 112(ptr) Variable Private
|
||||
114: TypeImage 14(float) Cube depth array sampled format:Unknown
|
||||
115: TypeSampledImage 114
|
||||
116: TypePointer UniformConstant 115
|
||||
117(Scas): 116(ptr) Variable UniformConstant
|
||||
121: TypePointer Function 14(float)
|
||||
125: 95(int) Constant 1
|
||||
126: TypePointer Input 14(float)
|
||||
130: TypePointer Function 90(ivec4)
|
||||
134: 14(float) Constant 1036831949
|
||||
135: 39(fvec3) ConstantComposite 134 134 134
|
||||
136: 14(float) Constant 1045220557
|
||||
78: TypePointer Input 15(fvec4)
|
||||
79(i): 78(ptr) Variable Input
|
||||
84: TypeImage 26(int) Cube array sampled format:Unknown
|
||||
85: TypeSampledImage 84
|
||||
86: TypePointer UniformConstant 85
|
||||
87(Isca): 86(ptr) Variable UniformConstant
|
||||
90: 14(float) Constant 1060320051
|
||||
91: TypeVector 26(int) 4
|
||||
96: TypeInt 32 0
|
||||
97: TypeVector 96(int) 4
|
||||
98: TypePointer Output 97(ivec4)
|
||||
99(uo): 98(ptr) Variable Output
|
||||
100: TypeImage 96(int) Cube array sampled format:Unknown
|
||||
101: TypeSampledImage 100
|
||||
102: TypePointer UniformConstant 101
|
||||
103(Usca): 102(ptr) Variable UniformConstant
|
||||
109: 14(float) Constant 1071225242
|
||||
113: TypePointer Private 39(fvec3)
|
||||
114(a): 113(ptr) Variable Private
|
||||
115: TypeImage 14(float) Cube depth array sampled format:Unknown
|
||||
116: TypeSampledImage 115
|
||||
117: TypePointer UniformConstant 116
|
||||
118(Scas): 117(ptr) Variable UniformConstant
|
||||
123: TypePointer Function 14(float)
|
||||
127: 96(int) Constant 1
|
||||
128: TypePointer Input 14(float)
|
||||
132: TypePointer Function 91(ivec4)
|
||||
136: 14(float) Constant 1036831949
|
||||
137: 39(fvec3) ConstantComposite 136 136 136
|
||||
153: TypeMatrix 39(fvec3) 4
|
||||
154: TypePointer Function 153
|
||||
159: 14(float) Constant 1073741824
|
||||
162: TypeImage 14(float) Cube sampled format:Unknown
|
||||
163: TypeSampledImage 162
|
||||
164: TypePointer UniformConstant 163
|
||||
165(sampC): 164(ptr) Variable UniformConstant
|
||||
168: 95(int) Constant 4
|
||||
169: TypeArray 14(float) 168
|
||||
170: TypePointer Input 169
|
||||
171(gl_ClipDistance): 170(ptr) Variable Input
|
||||
174: TypePointer Output 14(float)
|
||||
180: TypePointer Private 14(float)
|
||||
181(b): 180(ptr) Variable Private
|
||||
182(fflat): 126(ptr) Variable Input
|
||||
183(fsmooth): 126(ptr) Variable Input
|
||||
184(fnop): 126(ptr) Variable Input
|
||||
185(gl_Color): 77(ptr) Variable Input
|
||||
186: 95(int) Constant 3
|
||||
187: TypeArray 26(int) 186
|
||||
188: 26(int) Constant 10
|
||||
189: 26(int) Constant 23
|
||||
190: 26(int) Constant 32
|
||||
191: 187 ConstantComposite 188 189 190
|
||||
192(bounds): 20(ptr) Variable UniformConstant
|
||||
193(s2D): 20(ptr) Variable UniformConstant
|
||||
194(s2DR): 46(ptr) Variable UniformConstant
|
||||
195: TypeImage 14(float) Rect depth sampled format:Unknown
|
||||
196: TypeSampledImage 195
|
||||
197: TypePointer UniformConstant 196
|
||||
198(s2DRS): 197(ptr) Variable UniformConstant
|
||||
199: TypeImage 14(float) 1D sampled format:Unknown
|
||||
200: TypeSampledImage 199
|
||||
201: TypePointer UniformConstant 200
|
||||
202(s1D): 201(ptr) Variable UniformConstant
|
||||
203(s2DS): 54(ptr) Variable UniformConstant
|
||||
204: TypePointer UniformConstant 14(float)
|
||||
205(f): 204(ptr) Variable UniformConstant
|
||||
206: TypePointer UniformConstant 23(fvec2)
|
||||
207(v2): 206(ptr) Variable UniformConstant
|
||||
208: TypePointer UniformConstant 39(fvec3)
|
||||
209(v3): 208(ptr) Variable UniformConstant
|
||||
210: TypePointer UniformConstant 15(fvec4)
|
||||
211(v4): 210(ptr) Variable UniformConstant
|
||||
138: 14(float) Constant 1045220557
|
||||
139: 39(fvec3) ConstantComposite 138 138 138
|
||||
155: TypeMatrix 39(fvec3) 4
|
||||
156: TypePointer Function 155
|
||||
161: 14(float) Constant 1073741824
|
||||
164: TypeImage 14(float) Cube sampled format:Unknown
|
||||
165: TypeSampledImage 164
|
||||
166: TypePointer UniformConstant 165
|
||||
167(sampC): 166(ptr) Variable UniformConstant
|
||||
170: 96(int) Constant 4
|
||||
171: TypeArray 14(float) 170
|
||||
172: TypePointer Input 171
|
||||
173(gl_ClipDistance): 172(ptr) Variable Input
|
||||
176: TypePointer Output 14(float)
|
||||
182: TypePointer Private 14(float)
|
||||
183(b): 182(ptr) Variable Private
|
||||
184(fflat): 128(ptr) Variable Input
|
||||
185(fsmooth): 128(ptr) Variable Input
|
||||
186(fnop): 128(ptr) Variable Input
|
||||
187(gl_Color): 78(ptr) Variable Input
|
||||
188: 96(int) Constant 3
|
||||
189: TypeArray 26(int) 188
|
||||
190: 26(int) Constant 10
|
||||
191: 26(int) Constant 23
|
||||
192: 26(int) Constant 32
|
||||
193: 189 ConstantComposite 190 191 192
|
||||
194(bounds): 20(ptr) Variable UniformConstant
|
||||
195(s2D): 20(ptr) Variable UniformConstant
|
||||
196(s2DR): 46(ptr) Variable UniformConstant
|
||||
197: TypeImage 14(float) Rect depth sampled format:Unknown
|
||||
198: TypeSampledImage 197
|
||||
199: TypePointer UniformConstant 198
|
||||
200(s2DRS): 199(ptr) Variable UniformConstant
|
||||
201: TypeImage 14(float) 1D sampled format:Unknown
|
||||
202: TypeSampledImage 201
|
||||
203: TypePointer UniformConstant 202
|
||||
204(s1D): 203(ptr) Variable UniformConstant
|
||||
205(s2DS): 54(ptr) Variable UniformConstant
|
||||
206: TypePointer UniformConstant 14(float)
|
||||
207(f): 206(ptr) Variable UniformConstant
|
||||
208: TypePointer UniformConstant 23(fvec2)
|
||||
209(v2): 208(ptr) Variable UniformConstant
|
||||
210: TypePointer UniformConstant 39(fvec3)
|
||||
211(v3): 210(ptr) Variable UniformConstant
|
||||
212: TypePointer UniformConstant 15(fvec4)
|
||||
213(v4): 212(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
166: 163 Load 165(sampC)
|
||||
167: 15(fvec4) ImageGather 166 137 30
|
||||
Store 17(o) 167
|
||||
172: 126(ptr) AccessChain 171(gl_ClipDistance) 74
|
||||
173: 14(float) Load 172
|
||||
175: 174(ptr) AccessChain 17(o) 125
|
||||
Store 175 173
|
||||
176: 2 FunctionCall 6(bar3()
|
||||
177: 2 FunctionCall 8(bar4()
|
||||
178: 2 FunctionCall 10(bar5()
|
||||
179: 2 FunctionCall 12(bar6()
|
||||
168: 165 Load 167(sampC)
|
||||
169: 15(fvec4) ImageGather 168 139 30
|
||||
Store 17(o) 169
|
||||
174: 128(ptr) AccessChain 173(gl_ClipDistance) 74
|
||||
175: 14(float) Load 174
|
||||
177: 176(ptr) AccessChain 17(o) 127
|
||||
Store 177 175
|
||||
178: 2 FunctionCall 6(bar3()
|
||||
179: 2 FunctionCall 8(bar4()
|
||||
180: 2 FunctionCall 10(bar5()
|
||||
181: 2 FunctionCall 12(bar6()
|
||||
Return
|
||||
FunctionEnd
|
||||
6(bar3(): 2 Function None 3
|
||||
@@ -232,74 +232,76 @@ Linked fragment stage:
|
||||
FunctionEnd
|
||||
10(bar5(): 2 Function None 3
|
||||
11: Label
|
||||
122(f): 121(ptr) Variable Function
|
||||
131(c): 130(ptr) Variable Function
|
||||
124(f): 123(ptr) Variable Function
|
||||
133(c): 132(ptr) Variable Function
|
||||
73: 70 Load 72(Sca)
|
||||
75: 66(ivec3) ImageQuerySizeLod 73 74
|
||||
Store 68(io) 75
|
||||
76: 70 Load 72(Sca)
|
||||
79: 15(fvec4) Load 78(i)
|
||||
80: 15(fvec4) ImageSampleImplicitLod 76 79
|
||||
81: 15(fvec4) Load 17(o)
|
||||
82: 15(fvec4) FAdd 81 80
|
||||
Store 17(o) 82
|
||||
87: 84 Load 86(Isca)
|
||||
88: 15(fvec4) Load 78(i)
|
||||
91: 90(ivec4) ImageSampleImplicitLod 87 88 Bias 89
|
||||
92: 66(ivec3) VectorShuffle 91 91 0 1 2
|
||||
93: 66(ivec3) Load 68(io)
|
||||
94: 66(ivec3) IAdd 93 92
|
||||
Store 68(io) 94
|
||||
103: 100 Load 102(Usca)
|
||||
104: 15(fvec4) Load 78(i)
|
||||
105: 96(ivec4) ImageSampleImplicitLod 103 104
|
||||
Store 98(uo) 105
|
||||
106: 70 Load 72(Sca)
|
||||
107: 15(fvec4) Load 78(i)
|
||||
109: 15(fvec4) ImageSampleExplicitLod 106 107 Lod 108
|
||||
110: 15(fvec4) Load 17(o)
|
||||
111: 15(fvec4) FAdd 110 109
|
||||
Store 17(o) 111
|
||||
118: 115 Load 117(Scas)
|
||||
119: 66(ivec3) ImageQuerySizeLod 118 74
|
||||
120: 39(fvec3) ConvertSToF 119
|
||||
Store 113(a) 120
|
||||
123: 115 Load 117(Scas)
|
||||
124: 15(fvec4) Load 78(i)
|
||||
127: 126(ptr) AccessChain 78(i) 125
|
||||
128: 14(float) Load 127
|
||||
129: 14(float) ImageSampleDrefImplicitLod 123 124 128
|
||||
Store 122(f) 129
|
||||
132: 84 Load 86(Isca)
|
||||
133: 15(fvec4) Load 78(i)
|
||||
138: 90(ivec4) ImageSampleExplicitLod 132 133 Grad 135 137
|
||||
Store 131(c) 138
|
||||
139: 39(fvec3) Load 113(a)
|
||||
140: 14(float) Load 122(f)
|
||||
141: 90(ivec4) Load 131(c)
|
||||
142: 15(fvec4) ConvertSToF 141
|
||||
143: 15(fvec4) CompositeConstruct 140 140 140 140
|
||||
144: 15(fvec4) FAdd 143 142
|
||||
145: 14(float) CompositeExtract 139 0
|
||||
146: 14(float) CompositeExtract 139 1
|
||||
147: 14(float) CompositeExtract 139 2
|
||||
148: 14(float) CompositeExtract 144 0
|
||||
149: 15(fvec4) CompositeConstruct 145 146 147 148
|
||||
150: 15(fvec4) Load 17(o)
|
||||
151: 15(fvec4) FAdd 150 149
|
||||
Store 17(o) 151
|
||||
75: 69 Image 73
|
||||
76: 66(ivec3) ImageQuerySizeLod 75 74
|
||||
Store 68(io) 76
|
||||
77: 70 Load 72(Sca)
|
||||
80: 15(fvec4) Load 79(i)
|
||||
81: 15(fvec4) ImageSampleImplicitLod 77 80
|
||||
82: 15(fvec4) Load 17(o)
|
||||
83: 15(fvec4) FAdd 82 81
|
||||
Store 17(o) 83
|
||||
88: 85 Load 87(Isca)
|
||||
89: 15(fvec4) Load 79(i)
|
||||
92: 91(ivec4) ImageSampleImplicitLod 88 89 Bias 90
|
||||
93: 66(ivec3) VectorShuffle 92 92 0 1 2
|
||||
94: 66(ivec3) Load 68(io)
|
||||
95: 66(ivec3) IAdd 94 93
|
||||
Store 68(io) 95
|
||||
104: 101 Load 103(Usca)
|
||||
105: 15(fvec4) Load 79(i)
|
||||
106: 97(ivec4) ImageSampleImplicitLod 104 105
|
||||
Store 99(uo) 106
|
||||
107: 70 Load 72(Sca)
|
||||
108: 15(fvec4) Load 79(i)
|
||||
110: 15(fvec4) ImageSampleExplicitLod 107 108 Lod 109
|
||||
111: 15(fvec4) Load 17(o)
|
||||
112: 15(fvec4) FAdd 111 110
|
||||
Store 17(o) 112
|
||||
119: 116 Load 118(Scas)
|
||||
120: 115 Image 119
|
||||
121: 66(ivec3) ImageQuerySizeLod 120 74
|
||||
122: 39(fvec3) ConvertSToF 121
|
||||
Store 114(a) 122
|
||||
125: 116 Load 118(Scas)
|
||||
126: 15(fvec4) Load 79(i)
|
||||
129: 128(ptr) AccessChain 79(i) 127
|
||||
130: 14(float) Load 129
|
||||
131: 14(float) ImageSampleDrefImplicitLod 125 126 130
|
||||
Store 124(f) 131
|
||||
134: 85 Load 87(Isca)
|
||||
135: 15(fvec4) Load 79(i)
|
||||
140: 91(ivec4) ImageSampleExplicitLod 134 135 Grad 137 139
|
||||
Store 133(c) 140
|
||||
141: 39(fvec3) Load 114(a)
|
||||
142: 14(float) Load 124(f)
|
||||
143: 91(ivec4) Load 133(c)
|
||||
144: 15(fvec4) ConvertSToF 143
|
||||
145: 15(fvec4) CompositeConstruct 142 142 142 142
|
||||
146: 15(fvec4) FAdd 145 144
|
||||
147: 14(float) CompositeExtract 141 0
|
||||
148: 14(float) CompositeExtract 141 1
|
||||
149: 14(float) CompositeExtract 141 2
|
||||
150: 14(float) CompositeExtract 146 0
|
||||
151: 15(fvec4) CompositeConstruct 147 148 149 150
|
||||
152: 15(fvec4) Load 17(o)
|
||||
153: 15(fvec4) FAdd 152 151
|
||||
Store 17(o) 153
|
||||
Return
|
||||
FunctionEnd
|
||||
12(bar6(): 2 Function None 3
|
||||
13: Label
|
||||
152(a1): 121(ptr) Variable Function
|
||||
155(m43): 154(ptr) Variable Function
|
||||
158(b): 121(ptr) Variable Function
|
||||
156: 121(ptr) AccessChain 155(m43) 74 125
|
||||
157: 14(float) Load 156
|
||||
Store 152(a1) 157
|
||||
160: 14(float) Load 152(a1)
|
||||
161: 14(float) FMul 159 160
|
||||
Store 158(b) 161
|
||||
154(a1): 123(ptr) Variable Function
|
||||
157(m43): 156(ptr) Variable Function
|
||||
160(b): 123(ptr) Variable Function
|
||||
158: 123(ptr) AccessChain 157(m43) 74 127
|
||||
159: 14(float) Load 158
|
||||
Store 154(a1) 159
|
||||
162: 14(float) Load 154(a1)
|
||||
163: 14(float) FMul 161 162
|
||||
Store 160(b) 163
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -5,12 +5,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 97
|
||||
// Id's are bound by 100
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 43 28 33 33
|
||||
EntryPoint Fragment 4 "main" 16 28 33 43
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
@@ -22,41 +22,41 @@ Linked fragment stage:
|
||||
Name 33 "gl_ClipDistance"
|
||||
Name 43 "k"
|
||||
Name 55 "sampR"
|
||||
Name 62 "sampB"
|
||||
Name 84 "samp2Da"
|
||||
Name 88 "bn"
|
||||
MemberName 88(bn) 0 "matra"
|
||||
MemberName 88(bn) 1 "matca"
|
||||
MemberName 88(bn) 2 "matr"
|
||||
MemberName 88(bn) 3 "matc"
|
||||
MemberName 88(bn) 4 "matrdef"
|
||||
Name 90 ""
|
||||
Name 93 "bi"
|
||||
MemberName 93(bi) 0 "v"
|
||||
Name 96 "bname"
|
||||
Name 63 "sampB"
|
||||
Name 86 "samp2Da"
|
||||
Name 91 "bn"
|
||||
MemberName 91(bn) 0 "matra"
|
||||
MemberName 91(bn) 1 "matca"
|
||||
MemberName 91(bn) 2 "matr"
|
||||
MemberName 91(bn) 3 "matc"
|
||||
MemberName 91(bn) 4 "matrdef"
|
||||
Name 93 ""
|
||||
Name 96 "bi"
|
||||
MemberName 96(bi) 0 "v"
|
||||
Name 99 "bname"
|
||||
Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
|
||||
Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 87 ArrayStride 64
|
||||
Decorate 87 ArrayStride 64
|
||||
MemberDecorate 88(bn) 0 RowMajor
|
||||
MemberDecorate 88(bn) 0 Offset 0
|
||||
MemberDecorate 88(bn) 0 MatrixStride 16
|
||||
MemberDecorate 88(bn) 1 ColMajor
|
||||
MemberDecorate 88(bn) 1 Offset 256
|
||||
MemberDecorate 88(bn) 1 MatrixStride 16
|
||||
MemberDecorate 88(bn) 2 RowMajor
|
||||
MemberDecorate 88(bn) 2 Offset 512
|
||||
MemberDecorate 88(bn) 2 MatrixStride 16
|
||||
MemberDecorate 88(bn) 3 ColMajor
|
||||
MemberDecorate 88(bn) 3 Offset 576
|
||||
MemberDecorate 88(bn) 3 MatrixStride 16
|
||||
MemberDecorate 88(bn) 4 RowMajor
|
||||
MemberDecorate 88(bn) 4 Offset 640
|
||||
MemberDecorate 88(bn) 4 MatrixStride 16
|
||||
Decorate 88(bn) Block
|
||||
Decorate 92 ArrayStride 16
|
||||
MemberDecorate 93(bi) 0 Offset 0
|
||||
Decorate 93(bi) Block
|
||||
Decorate 89 ArrayStride 64
|
||||
Decorate 90 ArrayStride 64
|
||||
MemberDecorate 91(bn) 0 RowMajor
|
||||
MemberDecorate 91(bn) 0 Offset 0
|
||||
MemberDecorate 91(bn) 0 MatrixStride 16
|
||||
MemberDecorate 91(bn) 1 ColMajor
|
||||
MemberDecorate 91(bn) 1 Offset 256
|
||||
MemberDecorate 91(bn) 1 MatrixStride 16
|
||||
MemberDecorate 91(bn) 2 RowMajor
|
||||
MemberDecorate 91(bn) 2 Offset 512
|
||||
MemberDecorate 91(bn) 2 MatrixStride 16
|
||||
MemberDecorate 91(bn) 3 ColMajor
|
||||
MemberDecorate 91(bn) 3 Offset 576
|
||||
MemberDecorate 91(bn) 3 MatrixStride 16
|
||||
MemberDecorate 91(bn) 4 RowMajor
|
||||
MemberDecorate 91(bn) 4 Offset 640
|
||||
MemberDecorate 91(bn) 4 MatrixStride 16
|
||||
Decorate 91(bn) Block
|
||||
Decorate 95 ArrayStride 16
|
||||
MemberDecorate 96(bi) 0 Offset 0
|
||||
Decorate 96(bi) Block
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -92,31 +92,32 @@ Linked fragment stage:
|
||||
53: TypeSampledImage 52
|
||||
54: TypePointer UniformConstant 53
|
||||
55(sampR): 54(ptr) Variable UniformConstant
|
||||
57: TypeVector 34(int) 2
|
||||
59: TypeImage 34(int) Buffer sampled format:Unknown
|
||||
60: TypeSampledImage 59
|
||||
61: TypePointer UniformConstant 60
|
||||
62(sampB): 61(ptr) Variable UniformConstant
|
||||
67: TypeVector 6(float) 2
|
||||
70: 6(float) Constant 1120403456
|
||||
72: 29(int) Constant 3
|
||||
80: TypeImage 6(float) 2D sampled format:Unknown
|
||||
81: TypeSampledImage 80
|
||||
82: TypeArray 81 72
|
||||
83: TypePointer UniformConstant 82
|
||||
84(samp2Da): 83(ptr) Variable UniformConstant
|
||||
85: TypeMatrix 26(fvec4) 4
|
||||
86: 29(int) Constant 4
|
||||
87: TypeArray 85 86
|
||||
88(bn): TypeStruct 87 87 85 85 85
|
||||
89: TypePointer Uniform 88(bn)
|
||||
90: 89(ptr) Variable Uniform
|
||||
91: TypeVector 6(float) 3
|
||||
92: TypeArray 91(fvec3) 50
|
||||
93(bi): TypeStruct 92
|
||||
94: TypeArray 93(bi) 86
|
||||
95: TypePointer Uniform 94
|
||||
96(bname): 95(ptr) Variable Uniform
|
||||
58: TypeVector 34(int) 2
|
||||
60: TypeImage 34(int) Buffer sampled format:Unknown
|
||||
61: TypeSampledImage 60
|
||||
62: TypePointer UniformConstant 61
|
||||
63(sampB): 62(ptr) Variable UniformConstant
|
||||
69: TypeVector 6(float) 2
|
||||
72: 6(float) Constant 1120403456
|
||||
74: 29(int) Constant 3
|
||||
82: TypeImage 6(float) 2D sampled format:Unknown
|
||||
83: TypeSampledImage 82
|
||||
84: TypeArray 83 74
|
||||
85: TypePointer UniformConstant 84
|
||||
86(samp2Da): 85(ptr) Variable UniformConstant
|
||||
87: TypeMatrix 26(fvec4) 4
|
||||
88: 29(int) Constant 4
|
||||
89: TypeArray 87 88
|
||||
90: TypeArray 87 88
|
||||
91(bn): TypeStruct 89 90 87 87 87
|
||||
92: TypePointer Uniform 91(bn)
|
||||
93: 92(ptr) Variable Uniform
|
||||
94: TypeVector 6(float) 3
|
||||
95: TypeArray 94(fvec3) 50
|
||||
96(bi): TypeStruct 95
|
||||
97: TypeArray 96(bi) 88
|
||||
98: TypePointer Uniform 97
|
||||
99(bname): 98(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 12(ptr) Variable Function
|
||||
@@ -145,25 +146,27 @@ Linked fragment stage:
|
||||
51: 40(ptr) AccessChain 28(o) 50
|
||||
Store 51 49
|
||||
56: 53 Load 55(sampR)
|
||||
58: 57(ivec2) ImageQuerySize 56
|
||||
63: 60 Load 62(sampB)
|
||||
64: 34(int) ImageQuerySize 63
|
||||
65: 57(ivec2) CompositeConstruct 64 64
|
||||
66: 57(ivec2) IAdd 58 65
|
||||
68: 67(fvec2) ConvertSToF 66
|
||||
69: 6(float) CompositeExtract 68 0
|
||||
71: 6(float) FDiv 69 70
|
||||
73: 40(ptr) AccessChain 28(o) 72
|
||||
Store 73 71
|
||||
74: 6(float) FunctionCall 8(foo()
|
||||
75: 40(ptr) AccessChain 28(o) 50
|
||||
Store 75 74
|
||||
57: 52 Image 56
|
||||
59: 58(ivec2) ImageQuerySize 57
|
||||
64: 61 Load 63(sampB)
|
||||
65: 60 Image 64
|
||||
66: 34(int) ImageQuerySize 65
|
||||
67: 58(ivec2) CompositeConstruct 66 66
|
||||
68: 58(ivec2) IAdd 59 67
|
||||
70: 69(fvec2) ConvertSToF 68
|
||||
71: 6(float) CompositeExtract 70 0
|
||||
73: 6(float) FDiv 71 72
|
||||
75: 40(ptr) AccessChain 28(o) 74
|
||||
Store 75 73
|
||||
76: 6(float) FunctionCall 8(foo()
|
||||
77: 40(ptr) AccessChain 28(o) 50
|
||||
Store 77 76
|
||||
Return
|
||||
FunctionEnd
|
||||
8(foo(): 6(float) Function None 7
|
||||
9: Label
|
||||
76: 6(float) Load 11(i1)
|
||||
77: 6(float) Load 24(i2)
|
||||
78: 6(float) FAdd 76 77
|
||||
ReturnValue 78
|
||||
78: 6(float) Load 11(i1)
|
||||
79: 6(float) Load 24(i2)
|
||||
80: 6(float) FAdd 78 79
|
||||
ReturnValue 80
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,9 +10,9 @@ Linked geometry stage:
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 18 70 10 29 33
|
||||
EntryPoint Geometry 4 "main" 10 18 29 33 47 49 51 70
|
||||
ExecutionMode 4 InputTrianglesAdjacency
|
||||
ExecutionMode 4 Invocations 0
|
||||
ExecutionMode 4 Invocations 1
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputVertices 30
|
||||
Source GLSL 150
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 17 39 48 49
|
||||
EntryPoint Vertex 4 "main" 13 17 39 48 49
|
||||
Source GLSL 150
|
||||
Name 4 "main"
|
||||
Name 11 "gl_PerVertex"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 25 11 39
|
||||
EntryPoint Vertex 4 "main" 11 23 25 33 39
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 29 11 9 26 15
|
||||
EntryPoint Fragment 4 "main" 9 11 15 26 29
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
|
||||
@@ -3,4 +3,244 @@ spv.300layout.vert
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Missing functionality: binary operation on matrix
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 165
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 9 11 99 101 109 121 129 163 164
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
Name 9 "pos"
|
||||
Name 11 "p"
|
||||
Name 17 "Transform"
|
||||
MemberName 17(Transform) 0 "M1"
|
||||
MemberName 17(Transform) 1 "M2"
|
||||
MemberName 17(Transform) 2 "N1"
|
||||
MemberName 17(Transform) 3 "iuin"
|
||||
Name 19 "tblock"
|
||||
Name 45 "T3"
|
||||
MemberName 45(T3) 0 "M3"
|
||||
MemberName 45(T3) 1 "M4"
|
||||
MemberName 45(T3) 2 "N2"
|
||||
MemberName 45(T3) 3 "uv3a"
|
||||
Name 47 ""
|
||||
Name 79 "T2"
|
||||
MemberName 79(T2) 0 "b"
|
||||
MemberName 79(T2) 1 "t2m"
|
||||
Name 81 ""
|
||||
Name 99 "color"
|
||||
Name 101 "c"
|
||||
Name 109 "iout"
|
||||
Name 115 "uiuin"
|
||||
Name 121 "aiv2"
|
||||
Name 127 "S"
|
||||
MemberName 127(S) 0 "c"
|
||||
MemberName 127(S) 1 "f"
|
||||
Name 129 "s"
|
||||
Name 163 "gl_VertexID"
|
||||
Name 164 "gl_InstanceID"
|
||||
Decorate 11(p) Location 3
|
||||
MemberDecorate 17(Transform) 0 RowMajor
|
||||
MemberDecorate 17(Transform) 0 Offset 0
|
||||
MemberDecorate 17(Transform) 0 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 1 ColMajor
|
||||
MemberDecorate 17(Transform) 1 Offset 64
|
||||
MemberDecorate 17(Transform) 1 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 2 RowMajor
|
||||
MemberDecorate 17(Transform) 2 Offset 128
|
||||
MemberDecorate 17(Transform) 2 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 3 Offset 176
|
||||
Decorate 17(Transform) Block
|
||||
MemberDecorate 45(T3) 0 ColMajor
|
||||
MemberDecorate 45(T3) 1 RowMajor
|
||||
MemberDecorate 45(T3) 2 ColMajor
|
||||
Decorate 45(T3) GLSLShared
|
||||
Decorate 45(T3) Block
|
||||
MemberDecorate 79(T2) 1 RowMajor
|
||||
Decorate 79(T2) GLSLShared
|
||||
Decorate 79(T2) Block
|
||||
Decorate 101(c) Location 7
|
||||
Decorate 109(iout) Flat
|
||||
Decorate 121(aiv2) Location 9
|
||||
Decorate 163(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 164(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Output 7(fvec4)
|
||||
9(pos): 8(ptr) Variable Output
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(p): 10(ptr) Variable Input
|
||||
13: TypeMatrix 7(fvec4) 4
|
||||
14: TypeVector 6(float) 3
|
||||
15: TypeMatrix 14(fvec3) 3
|
||||
16: TypeInt 32 1
|
||||
17(Transform): TypeStruct 13 13 15 16(int)
|
||||
18: TypePointer Uniform 17(Transform)
|
||||
19(tblock): 18(ptr) Variable Uniform
|
||||
20: 16(int) Constant 0
|
||||
21: TypePointer Uniform 13
|
||||
24: 16(int) Constant 1
|
||||
40: TypeMatrix 14(fvec3) 2
|
||||
41: TypeInt 32 0
|
||||
42: TypeVector 41(int) 3
|
||||
43: 41(int) Constant 4
|
||||
44: TypeArray 42(ivec3) 43
|
||||
45(T3): TypeStruct 13 13 40 44
|
||||
46: TypePointer Uniform 45(T3)
|
||||
47: 46(ptr) Variable Uniform
|
||||
78: TypeBool
|
||||
79(T2): TypeStruct 78(bool) 13
|
||||
80: TypePointer Uniform 79(T2)
|
||||
81: 80(ptr) Variable Uniform
|
||||
98: TypePointer Output 14(fvec3)
|
||||
99(color): 98(ptr) Variable Output
|
||||
100: TypePointer Input 14(fvec3)
|
||||
101(c): 100(ptr) Variable Input
|
||||
103: 16(int) Constant 2
|
||||
104: TypePointer Uniform 15
|
||||
108: TypePointer Output 16(int)
|
||||
109(iout): 108(ptr) Variable Output
|
||||
110: 16(int) Constant 3
|
||||
111: TypePointer Uniform 16(int)
|
||||
114: TypePointer UniformConstant 41(int)
|
||||
115(uiuin): 114(ptr) Variable UniformConstant
|
||||
119: TypeVector 16(int) 2
|
||||
120: TypePointer Input 119(ivec2)
|
||||
121(aiv2): 120(ptr) Variable Input
|
||||
122: 41(int) Constant 1
|
||||
123: TypePointer Input 16(int)
|
||||
127(S): TypeStruct 14(fvec3) 6(float)
|
||||
128: TypePointer Output 127(S)
|
||||
129(s): 128(ptr) Variable Output
|
||||
132: 41(int) Constant 0
|
||||
133: TypePointer Input 6(float)
|
||||
136: TypePointer Output 6(float)
|
||||
138: TypePointer Uniform 14(fvec3)
|
||||
141: 6(float) Constant 1065353216
|
||||
142: 14(fvec3) ConstantComposite 141 141 141
|
||||
143: TypeVector 78(bool) 3
|
||||
149: TypePointer Uniform 42(ivec3)
|
||||
152: 41(int) Constant 5
|
||||
153: 42(ivec3) ConstantComposite 152 152 152
|
||||
163(gl_VertexID): 123(ptr) Variable Input
|
||||
164(gl_InstanceID): 123(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(fvec4) Load 11(p)
|
||||
22: 21(ptr) AccessChain 19(tblock) 20
|
||||
23: 13 Load 22
|
||||
25: 21(ptr) AccessChain 19(tblock) 24
|
||||
26: 13 Load 25
|
||||
27: 7(fvec4) CompositeExtract 23 0
|
||||
28: 7(fvec4) CompositeExtract 26 0
|
||||
29: 7(fvec4) FAdd 27 28
|
||||
30: 7(fvec4) CompositeExtract 23 1
|
||||
31: 7(fvec4) CompositeExtract 26 1
|
||||
32: 7(fvec4) FAdd 30 31
|
||||
33: 7(fvec4) CompositeExtract 23 2
|
||||
34: 7(fvec4) CompositeExtract 26 2
|
||||
35: 7(fvec4) FAdd 33 34
|
||||
36: 7(fvec4) CompositeExtract 23 3
|
||||
37: 7(fvec4) CompositeExtract 26 3
|
||||
38: 7(fvec4) FAdd 36 37
|
||||
39: 13 CompositeConstruct 29 32 35 38
|
||||
48: 21(ptr) AccessChain 47 24
|
||||
49: 13 Load 48
|
||||
50: 7(fvec4) CompositeExtract 39 0
|
||||
51: 7(fvec4) CompositeExtract 49 0
|
||||
52: 7(fvec4) FAdd 50 51
|
||||
53: 7(fvec4) CompositeExtract 39 1
|
||||
54: 7(fvec4) CompositeExtract 49 1
|
||||
55: 7(fvec4) FAdd 53 54
|
||||
56: 7(fvec4) CompositeExtract 39 2
|
||||
57: 7(fvec4) CompositeExtract 49 2
|
||||
58: 7(fvec4) FAdd 56 57
|
||||
59: 7(fvec4) CompositeExtract 39 3
|
||||
60: 7(fvec4) CompositeExtract 49 3
|
||||
61: 7(fvec4) FAdd 59 60
|
||||
62: 13 CompositeConstruct 52 55 58 61
|
||||
63: 21(ptr) AccessChain 47 20
|
||||
64: 13 Load 63
|
||||
65: 7(fvec4) CompositeExtract 62 0
|
||||
66: 7(fvec4) CompositeExtract 64 0
|
||||
67: 7(fvec4) FAdd 65 66
|
||||
68: 7(fvec4) CompositeExtract 62 1
|
||||
69: 7(fvec4) CompositeExtract 64 1
|
||||
70: 7(fvec4) FAdd 68 69
|
||||
71: 7(fvec4) CompositeExtract 62 2
|
||||
72: 7(fvec4) CompositeExtract 64 2
|
||||
73: 7(fvec4) FAdd 71 72
|
||||
74: 7(fvec4) CompositeExtract 62 3
|
||||
75: 7(fvec4) CompositeExtract 64 3
|
||||
76: 7(fvec4) FAdd 74 75
|
||||
77: 13 CompositeConstruct 67 70 73 76
|
||||
82: 21(ptr) AccessChain 81 24
|
||||
83: 13 Load 82
|
||||
84: 7(fvec4) CompositeExtract 77 0
|
||||
85: 7(fvec4) CompositeExtract 83 0
|
||||
86: 7(fvec4) FAdd 84 85
|
||||
87: 7(fvec4) CompositeExtract 77 1
|
||||
88: 7(fvec4) CompositeExtract 83 1
|
||||
89: 7(fvec4) FAdd 87 88
|
||||
90: 7(fvec4) CompositeExtract 77 2
|
||||
91: 7(fvec4) CompositeExtract 83 2
|
||||
92: 7(fvec4) FAdd 90 91
|
||||
93: 7(fvec4) CompositeExtract 77 3
|
||||
94: 7(fvec4) CompositeExtract 83 3
|
||||
95: 7(fvec4) FAdd 93 94
|
||||
96: 13 CompositeConstruct 86 89 92 95
|
||||
97: 7(fvec4) VectorTimesMatrix 12 96
|
||||
Store 9(pos) 97
|
||||
102: 14(fvec3) Load 101(c)
|
||||
105: 104(ptr) AccessChain 19(tblock) 103
|
||||
106: 15 Load 105
|
||||
107: 14(fvec3) VectorTimesMatrix 102 106
|
||||
Store 99(color) 107
|
||||
112: 111(ptr) AccessChain 19(tblock) 110
|
||||
113: 16(int) Load 112
|
||||
116: 41(int) Load 115(uiuin)
|
||||
117: 16(int) Bitcast 116
|
||||
118: 16(int) IAdd 113 117
|
||||
124: 123(ptr) AccessChain 121(aiv2) 122
|
||||
125: 16(int) Load 124
|
||||
126: 16(int) IAdd 118 125
|
||||
Store 109(iout) 126
|
||||
130: 14(fvec3) Load 101(c)
|
||||
131: 98(ptr) AccessChain 129(s) 20
|
||||
Store 131 130
|
||||
134: 133(ptr) AccessChain 11(p) 132
|
||||
135: 6(float) Load 134
|
||||
137: 136(ptr) AccessChain 129(s) 24
|
||||
Store 137 135
|
||||
139: 138(ptr) AccessChain 47 103 24
|
||||
140: 14(fvec3) Load 139
|
||||
144: 143(bvec3) FOrdNotEqual 140 142
|
||||
145: 78(bool) Any 144
|
||||
146: 78(bool) LogicalNot 145
|
||||
SelectionMerge 148 None
|
||||
BranchConditional 146 147 148
|
||||
147: Label
|
||||
150: 149(ptr) AccessChain 47 110 103
|
||||
151: 42(ivec3) Load 150
|
||||
154: 143(bvec3) INotEqual 151 153
|
||||
155: 78(bool) Any 154
|
||||
Branch 148
|
||||
148: Label
|
||||
156: 78(bool) Phi 145 5 155 147
|
||||
SelectionMerge 158 None
|
||||
BranchConditional 156 157 158
|
||||
157: Label
|
||||
159: 98(ptr) AccessChain 129(s) 20
|
||||
160: 14(fvec3) Load 159
|
||||
161: 14(fvec3) CompositeConstruct 141 141 141
|
||||
162: 14(fvec3) FAdd 160 161
|
||||
Store 159 162
|
||||
Branch 158
|
||||
158: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 53 11 73 9 51 61 81 115 116
|
||||
EntryPoint Vertex 4 "main" 9 11 51 53 61 73 81 115 116
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
Name 9 "pos"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked compute stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
EntryPoint GLCompute 4 "main" 53
|
||||
ExecutionMode 4 LocalSize 16 32 4
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,9 +10,9 @@ Linked geometry stage:
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 20 13
|
||||
EntryPoint Geometry 4 "main" 13 20
|
||||
ExecutionMode 4 Triangles
|
||||
ExecutionMode 4 Invocations 0
|
||||
ExecutionMode 4 Invocations 1
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputVertices 3
|
||||
Source GLSL 330
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 50 44 11 96 69 119 56
|
||||
EntryPoint Fragment 4 "main" 11 44 50 56 69 96 117 119
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 400
|
||||
SourceExtension "GL_ARB_separate_shader_objects"
|
||||
@@ -163,7 +163,7 @@ Linked fragment stage:
|
||||
7: Label
|
||||
16: 13 Load 15(u2drs)
|
||||
17: 9(fvec4) Load 11(outp)
|
||||
26: 8(float) CompositeExtract 17 3
|
||||
26: 8(float) CompositeExtract 17 2
|
||||
27: 8(float) ImageSampleProjDrefExplicitLod 16 17 26 Grad ConstOffset 20 20 25
|
||||
31: 30(ptr) AccessChain 11(outp) 29
|
||||
32: 8(float) Load 31
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked tessellation control stage:
|
||||
Capability Tessellation
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationControl 4 "main" 52 79 83 84 87 88 91 92
|
||||
EntryPoint TessellationControl 4 "main" 23 40 43 46 52 66 73 79 83 84 87 88 91 92
|
||||
ExecutionMode 4 OutputVertices 4
|
||||
Source GLSL 400
|
||||
SourceExtension "GL_ARB_separate_shader_objects"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked tessellation evaluation stage:
|
||||
Capability Tessellation
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationEvaluation 4 "main" 77 68 81 82 86 90 93 94 97
|
||||
EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 68 77 81 82 86 90 93 94 97
|
||||
ExecutionMode 4 Triangles
|
||||
ExecutionMode 4 SpacingFractionalOdd
|
||||
ExecutionMode 4 VertexOrderCcw
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked geometry stage:
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4 "main" 14 23 46
|
||||
EntryPoint Geometry 4 "main" 14 23 28 33 46
|
||||
ExecutionMode 4 Triangles
|
||||
ExecutionMode 4 Invocations 4
|
||||
ExecutionMode 4 OutputLineStrip
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 12 23 44 45 34 61 62
|
||||
EntryPoint Vertex 4 "main" 12 23 34 44 45 61 62
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
Name 10 "gl_PerVertex"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 77 38 43
|
||||
EntryPoint Fragment 4 "main" 38 43 77
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
|
||||
@@ -1,31 +1,36 @@
|
||||
spv.Operations.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 418
|
||||
// Id's are bound by 507
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
EntryPoint Fragment 4 "main" 483
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "v"
|
||||
Name 11 "uv4"
|
||||
Name 20 "i"
|
||||
Name 22 "ui"
|
||||
Name 172 "uf"
|
||||
Name 219 "b"
|
||||
Name 253 "ub41"
|
||||
Name 255 "ub42"
|
||||
Name 318 "f"
|
||||
Name 397 "gl_FragColor"
|
||||
Name 415 "uiv4"
|
||||
Name 417 "ub"
|
||||
Name 181 "ub41"
|
||||
Name 188 "f"
|
||||
Name 212 "uf"
|
||||
Name 285 "u"
|
||||
Name 288 "uui"
|
||||
Name 305 "b"
|
||||
Name 342 "ub42"
|
||||
Name 483 "FragColor"
|
||||
Name 501 "uiv4"
|
||||
Name 503 "ub"
|
||||
Name 506 "uuv4"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -37,38 +42,45 @@ Linked fragment stage:
|
||||
19: TypePointer Function 18(int)
|
||||
21: TypePointer UniformConstant 18(int)
|
||||
22(ui): 21(ptr) Variable UniformConstant
|
||||
129: TypeInt 32 0
|
||||
130: 129(int) Constant 0
|
||||
131: TypePointer Function 6(float)
|
||||
171: TypePointer UniformConstant 6(float)
|
||||
172(uf): 171(ptr) Variable UniformConstant
|
||||
217: TypeBool
|
||||
218: TypePointer Function 217(bool)
|
||||
222: TypeVector 217(bool) 4
|
||||
252: TypePointer UniformConstant 222(bvec4)
|
||||
253(ub41): 252(ptr) Variable UniformConstant
|
||||
255(ub42): 252(ptr) Variable UniformConstant
|
||||
309: 18(int) Constant 2
|
||||
316: 18(int) Constant 1
|
||||
347: TypeVector 6(float) 3
|
||||
366: 6(float) Constant 1073741824
|
||||
373: 6(float) Constant 1065353216
|
||||
378: 18(int) Constant 66
|
||||
384: 18(int) Constant 17
|
||||
396: TypePointer Output 7(fvec4)
|
||||
397(gl_FragColor): 396(ptr) Variable Output
|
||||
413: TypeVector 18(int) 4
|
||||
414: TypePointer UniformConstant 413(ivec4)
|
||||
415(uiv4): 414(ptr) Variable UniformConstant
|
||||
416: TypePointer UniformConstant 217(bool)
|
||||
417(ub): 416(ptr) Variable UniformConstant
|
||||
141: TypeInt 32 0
|
||||
142: 141(int) Constant 0
|
||||
143: TypePointer Function 6(float)
|
||||
178: TypeBool
|
||||
179: TypeVector 178(bool) 4
|
||||
180: TypePointer UniformConstant 179(bvec4)
|
||||
181(ub41): 180(ptr) Variable UniformConstant
|
||||
211: TypePointer UniformConstant 6(float)
|
||||
212(uf): 211(ptr) Variable UniformConstant
|
||||
284: TypePointer Function 141(int)
|
||||
287: TypePointer UniformConstant 141(int)
|
||||
288(uui): 287(ptr) Variable UniformConstant
|
||||
304: TypePointer Function 178(bool)
|
||||
342(ub42): 180(ptr) Variable UniformConstant
|
||||
396: 18(int) Constant 2
|
||||
403: 18(int) Constant 1
|
||||
433: TypeVector 6(float) 3
|
||||
452: 6(float) Constant 1073741824
|
||||
459: 6(float) Constant 1065353216
|
||||
464: 18(int) Constant 66
|
||||
470: 18(int) Constant 17
|
||||
482: TypePointer Output 7(fvec4)
|
||||
483(FragColor): 482(ptr) Variable Output
|
||||
499: TypeVector 18(int) 4
|
||||
500: TypePointer UniformConstant 499(ivec4)
|
||||
501(uiv4): 500(ptr) Variable UniformConstant
|
||||
502: TypePointer UniformConstant 178(bool)
|
||||
503(ub): 502(ptr) Variable UniformConstant
|
||||
504: TypeVector 141(int) 4
|
||||
505: TypePointer UniformConstant 504(ivec4)
|
||||
506(uuv4): 505(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
20(i): 19(ptr) Variable Function
|
||||
219(b): 218(ptr) Variable Function
|
||||
318(f): 131(ptr) Variable Function
|
||||
398: 8(ptr) Variable Function
|
||||
188(f): 143(ptr) Variable Function
|
||||
285(u): 284(ptr) Variable Function
|
||||
305(b): 304(ptr) Variable Function
|
||||
484: 8(ptr) Variable Function
|
||||
12: 7(fvec4) Load 11(uv4)
|
||||
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
|
||||
Store 9(v) 13
|
||||
@@ -193,362 +205,461 @@ Linked fragment stage:
|
||||
114: 7(fvec4) FAdd 113 112
|
||||
Store 9(v) 114
|
||||
115: 7(fvec4) Load 9(v)
|
||||
116: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115
|
||||
116: 7(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 115
|
||||
117: 7(fvec4) Load 9(v)
|
||||
118: 7(fvec4) FAdd 117 116
|
||||
Store 9(v) 118
|
||||
119: 7(fvec4) Load 9(v)
|
||||
120: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119
|
||||
120: 7(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 119
|
||||
121: 7(fvec4) Load 9(v)
|
||||
122: 7(fvec4) FAdd 121 120
|
||||
Store 9(v) 122
|
||||
123: 7(fvec4) Load 9(v)
|
||||
124: 7(fvec4) Load 9(v)
|
||||
125: 7(fvec4) FMod 123 124
|
||||
126: 7(fvec4) Load 9(v)
|
||||
127: 7(fvec4) FAdd 126 125
|
||||
Store 9(v) 127
|
||||
128: 7(fvec4) Load 9(v)
|
||||
132: 131(ptr) AccessChain 9(v) 130
|
||||
133: 6(float) Load 132
|
||||
134: 7(fvec4) CompositeConstruct 133 133 133 133
|
||||
135: 7(fvec4) FMod 128 134
|
||||
124: 7(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 123
|
||||
125: 7(fvec4) Load 9(v)
|
||||
126: 7(fvec4) FAdd 125 124
|
||||
Store 9(v) 126
|
||||
127: 7(fvec4) Load 9(v)
|
||||
128: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 127
|
||||
129: 7(fvec4) Load 9(v)
|
||||
130: 7(fvec4) FAdd 129 128
|
||||
Store 9(v) 130
|
||||
131: 7(fvec4) Load 9(v)
|
||||
132: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 131
|
||||
133: 7(fvec4) Load 9(v)
|
||||
134: 7(fvec4) FAdd 133 132
|
||||
Store 9(v) 134
|
||||
135: 7(fvec4) Load 9(v)
|
||||
136: 7(fvec4) Load 9(v)
|
||||
137: 7(fvec4) FAdd 136 135
|
||||
Store 9(v) 137
|
||||
137: 7(fvec4) FMod 135 136
|
||||
138: 7(fvec4) Load 9(v)
|
||||
139: 7(fvec4) Load 11(uv4)
|
||||
140: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 138 139
|
||||
141: 7(fvec4) Load 9(v)
|
||||
142: 7(fvec4) FAdd 141 140
|
||||
Store 9(v) 142
|
||||
143: 7(fvec4) Load 9(v)
|
||||
144: 7(fvec4) Load 11(uv4)
|
||||
145: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 143 144
|
||||
146: 7(fvec4) Load 9(v)
|
||||
147: 7(fvec4) FAdd 146 145
|
||||
Store 9(v) 147
|
||||
139: 7(fvec4) FAdd 138 137
|
||||
Store 9(v) 139
|
||||
140: 7(fvec4) Load 9(v)
|
||||
144: 143(ptr) AccessChain 9(v) 142
|
||||
145: 6(float) Load 144
|
||||
146: 7(fvec4) CompositeConstruct 145 145 145 145
|
||||
147: 7(fvec4) FMod 140 146
|
||||
148: 7(fvec4) Load 9(v)
|
||||
149: 7(fvec4) Load 11(uv4)
|
||||
150: 7(fvec4) Load 11(uv4)
|
||||
151: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 148 149 150
|
||||
149: 7(fvec4) FAdd 148 147
|
||||
Store 9(v) 149
|
||||
150: 7(fvec4) Load 9(v)
|
||||
151: 7(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 150 9(v)
|
||||
152: 7(fvec4) Load 9(v)
|
||||
153: 7(fvec4) FAdd 152 151
|
||||
Store 9(v) 153
|
||||
154: 7(fvec4) Load 9(v)
|
||||
155: 7(fvec4) Load 9(v)
|
||||
156: 7(fvec4) Load 9(v)
|
||||
157: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 154 155 156
|
||||
158: 7(fvec4) Load 9(v)
|
||||
159: 7(fvec4) FAdd 158 157
|
||||
Store 9(v) 159
|
||||
160: 7(fvec4) Load 9(v)
|
||||
161: 7(fvec4) Load 9(v)
|
||||
162: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 160 161
|
||||
163: 7(fvec4) Load 9(v)
|
||||
164: 7(fvec4) FAdd 163 162
|
||||
Store 9(v) 164
|
||||
165: 7(fvec4) Load 9(v)
|
||||
166: 7(fvec4) Load 9(v)
|
||||
167: 7(fvec4) Load 9(v)
|
||||
168: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 165 166 167
|
||||
169: 7(fvec4) Load 9(v)
|
||||
170: 7(fvec4) FAdd 169 168
|
||||
Store 9(v) 170
|
||||
173: 6(float) Load 172(uf)
|
||||
155: 7(fvec4) Load 11(uv4)
|
||||
156: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 154 155
|
||||
157: 7(fvec4) Load 9(v)
|
||||
158: 7(fvec4) FAdd 157 156
|
||||
Store 9(v) 158
|
||||
159: 7(fvec4) Load 9(v)
|
||||
160: 7(fvec4) Load 11(uv4)
|
||||
161: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 159 160
|
||||
162: 7(fvec4) Load 9(v)
|
||||
163: 7(fvec4) FAdd 162 161
|
||||
Store 9(v) 163
|
||||
164: 7(fvec4) Load 9(v)
|
||||
165: 7(fvec4) Load 11(uv4)
|
||||
166: 7(fvec4) Load 11(uv4)
|
||||
167: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 164 165 166
|
||||
168: 7(fvec4) Load 9(v)
|
||||
169: 7(fvec4) FAdd 168 167
|
||||
Store 9(v) 169
|
||||
170: 7(fvec4) Load 9(v)
|
||||
171: 7(fvec4) Load 9(v)
|
||||
172: 7(fvec4) Load 9(v)
|
||||
173: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 170 171 172
|
||||
174: 7(fvec4) Load 9(v)
|
||||
175: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 173 174
|
||||
175: 7(fvec4) FAdd 174 173
|
||||
Store 9(v) 175
|
||||
176: 7(fvec4) Load 9(v)
|
||||
177: 7(fvec4) FAdd 176 175
|
||||
Store 9(v) 177
|
||||
178: 6(float) Load 172(uf)
|
||||
179: 6(float) Load 172(uf)
|
||||
180: 7(fvec4) Load 9(v)
|
||||
181: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 178 179 180
|
||||
182: 7(fvec4) Load 9(v)
|
||||
183: 7(fvec4) FAdd 182 181
|
||||
Store 9(v) 183
|
||||
177: 7(fvec4) Load 9(v)
|
||||
182: 179(bvec4) Load 181(ub41)
|
||||
183: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 176 177 182
|
||||
184: 7(fvec4) Load 9(v)
|
||||
185: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 184
|
||||
185: 7(fvec4) FAdd 184 183
|
||||
Store 9(v) 185
|
||||
186: 7(fvec4) Load 9(v)
|
||||
187: 7(fvec4) FAdd 186 185
|
||||
Store 9(v) 187
|
||||
188: 7(fvec4) Load 9(v)
|
||||
189: 7(fvec4) Load 9(v)
|
||||
190: 7(fvec4) Load 9(v)
|
||||
191: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 188 189 190
|
||||
187: 7(fvec4) Load 9(v)
|
||||
189: 6(float) Load 188(f)
|
||||
190: 7(fvec4) CompositeConstruct 189 189 189 189
|
||||
191: 7(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 186 187 190
|
||||
192: 7(fvec4) Load 9(v)
|
||||
193: 7(fvec4) FAdd 192 191
|
||||
Store 9(v) 193
|
||||
194: 7(fvec4) Load 9(v)
|
||||
195: 7(fvec4) Load 9(v)
|
||||
196: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 194 195
|
||||
197: 7(fvec4) Load 9(v)
|
||||
198: 7(fvec4) FAdd 197 196
|
||||
Store 9(v) 198
|
||||
199: 7(fvec4) Load 9(v)
|
||||
195: 7(fvec4) Load 11(uv4)
|
||||
196: 7(fvec4) Load 9(v)
|
||||
197: 7(fvec4) ExtInst 1(GLSL.std.450) 50(Fma) 194 195 196
|
||||
198: 7(fvec4) Load 9(v)
|
||||
199: 7(fvec4) FAdd 198 197
|
||||
Store 9(v) 199
|
||||
200: 7(fvec4) Load 9(v)
|
||||
201: 6(float) Load 172(uf)
|
||||
202: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 199 200 201
|
||||
201: 7(fvec4) Load 9(v)
|
||||
202: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 200 201
|
||||
203: 7(fvec4) Load 9(v)
|
||||
204: 7(fvec4) FAdd 203 202
|
||||
Store 9(v) 204
|
||||
205: 7(fvec4) Load 9(v)
|
||||
206: 7(fvec4) DPdx 205
|
||||
206: 7(fvec4) Load 9(v)
|
||||
207: 7(fvec4) Load 9(v)
|
||||
208: 7(fvec4) FAdd 207 206
|
||||
Store 9(v) 208
|
||||
208: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 205 206 207
|
||||
209: 7(fvec4) Load 9(v)
|
||||
210: 7(fvec4) DPdy 209
|
||||
211: 7(fvec4) Load 9(v)
|
||||
212: 7(fvec4) FAdd 211 210
|
||||
Store 9(v) 212
|
||||
213: 7(fvec4) Load 9(v)
|
||||
214: 7(fvec4) Fwidth 213
|
||||
215: 7(fvec4) Load 9(v)
|
||||
216: 7(fvec4) FAdd 215 214
|
||||
Store 9(v) 216
|
||||
220: 7(fvec4) Load 9(v)
|
||||
221: 7(fvec4) Load 11(uv4)
|
||||
223: 222(bvec4) FOrdLessThan 220 221
|
||||
224: 217(bool) Any 223
|
||||
Store 219(b) 224
|
||||
225: 217(bool) Load 219(b)
|
||||
SelectionMerge 227 None
|
||||
BranchConditional 225 226 227
|
||||
226: Label
|
||||
228: 7(fvec4) Load 9(v)
|
||||
229: 7(fvec4) Load 11(uv4)
|
||||
230: 222(bvec4) FOrdLessThanEqual 228 229
|
||||
231: 217(bool) Any 230
|
||||
Branch 227
|
||||
227: Label
|
||||
232: 217(bool) Phi 225 5 231 226
|
||||
Store 219(b) 232
|
||||
233: 217(bool) Load 219(b)
|
||||
SelectionMerge 235 None
|
||||
BranchConditional 233 234 235
|
||||
234: Label
|
||||
236: 7(fvec4) Load 9(v)
|
||||
237: 7(fvec4) Load 11(uv4)
|
||||
238: 222(bvec4) FOrdGreaterThan 236 237
|
||||
239: 217(bool) Any 238
|
||||
Branch 235
|
||||
235: Label
|
||||
240: 217(bool) Phi 233 227 239 234
|
||||
Store 219(b) 240
|
||||
241: 217(bool) Load 219(b)
|
||||
SelectionMerge 243 None
|
||||
BranchConditional 241 242 243
|
||||
242: Label
|
||||
244: 7(fvec4) Load 9(v)
|
||||
245: 7(fvec4) Load 11(uv4)
|
||||
246: 222(bvec4) FOrdGreaterThanEqual 244 245
|
||||
247: 217(bool) Any 246
|
||||
Branch 243
|
||||
243: Label
|
||||
248: 217(bool) Phi 241 235 247 242
|
||||
Store 219(b) 248
|
||||
249: 217(bool) Load 219(b)
|
||||
SelectionMerge 251 None
|
||||
BranchConditional 249 250 251
|
||||
250: Label
|
||||
254: 222(bvec4) Load 253(ub41)
|
||||
256: 222(bvec4) Load 255(ub42)
|
||||
257: 222(bvec4) IEqual 254 256
|
||||
258: 217(bool) Any 257
|
||||
Branch 251
|
||||
251: Label
|
||||
259: 217(bool) Phi 249 243 258 250
|
||||
Store 219(b) 259
|
||||
260: 217(bool) Load 219(b)
|
||||
SelectionMerge 262 None
|
||||
BranchConditional 260 261 262
|
||||
261: Label
|
||||
263: 222(bvec4) Load 253(ub41)
|
||||
264: 222(bvec4) Load 255(ub42)
|
||||
265: 222(bvec4) INotEqual 263 264
|
||||
266: 217(bool) Any 265
|
||||
Branch 262
|
||||
262: Label
|
||||
267: 217(bool) Phi 260 251 266 261
|
||||
Store 219(b) 267
|
||||
268: 217(bool) Load 219(b)
|
||||
269: 222(bvec4) Load 253(ub41)
|
||||
270: 217(bool) Any 269
|
||||
271: 217(bool) LogicalAnd 268 270
|
||||
Store 219(b) 271
|
||||
272: 217(bool) Load 219(b)
|
||||
273: 222(bvec4) Load 253(ub41)
|
||||
274: 217(bool) All 273
|
||||
275: 217(bool) LogicalAnd 272 274
|
||||
Store 219(b) 275
|
||||
276: 217(bool) Load 219(b)
|
||||
SelectionMerge 278 None
|
||||
BranchConditional 276 277 278
|
||||
277: Label
|
||||
279: 222(bvec4) Load 253(ub41)
|
||||
280: 222(bvec4) LogicalNot 279
|
||||
281: 217(bool) Any 280
|
||||
Branch 278
|
||||
278: Label
|
||||
282: 217(bool) Phi 276 262 281 277
|
||||
Store 219(b) 282
|
||||
283: 18(int) Load 20(i)
|
||||
284: 18(int) Load 22(ui)
|
||||
285: 18(int) IAdd 283 284
|
||||
286: 18(int) Load 20(i)
|
||||
287: 18(int) IMul 285 286
|
||||
288: 18(int) Load 22(ui)
|
||||
289: 18(int) ISub 287 288
|
||||
290: 18(int) Load 20(i)
|
||||
291: 18(int) SDiv 289 290
|
||||
Store 20(i) 291
|
||||
292: 18(int) Load 20(i)
|
||||
293: 18(int) Load 22(ui)
|
||||
294: 18(int) SMod 292 293
|
||||
Store 20(i) 294
|
||||
295: 18(int) Load 20(i)
|
||||
296: 18(int) Load 22(ui)
|
||||
297: 217(bool) IEqual 295 296
|
||||
298: 217(bool) LogicalNot 297
|
||||
SelectionMerge 300 None
|
||||
BranchConditional 298 299 300
|
||||
299: Label
|
||||
301: 18(int) Load 20(i)
|
||||
302: 18(int) Load 22(ui)
|
||||
303: 217(bool) INotEqual 301 302
|
||||
304: 18(int) Load 20(i)
|
||||
305: 18(int) Load 22(ui)
|
||||
306: 217(bool) IEqual 304 305
|
||||
307: 217(bool) LogicalAnd 303 306
|
||||
308: 18(int) Load 20(i)
|
||||
310: 217(bool) INotEqual 308 309
|
||||
311: 217(bool) LogicalNotEqual 307 310
|
||||
Branch 300
|
||||
300: Label
|
||||
312: 217(bool) Phi 297 278 311 299
|
||||
SelectionMerge 314 None
|
||||
BranchConditional 312 313 314
|
||||
313: Label
|
||||
315: 18(int) Load 20(i)
|
||||
317: 18(int) IAdd 315 316
|
||||
Store 20(i) 317
|
||||
Branch 314
|
||||
314: Label
|
||||
319: 6(float) Load 172(uf)
|
||||
320: 6(float) Load 172(uf)
|
||||
321: 6(float) FAdd 319 320
|
||||
322: 6(float) Load 172(uf)
|
||||
323: 6(float) FMul 321 322
|
||||
324: 6(float) Load 172(uf)
|
||||
325: 6(float) FSub 323 324
|
||||
326: 6(float) Load 172(uf)
|
||||
327: 6(float) FDiv 325 326
|
||||
Store 318(f) 327
|
||||
328: 7(fvec4) Load 9(v)
|
||||
329: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 328
|
||||
330: 6(float) Load 318(f)
|
||||
331: 6(float) FAdd 330 329
|
||||
Store 318(f) 331
|
||||
332: 7(fvec4) Load 9(v)
|
||||
210: 7(fvec4) FAdd 209 208
|
||||
Store 9(v) 210
|
||||
213: 6(float) Load 212(uf)
|
||||
214: 7(fvec4) Load 9(v)
|
||||
215: 7(fvec4) CompositeConstruct 213 213 213 213
|
||||
216: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 215 214
|
||||
217: 7(fvec4) Load 9(v)
|
||||
218: 7(fvec4) FAdd 217 216
|
||||
Store 9(v) 218
|
||||
219: 6(float) Load 212(uf)
|
||||
220: 6(float) Load 212(uf)
|
||||
221: 7(fvec4) Load 9(v)
|
||||
222: 7(fvec4) CompositeConstruct 219 219 219 219
|
||||
223: 7(fvec4) CompositeConstruct 220 220 220 220
|
||||
224: 7(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 222 223 221
|
||||
225: 7(fvec4) Load 9(v)
|
||||
226: 7(fvec4) FAdd 225 224
|
||||
Store 9(v) 226
|
||||
227: 7(fvec4) Load 9(v)
|
||||
228: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 227
|
||||
229: 7(fvec4) Load 9(v)
|
||||
230: 7(fvec4) FAdd 229 228
|
||||
Store 9(v) 230
|
||||
231: 7(fvec4) Load 9(v)
|
||||
232: 7(fvec4) Load 9(v)
|
||||
233: 7(fvec4) Load 9(v)
|
||||
234: 7(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 231 232 233
|
||||
235: 7(fvec4) Load 9(v)
|
||||
236: 7(fvec4) FAdd 235 234
|
||||
Store 9(v) 236
|
||||
237: 7(fvec4) Load 9(v)
|
||||
238: 7(fvec4) Load 9(v)
|
||||
239: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 237 238
|
||||
240: 7(fvec4) Load 9(v)
|
||||
241: 7(fvec4) FAdd 240 239
|
||||
Store 9(v) 241
|
||||
242: 7(fvec4) Load 9(v)
|
||||
243: 7(fvec4) Load 9(v)
|
||||
244: 6(float) Load 212(uf)
|
||||
245: 7(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 242 243 244
|
||||
246: 7(fvec4) Load 9(v)
|
||||
247: 7(fvec4) FAdd 246 245
|
||||
Store 9(v) 247
|
||||
248: 7(fvec4) Load 9(v)
|
||||
249: 7(fvec4) DPdx 248
|
||||
250: 7(fvec4) Load 9(v)
|
||||
251: 7(fvec4) FAdd 250 249
|
||||
Store 9(v) 251
|
||||
252: 7(fvec4) Load 9(v)
|
||||
253: 7(fvec4) DPdy 252
|
||||
254: 7(fvec4) Load 9(v)
|
||||
255: 7(fvec4) FAdd 254 253
|
||||
Store 9(v) 255
|
||||
256: 7(fvec4) Load 9(v)
|
||||
257: 7(fvec4) Fwidth 256
|
||||
258: 7(fvec4) Load 9(v)
|
||||
259: 7(fvec4) FAdd 258 257
|
||||
Store 9(v) 259
|
||||
260: 18(int) Load 22(ui)
|
||||
261: 18(int) ExtInst 1(GLSL.std.450) 5(SAbs) 260
|
||||
262: 18(int) Load 20(i)
|
||||
263: 18(int) IAdd 262 261
|
||||
Store 20(i) 263
|
||||
264: 18(int) Load 20(i)
|
||||
265: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 264
|
||||
266: 18(int) Load 20(i)
|
||||
267: 18(int) IAdd 266 265
|
||||
Store 20(i) 267
|
||||
268: 18(int) Load 20(i)
|
||||
269: 18(int) Load 22(ui)
|
||||
270: 18(int) ExtInst 1(GLSL.std.450) 39(SMin) 268 269
|
||||
271: 18(int) Load 20(i)
|
||||
272: 18(int) IAdd 271 270
|
||||
Store 20(i) 272
|
||||
273: 18(int) Load 20(i)
|
||||
274: 18(int) Load 22(ui)
|
||||
275: 18(int) ExtInst 1(GLSL.std.450) 42(SMax) 273 274
|
||||
276: 18(int) Load 20(i)
|
||||
277: 18(int) IAdd 276 275
|
||||
Store 20(i) 277
|
||||
278: 18(int) Load 20(i)
|
||||
279: 18(int) Load 22(ui)
|
||||
280: 18(int) Load 22(ui)
|
||||
281: 18(int) ExtInst 1(GLSL.std.450) 45(SClamp) 278 279 280
|
||||
282: 18(int) Load 20(i)
|
||||
283: 18(int) IAdd 282 281
|
||||
Store 20(i) 283
|
||||
286: 141(int) Load 285(u)
|
||||
289: 141(int) Load 288(uui)
|
||||
290: 141(int) ExtInst 1(GLSL.std.450) 38(UMin) 286 289
|
||||
291: 141(int) Load 285(u)
|
||||
292: 141(int) IAdd 291 290
|
||||
Store 285(u) 292
|
||||
293: 141(int) Load 285(u)
|
||||
294: 141(int) Load 288(uui)
|
||||
295: 141(int) ExtInst 1(GLSL.std.450) 41(UMax) 293 294
|
||||
296: 141(int) Load 285(u)
|
||||
297: 141(int) IAdd 296 295
|
||||
Store 285(u) 297
|
||||
298: 141(int) Load 285(u)
|
||||
299: 141(int) Load 288(uui)
|
||||
300: 141(int) Load 288(uui)
|
||||
301: 141(int) ExtInst 1(GLSL.std.450) 44(UClamp) 298 299 300
|
||||
302: 141(int) Load 285(u)
|
||||
303: 141(int) IAdd 302 301
|
||||
Store 285(u) 303
|
||||
306: 6(float) Load 212(uf)
|
||||
307: 178(bool) IsNan 306
|
||||
Store 305(b) 307
|
||||
308: 6(float) Load 188(f)
|
||||
309: 178(bool) IsInf 308
|
||||
Store 305(b) 309
|
||||
310: 7(fvec4) Load 9(v)
|
||||
311: 7(fvec4) Load 11(uv4)
|
||||
312: 179(bvec4) FOrdLessThan 310 311
|
||||
313: 178(bool) Any 312
|
||||
Store 305(b) 313
|
||||
314: 178(bool) Load 305(b)
|
||||
SelectionMerge 316 None
|
||||
BranchConditional 314 315 316
|
||||
315: Label
|
||||
317: 7(fvec4) Load 9(v)
|
||||
318: 7(fvec4) Load 11(uv4)
|
||||
319: 179(bvec4) FOrdLessThanEqual 317 318
|
||||
320: 178(bool) Any 319
|
||||
Branch 316
|
||||
316: Label
|
||||
321: 178(bool) Phi 314 5 320 315
|
||||
Store 305(b) 321
|
||||
322: 178(bool) Load 305(b)
|
||||
SelectionMerge 324 None
|
||||
BranchConditional 322 323 324
|
||||
323: Label
|
||||
325: 7(fvec4) Load 9(v)
|
||||
326: 7(fvec4) Load 11(uv4)
|
||||
327: 179(bvec4) FOrdGreaterThan 325 326
|
||||
328: 178(bool) Any 327
|
||||
Branch 324
|
||||
324: Label
|
||||
329: 178(bool) Phi 322 316 328 323
|
||||
Store 305(b) 329
|
||||
330: 178(bool) Load 305(b)
|
||||
SelectionMerge 332 None
|
||||
BranchConditional 330 331 332
|
||||
331: Label
|
||||
333: 7(fvec4) Load 9(v)
|
||||
334: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 332 333
|
||||
335: 6(float) Load 318(f)
|
||||
336: 6(float) FAdd 335 334
|
||||
Store 318(f) 336
|
||||
337: 7(fvec4) Load 9(v)
|
||||
338: 7(fvec4) Load 9(v)
|
||||
339: 6(float) Dot 337 338
|
||||
340: 6(float) Load 318(f)
|
||||
341: 6(float) FAdd 340 339
|
||||
Store 318(f) 341
|
||||
342: 6(float) Load 318(f)
|
||||
343: 6(float) Load 172(uf)
|
||||
344: 6(float) FMul 342 343
|
||||
345: 6(float) Load 318(f)
|
||||
346: 6(float) FAdd 345 344
|
||||
Store 318(f) 346
|
||||
348: 7(fvec4) Load 9(v)
|
||||
349: 347(fvec3) VectorShuffle 348 348 0 1 2
|
||||
350: 7(fvec4) Load 9(v)
|
||||
351: 347(fvec3) VectorShuffle 350 350 0 1 2
|
||||
352: 347(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 349 351
|
||||
353: 6(float) CompositeExtract 352 0
|
||||
354: 6(float) Load 318(f)
|
||||
355: 6(float) FAdd 354 353
|
||||
Store 318(f) 355
|
||||
356: 6(float) Load 318(f)
|
||||
357: 6(float) Load 172(uf)
|
||||
358: 217(bool) FOrdEqual 356 357
|
||||
359: 217(bool) LogicalNot 358
|
||||
SelectionMerge 361 None
|
||||
BranchConditional 359 360 361
|
||||
360: Label
|
||||
362: 6(float) Load 318(f)
|
||||
363: 6(float) Load 172(uf)
|
||||
364: 217(bool) FOrdNotEqual 362 363
|
||||
365: 6(float) Load 318(f)
|
||||
367: 217(bool) FOrdNotEqual 365 366
|
||||
368: 217(bool) LogicalAnd 364 367
|
||||
Branch 361
|
||||
361: Label
|
||||
369: 217(bool) Phi 358 314 368 360
|
||||
SelectionMerge 371 None
|
||||
BranchConditional 369 370 371
|
||||
370: Label
|
||||
372: 6(float) Load 318(f)
|
||||
374: 6(float) FAdd 372 373
|
||||
Store 318(f) 374
|
||||
Branch 371
|
||||
371: Label
|
||||
334: 7(fvec4) Load 11(uv4)
|
||||
335: 179(bvec4) FOrdGreaterThanEqual 333 334
|
||||
336: 178(bool) Any 335
|
||||
Branch 332
|
||||
332: Label
|
||||
337: 178(bool) Phi 330 324 336 331
|
||||
Store 305(b) 337
|
||||
338: 178(bool) Load 305(b)
|
||||
SelectionMerge 340 None
|
||||
BranchConditional 338 339 340
|
||||
339: Label
|
||||
341: 179(bvec4) Load 181(ub41)
|
||||
343: 179(bvec4) Load 342(ub42)
|
||||
344: 179(bvec4) IEqual 341 343
|
||||
345: 178(bool) Any 344
|
||||
Branch 340
|
||||
340: Label
|
||||
346: 178(bool) Phi 338 332 345 339
|
||||
Store 305(b) 346
|
||||
347: 178(bool) Load 305(b)
|
||||
SelectionMerge 349 None
|
||||
BranchConditional 347 348 349
|
||||
348: Label
|
||||
350: 179(bvec4) Load 181(ub41)
|
||||
351: 179(bvec4) Load 342(ub42)
|
||||
352: 179(bvec4) INotEqual 350 351
|
||||
353: 178(bool) Any 352
|
||||
Branch 349
|
||||
349: Label
|
||||
354: 178(bool) Phi 347 340 353 348
|
||||
Store 305(b) 354
|
||||
355: 178(bool) Load 305(b)
|
||||
356: 179(bvec4) Load 181(ub41)
|
||||
357: 178(bool) Any 356
|
||||
358: 178(bool) LogicalAnd 355 357
|
||||
Store 305(b) 358
|
||||
359: 178(bool) Load 305(b)
|
||||
360: 179(bvec4) Load 181(ub41)
|
||||
361: 178(bool) All 360
|
||||
362: 178(bool) LogicalAnd 359 361
|
||||
Store 305(b) 362
|
||||
363: 178(bool) Load 305(b)
|
||||
SelectionMerge 365 None
|
||||
BranchConditional 363 364 365
|
||||
364: Label
|
||||
366: 179(bvec4) Load 181(ub41)
|
||||
367: 179(bvec4) LogicalNot 366
|
||||
368: 178(bool) Any 367
|
||||
Branch 365
|
||||
365: Label
|
||||
369: 178(bool) Phi 363 349 368 364
|
||||
Store 305(b) 369
|
||||
370: 18(int) Load 20(i)
|
||||
371: 18(int) Load 22(ui)
|
||||
372: 18(int) IAdd 370 371
|
||||
373: 18(int) Load 20(i)
|
||||
374: 18(int) IMul 372 373
|
||||
375: 18(int) Load 22(ui)
|
||||
376: 18(int) Load 20(i)
|
||||
377: 18(int) BitwiseAnd 376 375
|
||||
Store 20(i) 377
|
||||
376: 18(int) ISub 374 375
|
||||
377: 18(int) Load 20(i)
|
||||
378: 18(int) SDiv 376 377
|
||||
Store 20(i) 378
|
||||
379: 18(int) Load 20(i)
|
||||
380: 18(int) BitwiseOr 379 378
|
||||
Store 20(i) 380
|
||||
381: 18(int) Load 22(ui)
|
||||
380: 18(int) Load 22(ui)
|
||||
381: 18(int) SMod 379 380
|
||||
Store 20(i) 381
|
||||
382: 18(int) Load 20(i)
|
||||
383: 18(int) BitwiseXor 382 381
|
||||
Store 20(i) 383
|
||||
385: 18(int) Load 20(i)
|
||||
386: 18(int) SMod 385 384
|
||||
Store 20(i) 386
|
||||
387: 18(int) Load 20(i)
|
||||
388: 18(int) ShiftRightArithmetic 387 309
|
||||
Store 20(i) 388
|
||||
383: 18(int) Load 22(ui)
|
||||
384: 178(bool) IEqual 382 383
|
||||
385: 178(bool) LogicalNot 384
|
||||
SelectionMerge 387 None
|
||||
BranchConditional 385 386 387
|
||||
386: Label
|
||||
388: 18(int) Load 20(i)
|
||||
389: 18(int) Load 22(ui)
|
||||
390: 18(int) Load 20(i)
|
||||
391: 18(int) ShiftLeftLogical 390 389
|
||||
Store 20(i) 391
|
||||
392: 18(int) Load 20(i)
|
||||
393: 18(int) Not 392
|
||||
Store 20(i) 393
|
||||
394: 217(bool) Load 219(b)
|
||||
395: 217(bool) LogicalNot 394
|
||||
Store 219(b) 395
|
||||
399: 217(bool) Load 219(b)
|
||||
390: 178(bool) INotEqual 388 389
|
||||
391: 18(int) Load 20(i)
|
||||
392: 18(int) Load 22(ui)
|
||||
393: 178(bool) IEqual 391 392
|
||||
394: 178(bool) LogicalAnd 390 393
|
||||
395: 18(int) Load 20(i)
|
||||
397: 178(bool) INotEqual 395 396
|
||||
398: 178(bool) LogicalNotEqual 394 397
|
||||
Branch 387
|
||||
387: Label
|
||||
399: 178(bool) Phi 384 365 398 386
|
||||
SelectionMerge 401 None
|
||||
BranchConditional 399 400 410
|
||||
BranchConditional 399 400 401
|
||||
400: Label
|
||||
402: 18(int) Load 20(i)
|
||||
403: 6(float) ConvertSToF 402
|
||||
404: 7(fvec4) CompositeConstruct 403 403 403 403
|
||||
405: 6(float) Load 318(f)
|
||||
406: 7(fvec4) CompositeConstruct 405 405 405 405
|
||||
407: 7(fvec4) FAdd 404 406
|
||||
408: 7(fvec4) Load 9(v)
|
||||
409: 7(fvec4) FAdd 407 408
|
||||
Store 398 409
|
||||
Branch 401
|
||||
410: Label
|
||||
411: 7(fvec4) Load 9(v)
|
||||
Store 398 411
|
||||
404: 18(int) IAdd 402 403
|
||||
Store 20(i) 404
|
||||
Branch 401
|
||||
401: Label
|
||||
412: 7(fvec4) Load 398
|
||||
Store 397(gl_FragColor) 412
|
||||
405: 6(float) Load 212(uf)
|
||||
406: 6(float) Load 212(uf)
|
||||
407: 6(float) FAdd 405 406
|
||||
408: 6(float) Load 212(uf)
|
||||
409: 6(float) FMul 407 408
|
||||
410: 6(float) Load 212(uf)
|
||||
411: 6(float) FSub 409 410
|
||||
412: 6(float) Load 212(uf)
|
||||
413: 6(float) FDiv 411 412
|
||||
Store 188(f) 413
|
||||
414: 7(fvec4) Load 9(v)
|
||||
415: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 414
|
||||
416: 6(float) Load 188(f)
|
||||
417: 6(float) FAdd 416 415
|
||||
Store 188(f) 417
|
||||
418: 7(fvec4) Load 9(v)
|
||||
419: 7(fvec4) Load 9(v)
|
||||
420: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 418 419
|
||||
421: 6(float) Load 188(f)
|
||||
422: 6(float) FAdd 421 420
|
||||
Store 188(f) 422
|
||||
423: 7(fvec4) Load 9(v)
|
||||
424: 7(fvec4) Load 9(v)
|
||||
425: 6(float) Dot 423 424
|
||||
426: 6(float) Load 188(f)
|
||||
427: 6(float) FAdd 426 425
|
||||
Store 188(f) 427
|
||||
428: 6(float) Load 188(f)
|
||||
429: 6(float) Load 212(uf)
|
||||
430: 6(float) FMul 428 429
|
||||
431: 6(float) Load 188(f)
|
||||
432: 6(float) FAdd 431 430
|
||||
Store 188(f) 432
|
||||
434: 7(fvec4) Load 9(v)
|
||||
435: 433(fvec3) VectorShuffle 434 434 0 1 2
|
||||
436: 7(fvec4) Load 9(v)
|
||||
437: 433(fvec3) VectorShuffle 436 436 0 1 2
|
||||
438: 433(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 437
|
||||
439: 6(float) CompositeExtract 438 0
|
||||
440: 6(float) Load 188(f)
|
||||
441: 6(float) FAdd 440 439
|
||||
Store 188(f) 441
|
||||
442: 6(float) Load 188(f)
|
||||
443: 6(float) Load 212(uf)
|
||||
444: 178(bool) FOrdEqual 442 443
|
||||
445: 178(bool) LogicalNot 444
|
||||
SelectionMerge 447 None
|
||||
BranchConditional 445 446 447
|
||||
446: Label
|
||||
448: 6(float) Load 188(f)
|
||||
449: 6(float) Load 212(uf)
|
||||
450: 178(bool) FOrdNotEqual 448 449
|
||||
451: 6(float) Load 188(f)
|
||||
453: 178(bool) FOrdNotEqual 451 452
|
||||
454: 178(bool) LogicalAnd 450 453
|
||||
Branch 447
|
||||
447: Label
|
||||
455: 178(bool) Phi 444 401 454 446
|
||||
SelectionMerge 457 None
|
||||
BranchConditional 455 456 457
|
||||
456: Label
|
||||
458: 6(float) Load 188(f)
|
||||
460: 6(float) FAdd 458 459
|
||||
Store 188(f) 460
|
||||
Branch 457
|
||||
457: Label
|
||||
461: 18(int) Load 22(ui)
|
||||
462: 18(int) Load 20(i)
|
||||
463: 18(int) BitwiseAnd 462 461
|
||||
Store 20(i) 463
|
||||
465: 18(int) Load 20(i)
|
||||
466: 18(int) BitwiseOr 465 464
|
||||
Store 20(i) 466
|
||||
467: 18(int) Load 22(ui)
|
||||
468: 18(int) Load 20(i)
|
||||
469: 18(int) BitwiseXor 468 467
|
||||
Store 20(i) 469
|
||||
471: 18(int) Load 20(i)
|
||||
472: 18(int) SMod 471 470
|
||||
Store 20(i) 472
|
||||
473: 18(int) Load 20(i)
|
||||
474: 18(int) ShiftRightArithmetic 473 396
|
||||
Store 20(i) 474
|
||||
475: 18(int) Load 22(ui)
|
||||
476: 18(int) Load 20(i)
|
||||
477: 18(int) ShiftLeftLogical 476 475
|
||||
Store 20(i) 477
|
||||
478: 18(int) Load 20(i)
|
||||
479: 18(int) Not 478
|
||||
Store 20(i) 479
|
||||
480: 178(bool) Load 305(b)
|
||||
481: 178(bool) LogicalNot 480
|
||||
Store 305(b) 481
|
||||
485: 178(bool) Load 305(b)
|
||||
SelectionMerge 487 None
|
||||
BranchConditional 485 486 496
|
||||
486: Label
|
||||
488: 18(int) Load 20(i)
|
||||
489: 6(float) ConvertSToF 488
|
||||
490: 7(fvec4) CompositeConstruct 489 489 489 489
|
||||
491: 6(float) Load 188(f)
|
||||
492: 7(fvec4) CompositeConstruct 491 491 491 491
|
||||
493: 7(fvec4) FAdd 490 492
|
||||
494: 7(fvec4) Load 9(v)
|
||||
495: 7(fvec4) FAdd 493 494
|
||||
Store 484 495
|
||||
Branch 487
|
||||
496: Label
|
||||
497: 7(fvec4) Load 9(v)
|
||||
Store 484 497
|
||||
Branch 487
|
||||
487: Label
|
||||
498: 7(fvec4) Load 484
|
||||
Store 483(FragColor) 498
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -1,9 +1,473 @@
|
||||
spv.aggOps.frag
|
||||
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:6: varying deprecated in version 130; may be removed in future release
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Missing functionality: Composite comparison of non-vectors
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 380
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 16 41 90 376
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 8 "s1"
|
||||
MemberName 8(s1) 0 "i"
|
||||
MemberName 8(s1) 1 "f"
|
||||
Name 13 "a"
|
||||
Name 16 "u"
|
||||
Name 37 "b"
|
||||
Name 41 "w"
|
||||
Name 55 "s2"
|
||||
MemberName 55(s2) 0 "i"
|
||||
MemberName 55(s2) 1 "f"
|
||||
MemberName 55(s2) 2 "s1_1"
|
||||
Name 57 "foo2a"
|
||||
Name 59 "foo2b"
|
||||
Name 82 "v"
|
||||
Name 86 "samp2D"
|
||||
Name 90 "coord"
|
||||
Name 341 "s1"
|
||||
MemberName 341(s1) 0 "i"
|
||||
MemberName 341(s1) 1 "f"
|
||||
Name 342 "s2"
|
||||
MemberName 342(s2) 0 "i"
|
||||
MemberName 342(s2) 1 "f"
|
||||
MemberName 342(s2) 2 "s1_1"
|
||||
Name 343 "bn"
|
||||
MemberName 343(bn) 0 "foo2a"
|
||||
Name 345 "bi"
|
||||
Name 347 "s1"
|
||||
MemberName 347(s1) 0 "i"
|
||||
MemberName 347(s1) 1 "f"
|
||||
Name 348 "s2"
|
||||
MemberName 348(s2) 0 "i"
|
||||
MemberName 348(s2) 1 "f"
|
||||
MemberName 348(s2) 2 "s1_1"
|
||||
Name 376 "color"
|
||||
Name 379 "foo1"
|
||||
MemberDecorate 341(s1) 0 Offset 0
|
||||
MemberDecorate 341(s1) 1 Offset 4
|
||||
MemberDecorate 342(s2) 0 Offset 0
|
||||
MemberDecorate 342(s2) 1 Offset 4
|
||||
MemberDecorate 342(s2) 2 Offset 16
|
||||
MemberDecorate 343(bn) 0 Offset 0
|
||||
Decorate 343(bn) Block
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeFloat 32
|
||||
8(s1): TypeStruct 6(int) 7(float)
|
||||
9: TypeInt 32 0
|
||||
10: 9(int) Constant 3
|
||||
11: TypeArray 8(s1) 10
|
||||
12: TypePointer Function 11
|
||||
14: TypeVector 7(float) 4
|
||||
15: TypePointer Input 14(fvec4)
|
||||
16(u): 15(ptr) Variable Input
|
||||
17: 9(int) Constant 0
|
||||
18: TypePointer Input 7(float)
|
||||
22: 9(int) Constant 1
|
||||
26: 9(int) Constant 2
|
||||
33: 6(int) Constant 14
|
||||
34: 7(float) Constant 1096810496
|
||||
35: 8(s1) ConstantComposite 33 34
|
||||
38: 6(int) Constant 17
|
||||
39: 7(float) Constant 1099431936
|
||||
40: 8(s1) ConstantComposite 38 39
|
||||
41(w): 15(ptr) Variable Input
|
||||
55(s2): TypeStruct 6(int) 7(float) 8(s1)
|
||||
56: TypePointer UniformConstant 55(s2)
|
||||
57(foo2a): 56(ptr) Variable UniformConstant
|
||||
59(foo2b): 56(ptr) Variable UniformConstant
|
||||
61: TypeBool
|
||||
81: TypePointer Function 14(fvec4)
|
||||
83: TypeImage 7(float) 2D sampled format:Unknown
|
||||
84: TypeSampledImage 83
|
||||
85: TypePointer UniformConstant 84
|
||||
86(samp2D): 85(ptr) Variable UniformConstant
|
||||
88: TypeVector 7(float) 2
|
||||
89: TypePointer Input 88(fvec2)
|
||||
90(coord): 89(ptr) Variable Input
|
||||
95: 7(float) Constant 1073741824
|
||||
101: TypeVector 61(bool) 4
|
||||
106: 7(float) Constant 1077936128
|
||||
115: 7(float) Constant 1082130432
|
||||
121: TypeVector 61(bool) 2
|
||||
126: 7(float) Constant 1084227584
|
||||
232: 7(float) Constant 1086324736
|
||||
338: 7(float) Constant 1088421888
|
||||
341(s1): TypeStruct 6(int) 7(float)
|
||||
342(s2): TypeStruct 6(int) 7(float) 341(s1)
|
||||
343(bn): TypeStruct 342(s2)
|
||||
344: TypePointer Uniform 343(bn)
|
||||
345(bi): 344(ptr) Variable Uniform
|
||||
346: 6(int) Constant 0
|
||||
347(s1): TypeStruct 6(int) 7(float)
|
||||
348(s2): TypeStruct 6(int) 7(float) 347(s1)
|
||||
349: TypePointer Uniform 342(s2)
|
||||
372: 7(float) Constant 1090519040
|
||||
375: TypePointer Output 14(fvec4)
|
||||
376(color): 375(ptr) Variable Output
|
||||
378: TypePointer UniformConstant 8(s1)
|
||||
379(foo1): 378(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13(a): 12(ptr) Variable Function
|
||||
37(b): 12(ptr) Variable Function
|
||||
82(v): 81(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 16(u) 17
|
||||
20: 7(float) Load 19
|
||||
21: 6(int) ConvertFToS 20
|
||||
23: 18(ptr) AccessChain 16(u) 22
|
||||
24: 7(float) Load 23
|
||||
25: 8(s1) CompositeConstruct 21 24
|
||||
27: 18(ptr) AccessChain 16(u) 26
|
||||
28: 7(float) Load 27
|
||||
29: 6(int) ConvertFToS 28
|
||||
30: 18(ptr) AccessChain 16(u) 10
|
||||
31: 7(float) Load 30
|
||||
32: 8(s1) CompositeConstruct 29 31
|
||||
36: 11 CompositeConstruct 25 32 35
|
||||
Store 13(a) 36
|
||||
42: 18(ptr) AccessChain 41(w) 17
|
||||
43: 7(float) Load 42
|
||||
44: 6(int) ConvertFToS 43
|
||||
45: 18(ptr) AccessChain 41(w) 22
|
||||
46: 7(float) Load 45
|
||||
47: 8(s1) CompositeConstruct 44 46
|
||||
48: 18(ptr) AccessChain 41(w) 26
|
||||
49: 7(float) Load 48
|
||||
50: 6(int) ConvertFToS 49
|
||||
51: 18(ptr) AccessChain 41(w) 10
|
||||
52: 7(float) Load 51
|
||||
53: 8(s1) CompositeConstruct 50 52
|
||||
54: 11 CompositeConstruct 40 47 53
|
||||
Store 37(b) 54
|
||||
58: 55(s2) Load 57(foo2a)
|
||||
60: 55(s2) Load 59(foo2b)
|
||||
62: 6(int) CompositeExtract 58 0
|
||||
63: 6(int) CompositeExtract 60 0
|
||||
64: 61(bool) IEqual 62 63
|
||||
65: 7(float) CompositeExtract 58 1
|
||||
66: 7(float) CompositeExtract 60 1
|
||||
67: 61(bool) FOrdEqual 65 66
|
||||
68: 61(bool) LogicalAnd 64 67
|
||||
69: 8(s1) CompositeExtract 58 2
|
||||
70: 8(s1) CompositeExtract 60 2
|
||||
71: 6(int) CompositeExtract 69 0
|
||||
72: 6(int) CompositeExtract 70 0
|
||||
73: 61(bool) IEqual 71 72
|
||||
74: 7(float) CompositeExtract 69 1
|
||||
75: 7(float) CompositeExtract 70 1
|
||||
76: 61(bool) FOrdEqual 74 75
|
||||
77: 61(bool) LogicalAnd 73 76
|
||||
78: 61(bool) LogicalAnd 68 77
|
||||
SelectionMerge 80 None
|
||||
BranchConditional 78 79 93
|
||||
79: Label
|
||||
87: 84 Load 86(samp2D)
|
||||
91: 88(fvec2) Load 90(coord)
|
||||
92: 14(fvec4) ImageSampleImplicitLod 87 91
|
||||
Store 82(v) 92
|
||||
Branch 80
|
||||
93: Label
|
||||
94: 84 Load 86(samp2D)
|
||||
96: 88(fvec2) Load 90(coord)
|
||||
97: 88(fvec2) VectorTimesScalar 96 95
|
||||
98: 14(fvec4) ImageSampleImplicitLod 94 97
|
||||
Store 82(v) 98
|
||||
Branch 80
|
||||
80: Label
|
||||
99: 14(fvec4) Load 16(u)
|
||||
100: 14(fvec4) Load 82(v)
|
||||
102: 101(bvec4) FOrdEqual 99 100
|
||||
103: 61(bool) All 102
|
||||
SelectionMerge 105 None
|
||||
BranchConditional 103 104 105
|
||||
104: Label
|
||||
107: 14(fvec4) Load 82(v)
|
||||
108: 14(fvec4) VectorTimesScalar 107 106
|
||||
Store 82(v) 108
|
||||
Branch 105
|
||||
105: Label
|
||||
109: 14(fvec4) Load 16(u)
|
||||
110: 14(fvec4) Load 82(v)
|
||||
111: 101(bvec4) FOrdNotEqual 109 110
|
||||
112: 61(bool) Any 111
|
||||
SelectionMerge 114 None
|
||||
BranchConditional 112 113 114
|
||||
113: Label
|
||||
116: 14(fvec4) Load 82(v)
|
||||
117: 14(fvec4) VectorTimesScalar 116 115
|
||||
Store 82(v) 117
|
||||
Branch 114
|
||||
114: Label
|
||||
118: 88(fvec2) Load 90(coord)
|
||||
119: 14(fvec4) Load 82(v)
|
||||
120: 88(fvec2) VectorShuffle 119 119 1 3
|
||||
122: 121(bvec2) FOrdEqual 118 120
|
||||
123: 61(bool) All 122
|
||||
SelectionMerge 125 None
|
||||
BranchConditional 123 124 125
|
||||
124: Label
|
||||
127: 14(fvec4) Load 82(v)
|
||||
128: 14(fvec4) VectorTimesScalar 127 126
|
||||
Store 82(v) 128
|
||||
Branch 125
|
||||
125: Label
|
||||
129: 11 Load 13(a)
|
||||
130: 11 Load 37(b)
|
||||
131: 8(s1) CompositeExtract 129 0
|
||||
132: 8(s1) CompositeExtract 130 0
|
||||
133: 6(int) CompositeExtract 131 0
|
||||
134: 6(int) CompositeExtract 132 0
|
||||
135: 61(bool) IEqual 133 134
|
||||
136: 7(float) CompositeExtract 131 1
|
||||
137: 7(float) CompositeExtract 132 1
|
||||
138: 61(bool) FOrdEqual 136 137
|
||||
139: 61(bool) LogicalAnd 135 138
|
||||
140: 8(s1) CompositeExtract 129 1
|
||||
141: 8(s1) CompositeExtract 130 1
|
||||
142: 6(int) CompositeExtract 140 0
|
||||
143: 6(int) CompositeExtract 141 0
|
||||
144: 61(bool) IEqual 142 143
|
||||
145: 7(float) CompositeExtract 140 1
|
||||
146: 7(float) CompositeExtract 141 1
|
||||
147: 61(bool) FOrdEqual 145 146
|
||||
148: 61(bool) LogicalAnd 144 147
|
||||
149: 61(bool) LogicalAnd 139 148
|
||||
150: 8(s1) CompositeExtract 129 2
|
||||
151: 8(s1) CompositeExtract 130 2
|
||||
152: 6(int) CompositeExtract 150 0
|
||||
153: 6(int) CompositeExtract 151 0
|
||||
154: 61(bool) IEqual 152 153
|
||||
155: 7(float) CompositeExtract 150 1
|
||||
156: 7(float) CompositeExtract 151 1
|
||||
157: 61(bool) FOrdEqual 155 156
|
||||
158: 61(bool) LogicalAnd 154 157
|
||||
159: 61(bool) LogicalAnd 149 158
|
||||
160: 8(s1) CompositeExtract 129 3
|
||||
161: 8(s1) CompositeExtract 130 3
|
||||
162: 6(int) CompositeExtract 160 0
|
||||
163: 6(int) CompositeExtract 161 0
|
||||
164: 61(bool) IEqual 162 163
|
||||
165: 7(float) CompositeExtract 160 1
|
||||
166: 7(float) CompositeExtract 161 1
|
||||
167: 61(bool) FOrdEqual 165 166
|
||||
168: 61(bool) LogicalAnd 164 167
|
||||
169: 61(bool) LogicalAnd 159 168
|
||||
170: 8(s1) CompositeExtract 129 4
|
||||
171: 8(s1) CompositeExtract 130 4
|
||||
172: 6(int) CompositeExtract 170 0
|
||||
173: 6(int) CompositeExtract 171 0
|
||||
174: 61(bool) IEqual 172 173
|
||||
175: 7(float) CompositeExtract 170 1
|
||||
176: 7(float) CompositeExtract 171 1
|
||||
177: 61(bool) FOrdEqual 175 176
|
||||
178: 61(bool) LogicalAnd 174 177
|
||||
179: 61(bool) LogicalAnd 169 178
|
||||
180: 8(s1) CompositeExtract 129 5
|
||||
181: 8(s1) CompositeExtract 130 5
|
||||
182: 6(int) CompositeExtract 180 0
|
||||
183: 6(int) CompositeExtract 181 0
|
||||
184: 61(bool) IEqual 182 183
|
||||
185: 7(float) CompositeExtract 180 1
|
||||
186: 7(float) CompositeExtract 181 1
|
||||
187: 61(bool) FOrdEqual 185 186
|
||||
188: 61(bool) LogicalAnd 184 187
|
||||
189: 61(bool) LogicalAnd 179 188
|
||||
190: 8(s1) CompositeExtract 129 6
|
||||
191: 8(s1) CompositeExtract 130 6
|
||||
192: 6(int) CompositeExtract 190 0
|
||||
193: 6(int) CompositeExtract 191 0
|
||||
194: 61(bool) IEqual 192 193
|
||||
195: 7(float) CompositeExtract 190 1
|
||||
196: 7(float) CompositeExtract 191 1
|
||||
197: 61(bool) FOrdEqual 195 196
|
||||
198: 61(bool) LogicalAnd 194 197
|
||||
199: 61(bool) LogicalAnd 189 198
|
||||
200: 8(s1) CompositeExtract 129 7
|
||||
201: 8(s1) CompositeExtract 130 7
|
||||
202: 6(int) CompositeExtract 200 0
|
||||
203: 6(int) CompositeExtract 201 0
|
||||
204: 61(bool) IEqual 202 203
|
||||
205: 7(float) CompositeExtract 200 1
|
||||
206: 7(float) CompositeExtract 201 1
|
||||
207: 61(bool) FOrdEqual 205 206
|
||||
208: 61(bool) LogicalAnd 204 207
|
||||
209: 61(bool) LogicalAnd 199 208
|
||||
210: 8(s1) CompositeExtract 129 8
|
||||
211: 8(s1) CompositeExtract 130 8
|
||||
212: 6(int) CompositeExtract 210 0
|
||||
213: 6(int) CompositeExtract 211 0
|
||||
214: 61(bool) IEqual 212 213
|
||||
215: 7(float) CompositeExtract 210 1
|
||||
216: 7(float) CompositeExtract 211 1
|
||||
217: 61(bool) FOrdEqual 215 216
|
||||
218: 61(bool) LogicalAnd 214 217
|
||||
219: 61(bool) LogicalAnd 209 218
|
||||
220: 8(s1) CompositeExtract 129 9
|
||||
221: 8(s1) CompositeExtract 130 9
|
||||
222: 6(int) CompositeExtract 220 0
|
||||
223: 6(int) CompositeExtract 221 0
|
||||
224: 61(bool) IEqual 222 223
|
||||
225: 7(float) CompositeExtract 220 1
|
||||
226: 7(float) CompositeExtract 221 1
|
||||
227: 61(bool) FOrdEqual 225 226
|
||||
228: 61(bool) LogicalAnd 224 227
|
||||
229: 61(bool) LogicalAnd 219 228
|
||||
SelectionMerge 231 None
|
||||
BranchConditional 229 230 231
|
||||
230: Label
|
||||
233: 14(fvec4) Load 82(v)
|
||||
234: 14(fvec4) VectorTimesScalar 233 232
|
||||
Store 82(v) 234
|
||||
Branch 231
|
||||
231: Label
|
||||
235: 11 Load 13(a)
|
||||
236: 11 Load 37(b)
|
||||
237: 8(s1) CompositeExtract 235 0
|
||||
238: 8(s1) CompositeExtract 236 0
|
||||
239: 6(int) CompositeExtract 237 0
|
||||
240: 6(int) CompositeExtract 238 0
|
||||
241: 61(bool) INotEqual 239 240
|
||||
242: 7(float) CompositeExtract 237 1
|
||||
243: 7(float) CompositeExtract 238 1
|
||||
244: 61(bool) FOrdNotEqual 242 243
|
||||
245: 61(bool) LogicalOr 241 244
|
||||
246: 8(s1) CompositeExtract 235 1
|
||||
247: 8(s1) CompositeExtract 236 1
|
||||
248: 6(int) CompositeExtract 246 0
|
||||
249: 6(int) CompositeExtract 247 0
|
||||
250: 61(bool) INotEqual 248 249
|
||||
251: 7(float) CompositeExtract 246 1
|
||||
252: 7(float) CompositeExtract 247 1
|
||||
253: 61(bool) FOrdNotEqual 251 252
|
||||
254: 61(bool) LogicalOr 250 253
|
||||
255: 61(bool) LogicalOr 245 254
|
||||
256: 8(s1) CompositeExtract 235 2
|
||||
257: 8(s1) CompositeExtract 236 2
|
||||
258: 6(int) CompositeExtract 256 0
|
||||
259: 6(int) CompositeExtract 257 0
|
||||
260: 61(bool) INotEqual 258 259
|
||||
261: 7(float) CompositeExtract 256 1
|
||||
262: 7(float) CompositeExtract 257 1
|
||||
263: 61(bool) FOrdNotEqual 261 262
|
||||
264: 61(bool) LogicalOr 260 263
|
||||
265: 61(bool) LogicalOr 255 264
|
||||
266: 8(s1) CompositeExtract 235 3
|
||||
267: 8(s1) CompositeExtract 236 3
|
||||
268: 6(int) CompositeExtract 266 0
|
||||
269: 6(int) CompositeExtract 267 0
|
||||
270: 61(bool) INotEqual 268 269
|
||||
271: 7(float) CompositeExtract 266 1
|
||||
272: 7(float) CompositeExtract 267 1
|
||||
273: 61(bool) FOrdNotEqual 271 272
|
||||
274: 61(bool) LogicalOr 270 273
|
||||
275: 61(bool) LogicalOr 265 274
|
||||
276: 8(s1) CompositeExtract 235 4
|
||||
277: 8(s1) CompositeExtract 236 4
|
||||
278: 6(int) CompositeExtract 276 0
|
||||
279: 6(int) CompositeExtract 277 0
|
||||
280: 61(bool) INotEqual 278 279
|
||||
281: 7(float) CompositeExtract 276 1
|
||||
282: 7(float) CompositeExtract 277 1
|
||||
283: 61(bool) FOrdNotEqual 281 282
|
||||
284: 61(bool) LogicalOr 280 283
|
||||
285: 61(bool) LogicalOr 275 284
|
||||
286: 8(s1) CompositeExtract 235 5
|
||||
287: 8(s1) CompositeExtract 236 5
|
||||
288: 6(int) CompositeExtract 286 0
|
||||
289: 6(int) CompositeExtract 287 0
|
||||
290: 61(bool) INotEqual 288 289
|
||||
291: 7(float) CompositeExtract 286 1
|
||||
292: 7(float) CompositeExtract 287 1
|
||||
293: 61(bool) FOrdNotEqual 291 292
|
||||
294: 61(bool) LogicalOr 290 293
|
||||
295: 61(bool) LogicalOr 285 294
|
||||
296: 8(s1) CompositeExtract 235 6
|
||||
297: 8(s1) CompositeExtract 236 6
|
||||
298: 6(int) CompositeExtract 296 0
|
||||
299: 6(int) CompositeExtract 297 0
|
||||
300: 61(bool) INotEqual 298 299
|
||||
301: 7(float) CompositeExtract 296 1
|
||||
302: 7(float) CompositeExtract 297 1
|
||||
303: 61(bool) FOrdNotEqual 301 302
|
||||
304: 61(bool) LogicalOr 300 303
|
||||
305: 61(bool) LogicalOr 295 304
|
||||
306: 8(s1) CompositeExtract 235 7
|
||||
307: 8(s1) CompositeExtract 236 7
|
||||
308: 6(int) CompositeExtract 306 0
|
||||
309: 6(int) CompositeExtract 307 0
|
||||
310: 61(bool) INotEqual 308 309
|
||||
311: 7(float) CompositeExtract 306 1
|
||||
312: 7(float) CompositeExtract 307 1
|
||||
313: 61(bool) FOrdNotEqual 311 312
|
||||
314: 61(bool) LogicalOr 310 313
|
||||
315: 61(bool) LogicalOr 305 314
|
||||
316: 8(s1) CompositeExtract 235 8
|
||||
317: 8(s1) CompositeExtract 236 8
|
||||
318: 6(int) CompositeExtract 316 0
|
||||
319: 6(int) CompositeExtract 317 0
|
||||
320: 61(bool) INotEqual 318 319
|
||||
321: 7(float) CompositeExtract 316 1
|
||||
322: 7(float) CompositeExtract 317 1
|
||||
323: 61(bool) FOrdNotEqual 321 322
|
||||
324: 61(bool) LogicalOr 320 323
|
||||
325: 61(bool) LogicalOr 315 324
|
||||
326: 8(s1) CompositeExtract 235 9
|
||||
327: 8(s1) CompositeExtract 236 9
|
||||
328: 6(int) CompositeExtract 326 0
|
||||
329: 6(int) CompositeExtract 327 0
|
||||
330: 61(bool) INotEqual 328 329
|
||||
331: 7(float) CompositeExtract 326 1
|
||||
332: 7(float) CompositeExtract 327 1
|
||||
333: 61(bool) FOrdNotEqual 331 332
|
||||
334: 61(bool) LogicalOr 330 333
|
||||
335: 61(bool) LogicalOr 325 334
|
||||
SelectionMerge 337 None
|
||||
BranchConditional 335 336 337
|
||||
336: Label
|
||||
339: 14(fvec4) Load 82(v)
|
||||
340: 14(fvec4) VectorTimesScalar 339 338
|
||||
Store 82(v) 340
|
||||
Branch 337
|
||||
337: Label
|
||||
350: 349(ptr) AccessChain 345(bi) 346
|
||||
351: 342(s2) Load 350
|
||||
352: 55(s2) Load 57(foo2a)
|
||||
353: 6(int) CompositeExtract 351 0
|
||||
354: 6(int) CompositeExtract 352 0
|
||||
355: 61(bool) INotEqual 353 354
|
||||
356: 7(float) CompositeExtract 351 1
|
||||
357: 7(float) CompositeExtract 352 1
|
||||
358: 61(bool) FOrdNotEqual 356 357
|
||||
359: 61(bool) LogicalOr 355 358
|
||||
360: 341(s1) CompositeExtract 351 2
|
||||
361: 8(s1) CompositeExtract 352 2
|
||||
362: 6(int) CompositeExtract 360 0
|
||||
363: 6(int) CompositeExtract 361 0
|
||||
364: 61(bool) INotEqual 362 363
|
||||
365: 7(float) CompositeExtract 360 1
|
||||
366: 7(float) CompositeExtract 361 1
|
||||
367: 61(bool) FOrdNotEqual 365 366
|
||||
368: 61(bool) LogicalOr 364 367
|
||||
369: 61(bool) LogicalOr 359 368
|
||||
SelectionMerge 371 None
|
||||
BranchConditional 369 370 371
|
||||
370: Label
|
||||
373: 14(fvec4) Load 82(v)
|
||||
374: 14(fvec4) VectorTimesScalar 373 372
|
||||
Store 82(v) 374
|
||||
Branch 371
|
||||
371: Label
|
||||
377: 14(fvec4) Load 82(v)
|
||||
Store 376(color) 377
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 21
|
||||
EntryPoint Fragment 4 "main" 21 59
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 21
|
||||
EntryPoint Fragment 4 "main" 21 38
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
Name 4 "main"
|
||||
|
||||
232
Test/baseResults/spv.bitCast.frag.out
Normal file
232
Test/baseResults/spv.bitCast.frag.out
Normal file
@@ -0,0 +1,232 @@
|
||||
spv.bitCast.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 172
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 154
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "idata"
|
||||
Name 14 "f1"
|
||||
Name 26 "f2"
|
||||
Name 37 "f3"
|
||||
Name 48 "f4"
|
||||
Name 55 "udata"
|
||||
Name 85 "fdata"
|
||||
Name 89 "i1"
|
||||
Name 98 "i2"
|
||||
Name 107 "i3"
|
||||
Name 116 "i4"
|
||||
Name 122 "u1"
|
||||
Name 130 "u2"
|
||||
Name 139 "u3"
|
||||
Name 148 "u4"
|
||||
Name 154 "fragColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeVector 6(int) 4
|
||||
8: TypePointer Function 7(ivec4)
|
||||
10: 6(int) Constant 0
|
||||
11: 7(ivec4) ConstantComposite 10 10 10 10
|
||||
12: TypeFloat 32
|
||||
13: TypePointer UniformConstant 12(float)
|
||||
14(f1): 13(ptr) Variable UniformConstant
|
||||
17: TypeInt 32 0
|
||||
18: 17(int) Constant 0
|
||||
19: TypePointer Function 6(int)
|
||||
24: TypeVector 12(float) 2
|
||||
25: TypePointer UniformConstant 24(fvec2)
|
||||
26(f2): 25(ptr) Variable UniformConstant
|
||||
28: TypeVector 6(int) 2
|
||||
35: TypeVector 12(float) 3
|
||||
36: TypePointer UniformConstant 35(fvec3)
|
||||
37(f3): 36(ptr) Variable UniformConstant
|
||||
39: TypeVector 6(int) 3
|
||||
46: TypeVector 12(float) 4
|
||||
47: TypePointer UniformConstant 46(fvec4)
|
||||
48(f4): 47(ptr) Variable UniformConstant
|
||||
53: TypeVector 17(int) 4
|
||||
54: TypePointer Function 53(ivec4)
|
||||
56: 53(ivec4) ConstantComposite 18 18 18 18
|
||||
59: TypePointer Function 17(int)
|
||||
65: TypeVector 17(int) 2
|
||||
73: TypeVector 17(int) 3
|
||||
84: TypePointer Function 46(fvec4)
|
||||
86: 12(float) Constant 0
|
||||
87: 46(fvec4) ConstantComposite 86 86 86 86
|
||||
88: TypePointer UniformConstant 6(int)
|
||||
89(i1): 88(ptr) Variable UniformConstant
|
||||
92: TypePointer Function 12(float)
|
||||
97: TypePointer UniformConstant 28(ivec2)
|
||||
98(i2): 97(ptr) Variable UniformConstant
|
||||
106: TypePointer UniformConstant 39(ivec3)
|
||||
107(i3): 106(ptr) Variable UniformConstant
|
||||
115: TypePointer UniformConstant 7(ivec4)
|
||||
116(i4): 115(ptr) Variable UniformConstant
|
||||
121: TypePointer UniformConstant 17(int)
|
||||
122(u1): 121(ptr) Variable UniformConstant
|
||||
129: TypePointer UniformConstant 65(ivec2)
|
||||
130(u2): 129(ptr) Variable UniformConstant
|
||||
138: TypePointer UniformConstant 73(ivec3)
|
||||
139(u3): 138(ptr) Variable UniformConstant
|
||||
147: TypePointer UniformConstant 53(ivec4)
|
||||
148(u4): 147(ptr) Variable UniformConstant
|
||||
153: TypePointer Output 46(fvec4)
|
||||
154(fragColor): 153(ptr) Variable Output
|
||||
159: TypeBool
|
||||
160: TypeVector 159(bool) 4
|
||||
168: 12(float) Constant 1045220557
|
||||
169: 46(fvec4) ConstantComposite 168 168 168 168
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(idata): 8(ptr) Variable Function
|
||||
55(udata): 54(ptr) Variable Function
|
||||
85(fdata): 84(ptr) Variable Function
|
||||
155: 84(ptr) Variable Function
|
||||
Store 9(idata) 11
|
||||
15: 12(float) Load 14(f1)
|
||||
16: 6(int) Bitcast 15
|
||||
20: 19(ptr) AccessChain 9(idata) 18
|
||||
21: 6(int) Load 20
|
||||
22: 6(int) IAdd 21 16
|
||||
23: 19(ptr) AccessChain 9(idata) 18
|
||||
Store 23 22
|
||||
27: 24(fvec2) Load 26(f2)
|
||||
29: 28(ivec2) Bitcast 27
|
||||
30: 7(ivec4) Load 9(idata)
|
||||
31: 28(ivec2) VectorShuffle 30 30 0 1
|
||||
32: 28(ivec2) IAdd 31 29
|
||||
33: 7(ivec4) Load 9(idata)
|
||||
34: 7(ivec4) VectorShuffle 33 32 4 5 2 3
|
||||
Store 9(idata) 34
|
||||
38: 35(fvec3) Load 37(f3)
|
||||
40: 39(ivec3) Bitcast 38
|
||||
41: 7(ivec4) Load 9(idata)
|
||||
42: 39(ivec3) VectorShuffle 41 41 0 1 2
|
||||
43: 39(ivec3) IAdd 42 40
|
||||
44: 7(ivec4) Load 9(idata)
|
||||
45: 7(ivec4) VectorShuffle 44 43 4 5 6 3
|
||||
Store 9(idata) 45
|
||||
49: 46(fvec4) Load 48(f4)
|
||||
50: 7(ivec4) Bitcast 49
|
||||
51: 7(ivec4) Load 9(idata)
|
||||
52: 7(ivec4) IAdd 51 50
|
||||
Store 9(idata) 52
|
||||
Store 55(udata) 56
|
||||
57: 12(float) Load 14(f1)
|
||||
58: 17(int) Bitcast 57
|
||||
60: 59(ptr) AccessChain 55(udata) 18
|
||||
61: 17(int) Load 60
|
||||
62: 17(int) IAdd 61 58
|
||||
63: 59(ptr) AccessChain 55(udata) 18
|
||||
Store 63 62
|
||||
64: 24(fvec2) Load 26(f2)
|
||||
66: 65(ivec2) Bitcast 64
|
||||
67: 53(ivec4) Load 55(udata)
|
||||
68: 65(ivec2) VectorShuffle 67 67 0 1
|
||||
69: 65(ivec2) IAdd 68 66
|
||||
70: 53(ivec4) Load 55(udata)
|
||||
71: 53(ivec4) VectorShuffle 70 69 4 5 2 3
|
||||
Store 55(udata) 71
|
||||
72: 35(fvec3) Load 37(f3)
|
||||
74: 73(ivec3) Bitcast 72
|
||||
75: 53(ivec4) Load 55(udata)
|
||||
76: 73(ivec3) VectorShuffle 75 75 0 1 2
|
||||
77: 73(ivec3) IAdd 76 74
|
||||
78: 53(ivec4) Load 55(udata)
|
||||
79: 53(ivec4) VectorShuffle 78 77 4 5 6 3
|
||||
Store 55(udata) 79
|
||||
80: 46(fvec4) Load 48(f4)
|
||||
81: 53(ivec4) Bitcast 80
|
||||
82: 53(ivec4) Load 55(udata)
|
||||
83: 53(ivec4) IAdd 82 81
|
||||
Store 55(udata) 83
|
||||
Store 85(fdata) 87
|
||||
90: 6(int) Load 89(i1)
|
||||
91: 12(float) Bitcast 90
|
||||
93: 92(ptr) AccessChain 85(fdata) 18
|
||||
94: 12(float) Load 93
|
||||
95: 12(float) FAdd 94 91
|
||||
96: 92(ptr) AccessChain 85(fdata) 18
|
||||
Store 96 95
|
||||
99: 28(ivec2) Load 98(i2)
|
||||
100: 24(fvec2) Bitcast 99
|
||||
101: 46(fvec4) Load 85(fdata)
|
||||
102: 24(fvec2) VectorShuffle 101 101 0 1
|
||||
103: 24(fvec2) FAdd 102 100
|
||||
104: 46(fvec4) Load 85(fdata)
|
||||
105: 46(fvec4) VectorShuffle 104 103 4 5 2 3
|
||||
Store 85(fdata) 105
|
||||
108: 39(ivec3) Load 107(i3)
|
||||
109: 35(fvec3) Bitcast 108
|
||||
110: 46(fvec4) Load 85(fdata)
|
||||
111: 35(fvec3) VectorShuffle 110 110 0 1 2
|
||||
112: 35(fvec3) FAdd 111 109
|
||||
113: 46(fvec4) Load 85(fdata)
|
||||
114: 46(fvec4) VectorShuffle 113 112 4 5 6 3
|
||||
Store 85(fdata) 114
|
||||
117: 7(ivec4) Load 116(i4)
|
||||
118: 46(fvec4) Bitcast 117
|
||||
119: 46(fvec4) Load 85(fdata)
|
||||
120: 46(fvec4) FAdd 119 118
|
||||
Store 85(fdata) 120
|
||||
123: 17(int) Load 122(u1)
|
||||
124: 12(float) Bitcast 123
|
||||
125: 92(ptr) AccessChain 85(fdata) 18
|
||||
126: 12(float) Load 125
|
||||
127: 12(float) FAdd 126 124
|
||||
128: 92(ptr) AccessChain 85(fdata) 18
|
||||
Store 128 127
|
||||
131: 65(ivec2) Load 130(u2)
|
||||
132: 24(fvec2) Bitcast 131
|
||||
133: 46(fvec4) Load 85(fdata)
|
||||
134: 24(fvec2) VectorShuffle 133 133 0 1
|
||||
135: 24(fvec2) FAdd 134 132
|
||||
136: 46(fvec4) Load 85(fdata)
|
||||
137: 46(fvec4) VectorShuffle 136 135 4 5 2 3
|
||||
Store 85(fdata) 137
|
||||
140: 73(ivec3) Load 139(u3)
|
||||
141: 35(fvec3) Bitcast 140
|
||||
142: 46(fvec4) Load 85(fdata)
|
||||
143: 35(fvec3) VectorShuffle 142 142 0 1 2
|
||||
144: 35(fvec3) FAdd 143 141
|
||||
145: 46(fvec4) Load 85(fdata)
|
||||
146: 46(fvec4) VectorShuffle 145 144 4 5 6 3
|
||||
Store 85(fdata) 146
|
||||
149: 53(ivec4) Load 148(u4)
|
||||
150: 46(fvec4) Bitcast 149
|
||||
151: 46(fvec4) Load 85(fdata)
|
||||
152: 46(fvec4) FAdd 151 150
|
||||
Store 85(fdata) 152
|
||||
156: 7(ivec4) Load 9(idata)
|
||||
157: 53(ivec4) Bitcast 156
|
||||
158: 53(ivec4) Load 55(udata)
|
||||
161: 160(bvec4) IEqual 157 158
|
||||
162: 159(bool) All 161
|
||||
SelectionMerge 164 None
|
||||
BranchConditional 162 163 166
|
||||
163: Label
|
||||
165: 46(fvec4) Load 85(fdata)
|
||||
Store 155 165
|
||||
Branch 164
|
||||
166: Label
|
||||
167: 46(fvec4) Load 85(fdata)
|
||||
170: 46(fvec4) FAdd 167 169
|
||||
Store 155 170
|
||||
Branch 164
|
||||
164: Label
|
||||
171: 46(fvec4) Load 155
|
||||
Store 154(fragColor) 171
|
||||
Return
|
||||
FunctionEnd
|
||||
98
Test/baseResults/spv.bool.vert.out
Normal file
98
Test/baseResults/spv.bool.vert.out
Normal file
@@ -0,0 +1,98 @@
|
||||
spv.bool.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 49
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 23 47 48
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 10 "foo(b1;"
|
||||
Name 9 "b"
|
||||
Name 21 "gl_PerVertex"
|
||||
MemberName 21(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 21(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 21(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
MemberName 21(gl_PerVertex) 3 "gl_CullDistance"
|
||||
Name 23 ""
|
||||
Name 28 "ubname"
|
||||
MemberName 28(ubname) 0 "b"
|
||||
Name 30 "ubinst"
|
||||
Name 31 "param"
|
||||
Name 47 "gl_VertexID"
|
||||
Name 48 "gl_InstanceID"
|
||||
MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance
|
||||
Decorate 21(gl_PerVertex) Block
|
||||
Decorate 28(ubname) GLSLShared
|
||||
Decorate 28(ubname) Block
|
||||
Decorate 47(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 48(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeBool
|
||||
7: TypePointer Function 6(bool)
|
||||
8: TypeFunction 6(bool) 7(ptr)
|
||||
13: 6(bool) ConstantFalse
|
||||
16: TypeFloat 32
|
||||
17: TypeVector 16(float) 4
|
||||
18: TypeInt 32 0
|
||||
19: 18(int) Constant 1
|
||||
20: TypeArray 16(float) 19
|
||||
21(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 20 20
|
||||
22: TypePointer Output 21(gl_PerVertex)
|
||||
23: 22(ptr) Variable Output
|
||||
24: TypeInt 32 1
|
||||
25: 24(int) Constant 0
|
||||
26: TypePointer Function 17(fvec4)
|
||||
28(ubname): TypeStruct 6(bool)
|
||||
29: TypePointer Uniform 28(ubname)
|
||||
30(ubinst): 29(ptr) Variable Uniform
|
||||
32: TypePointer Uniform 6(bool)
|
||||
38: 16(float) Constant 0
|
||||
39: 17(fvec4) ConstantComposite 38 38 38 38
|
||||
41: 16(float) Constant 1065353216
|
||||
42: 17(fvec4) ConstantComposite 41 41 41 41
|
||||
44: TypePointer Output 17(fvec4)
|
||||
46: TypePointer Input 24(int)
|
||||
47(gl_VertexID): 46(ptr) Variable Input
|
||||
48(gl_InstanceID): 46(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
27: 26(ptr) Variable Function
|
||||
31(param): 7(ptr) Variable Function
|
||||
33: 32(ptr) AccessChain 30(ubinst) 25
|
||||
34: 6(bool) Load 33
|
||||
Store 31(param) 34
|
||||
35: 6(bool) FunctionCall 10(foo(b1;) 31(param)
|
||||
SelectionMerge 37 None
|
||||
BranchConditional 35 36 40
|
||||
36: Label
|
||||
Store 27 39
|
||||
Branch 37
|
||||
40: Label
|
||||
Store 27 42
|
||||
Branch 37
|
||||
37: Label
|
||||
43: 17(fvec4) Load 27
|
||||
45: 44(ptr) AccessChain 23 25
|
||||
Store 45 43
|
||||
Return
|
||||
FunctionEnd
|
||||
10(foo(b1;): 6(bool) Function None 8
|
||||
9(b): 7(ptr) FunctionParameter
|
||||
11: Label
|
||||
12: 6(bool) Load 9(b)
|
||||
14: 6(bool) INotEqual 12 13
|
||||
ReturnValue 14
|
||||
FunctionEnd
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 17
|
||||
EntryPoint Fragment 4 "main" 17 34
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 39 446 448 157 53 450 452 454
|
||||
EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 16
|
||||
EntryPoint Fragment 4 "main" 12 16
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 18
|
||||
EntryPoint Fragment 4 "main" 12 18
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -13,7 +13,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 27 24 38
|
||||
EntryPoint Vertex 4 "main" 24 27 33 38
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
Name 8 "i"
|
||||
|
||||
@@ -3,4 +3,206 @@ spv.deepRvalue.frag
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Missing functionality: binary operation on matrix
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 155
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 149
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 330
|
||||
Name 4 "main"
|
||||
Name 9 "v1"
|
||||
Name 15 "v2"
|
||||
Name 21 "v3"
|
||||
Name 27 "v4"
|
||||
Name 35 "m"
|
||||
Name 63 "mm"
|
||||
Name 80 "f"
|
||||
Name 87 "g"
|
||||
Name 106 "h"
|
||||
Name 107 "i"
|
||||
Name 111 "samp2D"
|
||||
Name 134 "str"
|
||||
MemberName 134(str) 0 "a"
|
||||
MemberName 134(str) 1 "b"
|
||||
MemberName 134(str) 2 "c"
|
||||
Name 136 "t"
|
||||
Name 149 "gl_FragColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Private 7(fvec4)
|
||||
9(v1): 8(ptr) Variable Private
|
||||
10: 6(float) Constant 1073741824
|
||||
11: 6(float) Constant 1077936128
|
||||
12: 6(float) Constant 1084227584
|
||||
13: 6(float) Constant 1088421888
|
||||
14: 7(fvec4) ConstantComposite 10 11 12 13
|
||||
15(v2): 8(ptr) Variable Private
|
||||
16: 6(float) Constant 1093664768
|
||||
17: 6(float) Constant 1095761920
|
||||
18: 6(float) Constant 1099431936
|
||||
19: 6(float) Constant 1100480512
|
||||
20: 7(fvec4) ConstantComposite 16 17 18 19
|
||||
21(v3): 8(ptr) Variable Private
|
||||
22: 6(float) Constant 1102577664
|
||||
23: 6(float) Constant 1105723392
|
||||
24: 6(float) Constant 1106771968
|
||||
25: 6(float) Constant 1108606976
|
||||
26: 7(fvec4) ConstantComposite 22 23 24 25
|
||||
27(v4): 8(ptr) Variable Private
|
||||
28: 6(float) Constant 1109655552
|
||||
29: 6(float) Constant 1110179840
|
||||
30: 6(float) Constant 1111228416
|
||||
31: 6(float) Constant 1112801280
|
||||
32: 7(fvec4) ConstantComposite 28 29 30 31
|
||||
33: TypeMatrix 7(fvec4) 4
|
||||
34: TypePointer Function 33
|
||||
40: 6(float) Constant 1065353216
|
||||
41: 6(float) Constant 0
|
||||
79: TypePointer Function 6(float)
|
||||
81: TypeInt 32 1
|
||||
82: 81(int) Constant 1
|
||||
83: TypeInt 32 0
|
||||
84: 83(int) Constant 3
|
||||
103: 81(int) Constant 2
|
||||
104: 83(int) Constant 1
|
||||
108: TypeImage 6(float) 2D sampled format:Unknown
|
||||
109: TypeSampledImage 108
|
||||
110: TypePointer UniformConstant 109
|
||||
111(samp2D): 110(ptr) Variable UniformConstant
|
||||
113: TypeVector 6(float) 2
|
||||
114: 6(float) Constant 1056964608
|
||||
115: 113(fvec2) ConstantComposite 114 114
|
||||
118: TypePointer Function 7(fvec4)
|
||||
121: 6(float) Constant 1036831949
|
||||
122: TypeBool
|
||||
133: TypeArray 113(fvec2) 84
|
||||
134(str): TypeStruct 81(int) 133 122(bool)
|
||||
135: TypePointer Function 134(str)
|
||||
137: 113(fvec2) ConstantComposite 10 11
|
||||
138: 6(float) Constant 1082130432
|
||||
139: 113(fvec2) ConstantComposite 138 12
|
||||
140: 6(float) Constant 1086324736
|
||||
141: 113(fvec2) ConstantComposite 140 13
|
||||
142: 133 ConstantComposite 137 139 141
|
||||
143: 122(bool) ConstantTrue
|
||||
144: 134(str) ConstantComposite 82 142 143
|
||||
148: TypePointer Output 7(fvec4)
|
||||
149(gl_FragColor): 148(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
35(m): 34(ptr) Variable Function
|
||||
63(mm): 34(ptr) Variable Function
|
||||
80(f): 79(ptr) Variable Function
|
||||
87(g): 79(ptr) Variable Function
|
||||
106(h): 79(ptr) Variable Function
|
||||
107(i): 79(ptr) Variable Function
|
||||
119: 118(ptr) Variable Function
|
||||
136(t): 135(ptr) Variable Function
|
||||
Store 9(v1) 14
|
||||
Store 15(v2) 20
|
||||
Store 21(v3) 26
|
||||
Store 27(v4) 32
|
||||
36: 7(fvec4) Load 9(v1)
|
||||
37: 7(fvec4) Load 15(v2)
|
||||
38: 7(fvec4) Load 21(v3)
|
||||
39: 7(fvec4) Load 27(v4)
|
||||
42: 6(float) CompositeExtract 36 0
|
||||
43: 6(float) CompositeExtract 36 1
|
||||
44: 6(float) CompositeExtract 36 2
|
||||
45: 6(float) CompositeExtract 36 3
|
||||
46: 6(float) CompositeExtract 37 0
|
||||
47: 6(float) CompositeExtract 37 1
|
||||
48: 6(float) CompositeExtract 37 2
|
||||
49: 6(float) CompositeExtract 37 3
|
||||
50: 6(float) CompositeExtract 38 0
|
||||
51: 6(float) CompositeExtract 38 1
|
||||
52: 6(float) CompositeExtract 38 2
|
||||
53: 6(float) CompositeExtract 38 3
|
||||
54: 6(float) CompositeExtract 39 0
|
||||
55: 6(float) CompositeExtract 39 1
|
||||
56: 6(float) CompositeExtract 39 2
|
||||
57: 6(float) CompositeExtract 39 3
|
||||
58: 7(fvec4) CompositeConstruct 42 43 44 45
|
||||
59: 7(fvec4) CompositeConstruct 46 47 48 49
|
||||
60: 7(fvec4) CompositeConstruct 50 51 52 53
|
||||
61: 7(fvec4) CompositeConstruct 54 55 56 57
|
||||
62: 33 CompositeConstruct 58 59 60 61
|
||||
Store 35(m) 62
|
||||
64: 33 Load 35(m)
|
||||
65: 33 Load 35(m)
|
||||
66: 7(fvec4) CompositeExtract 64 0
|
||||
67: 7(fvec4) CompositeExtract 65 0
|
||||
68: 7(fvec4) FMul 66 67
|
||||
69: 7(fvec4) CompositeExtract 64 1
|
||||
70: 7(fvec4) CompositeExtract 65 1
|
||||
71: 7(fvec4) FMul 69 70
|
||||
72: 7(fvec4) CompositeExtract 64 2
|
||||
73: 7(fvec4) CompositeExtract 65 2
|
||||
74: 7(fvec4) FMul 72 73
|
||||
75: 7(fvec4) CompositeExtract 64 3
|
||||
76: 7(fvec4) CompositeExtract 65 3
|
||||
77: 7(fvec4) FMul 75 76
|
||||
78: 33 CompositeConstruct 68 71 74 77
|
||||
Store 63(mm) 78
|
||||
85: 79(ptr) AccessChain 63(mm) 82 84
|
||||
86: 6(float) Load 85
|
||||
Store 80(f) 86
|
||||
88: 33 Load 35(m)
|
||||
89: 33 Load 35(m)
|
||||
90: 7(fvec4) CompositeExtract 88 0
|
||||
91: 7(fvec4) CompositeExtract 89 0
|
||||
92: 7(fvec4) FMul 90 91
|
||||
93: 7(fvec4) CompositeExtract 88 1
|
||||
94: 7(fvec4) CompositeExtract 89 1
|
||||
95: 7(fvec4) FMul 93 94
|
||||
96: 7(fvec4) CompositeExtract 88 2
|
||||
97: 7(fvec4) CompositeExtract 89 2
|
||||
98: 7(fvec4) FMul 96 97
|
||||
99: 7(fvec4) CompositeExtract 88 3
|
||||
100: 7(fvec4) CompositeExtract 89 3
|
||||
101: 7(fvec4) FMul 99 100
|
||||
102: 33 CompositeConstruct 92 95 98 101
|
||||
105: 6(float) CompositeExtract 102 2 1
|
||||
Store 87(g) 105
|
||||
Store 106(h) 12
|
||||
112: 109 Load 111(samp2D)
|
||||
116: 7(fvec4) ImageSampleImplicitLod 112 115
|
||||
117: 6(float) CompositeExtract 116 1
|
||||
Store 107(i) 117
|
||||
120: 6(float) Load 107(i)
|
||||
123: 122(bool) FOrdGreaterThan 120 121
|
||||
SelectionMerge 125 None
|
||||
BranchConditional 123 124 127
|
||||
124: Label
|
||||
126: 7(fvec4) Load 9(v1)
|
||||
Store 119 126
|
||||
Branch 125
|
||||
127: Label
|
||||
128: 7(fvec4) Load 15(v2)
|
||||
Store 119 128
|
||||
Branch 125
|
||||
125: Label
|
||||
129: 79(ptr) AccessChain 119 84
|
||||
130: 6(float) Load 129
|
||||
131: 6(float) Load 107(i)
|
||||
132: 6(float) FAdd 131 130
|
||||
Store 107(i) 132
|
||||
Store 136(t) 144
|
||||
145: 6(float) CompositeExtract 144 1 2 1
|
||||
146: 6(float) Load 107(i)
|
||||
147: 6(float) FAdd 146 145
|
||||
Store 107(i) 147
|
||||
150: 6(float) Load 80(f)
|
||||
151: 6(float) Load 87(g)
|
||||
152: 6(float) Load 106(h)
|
||||
153: 6(float) Load 107(i)
|
||||
154: 7(fvec4) CompositeConstruct 150 151 152 153
|
||||
Store 149(gl_FragColor) 154
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 14 10 8 8
|
||||
EntryPoint Fragment 4 "main" 8 10 14
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
ExecutionMode 4 DepthGreater
|
||||
ExecutionMode 4 DepthReplacing
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 21
|
||||
EntryPoint Fragment 4 "main" 21 59
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11
|
||||
EntryPoint Fragment 4 "main" 11 33
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked compute stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4 "main"
|
||||
EntryPoint GLCompute 4 "main" 26 33
|
||||
ExecutionMode 4 LocalSize 1 1 1
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 18 11
|
||||
EntryPoint Fragment 4 "main" 11 18 107
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 18 11
|
||||
EntryPoint Fragment 4 "main" 11 18 37
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 120
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11 101
|
||||
EntryPoint Fragment 4 "main" 11 36 101
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 20
|
||||
EntryPoint Fragment 4 "main" 20 30
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 100
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 57
|
||||
EntryPoint Fragment 4 "main" 57 68
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
EntryPoint Fragment 4 "main" 149
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
|
||||
@@ -333,7 +333,7 @@ Linked fragment stage:
|
||||
214: 96 Load 98(i2DMS)
|
||||
215: 29(ivec2) Load 142(ic2D)
|
||||
217: 125(fvec4) Load 127(v)
|
||||
ImageWrite 214 215 216
|
||||
ImageWrite 214 215 217 Sample 216
|
||||
218: 106 Load 108(i2DMSArray)
|
||||
219: 7(ivec3) Load 152(ic3D)
|
||||
221: 125(fvec4) ImageRead 218 219 Sample 220
|
||||
@@ -343,7 +343,7 @@ Linked fragment stage:
|
||||
224: 106 Load 108(i2DMSArray)
|
||||
225: 7(ivec3) Load 152(ic3D)
|
||||
227: 125(fvec4) Load 127(v)
|
||||
ImageWrite 224 225 226
|
||||
ImageWrite 224 225 227 Sample 226
|
||||
Store 229(ui) 19
|
||||
233: 6(int) Load 132(ic1D)
|
||||
236: 235(ptr) ImageTexelPointer 232(ii1D) 233 0
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 47 26 173 67 121 142 100 247 156 146 182 83 15 9 21 268 269
|
||||
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 268 269
|
||||
Source ESSL 310
|
||||
Name 4 "main"
|
||||
Name 9 "iout"
|
||||
|
||||
141
Test/baseResults/spv.interpOps.frag.out
Normal file
141
Test/baseResults/spv.interpOps.frag.out
Normal file
@@ -0,0 +1,141 @@
|
||||
spv.interpOps.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 101
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 13 24 33 41 99
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "f4"
|
||||
Name 13 "if1"
|
||||
Name 24 "if2"
|
||||
Name 33 "if3"
|
||||
Name 41 "if4"
|
||||
Name 47 "samp"
|
||||
Name 73 "offset"
|
||||
Name 99 "fragColor"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Function 7(fvec4)
|
||||
10: 6(float) Constant 0
|
||||
11: 7(fvec4) ConstantComposite 10 10 10 10
|
||||
12: TypePointer Input 6(float)
|
||||
13(if1): 12(ptr) Variable Input
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 0
|
||||
17: TypePointer Function 6(float)
|
||||
22: TypeVector 6(float) 2
|
||||
23: TypePointer Input 22(fvec2)
|
||||
24(if2): 23(ptr) Variable Input
|
||||
31: TypeVector 6(float) 3
|
||||
32: TypePointer Input 31(fvec3)
|
||||
33(if3): 32(ptr) Variable Input
|
||||
40: TypePointer Input 7(fvec4)
|
||||
41(if4): 40(ptr) Variable Input
|
||||
45: TypeInt 32 1
|
||||
46: TypePointer UniformConstant 45(int)
|
||||
47(samp): 46(ptr) Variable UniformConstant
|
||||
72: TypePointer UniformConstant 22(fvec2)
|
||||
73(offset): 72(ptr) Variable UniformConstant
|
||||
98: TypePointer Output 7(fvec4)
|
||||
99(fragColor): 98(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(f4): 8(ptr) Variable Function
|
||||
Store 9(f4) 11
|
||||
14: 6(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 13(if1)
|
||||
18: 17(ptr) AccessChain 9(f4) 16
|
||||
19: 6(float) Load 18
|
||||
20: 6(float) FAdd 19 14
|
||||
21: 17(ptr) AccessChain 9(f4) 16
|
||||
Store 21 20
|
||||
25: 22(fvec2) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 24(if2)
|
||||
26: 7(fvec4) Load 9(f4)
|
||||
27: 22(fvec2) VectorShuffle 26 26 0 1
|
||||
28: 22(fvec2) FAdd 27 25
|
||||
29: 7(fvec4) Load 9(f4)
|
||||
30: 7(fvec4) VectorShuffle 29 28 4 5 2 3
|
||||
Store 9(f4) 30
|
||||
34: 31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3)
|
||||
35: 7(fvec4) Load 9(f4)
|
||||
36: 31(fvec3) VectorShuffle 35 35 0 1 2
|
||||
37: 31(fvec3) FAdd 36 34
|
||||
38: 7(fvec4) Load 9(f4)
|
||||
39: 7(fvec4) VectorShuffle 38 37 4 5 6 3
|
||||
Store 9(f4) 39
|
||||
42: 7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4)
|
||||
43: 7(fvec4) Load 9(f4)
|
||||
44: 7(fvec4) FAdd 43 42
|
||||
Store 9(f4) 44
|
||||
48: 45(int) Load 47(samp)
|
||||
49: 6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48
|
||||
50: 17(ptr) AccessChain 9(f4) 16
|
||||
51: 6(float) Load 50
|
||||
52: 6(float) FAdd 51 49
|
||||
53: 17(ptr) AccessChain 9(f4) 16
|
||||
Store 53 52
|
||||
54: 45(int) Load 47(samp)
|
||||
55: 22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54
|
||||
56: 7(fvec4) Load 9(f4)
|
||||
57: 22(fvec2) VectorShuffle 56 56 0 1
|
||||
58: 22(fvec2) FAdd 57 55
|
||||
59: 7(fvec4) Load 9(f4)
|
||||
60: 7(fvec4) VectorShuffle 59 58 4 5 2 3
|
||||
Store 9(f4) 60
|
||||
61: 45(int) Load 47(samp)
|
||||
62: 31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61
|
||||
63: 7(fvec4) Load 9(f4)
|
||||
64: 31(fvec3) VectorShuffle 63 63 0 1 2
|
||||
65: 31(fvec3) FAdd 64 62
|
||||
66: 7(fvec4) Load 9(f4)
|
||||
67: 7(fvec4) VectorShuffle 66 65 4 5 6 3
|
||||
Store 9(f4) 67
|
||||
68: 45(int) Load 47(samp)
|
||||
69: 7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68
|
||||
70: 7(fvec4) Load 9(f4)
|
||||
71: 7(fvec4) FAdd 70 69
|
||||
Store 9(f4) 71
|
||||
74: 22(fvec2) Load 73(offset)
|
||||
75: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 74
|
||||
76: 17(ptr) AccessChain 9(f4) 16
|
||||
77: 6(float) Load 76
|
||||
78: 6(float) FAdd 77 75
|
||||
79: 17(ptr) AccessChain 9(f4) 16
|
||||
Store 79 78
|
||||
80: 22(fvec2) Load 73(offset)
|
||||
81: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 80
|
||||
82: 7(fvec4) Load 9(f4)
|
||||
83: 22(fvec2) VectorShuffle 82 82 0 1
|
||||
84: 22(fvec2) FAdd 83 81
|
||||
85: 7(fvec4) Load 9(f4)
|
||||
86: 7(fvec4) VectorShuffle 85 84 4 5 2 3
|
||||
Store 9(f4) 86
|
||||
87: 22(fvec2) Load 73(offset)
|
||||
88: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 87
|
||||
89: 7(fvec4) Load 9(f4)
|
||||
90: 31(fvec3) VectorShuffle 89 89 0 1 2
|
||||
91: 31(fvec3) FAdd 90 88
|
||||
92: 7(fvec4) Load 9(f4)
|
||||
93: 7(fvec4) VectorShuffle 92 91 4 5 6 3
|
||||
Store 9(f4) 93
|
||||
94: 22(fvec2) Load 73(offset)
|
||||
95: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 94
|
||||
96: 7(fvec4) Load 9(f4)
|
||||
97: 7(fvec4) FAdd 96 95
|
||||
Store 9(f4) 97
|
||||
100: 7(fvec4) Load 9(f4)
|
||||
Store 99(fragColor) 100
|
||||
Return
|
||||
FunctionEnd
|
||||
249
Test/baseResults/spv.layoutNested.vert.out
Normal file
249
Test/baseResults/spv.layoutNested.vert.out
Normal file
@@ -0,0 +1,249 @@
|
||||
spv.layoutNested.vert
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 70
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 63 66 68 69
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 14 "S"
|
||||
MemberName 14(S) 0 "a"
|
||||
MemberName 14(S) 1 "b"
|
||||
MemberName 14(S) 2 "c"
|
||||
Name 19 "Block140"
|
||||
MemberName 19(Block140) 0 "u"
|
||||
MemberName 19(Block140) 1 "s"
|
||||
MemberName 19(Block140) 2 "v"
|
||||
Name 21 "inst140"
|
||||
Name 23 "S"
|
||||
MemberName 23(S) 0 "a"
|
||||
MemberName 23(S) 1 "b"
|
||||
MemberName 23(S) 2 "c"
|
||||
Name 26 "Block430"
|
||||
MemberName 26(Block430) 0 "u"
|
||||
MemberName 26(Block430) 1 "s"
|
||||
MemberName 26(Block430) 2 "v"
|
||||
Name 28 "inst430"
|
||||
Name 29 "S"
|
||||
MemberName 29(S) 0 "a"
|
||||
MemberName 29(S) 1 "b"
|
||||
MemberName 29(S) 2 "c"
|
||||
Name 31 "s"
|
||||
Name 32 "T"
|
||||
MemberName 32(T) 0 "m"
|
||||
MemberName 32(T) 1 "a"
|
||||
Name 34 "t"
|
||||
Name 35 "T"
|
||||
MemberName 35(T) 0 "m"
|
||||
MemberName 35(T) 1 "a"
|
||||
Name 36 "Nestor"
|
||||
MemberName 36(Nestor) 0 "nestorT"
|
||||
Name 37 "Bt1"
|
||||
MemberName 37(Bt1) 0 "nt"
|
||||
Name 39 "Btn1"
|
||||
Name 40 "T"
|
||||
MemberName 40(T) 0 "m"
|
||||
MemberName 40(T) 1 "a"
|
||||
Name 41 "Nestor"
|
||||
MemberName 41(Nestor) 0 "nestorT"
|
||||
Name 42 "Bt2"
|
||||
MemberName 42(Bt2) 0 "nt"
|
||||
Name 44 "Btn2"
|
||||
Name 45 "Bt3"
|
||||
MemberName 45(Bt3) 0 "ntcol"
|
||||
MemberName 45(Bt3) 1 "ntrow"
|
||||
Name 47 "Btn3"
|
||||
Name 48 "T"
|
||||
MemberName 48(T) 0 "m"
|
||||
MemberName 48(T) 1 "a"
|
||||
Name 49 "Nestor"
|
||||
MemberName 49(Nestor) 0 "nestorT"
|
||||
Name 50 "bBt1"
|
||||
MemberName 50(bBt1) 0 "nt"
|
||||
Name 52 "bBtn1"
|
||||
Name 53 "T"
|
||||
MemberName 53(T) 0 "m"
|
||||
MemberName 53(T) 1 "a"
|
||||
Name 54 "Nestor"
|
||||
MemberName 54(Nestor) 0 "nestorT"
|
||||
Name 55 "bBt2"
|
||||
MemberName 55(bBt2) 0 "nt"
|
||||
Name 57 "bBtn2"
|
||||
Name 58 "bBt3"
|
||||
MemberName 58(bBt3) 0 "ntcol"
|
||||
MemberName 58(bBt3) 1 "ntrow"
|
||||
Name 60 "bBtn3"
|
||||
Name 61 "S"
|
||||
MemberName 61(S) 0 "a"
|
||||
MemberName 61(S) 1 "b"
|
||||
MemberName 61(S) 2 "c"
|
||||
Name 63 "sout"
|
||||
Name 64 "S"
|
||||
MemberName 64(S) 0 "a"
|
||||
MemberName 64(S) 1 "b"
|
||||
MemberName 64(S) 2 "c"
|
||||
Name 66 "soutinv"
|
||||
Name 68 "gl_VertexID"
|
||||
Name 69 "gl_InstanceID"
|
||||
Decorate 13 ArrayStride 32
|
||||
MemberDecorate 14(S) 0 Offset 0
|
||||
MemberDecorate 14(S) 1 ColMajor
|
||||
MemberDecorate 14(S) 1 Offset 16
|
||||
MemberDecorate 14(S) 1 MatrixStride 16
|
||||
MemberDecorate 14(S) 2 Offset 144
|
||||
Decorate 16 ArrayStride 160
|
||||
Decorate 18 ArrayStride 480
|
||||
MemberDecorate 19(Block140) 0 Offset 0
|
||||
MemberDecorate 19(Block140) 1 Offset 16
|
||||
MemberDecorate 19(Block140) 2 Offset 976
|
||||
Decorate 19(Block140) Block
|
||||
Decorate 21(inst140) DescriptorSet 0
|
||||
Decorate 21(inst140) Binding 0
|
||||
Decorate 22 ArrayStride 16
|
||||
MemberDecorate 23(S) 0 Offset 0
|
||||
MemberDecorate 23(S) 1 ColMajor
|
||||
MemberDecorate 23(S) 1 Offset 16
|
||||
MemberDecorate 23(S) 1 MatrixStride 8
|
||||
MemberDecorate 23(S) 2 Offset 80
|
||||
Decorate 24 ArrayStride 96
|
||||
Decorate 25 ArrayStride 288
|
||||
MemberDecorate 26(Block430) 0 Offset 0
|
||||
MemberDecorate 26(Block430) 1 Offset 16
|
||||
MemberDecorate 26(Block430) 2 Offset 592
|
||||
Decorate 26(Block430) BufferBlock
|
||||
Decorate 28(inst430) DescriptorSet 0
|
||||
Decorate 28(inst430) Binding 1
|
||||
MemberDecorate 35(T) 0 RowMajor
|
||||
MemberDecorate 35(T) 0 Offset 0
|
||||
MemberDecorate 35(T) 0 MatrixStride 16
|
||||
MemberDecorate 35(T) 1 Offset 32
|
||||
MemberDecorate 36(Nestor) 0 Offset 0
|
||||
MemberDecorate 37(Bt1) 0 Offset 0
|
||||
Decorate 37(Bt1) Block
|
||||
Decorate 39(Btn1) DescriptorSet 1
|
||||
Decorate 39(Btn1) Binding 0
|
||||
MemberDecorate 40(T) 0 ColMajor
|
||||
MemberDecorate 40(T) 0 Offset 0
|
||||
MemberDecorate 40(T) 0 MatrixStride 16
|
||||
MemberDecorate 40(T) 1 Offset 32
|
||||
MemberDecorate 41(Nestor) 0 Offset 0
|
||||
MemberDecorate 42(Bt2) 0 Offset 0
|
||||
Decorate 42(Bt2) Block
|
||||
Decorate 44(Btn2) DescriptorSet 1
|
||||
Decorate 44(Btn2) Binding 0
|
||||
MemberDecorate 45(Bt3) 0 Offset 0
|
||||
MemberDecorate 45(Bt3) 1 Offset 48
|
||||
Decorate 45(Bt3) Block
|
||||
Decorate 47(Btn3) DescriptorSet 1
|
||||
Decorate 47(Btn3) Binding 0
|
||||
MemberDecorate 48(T) 0 RowMajor
|
||||
MemberDecorate 48(T) 0 Offset 0
|
||||
MemberDecorate 48(T) 0 MatrixStride 8
|
||||
MemberDecorate 48(T) 1 Offset 16
|
||||
MemberDecorate 49(Nestor) 0 Offset 0
|
||||
MemberDecorate 50(bBt1) 0 Offset 0
|
||||
Decorate 50(bBt1) BufferBlock
|
||||
Decorate 52(bBtn1) DescriptorSet 1
|
||||
Decorate 52(bBtn1) Binding 0
|
||||
MemberDecorate 53(T) 0 ColMajor
|
||||
MemberDecorate 53(T) 0 Offset 0
|
||||
MemberDecorate 53(T) 0 MatrixStride 8
|
||||
MemberDecorate 53(T) 1 Offset 16
|
||||
MemberDecorate 54(Nestor) 0 Offset 0
|
||||
MemberDecorate 55(bBt2) 0 Offset 0
|
||||
Decorate 55(bBt2) BufferBlock
|
||||
Decorate 57(bBtn2) DescriptorSet 1
|
||||
Decorate 57(bBtn2) Binding 0
|
||||
MemberDecorate 58(bBt3) 0 Offset 0
|
||||
MemberDecorate 58(bBt3) 1 Offset 24
|
||||
Decorate 58(bBt3) BufferBlock
|
||||
Decorate 60(bBtn3) DescriptorSet 1
|
||||
Decorate 60(bBtn3) Binding 0
|
||||
MemberDecorate 61(S) 0 Flat
|
||||
MemberDecorate 61(S) 1 Flat
|
||||
MemberDecorate 61(S) 2 Flat
|
||||
MemberDecorate 64(S) 0 Invariant
|
||||
MemberDecorate 64(S) 1 Invariant
|
||||
MemberDecorate 64(S) 2 Invariant
|
||||
Decorate 66(soutinv) Invariant
|
||||
Decorate 68(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 69(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeInt 32 0
|
||||
8: TypeVector 7(int) 3
|
||||
9: TypeFloat 32
|
||||
10: TypeVector 9(float) 2
|
||||
11: TypeMatrix 10(fvec2) 2
|
||||
12: 7(int) Constant 4
|
||||
13: TypeArray 11 12
|
||||
14(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
15: 7(int) Constant 3
|
||||
16: TypeArray 14(S) 15
|
||||
17: 7(int) Constant 2
|
||||
18: TypeArray 16 17
|
||||
19(Block140): TypeStruct 6(int) 18 10(fvec2)
|
||||
20: TypePointer Uniform 19(Block140)
|
||||
21(inst140): 20(ptr) Variable Uniform
|
||||
22: TypeArray 11 12
|
||||
23(S): TypeStruct 8(ivec3) 22 7(int)
|
||||
24: TypeArray 23(S) 15
|
||||
25: TypeArray 24 17
|
||||
26(Block430): TypeStruct 6(int) 25 10(fvec2)
|
||||
27: TypePointer Uniform 26(Block430)
|
||||
28(inst430): 27(ptr) Variable Uniform
|
||||
29(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
30: TypePointer Private 29(S)
|
||||
31(s): 30(ptr) Variable Private
|
||||
32(T): TypeStruct 11 6(int)
|
||||
33: TypePointer Private 32(T)
|
||||
34(t): 33(ptr) Variable Private
|
||||
35(T): TypeStruct 11 6(int)
|
||||
36(Nestor): TypeStruct 35(T)
|
||||
37(Bt1): TypeStruct 36(Nestor)
|
||||
38: TypePointer Uniform 37(Bt1)
|
||||
39(Btn1): 38(ptr) Variable Uniform
|
||||
40(T): TypeStruct 11 6(int)
|
||||
41(Nestor): TypeStruct 40(T)
|
||||
42(Bt2): TypeStruct 41(Nestor)
|
||||
43: TypePointer Uniform 42(Bt2)
|
||||
44(Btn2): 43(ptr) Variable Uniform
|
||||
45(Bt3): TypeStruct 41(Nestor) 36(Nestor)
|
||||
46: TypePointer Uniform 45(Bt3)
|
||||
47(Btn3): 46(ptr) Variable Uniform
|
||||
48(T): TypeStruct 11 6(int)
|
||||
49(Nestor): TypeStruct 48(T)
|
||||
50(bBt1): TypeStruct 49(Nestor)
|
||||
51: TypePointer Uniform 50(bBt1)
|
||||
52(bBtn1): 51(ptr) Variable Uniform
|
||||
53(T): TypeStruct 11 6(int)
|
||||
54(Nestor): TypeStruct 53(T)
|
||||
55(bBt2): TypeStruct 54(Nestor)
|
||||
56: TypePointer Uniform 55(bBt2)
|
||||
57(bBtn2): 56(ptr) Variable Uniform
|
||||
58(bBt3): TypeStruct 49(Nestor) 54(Nestor)
|
||||
59: TypePointer Uniform 58(bBt3)
|
||||
60(bBtn3): 59(ptr) Variable Uniform
|
||||
61(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
62: TypePointer Output 61(S)
|
||||
63(sout): 62(ptr) Variable Output
|
||||
64(S): TypeStruct 8(ivec3) 13 7(int)
|
||||
65: TypePointer Output 64(S)
|
||||
66(soutinv): 65(ptr) Variable Output
|
||||
67: TypePointer Input 6(int)
|
||||
68(gl_VertexID): 67(ptr) Variable Input
|
||||
69(gl_InstanceID): 67(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 14
|
||||
EntryPoint Fragment 4 "main" 14 26
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 120
|
||||
Name 4 "main"
|
||||
|
||||
@@ -13,7 +13,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 40 97
|
||||
EntryPoint Fragment 4 "main" 40 97 107
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11
|
||||
EntryPoint Fragment 4 "main" 11 597
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 11
|
||||
EntryPoint Fragment 4 "main" 11 140
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 73 92
|
||||
EntryPoint Vertex 4 "main" 69 73 92
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
Name 14 "xf(mf33;vf3;"
|
||||
|
||||
@@ -1,10 +1,286 @@
|
||||
spv.matrix.frag
|
||||
WARNING: 0:6: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:17: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:22: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Missing functionality: Composite comparison of non-vectors
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 240
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 14 28 140 148 166
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
Name 10 "sum34"
|
||||
Name 12 "m1"
|
||||
Name 14 "m2"
|
||||
Name 28 "f"
|
||||
Name 138 "sum3"
|
||||
Name 140 "v4"
|
||||
Name 145 "sum4"
|
||||
Name 148 "v3"
|
||||
Name 153 "m43"
|
||||
Name 158 "m4"
|
||||
Name 166 "color"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeMatrix 7(fvec4) 3
|
||||
9: TypePointer Function 8
|
||||
11: TypePointer Input 8
|
||||
12(m1): 11(ptr) Variable Input
|
||||
14(m2): 11(ptr) Variable Input
|
||||
27: TypePointer Input 6(float)
|
||||
28(f): 27(ptr) Variable Input
|
||||
81: 6(float) Constant 1065353216
|
||||
136: TypeVector 6(float) 3
|
||||
137: TypePointer Function 136(fvec3)
|
||||
139: TypePointer Input 7(fvec4)
|
||||
140(v4): 139(ptr) Variable Input
|
||||
144: TypePointer Function 7(fvec4)
|
||||
147: TypePointer Input 136(fvec3)
|
||||
148(v3): 147(ptr) Variable Input
|
||||
151: TypeMatrix 136(fvec3) 4
|
||||
152: TypePointer Function 151
|
||||
156: TypeMatrix 7(fvec4) 4
|
||||
157: TypePointer Function 156
|
||||
165: TypePointer Output 7(fvec4)
|
||||
166(color): 165(ptr) Variable Output
|
||||
187: 6(float) Constant 0
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(sum34): 9(ptr) Variable Function
|
||||
138(sum3): 137(ptr) Variable Function
|
||||
145(sum4): 144(ptr) Variable Function
|
||||
153(m43): 152(ptr) Variable Function
|
||||
158(m4): 157(ptr) Variable Function
|
||||
13: 8 Load 12(m1)
|
||||
15: 8 Load 14(m2)
|
||||
16: 7(fvec4) CompositeExtract 13 0
|
||||
17: 7(fvec4) CompositeExtract 15 0
|
||||
18: 7(fvec4) FSub 16 17
|
||||
19: 7(fvec4) CompositeExtract 13 1
|
||||
20: 7(fvec4) CompositeExtract 15 1
|
||||
21: 7(fvec4) FSub 19 20
|
||||
22: 7(fvec4) CompositeExtract 13 2
|
||||
23: 7(fvec4) CompositeExtract 15 2
|
||||
24: 7(fvec4) FSub 22 23
|
||||
25: 8 CompositeConstruct 18 21 24
|
||||
Store 10(sum34) 25
|
||||
26: 8 Load 12(m1)
|
||||
29: 6(float) Load 28(f)
|
||||
30: 8 MatrixTimesScalar 26 29
|
||||
31: 8 Load 10(sum34)
|
||||
32: 7(fvec4) CompositeExtract 31 0
|
||||
33: 7(fvec4) CompositeExtract 30 0
|
||||
34: 7(fvec4) FAdd 32 33
|
||||
35: 7(fvec4) CompositeExtract 31 1
|
||||
36: 7(fvec4) CompositeExtract 30 1
|
||||
37: 7(fvec4) FAdd 35 36
|
||||
38: 7(fvec4) CompositeExtract 31 2
|
||||
39: 7(fvec4) CompositeExtract 30 2
|
||||
40: 7(fvec4) FAdd 38 39
|
||||
41: 8 CompositeConstruct 34 37 40
|
||||
Store 10(sum34) 41
|
||||
42: 6(float) Load 28(f)
|
||||
43: 8 Load 12(m1)
|
||||
44: 8 MatrixTimesScalar 43 42
|
||||
45: 8 Load 10(sum34)
|
||||
46: 7(fvec4) CompositeExtract 45 0
|
||||
47: 7(fvec4) CompositeExtract 44 0
|
||||
48: 7(fvec4) FAdd 46 47
|
||||
49: 7(fvec4) CompositeExtract 45 1
|
||||
50: 7(fvec4) CompositeExtract 44 1
|
||||
51: 7(fvec4) FAdd 49 50
|
||||
52: 7(fvec4) CompositeExtract 45 2
|
||||
53: 7(fvec4) CompositeExtract 44 2
|
||||
54: 7(fvec4) FAdd 52 53
|
||||
55: 8 CompositeConstruct 48 51 54
|
||||
Store 10(sum34) 55
|
||||
56: 8 Load 12(m1)
|
||||
57: 8 Load 14(m2)
|
||||
58: 7(fvec4) CompositeExtract 56 0
|
||||
59: 7(fvec4) CompositeExtract 57 0
|
||||
60: 7(fvec4) FMul 58 59
|
||||
61: 7(fvec4) CompositeExtract 56 1
|
||||
62: 7(fvec4) CompositeExtract 57 1
|
||||
63: 7(fvec4) FMul 61 62
|
||||
64: 7(fvec4) CompositeExtract 56 2
|
||||
65: 7(fvec4) CompositeExtract 57 2
|
||||
66: 7(fvec4) FMul 64 65
|
||||
67: 8 CompositeConstruct 60 63 66
|
||||
68: 8 Load 10(sum34)
|
||||
69: 7(fvec4) CompositeExtract 68 0
|
||||
70: 7(fvec4) CompositeExtract 67 0
|
||||
71: 7(fvec4) FDiv 69 70
|
||||
72: 7(fvec4) CompositeExtract 68 1
|
||||
73: 7(fvec4) CompositeExtract 67 1
|
||||
74: 7(fvec4) FDiv 72 73
|
||||
75: 7(fvec4) CompositeExtract 68 2
|
||||
76: 7(fvec4) CompositeExtract 67 2
|
||||
77: 7(fvec4) FDiv 75 76
|
||||
78: 8 CompositeConstruct 71 74 77
|
||||
Store 10(sum34) 78
|
||||
79: 8 Load 12(m1)
|
||||
80: 6(float) Load 28(f)
|
||||
82: 6(float) FDiv 81 80
|
||||
83: 8 MatrixTimesScalar 79 82
|
||||
84: 8 Load 10(sum34)
|
||||
85: 7(fvec4) CompositeExtract 84 0
|
||||
86: 7(fvec4) CompositeExtract 83 0
|
||||
87: 7(fvec4) FAdd 85 86
|
||||
88: 7(fvec4) CompositeExtract 84 1
|
||||
89: 7(fvec4) CompositeExtract 83 1
|
||||
90: 7(fvec4) FAdd 88 89
|
||||
91: 7(fvec4) CompositeExtract 84 2
|
||||
92: 7(fvec4) CompositeExtract 83 2
|
||||
93: 7(fvec4) FAdd 91 92
|
||||
94: 8 CompositeConstruct 87 90 93
|
||||
Store 10(sum34) 94
|
||||
95: 6(float) Load 28(f)
|
||||
96: 8 Load 12(m1)
|
||||
97: 7(fvec4) CompositeConstruct 95 95 95 95
|
||||
98: 7(fvec4) CompositeExtract 96 0
|
||||
99: 7(fvec4) FDiv 97 98
|
||||
100: 7(fvec4) CompositeExtract 96 1
|
||||
101: 7(fvec4) FDiv 97 100
|
||||
102: 7(fvec4) CompositeExtract 96 2
|
||||
103: 7(fvec4) FDiv 97 102
|
||||
104: 8 CompositeConstruct 99 101 103
|
||||
105: 8 Load 10(sum34)
|
||||
106: 7(fvec4) CompositeExtract 105 0
|
||||
107: 7(fvec4) CompositeExtract 104 0
|
||||
108: 7(fvec4) FAdd 106 107
|
||||
109: 7(fvec4) CompositeExtract 105 1
|
||||
110: 7(fvec4) CompositeExtract 104 1
|
||||
111: 7(fvec4) FAdd 109 110
|
||||
112: 7(fvec4) CompositeExtract 105 2
|
||||
113: 7(fvec4) CompositeExtract 104 2
|
||||
114: 7(fvec4) FAdd 112 113
|
||||
115: 8 CompositeConstruct 108 111 114
|
||||
Store 10(sum34) 115
|
||||
116: 6(float) Load 28(f)
|
||||
117: 8 Load 10(sum34)
|
||||
118: 7(fvec4) CompositeConstruct 116 116 116 116
|
||||
119: 7(fvec4) CompositeExtract 117 0
|
||||
120: 7(fvec4) FAdd 119 118
|
||||
121: 7(fvec4) CompositeExtract 117 1
|
||||
122: 7(fvec4) FAdd 121 118
|
||||
123: 7(fvec4) CompositeExtract 117 2
|
||||
124: 7(fvec4) FAdd 123 118
|
||||
125: 8 CompositeConstruct 120 122 124
|
||||
Store 10(sum34) 125
|
||||
126: 6(float) Load 28(f)
|
||||
127: 8 Load 10(sum34)
|
||||
128: 7(fvec4) CompositeConstruct 126 126 126 126
|
||||
129: 7(fvec4) CompositeExtract 127 0
|
||||
130: 7(fvec4) FSub 129 128
|
||||
131: 7(fvec4) CompositeExtract 127 1
|
||||
132: 7(fvec4) FSub 131 128
|
||||
133: 7(fvec4) CompositeExtract 127 2
|
||||
134: 7(fvec4) FSub 133 128
|
||||
135: 8 CompositeConstruct 130 132 134
|
||||
Store 10(sum34) 135
|
||||
141: 7(fvec4) Load 140(v4)
|
||||
142: 8 Load 14(m2)
|
||||
143: 136(fvec3) VectorTimesMatrix 141 142
|
||||
Store 138(sum3) 143
|
||||
146: 8 Load 14(m2)
|
||||
149: 136(fvec3) Load 148(v3)
|
||||
150: 7(fvec4) MatrixTimesVector 146 149
|
||||
Store 145(sum4) 150
|
||||
154: 8 Load 10(sum34)
|
||||
155: 151 Transpose 154
|
||||
Store 153(m43) 155
|
||||
159: 8 Load 12(m1)
|
||||
160: 151 Load 153(m43)
|
||||
161: 156 MatrixTimesMatrix 159 160
|
||||
Store 158(m4) 161
|
||||
162: 7(fvec4) Load 140(v4)
|
||||
163: 156 Load 158(m4)
|
||||
164: 7(fvec4) VectorTimesMatrix 162 163
|
||||
Store 145(sum4) 164
|
||||
167: 7(fvec4) Load 145(sum4)
|
||||
Store 166(color) 167
|
||||
168: 8 Load 10(sum34)
|
||||
169: 7(fvec4) CompositeConstruct 81 81 81 81
|
||||
170: 7(fvec4) CompositeExtract 168 0
|
||||
171: 7(fvec4) FAdd 170 169
|
||||
172: 7(fvec4) CompositeExtract 168 1
|
||||
173: 7(fvec4) FAdd 172 169
|
||||
174: 7(fvec4) CompositeExtract 168 2
|
||||
175: 7(fvec4) FAdd 174 169
|
||||
176: 8 CompositeConstruct 171 173 175
|
||||
Store 10(sum34) 176
|
||||
177: 8 Load 10(sum34)
|
||||
178: 7(fvec4) CompositeConstruct 81 81 81 81
|
||||
179: 7(fvec4) CompositeExtract 177 0
|
||||
180: 7(fvec4) FSub 179 178
|
||||
181: 7(fvec4) CompositeExtract 177 1
|
||||
182: 7(fvec4) FSub 181 178
|
||||
183: 7(fvec4) CompositeExtract 177 2
|
||||
184: 7(fvec4) FSub 183 178
|
||||
185: 8 CompositeConstruct 180 182 184
|
||||
Store 10(sum34) 185
|
||||
186: 6(float) Load 28(f)
|
||||
188: 7(fvec4) CompositeConstruct 186 187 187 187
|
||||
189: 7(fvec4) CompositeConstruct 187 186 187 187
|
||||
190: 7(fvec4) CompositeConstruct 187 187 186 187
|
||||
191: 8 CompositeConstruct 188 189 190
|
||||
192: 8 Load 10(sum34)
|
||||
193: 7(fvec4) CompositeExtract 192 0
|
||||
194: 7(fvec4) CompositeExtract 191 0
|
||||
195: 7(fvec4) FAdd 193 194
|
||||
196: 7(fvec4) CompositeExtract 192 1
|
||||
197: 7(fvec4) CompositeExtract 191 1
|
||||
198: 7(fvec4) FAdd 196 197
|
||||
199: 7(fvec4) CompositeExtract 192 2
|
||||
200: 7(fvec4) CompositeExtract 191 2
|
||||
201: 7(fvec4) FAdd 199 200
|
||||
202: 8 CompositeConstruct 195 198 201
|
||||
Store 10(sum34) 202
|
||||
203: 136(fvec3) Load 148(v3)
|
||||
204: 6(float) Load 28(f)
|
||||
205: 136(fvec3) Load 148(v3)
|
||||
206: 6(float) Load 28(f)
|
||||
207: 136(fvec3) Load 148(v3)
|
||||
208: 6(float) Load 28(f)
|
||||
209: 6(float) CompositeExtract 203 0
|
||||
210: 6(float) CompositeExtract 203 1
|
||||
211: 6(float) CompositeExtract 203 2
|
||||
212: 6(float) CompositeExtract 205 0
|
||||
213: 6(float) CompositeExtract 205 1
|
||||
214: 6(float) CompositeExtract 205 2
|
||||
215: 6(float) CompositeExtract 207 0
|
||||
216: 6(float) CompositeExtract 207 1
|
||||
217: 6(float) CompositeExtract 207 2
|
||||
218: 7(fvec4) CompositeConstruct 209 210 211 204
|
||||
219: 7(fvec4) CompositeConstruct 212 213 214 206
|
||||
220: 7(fvec4) CompositeConstruct 215 216 217 208
|
||||
221: 8 CompositeConstruct 218 219 220
|
||||
222: 8 Load 10(sum34)
|
||||
223: 7(fvec4) CompositeExtract 222 0
|
||||
224: 7(fvec4) CompositeExtract 221 0
|
||||
225: 7(fvec4) FAdd 223 224
|
||||
226: 7(fvec4) CompositeExtract 222 1
|
||||
227: 7(fvec4) CompositeExtract 221 1
|
||||
228: 7(fvec4) FAdd 226 227
|
||||
229: 7(fvec4) CompositeExtract 222 2
|
||||
230: 7(fvec4) CompositeExtract 221 2
|
||||
231: 7(fvec4) FAdd 229 230
|
||||
232: 8 CompositeConstruct 225 228 231
|
||||
Store 10(sum34) 232
|
||||
233: 136(fvec3) Load 138(sum3)
|
||||
234: 151 Load 153(m43)
|
||||
235: 7(fvec4) VectorTimesMatrix 233 234
|
||||
236: 7(fvec4) Load 145(sum4)
|
||||
237: 7(fvec4) FAdd 235 236
|
||||
238: 7(fvec4) Load 166(color)
|
||||
239: 7(fvec4) FAdd 238 237
|
||||
Store 166(color) 239
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -1,10 +1,265 @@
|
||||
spv.matrix2.frag
|
||||
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:13: varying deprecated in version 130; may be removed in future release
|
||||
WARNING: 0:15: varying deprecated in version 130; may be removed in future release
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Missing functionality: binary operation on matrix
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 213
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12 16 37 38 65 87 139 150 173 210 211 212
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 150
|
||||
Name 4 "main"
|
||||
Name 10 "m34"
|
||||
Name 12 "v"
|
||||
Name 16 "u"
|
||||
Name 37 "FragColor"
|
||||
Name 38 "Color"
|
||||
Name 63 "m44"
|
||||
Name 65 "un34"
|
||||
Name 87 "um43"
|
||||
Name 139 "um4"
|
||||
Name 148 "inv"
|
||||
Name 150 "um2"
|
||||
Name 171 "inv3"
|
||||
Name 173 "um3"
|
||||
Name 182 "inv4"
|
||||
Name 210 "colorTransform"
|
||||
Name 211 "m"
|
||||
Name 212 "n"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeMatrix 7(fvec4) 3
|
||||
9: TypePointer Function 8
|
||||
11: TypePointer Input 7(fvec4)
|
||||
12(v): 11(ptr) Variable Input
|
||||
14: TypeVector 6(float) 3
|
||||
15: TypePointer Input 14(fvec3)
|
||||
16(u): 15(ptr) Variable Input
|
||||
19: 6(float) Constant 1082759578
|
||||
20: 6(float) Constant 0
|
||||
21: 7(fvec4) ConstantComposite 19 20 20 20
|
||||
22: 7(fvec4) ConstantComposite 20 19 20 20
|
||||
23: 7(fvec4) ConstantComposite 20 20 19 20
|
||||
24: 8 ConstantComposite 21 22 23
|
||||
36: TypePointer Output 7(fvec4)
|
||||
37(FragColor): 36(ptr) Variable Output
|
||||
38(Color): 15(ptr) Variable Input
|
||||
40: 6(float) Constant 1065353216
|
||||
54: TypeInt 32 0
|
||||
55: 54(int) Constant 0
|
||||
56: TypePointer Input 6(float)
|
||||
61: TypeMatrix 7(fvec4) 4
|
||||
62: TypePointer Function 61
|
||||
64: TypePointer Input 8
|
||||
65(un34): 64(ptr) Variable Input
|
||||
85: TypeMatrix 14(fvec3) 4
|
||||
86: TypePointer Input 85
|
||||
87(um43): 86(ptr) Variable Input
|
||||
138: TypePointer Input 61
|
||||
139(um4): 138(ptr) Variable Input
|
||||
145: TypeVector 6(float) 2
|
||||
146: TypeMatrix 145(fvec2) 2
|
||||
147: TypePointer Function 146
|
||||
149: TypePointer Input 146
|
||||
150(um2): 149(ptr) Variable Input
|
||||
153: TypeInt 32 1
|
||||
154: 153(int) Constant 0
|
||||
155: TypePointer Function 6(float)
|
||||
158: 153(int) Constant 1
|
||||
161: 54(int) Constant 1
|
||||
169: TypeMatrix 14(fvec3) 3
|
||||
170: TypePointer Function 169
|
||||
172: TypePointer Input 169
|
||||
173(um3): 172(ptr) Variable Input
|
||||
176: 153(int) Constant 2
|
||||
202: 54(int) Constant 3
|
||||
203: TypePointer Output 6(float)
|
||||
210(colorTransform): 172(ptr) Variable Input
|
||||
211(m): 138(ptr) Variable Input
|
||||
212(n): 138(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(m34): 9(ptr) Variable Function
|
||||
63(m44): 62(ptr) Variable Function
|
||||
148(inv): 147(ptr) Variable Function
|
||||
171(inv3): 170(ptr) Variable Function
|
||||
182(inv4): 62(ptr) Variable Function
|
||||
13: 7(fvec4) Load 12(v)
|
||||
17: 14(fvec3) Load 16(u)
|
||||
18: 8 OuterProduct 13 17
|
||||
Store 10(m34) 18
|
||||
25: 8 Load 10(m34)
|
||||
26: 7(fvec4) CompositeExtract 25 0
|
||||
27: 7(fvec4) CompositeExtract 24 0
|
||||
28: 7(fvec4) FAdd 26 27
|
||||
29: 7(fvec4) CompositeExtract 25 1
|
||||
30: 7(fvec4) CompositeExtract 24 1
|
||||
31: 7(fvec4) FAdd 29 30
|
||||
32: 7(fvec4) CompositeExtract 25 2
|
||||
33: 7(fvec4) CompositeExtract 24 2
|
||||
34: 7(fvec4) FAdd 32 33
|
||||
35: 8 CompositeConstruct 28 31 34
|
||||
Store 10(m34) 35
|
||||
39: 14(fvec3) Load 38(Color)
|
||||
41: 6(float) CompositeExtract 39 0
|
||||
42: 6(float) CompositeExtract 39 1
|
||||
43: 6(float) CompositeExtract 39 2
|
||||
44: 7(fvec4) CompositeConstruct 41 42 43 40
|
||||
Store 37(FragColor) 44
|
||||
45: 7(fvec4) Load 37(FragColor)
|
||||
46: 8 Load 10(m34)
|
||||
47: 14(fvec3) VectorTimesMatrix 45 46
|
||||
48: 6(float) CompositeExtract 47 0
|
||||
49: 6(float) CompositeExtract 47 1
|
||||
50: 6(float) CompositeExtract 47 2
|
||||
51: 7(fvec4) CompositeConstruct 48 49 50 40
|
||||
52: 7(fvec4) Load 37(FragColor)
|
||||
53: 7(fvec4) FMul 52 51
|
||||
Store 37(FragColor) 53
|
||||
57: 56(ptr) AccessChain 12(v) 55
|
||||
58: 6(float) Load 57
|
||||
59: 8 Load 10(m34)
|
||||
60: 8 MatrixTimesScalar 59 58
|
||||
Store 10(m34) 60
|
||||
66: 8 Load 65(un34)
|
||||
67: 6(float) CompositeExtract 66 0 0
|
||||
68: 6(float) CompositeExtract 66 0 1
|
||||
69: 6(float) CompositeExtract 66 0 2
|
||||
70: 6(float) CompositeExtract 66 0 3
|
||||
71: 6(float) CompositeExtract 66 1 0
|
||||
72: 6(float) CompositeExtract 66 1 1
|
||||
73: 6(float) CompositeExtract 66 1 2
|
||||
74: 6(float) CompositeExtract 66 1 3
|
||||
75: 6(float) CompositeExtract 66 2 0
|
||||
76: 6(float) CompositeExtract 66 2 1
|
||||
77: 6(float) CompositeExtract 66 2 2
|
||||
78: 6(float) CompositeExtract 66 2 3
|
||||
79: 7(fvec4) CompositeConstruct 67 68 69 70
|
||||
80: 7(fvec4) CompositeConstruct 71 72 73 74
|
||||
81: 7(fvec4) CompositeConstruct 75 76 77 78
|
||||
82: 7(fvec4) CompositeConstruct 20 20 20 40
|
||||
83: 61 CompositeConstruct 79 80 81 82
|
||||
Store 63(m44) 83
|
||||
84: 8 Load 10(m34)
|
||||
88: 85 Load 87(um43)
|
||||
89: 61 MatrixTimesMatrix 84 88
|
||||
90: 61 Load 63(m44)
|
||||
91: 7(fvec4) CompositeExtract 90 0
|
||||
92: 7(fvec4) CompositeExtract 89 0
|
||||
93: 7(fvec4) FAdd 91 92
|
||||
94: 7(fvec4) CompositeExtract 90 1
|
||||
95: 7(fvec4) CompositeExtract 89 1
|
||||
96: 7(fvec4) FAdd 94 95
|
||||
97: 7(fvec4) CompositeExtract 90 2
|
||||
98: 7(fvec4) CompositeExtract 89 2
|
||||
99: 7(fvec4) FAdd 97 98
|
||||
100: 7(fvec4) CompositeExtract 90 3
|
||||
101: 7(fvec4) CompositeExtract 89 3
|
||||
102: 7(fvec4) FAdd 100 101
|
||||
103: 61 CompositeConstruct 93 96 99 102
|
||||
Store 63(m44) 103
|
||||
104: 61 Load 63(m44)
|
||||
105: 61 FNegate 104
|
||||
106: 7(fvec4) Load 12(v)
|
||||
107: 7(fvec4) MatrixTimesVector 105 106
|
||||
108: 7(fvec4) Load 37(FragColor)
|
||||
109: 7(fvec4) FAdd 108 107
|
||||
Store 37(FragColor) 109
|
||||
110: 61 Load 63(m44)
|
||||
111: 61 Load 63(m44)
|
||||
112: 7(fvec4) CompositeExtract 110 0
|
||||
113: 7(fvec4) CompositeExtract 111 0
|
||||
114: 7(fvec4) FMul 112 113
|
||||
115: 7(fvec4) CompositeExtract 110 1
|
||||
116: 7(fvec4) CompositeExtract 111 1
|
||||
117: 7(fvec4) FMul 115 116
|
||||
118: 7(fvec4) CompositeExtract 110 2
|
||||
119: 7(fvec4) CompositeExtract 111 2
|
||||
120: 7(fvec4) FMul 118 119
|
||||
121: 7(fvec4) CompositeExtract 110 3
|
||||
122: 7(fvec4) CompositeExtract 111 3
|
||||
123: 7(fvec4) FMul 121 122
|
||||
124: 61 CompositeConstruct 114 117 120 123
|
||||
125: 7(fvec4) Load 37(FragColor)
|
||||
126: 7(fvec4) VectorTimesMatrix 125 124
|
||||
Store 37(FragColor) 126
|
||||
127: 85 Load 87(um43)
|
||||
128: 8 Transpose 127
|
||||
Store 10(m34) 128
|
||||
129: 7(fvec4) Load 37(FragColor)
|
||||
130: 8 Load 10(m34)
|
||||
131: 14(fvec3) VectorTimesMatrix 129 130
|
||||
132: 6(float) CompositeExtract 131 0
|
||||
133: 6(float) CompositeExtract 131 1
|
||||
134: 6(float) CompositeExtract 131 2
|
||||
135: 7(fvec4) CompositeConstruct 132 133 134 40
|
||||
136: 7(fvec4) Load 37(FragColor)
|
||||
137: 7(fvec4) FMul 136 135
|
||||
Store 37(FragColor) 137
|
||||
140: 61 Load 139(um4)
|
||||
141: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 140
|
||||
142: 7(fvec4) CompositeConstruct 141 141 141 141
|
||||
143: 7(fvec4) Load 37(FragColor)
|
||||
144: 7(fvec4) FMul 143 142
|
||||
Store 37(FragColor) 144
|
||||
151: 146 Load 150(um2)
|
||||
152: 146 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 151
|
||||
Store 148(inv) 152
|
||||
156: 155(ptr) AccessChain 148(inv) 154 55
|
||||
157: 6(float) Load 156
|
||||
159: 155(ptr) AccessChain 148(inv) 158 55
|
||||
160: 6(float) Load 159
|
||||
162: 155(ptr) AccessChain 148(inv) 154 161
|
||||
163: 6(float) Load 162
|
||||
164: 155(ptr) AccessChain 148(inv) 158 161
|
||||
165: 6(float) Load 164
|
||||
166: 7(fvec4) CompositeConstruct 157 160 163 165
|
||||
167: 7(fvec4) Load 37(FragColor)
|
||||
168: 7(fvec4) FMul 167 166
|
||||
Store 37(FragColor) 168
|
||||
174: 169 Load 173(um3)
|
||||
175: 169 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 174
|
||||
Store 171(inv3) 175
|
||||
177: 155(ptr) AccessChain 171(inv3) 176 161
|
||||
178: 6(float) Load 177
|
||||
179: 7(fvec4) CompositeConstruct 178 178 178 178
|
||||
180: 7(fvec4) Load 37(FragColor)
|
||||
181: 7(fvec4) FMul 180 179
|
||||
Store 37(FragColor) 181
|
||||
183: 61 Load 139(um4)
|
||||
184: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 183
|
||||
Store 182(inv4) 184
|
||||
185: 61 Load 182(inv4)
|
||||
186: 7(fvec4) Load 37(FragColor)
|
||||
187: 7(fvec4) VectorTimesMatrix 186 185
|
||||
Store 37(FragColor) 187
|
||||
188: 7(fvec4) Load 37(FragColor)
|
||||
189: 8 Load 65(un34)
|
||||
190: 8 Load 65(un34)
|
||||
191: 7(fvec4) CompositeExtract 189 0
|
||||
192: 7(fvec4) CompositeExtract 190 0
|
||||
193: 7(fvec4) FMul 191 192
|
||||
194: 7(fvec4) CompositeExtract 189 1
|
||||
195: 7(fvec4) CompositeExtract 190 1
|
||||
196: 7(fvec4) FMul 194 195
|
||||
197: 7(fvec4) CompositeExtract 189 2
|
||||
198: 7(fvec4) CompositeExtract 190 2
|
||||
199: 7(fvec4) FMul 197 198
|
||||
200: 8 CompositeConstruct 193 196 199
|
||||
201: 14(fvec3) VectorTimesMatrix 188 200
|
||||
204: 203(ptr) AccessChain 37(FragColor) 202
|
||||
205: 6(float) Load 204
|
||||
206: 6(float) CompositeExtract 201 0
|
||||
207: 6(float) CompositeExtract 201 1
|
||||
208: 6(float) CompositeExtract 201 2
|
||||
209: 7(fvec4) CompositeConstruct 206 207 208 205
|
||||
Store 37(FragColor) 209
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 277
|
||||
// Id's are bound by 278
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 29 17 55 26 84 91 81 276 246
|
||||
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
@@ -39,17 +39,17 @@ Linked fragment stage:
|
||||
Name 227 "is2DArray"
|
||||
Name 237 "iv2"
|
||||
Name 241 "sCubeShadow"
|
||||
Name 246 "FragData"
|
||||
Name 258 "is2Dms"
|
||||
Name 262 "us2D"
|
||||
Name 266 "us3D"
|
||||
Name 270 "usCube"
|
||||
Name 274 "us2DArray"
|
||||
Name 276 "ic4D"
|
||||
Name 247 "FragData"
|
||||
Name 259 "is2Dms"
|
||||
Name 263 "us2D"
|
||||
Name 267 "us3D"
|
||||
Name 271 "usCube"
|
||||
Name 275 "us2DArray"
|
||||
Name 277 "ic4D"
|
||||
Decorate 81(ic3D) Flat
|
||||
Decorate 84(ic1D) Flat
|
||||
Decorate 91(ic2D) Flat
|
||||
Decorate 276(ic4D) Flat
|
||||
Decorate 277(ic4D) Flat
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -140,31 +140,31 @@ Linked fragment stage:
|
||||
240: TypePointer UniformConstant 239
|
||||
241(sCubeShadow): 240(ptr) Variable UniformConstant
|
||||
243: 67(int) Constant 2
|
||||
245: TypePointer Output 7(fvec4)
|
||||
246(FragData): 245(ptr) Variable Output
|
||||
250: 6(float) Constant 0
|
||||
255: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
|
||||
256: TypeSampledImage 255
|
||||
257: TypePointer UniformConstant 256
|
||||
258(is2Dms): 257(ptr) Variable UniformConstant
|
||||
259: TypeImage 32(int) 2D sampled format:Unknown
|
||||
260: TypeSampledImage 259
|
||||
261: TypePointer UniformConstant 260
|
||||
262(us2D): 261(ptr) Variable UniformConstant
|
||||
263: TypeImage 32(int) 3D sampled format:Unknown
|
||||
264: TypeSampledImage 263
|
||||
265: TypePointer UniformConstant 264
|
||||
266(us3D): 265(ptr) Variable UniformConstant
|
||||
267: TypeImage 32(int) Cube sampled format:Unknown
|
||||
268: TypeSampledImage 267
|
||||
269: TypePointer UniformConstant 268
|
||||
270(usCube): 269(ptr) Variable UniformConstant
|
||||
271: TypeImage 32(int) 2D array sampled format:Unknown
|
||||
272: TypeSampledImage 271
|
||||
273: TypePointer UniformConstant 272
|
||||
274(us2DArray): 273(ptr) Variable UniformConstant
|
||||
275: TypePointer Input 162(ivec4)
|
||||
276(ic4D): 275(ptr) Variable Input
|
||||
246: TypePointer Output 7(fvec4)
|
||||
247(FragData): 246(ptr) Variable Output
|
||||
251: 6(float) Constant 0
|
||||
256: TypeImage 67(int) 2D multi-sampled sampled format:Unknown
|
||||
257: TypeSampledImage 256
|
||||
258: TypePointer UniformConstant 257
|
||||
259(is2Dms): 258(ptr) Variable UniformConstant
|
||||
260: TypeImage 32(int) 2D sampled format:Unknown
|
||||
261: TypeSampledImage 260
|
||||
262: TypePointer UniformConstant 261
|
||||
263(us2D): 262(ptr) Variable UniformConstant
|
||||
264: TypeImage 32(int) 3D sampled format:Unknown
|
||||
265: TypeSampledImage 264
|
||||
266: TypePointer UniformConstant 265
|
||||
267(us3D): 266(ptr) Variable UniformConstant
|
||||
268: TypeImage 32(int) Cube sampled format:Unknown
|
||||
269: TypeSampledImage 268
|
||||
270: TypePointer UniformConstant 269
|
||||
271(usCube): 270(ptr) Variable UniformConstant
|
||||
272: TypeImage 32(int) 2D array sampled format:Unknown
|
||||
273: TypeSampledImage 272
|
||||
274: TypePointer UniformConstant 273
|
||||
275(us2DArray): 274(ptr) Variable UniformConstant
|
||||
276: TypePointer Input 162(ivec4)
|
||||
277(ic4D): 276(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(v): 8(ptr) Variable Function
|
||||
@@ -345,15 +345,16 @@ Linked fragment stage:
|
||||
235: 7(fvec4) FAdd 234 233
|
||||
Store 9(v) 235
|
||||
242: 239 Load 241(sCubeShadow)
|
||||
244: 68(ivec2) ImageQuerySizeLod 242 243
|
||||
Store 237(iv2) 244
|
||||
247: 7(fvec4) Load 9(v)
|
||||
248: 68(ivec2) Load 237(iv2)
|
||||
249: 15(fvec2) ConvertSToF 248
|
||||
251: 6(float) CompositeExtract 249 0
|
||||
252: 6(float) CompositeExtract 249 1
|
||||
253: 7(fvec4) CompositeConstruct 251 252 250 250
|
||||
254: 7(fvec4) FAdd 247 253
|
||||
Store 246(FragData) 254
|
||||
244: 238 Image 242
|
||||
245: 68(ivec2) ImageQuerySizeLod 244 243
|
||||
Store 237(iv2) 245
|
||||
248: 7(fvec4) Load 9(v)
|
||||
249: 68(ivec2) Load 237(iv2)
|
||||
250: 15(fvec2) ConvertSToF 249
|
||||
252: 6(float) CompositeExtract 250 0
|
||||
253: 6(float) CompositeExtract 250 1
|
||||
254: 7(fvec4) CompositeConstruct 252 253 251 251
|
||||
255: 7(fvec4) FAdd 248 254
|
||||
Store 247(FragData) 255
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 12 55
|
||||
EntryPoint Vertex 4 "main" 12 28 55
|
||||
Source GLSL 120
|
||||
Name 4 "main"
|
||||
Name 9 "a"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 57 59 23 71
|
||||
EntryPoint Fragment 4 "main" 23 57 59 71
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
@@ -168,7 +168,7 @@ Linked fragment stage:
|
||||
18(bv2): 16(ptr) FunctionParameter
|
||||
20: Label
|
||||
27: 15(bvec2) Load 18(bv2)
|
||||
31: 15(bvec2) IEqual 27 30
|
||||
31: 15(bvec2) LogicalEqual 27 30
|
||||
32: 14(bool) All 31
|
||||
ReturnValue 32
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
EntryPoint Fragment 4 "main" 90
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 140
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 11 9 13 15 17 19 23 24
|
||||
EntryPoint Vertex 4 "main" 9 11 13 15 17 19 23 24
|
||||
Source GLSL 430
|
||||
Name 4 "main"
|
||||
Name 9 "outVc"
|
||||
|
||||
@@ -7,7 +7,7 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 211
|
||||
// Id's are bound by 237
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
@@ -19,28 +19,28 @@ Linked fragment stage:
|
||||
Name 9 "lod"
|
||||
Name 13 "samp1D"
|
||||
Name 16 "pf"
|
||||
Name 23 "isamp2D"
|
||||
Name 25 "pf2"
|
||||
Name 34 "usamp3D"
|
||||
Name 38 "pf3"
|
||||
Name 46 "sampCube"
|
||||
Name 55 "isamp1DA"
|
||||
Name 64 "usamp2DA"
|
||||
Name 73 "isampCubeA"
|
||||
Name 82 "samp1Ds"
|
||||
Name 91 "samp2Ds"
|
||||
Name 100 "sampCubes"
|
||||
Name 109 "samp1DAs"
|
||||
Name 118 "samp2DAs"
|
||||
Name 127 "sampCubeAs"
|
||||
Name 134 "levels"
|
||||
Name 140 "usamp2D"
|
||||
Name 148 "isamp3D"
|
||||
Name 156 "isampCube"
|
||||
Name 168 "samp2DA"
|
||||
Name 176 "usampCubeA"
|
||||
Name 206 "sampBuf"
|
||||
Name 210 "sampRect"
|
||||
Name 24 "isamp2D"
|
||||
Name 26 "pf2"
|
||||
Name 36 "usamp3D"
|
||||
Name 40 "pf3"
|
||||
Name 49 "sampCube"
|
||||
Name 59 "isamp1DA"
|
||||
Name 69 "usamp2DA"
|
||||
Name 79 "isampCubeA"
|
||||
Name 89 "samp1Ds"
|
||||
Name 99 "samp2Ds"
|
||||
Name 109 "sampCubes"
|
||||
Name 119 "samp1DAs"
|
||||
Name 129 "samp2DAs"
|
||||
Name 139 "sampCubeAs"
|
||||
Name 147 "levels"
|
||||
Name 154 "usamp2D"
|
||||
Name 163 "isamp3D"
|
||||
Name 172 "isampCube"
|
||||
Name 186 "samp2DA"
|
||||
Name 195 "usampCubeA"
|
||||
Name 232 "sampBuf"
|
||||
Name 236 "sampRect"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -51,230 +51,256 @@ Linked fragment stage:
|
||||
12: TypePointer UniformConstant 11
|
||||
13(samp1D): 12(ptr) Variable UniformConstant
|
||||
15: TypePointer Function 6(float)
|
||||
19: TypeInt 32 1
|
||||
20: TypeImage 19(int) 2D sampled format:Unknown
|
||||
21: TypeSampledImage 20
|
||||
22: TypePointer UniformConstant 21
|
||||
23(isamp2D): 22(ptr) Variable UniformConstant
|
||||
30: TypeInt 32 0
|
||||
31: TypeImage 30(int) 3D sampled format:Unknown
|
||||
32: TypeSampledImage 31
|
||||
33: TypePointer UniformConstant 32
|
||||
34(usamp3D): 33(ptr) Variable UniformConstant
|
||||
36: TypeVector 6(float) 3
|
||||
37: TypePointer Function 36(fvec3)
|
||||
43: TypeImage 6(float) Cube sampled format:Unknown
|
||||
44: TypeSampledImage 43
|
||||
45: TypePointer UniformConstant 44
|
||||
46(sampCube): 45(ptr) Variable UniformConstant
|
||||
52: TypeImage 19(int) 1D array sampled format:Unknown
|
||||
53: TypeSampledImage 52
|
||||
54: TypePointer UniformConstant 53
|
||||
55(isamp1DA): 54(ptr) Variable UniformConstant
|
||||
61: TypeImage 30(int) 2D array sampled format:Unknown
|
||||
62: TypeSampledImage 61
|
||||
63: TypePointer UniformConstant 62
|
||||
64(usamp2DA): 63(ptr) Variable UniformConstant
|
||||
70: TypeImage 19(int) Cube array sampled format:Unknown
|
||||
71: TypeSampledImage 70
|
||||
72: TypePointer UniformConstant 71
|
||||
73(isampCubeA): 72(ptr) Variable UniformConstant
|
||||
79: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
80: TypeSampledImage 79
|
||||
81: TypePointer UniformConstant 80
|
||||
82(samp1Ds): 81(ptr) Variable UniformConstant
|
||||
88: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
89: TypeSampledImage 88
|
||||
90: TypePointer UniformConstant 89
|
||||
91(samp2Ds): 90(ptr) Variable UniformConstant
|
||||
97: TypeImage 6(float) Cube depth sampled format:Unknown
|
||||
98: TypeSampledImage 97
|
||||
99: TypePointer UniformConstant 98
|
||||
100(sampCubes): 99(ptr) Variable UniformConstant
|
||||
106: TypeImage 6(float) 1D depth array sampled format:Unknown
|
||||
20: TypeInt 32 1
|
||||
21: TypeImage 20(int) 2D sampled format:Unknown
|
||||
22: TypeSampledImage 21
|
||||
23: TypePointer UniformConstant 22
|
||||
24(isamp2D): 23(ptr) Variable UniformConstant
|
||||
32: TypeInt 32 0
|
||||
33: TypeImage 32(int) 3D sampled format:Unknown
|
||||
34: TypeSampledImage 33
|
||||
35: TypePointer UniformConstant 34
|
||||
36(usamp3D): 35(ptr) Variable UniformConstant
|
||||
38: TypeVector 6(float) 3
|
||||
39: TypePointer Function 38(fvec3)
|
||||
46: TypeImage 6(float) Cube sampled format:Unknown
|
||||
47: TypeSampledImage 46
|
||||
48: TypePointer UniformConstant 47
|
||||
49(sampCube): 48(ptr) Variable UniformConstant
|
||||
56: TypeImage 20(int) 1D array sampled format:Unknown
|
||||
57: TypeSampledImage 56
|
||||
58: TypePointer UniformConstant 57
|
||||
59(isamp1DA): 58(ptr) Variable UniformConstant
|
||||
66: TypeImage 32(int) 2D array sampled format:Unknown
|
||||
67: TypeSampledImage 66
|
||||
68: TypePointer UniformConstant 67
|
||||
69(usamp2DA): 68(ptr) Variable UniformConstant
|
||||
76: TypeImage 20(int) Cube array sampled format:Unknown
|
||||
77: TypeSampledImage 76
|
||||
78: TypePointer UniformConstant 77
|
||||
79(isampCubeA): 78(ptr) Variable UniformConstant
|
||||
86: TypeImage 6(float) 1D depth sampled format:Unknown
|
||||
87: TypeSampledImage 86
|
||||
88: TypePointer UniformConstant 87
|
||||
89(samp1Ds): 88(ptr) Variable UniformConstant
|
||||
96: TypeImage 6(float) 2D depth sampled format:Unknown
|
||||
97: TypeSampledImage 96
|
||||
98: TypePointer UniformConstant 97
|
||||
99(samp2Ds): 98(ptr) Variable UniformConstant
|
||||
106: TypeImage 6(float) Cube depth sampled format:Unknown
|
||||
107: TypeSampledImage 106
|
||||
108: TypePointer UniformConstant 107
|
||||
109(samp1DAs): 108(ptr) Variable UniformConstant
|
||||
115: TypeImage 6(float) 2D depth array sampled format:Unknown
|
||||
116: TypeSampledImage 115
|
||||
117: TypePointer UniformConstant 116
|
||||
118(samp2DAs): 117(ptr) Variable UniformConstant
|
||||
124: TypeImage 6(float) Cube depth array sampled format:Unknown
|
||||
125: TypeSampledImage 124
|
||||
126: TypePointer UniformConstant 125
|
||||
127(sampCubeAs): 126(ptr) Variable UniformConstant
|
||||
133: TypePointer Function 19(int)
|
||||
137: TypeImage 30(int) 2D sampled format:Unknown
|
||||
138: TypeSampledImage 137
|
||||
139: TypePointer UniformConstant 138
|
||||
140(usamp2D): 139(ptr) Variable UniformConstant
|
||||
145: TypeImage 19(int) 3D sampled format:Unknown
|
||||
146: TypeSampledImage 145
|
||||
147: TypePointer UniformConstant 146
|
||||
148(isamp3D): 147(ptr) Variable UniformConstant
|
||||
153: TypeImage 19(int) Cube sampled format:Unknown
|
||||
154: TypeSampledImage 153
|
||||
155: TypePointer UniformConstant 154
|
||||
156(isampCube): 155(ptr) Variable UniformConstant
|
||||
165: TypeImage 6(float) 2D array sampled format:Unknown
|
||||
166: TypeSampledImage 165
|
||||
167: TypePointer UniformConstant 166
|
||||
168(samp2DA): 167(ptr) Variable UniformConstant
|
||||
173: TypeImage 30(int) Cube array sampled format:Unknown
|
||||
174: TypeSampledImage 173
|
||||
175: TypePointer UniformConstant 174
|
||||
176(usampCubeA): 175(ptr) Variable UniformConstant
|
||||
203: TypeImage 6(float) Buffer sampled format:Unknown
|
||||
204: TypeSampledImage 203
|
||||
205: TypePointer UniformConstant 204
|
||||
206(sampBuf): 205(ptr) Variable UniformConstant
|
||||
207: TypeImage 6(float) Rect sampled format:Unknown
|
||||
208: TypeSampledImage 207
|
||||
209: TypePointer UniformConstant 208
|
||||
210(sampRect): 209(ptr) Variable UniformConstant
|
||||
109(sampCubes): 108(ptr) Variable UniformConstant
|
||||
116: TypeImage 6(float) 1D depth array sampled format:Unknown
|
||||
117: TypeSampledImage 116
|
||||
118: TypePointer UniformConstant 117
|
||||
119(samp1DAs): 118(ptr) Variable UniformConstant
|
||||
126: TypeImage 6(float) 2D depth array sampled format:Unknown
|
||||
127: TypeSampledImage 126
|
||||
128: TypePointer UniformConstant 127
|
||||
129(samp2DAs): 128(ptr) Variable UniformConstant
|
||||
136: TypeImage 6(float) Cube depth array sampled format:Unknown
|
||||
137: TypeSampledImage 136
|
||||
138: TypePointer UniformConstant 137
|
||||
139(sampCubeAs): 138(ptr) Variable UniformConstant
|
||||
146: TypePointer Function 20(int)
|
||||
151: TypeImage 32(int) 2D sampled format:Unknown
|
||||
152: TypeSampledImage 151
|
||||
153: TypePointer UniformConstant 152
|
||||
154(usamp2D): 153(ptr) Variable UniformConstant
|
||||
160: TypeImage 20(int) 3D sampled format:Unknown
|
||||
161: TypeSampledImage 160
|
||||
162: TypePointer UniformConstant 161
|
||||
163(isamp3D): 162(ptr) Variable UniformConstant
|
||||
169: TypeImage 20(int) Cube sampled format:Unknown
|
||||
170: TypeSampledImage 169
|
||||
171: TypePointer UniformConstant 170
|
||||
172(isampCube): 171(ptr) Variable UniformConstant
|
||||
183: TypeImage 6(float) 2D array sampled format:Unknown
|
||||
184: TypeSampledImage 183
|
||||
185: TypePointer UniformConstant 184
|
||||
186(samp2DA): 185(ptr) Variable UniformConstant
|
||||
192: TypeImage 32(int) Cube array sampled format:Unknown
|
||||
193: TypeSampledImage 192
|
||||
194: TypePointer UniformConstant 193
|
||||
195(usampCubeA): 194(ptr) Variable UniformConstant
|
||||
229: TypeImage 6(float) Buffer sampled format:Unknown
|
||||
230: TypeSampledImage 229
|
||||
231: TypePointer UniformConstant 230
|
||||
232(sampBuf): 231(ptr) Variable UniformConstant
|
||||
233: TypeImage 6(float) Rect sampled format:Unknown
|
||||
234: TypeSampledImage 233
|
||||
235: TypePointer UniformConstant 234
|
||||
236(sampRect): 235(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(lod): 8(ptr) Variable Function
|
||||
16(pf): 15(ptr) Variable Function
|
||||
25(pf2): 8(ptr) Variable Function
|
||||
38(pf3): 37(ptr) Variable Function
|
||||
134(levels): 133(ptr) Variable Function
|
||||
26(pf2): 8(ptr) Variable Function
|
||||
40(pf3): 39(ptr) Variable Function
|
||||
147(levels): 146(ptr) Variable Function
|
||||
14: 11 Load 13(samp1D)
|
||||
17: 6(float) Load 16(pf)
|
||||
18: 7(fvec2) ImageQueryLod 14 17
|
||||
Store 9(lod) 18
|
||||
24: 21 Load 23(isamp2D)
|
||||
26: 7(fvec2) Load 25(pf2)
|
||||
27: 7(fvec2) ImageQueryLod 24 26
|
||||
28: 7(fvec2) Load 9(lod)
|
||||
29: 7(fvec2) FAdd 28 27
|
||||
Store 9(lod) 29
|
||||
35: 32 Load 34(usamp3D)
|
||||
39: 36(fvec3) Load 38(pf3)
|
||||
40: 7(fvec2) ImageQueryLod 35 39
|
||||
41: 7(fvec2) Load 9(lod)
|
||||
42: 7(fvec2) FAdd 41 40
|
||||
Store 9(lod) 42
|
||||
47: 44 Load 46(sampCube)
|
||||
48: 36(fvec3) Load 38(pf3)
|
||||
49: 7(fvec2) ImageQueryLod 47 48
|
||||
50: 7(fvec2) Load 9(lod)
|
||||
51: 7(fvec2) FAdd 50 49
|
||||
Store 9(lod) 51
|
||||
56: 53 Load 55(isamp1DA)
|
||||
57: 6(float) Load 16(pf)
|
||||
58: 7(fvec2) ImageQueryLod 56 57
|
||||
59: 7(fvec2) Load 9(lod)
|
||||
60: 7(fvec2) FAdd 59 58
|
||||
Store 9(lod) 60
|
||||
65: 62 Load 64(usamp2DA)
|
||||
66: 7(fvec2) Load 25(pf2)
|
||||
67: 7(fvec2) ImageQueryLod 65 66
|
||||
68: 7(fvec2) Load 9(lod)
|
||||
69: 7(fvec2) FAdd 68 67
|
||||
Store 9(lod) 69
|
||||
74: 71 Load 73(isampCubeA)
|
||||
75: 36(fvec3) Load 38(pf3)
|
||||
76: 7(fvec2) ImageQueryLod 74 75
|
||||
77: 7(fvec2) Load 9(lod)
|
||||
78: 7(fvec2) FAdd 77 76
|
||||
Store 9(lod) 78
|
||||
83: 80 Load 82(samp1Ds)
|
||||
84: 6(float) Load 16(pf)
|
||||
85: 7(fvec2) ImageQueryLod 83 84
|
||||
86: 7(fvec2) Load 9(lod)
|
||||
87: 7(fvec2) FAdd 86 85
|
||||
Store 9(lod) 87
|
||||
92: 89 Load 91(samp2Ds)
|
||||
93: 7(fvec2) Load 25(pf2)
|
||||
94: 7(fvec2) ImageQueryLod 92 93
|
||||
95: 7(fvec2) Load 9(lod)
|
||||
96: 7(fvec2) FAdd 95 94
|
||||
Store 9(lod) 96
|
||||
101: 98 Load 100(sampCubes)
|
||||
102: 36(fvec3) Load 38(pf3)
|
||||
103: 7(fvec2) ImageQueryLod 101 102
|
||||
18: 10 Image 14
|
||||
19: 7(fvec2) ImageQueryLod 18 17
|
||||
Store 9(lod) 19
|
||||
25: 22 Load 24(isamp2D)
|
||||
27: 7(fvec2) Load 26(pf2)
|
||||
28: 21 Image 25
|
||||
29: 7(fvec2) ImageQueryLod 28 27
|
||||
30: 7(fvec2) Load 9(lod)
|
||||
31: 7(fvec2) FAdd 30 29
|
||||
Store 9(lod) 31
|
||||
37: 34 Load 36(usamp3D)
|
||||
41: 38(fvec3) Load 40(pf3)
|
||||
42: 33 Image 37
|
||||
43: 7(fvec2) ImageQueryLod 42 41
|
||||
44: 7(fvec2) Load 9(lod)
|
||||
45: 7(fvec2) FAdd 44 43
|
||||
Store 9(lod) 45
|
||||
50: 47 Load 49(sampCube)
|
||||
51: 38(fvec3) Load 40(pf3)
|
||||
52: 46 Image 50
|
||||
53: 7(fvec2) ImageQueryLod 52 51
|
||||
54: 7(fvec2) Load 9(lod)
|
||||
55: 7(fvec2) FAdd 54 53
|
||||
Store 9(lod) 55
|
||||
60: 57 Load 59(isamp1DA)
|
||||
61: 6(float) Load 16(pf)
|
||||
62: 56 Image 60
|
||||
63: 7(fvec2) ImageQueryLod 62 61
|
||||
64: 7(fvec2) Load 9(lod)
|
||||
65: 7(fvec2) FAdd 64 63
|
||||
Store 9(lod) 65
|
||||
70: 67 Load 69(usamp2DA)
|
||||
71: 7(fvec2) Load 26(pf2)
|
||||
72: 66 Image 70
|
||||
73: 7(fvec2) ImageQueryLod 72 71
|
||||
74: 7(fvec2) Load 9(lod)
|
||||
75: 7(fvec2) FAdd 74 73
|
||||
Store 9(lod) 75
|
||||
80: 77 Load 79(isampCubeA)
|
||||
81: 38(fvec3) Load 40(pf3)
|
||||
82: 76 Image 80
|
||||
83: 7(fvec2) ImageQueryLod 82 81
|
||||
84: 7(fvec2) Load 9(lod)
|
||||
85: 7(fvec2) FAdd 84 83
|
||||
Store 9(lod) 85
|
||||
90: 87 Load 89(samp1Ds)
|
||||
91: 6(float) Load 16(pf)
|
||||
92: 86 Image 90
|
||||
93: 7(fvec2) ImageQueryLod 92 91
|
||||
94: 7(fvec2) Load 9(lod)
|
||||
95: 7(fvec2) FAdd 94 93
|
||||
Store 9(lod) 95
|
||||
100: 97 Load 99(samp2Ds)
|
||||
101: 7(fvec2) Load 26(pf2)
|
||||
102: 96 Image 100
|
||||
103: 7(fvec2) ImageQueryLod 102 101
|
||||
104: 7(fvec2) Load 9(lod)
|
||||
105: 7(fvec2) FAdd 104 103
|
||||
Store 9(lod) 105
|
||||
110: 107 Load 109(samp1DAs)
|
||||
111: 6(float) Load 16(pf)
|
||||
112: 7(fvec2) ImageQueryLod 110 111
|
||||
113: 7(fvec2) Load 9(lod)
|
||||
114: 7(fvec2) FAdd 113 112
|
||||
Store 9(lod) 114
|
||||
119: 116 Load 118(samp2DAs)
|
||||
120: 7(fvec2) Load 25(pf2)
|
||||
121: 7(fvec2) ImageQueryLod 119 120
|
||||
122: 7(fvec2) Load 9(lod)
|
||||
123: 7(fvec2) FAdd 122 121
|
||||
Store 9(lod) 123
|
||||
128: 125 Load 127(sampCubeAs)
|
||||
129: 36(fvec3) Load 38(pf3)
|
||||
130: 7(fvec2) ImageQueryLod 128 129
|
||||
131: 7(fvec2) Load 9(lod)
|
||||
132: 7(fvec2) FAdd 131 130
|
||||
Store 9(lod) 132
|
||||
135: 11 Load 13(samp1D)
|
||||
136: 19(int) ImageQueryLevels 135
|
||||
Store 134(levels) 136
|
||||
141: 138 Load 140(usamp2D)
|
||||
142: 19(int) ImageQueryLevels 141
|
||||
143: 19(int) Load 134(levels)
|
||||
144: 19(int) IAdd 143 142
|
||||
Store 134(levels) 144
|
||||
149: 146 Load 148(isamp3D)
|
||||
150: 19(int) ImageQueryLevels 149
|
||||
151: 19(int) Load 134(levels)
|
||||
152: 19(int) IAdd 151 150
|
||||
Store 134(levels) 152
|
||||
157: 154 Load 156(isampCube)
|
||||
158: 19(int) ImageQueryLevels 157
|
||||
159: 19(int) Load 134(levels)
|
||||
160: 19(int) IAdd 159 158
|
||||
Store 134(levels) 160
|
||||
161: 53 Load 55(isamp1DA)
|
||||
162: 19(int) ImageQueryLevels 161
|
||||
163: 19(int) Load 134(levels)
|
||||
164: 19(int) IAdd 163 162
|
||||
Store 134(levels) 164
|
||||
169: 166 Load 168(samp2DA)
|
||||
170: 19(int) ImageQueryLevels 169
|
||||
171: 19(int) Load 134(levels)
|
||||
172: 19(int) IAdd 171 170
|
||||
Store 134(levels) 172
|
||||
177: 174 Load 176(usampCubeA)
|
||||
178: 19(int) ImageQueryLevels 177
|
||||
179: 19(int) Load 134(levels)
|
||||
180: 19(int) IAdd 179 178
|
||||
Store 134(levels) 180
|
||||
181: 80 Load 82(samp1Ds)
|
||||
182: 19(int) ImageQueryLevels 181
|
||||
Store 134(levels) 182
|
||||
183: 89 Load 91(samp2Ds)
|
||||
184: 19(int) ImageQueryLevels 183
|
||||
185: 19(int) Load 134(levels)
|
||||
186: 19(int) IAdd 185 184
|
||||
Store 134(levels) 186
|
||||
187: 98 Load 100(sampCubes)
|
||||
188: 19(int) ImageQueryLevels 187
|
||||
189: 19(int) Load 134(levels)
|
||||
190: 19(int) IAdd 189 188
|
||||
Store 134(levels) 190
|
||||
191: 107 Load 109(samp1DAs)
|
||||
192: 19(int) ImageQueryLevels 191
|
||||
193: 19(int) Load 134(levels)
|
||||
194: 19(int) IAdd 193 192
|
||||
Store 134(levels) 194
|
||||
195: 116 Load 118(samp2DAs)
|
||||
196: 19(int) ImageQueryLevels 195
|
||||
197: 19(int) Load 134(levels)
|
||||
198: 19(int) IAdd 197 196
|
||||
Store 134(levels) 198
|
||||
199: 125 Load 127(sampCubeAs)
|
||||
200: 19(int) ImageQueryLevels 199
|
||||
201: 19(int) Load 134(levels)
|
||||
202: 19(int) IAdd 201 200
|
||||
Store 134(levels) 202
|
||||
110: 107 Load 109(sampCubes)
|
||||
111: 38(fvec3) Load 40(pf3)
|
||||
112: 106 Image 110
|
||||
113: 7(fvec2) ImageQueryLod 112 111
|
||||
114: 7(fvec2) Load 9(lod)
|
||||
115: 7(fvec2) FAdd 114 113
|
||||
Store 9(lod) 115
|
||||
120: 117 Load 119(samp1DAs)
|
||||
121: 6(float) Load 16(pf)
|
||||
122: 116 Image 120
|
||||
123: 7(fvec2) ImageQueryLod 122 121
|
||||
124: 7(fvec2) Load 9(lod)
|
||||
125: 7(fvec2) FAdd 124 123
|
||||
Store 9(lod) 125
|
||||
130: 127 Load 129(samp2DAs)
|
||||
131: 7(fvec2) Load 26(pf2)
|
||||
132: 126 Image 130
|
||||
133: 7(fvec2) ImageQueryLod 132 131
|
||||
134: 7(fvec2) Load 9(lod)
|
||||
135: 7(fvec2) FAdd 134 133
|
||||
Store 9(lod) 135
|
||||
140: 137 Load 139(sampCubeAs)
|
||||
141: 38(fvec3) Load 40(pf3)
|
||||
142: 136 Image 140
|
||||
143: 7(fvec2) ImageQueryLod 142 141
|
||||
144: 7(fvec2) Load 9(lod)
|
||||
145: 7(fvec2) FAdd 144 143
|
||||
Store 9(lod) 145
|
||||
148: 11 Load 13(samp1D)
|
||||
149: 10 Image 148
|
||||
150: 20(int) ImageQueryLevels 149
|
||||
Store 147(levels) 150
|
||||
155: 152 Load 154(usamp2D)
|
||||
156: 151 Image 155
|
||||
157: 20(int) ImageQueryLevels 156
|
||||
158: 20(int) Load 147(levels)
|
||||
159: 20(int) IAdd 158 157
|
||||
Store 147(levels) 159
|
||||
164: 161 Load 163(isamp3D)
|
||||
165: 160 Image 164
|
||||
166: 20(int) ImageQueryLevels 165
|
||||
167: 20(int) Load 147(levels)
|
||||
168: 20(int) IAdd 167 166
|
||||
Store 147(levels) 168
|
||||
173: 170 Load 172(isampCube)
|
||||
174: 169 Image 173
|
||||
175: 20(int) ImageQueryLevels 174
|
||||
176: 20(int) Load 147(levels)
|
||||
177: 20(int) IAdd 176 175
|
||||
Store 147(levels) 177
|
||||
178: 57 Load 59(isamp1DA)
|
||||
179: 56 Image 178
|
||||
180: 20(int) ImageQueryLevels 179
|
||||
181: 20(int) Load 147(levels)
|
||||
182: 20(int) IAdd 181 180
|
||||
Store 147(levels) 182
|
||||
187: 184 Load 186(samp2DA)
|
||||
188: 183 Image 187
|
||||
189: 20(int) ImageQueryLevels 188
|
||||
190: 20(int) Load 147(levels)
|
||||
191: 20(int) IAdd 190 189
|
||||
Store 147(levels) 191
|
||||
196: 193 Load 195(usampCubeA)
|
||||
197: 192 Image 196
|
||||
198: 20(int) ImageQueryLevels 197
|
||||
199: 20(int) Load 147(levels)
|
||||
200: 20(int) IAdd 199 198
|
||||
Store 147(levels) 200
|
||||
201: 87 Load 89(samp1Ds)
|
||||
202: 86 Image 201
|
||||
203: 20(int) ImageQueryLevels 202
|
||||
Store 147(levels) 203
|
||||
204: 97 Load 99(samp2Ds)
|
||||
205: 96 Image 204
|
||||
206: 20(int) ImageQueryLevels 205
|
||||
207: 20(int) Load 147(levels)
|
||||
208: 20(int) IAdd 207 206
|
||||
Store 147(levels) 208
|
||||
209: 107 Load 109(sampCubes)
|
||||
210: 106 Image 209
|
||||
211: 20(int) ImageQueryLevels 210
|
||||
212: 20(int) Load 147(levels)
|
||||
213: 20(int) IAdd 212 211
|
||||
Store 147(levels) 213
|
||||
214: 117 Load 119(samp1DAs)
|
||||
215: 116 Image 214
|
||||
216: 20(int) ImageQueryLevels 215
|
||||
217: 20(int) Load 147(levels)
|
||||
218: 20(int) IAdd 217 216
|
||||
Store 147(levels) 218
|
||||
219: 127 Load 129(samp2DAs)
|
||||
220: 126 Image 219
|
||||
221: 20(int) ImageQueryLevels 220
|
||||
222: 20(int) Load 147(levels)
|
||||
223: 20(int) IAdd 222 221
|
||||
Store 147(levels) 223
|
||||
224: 137 Load 139(sampCubeAs)
|
||||
225: 136 Image 224
|
||||
226: 20(int) ImageQueryLevels 225
|
||||
227: 20(int) Load 147(levels)
|
||||
228: 20(int) IAdd 227 226
|
||||
Store 147(levels) 228
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
66
Test/baseResults/spv.shiftOps.frag.out
Normal file
66
Test/baseResults/spv.shiftOps.frag.out
Normal file
@@ -0,0 +1,66 @@
|
||||
spv.shiftOps.frag
|
||||
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 38
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 9 25
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 450
|
||||
Name 4 "main"
|
||||
Name 9 "icolor"
|
||||
Name 11 "i3"
|
||||
Name 15 "u1"
|
||||
Name 25 "ucolor"
|
||||
Name 27 "u3"
|
||||
Name 30 "i1"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeInt 32 1
|
||||
7: TypeVector 6(int) 3
|
||||
8: TypePointer Output 7(ivec3)
|
||||
9(icolor): 8(ptr) Variable Output
|
||||
10: TypePointer UniformConstant 7(ivec3)
|
||||
11(i3): 10(ptr) Variable UniformConstant
|
||||
13: TypeInt 32 0
|
||||
14: TypePointer UniformConstant 13(int)
|
||||
15(u1): 14(ptr) Variable UniformConstant
|
||||
17: TypeVector 13(int) 3
|
||||
20: 13(int) Constant 4
|
||||
24: TypePointer Output 17(ivec3)
|
||||
25(ucolor): 24(ptr) Variable Output
|
||||
26: TypePointer UniformConstant 17(ivec3)
|
||||
27(u3): 26(ptr) Variable UniformConstant
|
||||
29: TypePointer UniformConstant 6(int)
|
||||
30(i1): 29(ptr) Variable UniformConstant
|
||||
34: 6(int) Constant 5
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(ivec3) Load 11(i3)
|
||||
16: 13(int) Load 15(u1)
|
||||
18: 17(ivec3) CompositeConstruct 16 16 16
|
||||
19: 7(ivec3) ShiftLeftLogical 12 18
|
||||
Store 9(icolor) 19
|
||||
21: 7(ivec3) Load 9(icolor)
|
||||
22: 17(ivec3) CompositeConstruct 20 20 20
|
||||
23: 7(ivec3) ShiftLeftLogical 21 22
|
||||
Store 9(icolor) 23
|
||||
28: 17(ivec3) Load 27(u3)
|
||||
31: 6(int) Load 30(i1)
|
||||
32: 7(ivec3) CompositeConstruct 31 31 31
|
||||
33: 17(ivec3) ShiftRightLogical 28 32
|
||||
Store 25(ucolor) 33
|
||||
35: 17(ivec3) Load 25(ucolor)
|
||||
36: 7(ivec3) CompositeConstruct 34 34 34
|
||||
37: 17(ivec3) ShiftRightLogical 35 36
|
||||
Store 25(ucolor) 37
|
||||
Return
|
||||
FunctionEnd
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 12
|
||||
EntryPoint Fragment 4 "main" 12 16
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 150
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 15 23 34 19 9 40 41
|
||||
EntryPoint Vertex 4 "main" 9 15 19 23 34 40 41
|
||||
Source GLSL 330
|
||||
Name 4 "main"
|
||||
Name 9 "glPos"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 44
|
||||
EntryPoint Fragment 4 "main" 31 44
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 61
|
||||
EntryPoint Fragment 4 "main" 61 99
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 54
|
||||
EntryPoint Fragment 4 "main" 45 54
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 30
|
||||
EntryPoint Fragment 4 "main" 30 69
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 110
|
||||
Name 4 "main"
|
||||
|
||||
@@ -7,12 +7,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 55
|
||||
// Id's are bound by 56
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 20 38
|
||||
EntryPoint Fragment 4 "main" 20 38 44
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 400
|
||||
Name 4 "main"
|
||||
@@ -82,7 +82,8 @@ Linked fragment stage:
|
||||
51: 6(float) Load 50(blend)
|
||||
52: 6(float) Load 8(blendscale)
|
||||
53: 6(float) FMul 51 52
|
||||
54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 45 48 53
|
||||
Store 44(gl_FragColor) 54
|
||||
54: 10(fvec4) CompositeConstruct 53 53 53 53
|
||||
55: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 45 48 54
|
||||
Store 44(gl_FragColor) 55
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 21 11 9 26
|
||||
EntryPoint Vertex 4 "main" 9 11 15 21 26
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
Name 9 "uv"
|
||||
|
||||
@@ -8,12 +8,12 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 290
|
||||
// Id's are bound by 291
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 289 47
|
||||
EntryPoint Fragment 4 "main" 47 276 290
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
@@ -39,8 +39,8 @@ Linked fragment stage:
|
||||
Name 276 "gl_FragColor"
|
||||
Name 279 "u"
|
||||
Name 282 "blend"
|
||||
Name 288 "scale"
|
||||
Name 289 "t"
|
||||
Name 289 "scale"
|
||||
Name 290 "t"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
@@ -103,9 +103,9 @@ Linked fragment stage:
|
||||
279(u): 278(ptr) Variable UniformConstant
|
||||
281: TypePointer UniformConstant 6(float)
|
||||
282(blend): 281(ptr) Variable UniformConstant
|
||||
287: TypePointer UniformConstant 45(fvec2)
|
||||
288(scale): 287(ptr) Variable UniformConstant
|
||||
289(t): 46(ptr) Variable Input
|
||||
288: TypePointer UniformConstant 45(fvec2)
|
||||
289(scale): 288(ptr) Variable UniformConstant
|
||||
290(t): 46(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
8(blendscale): 7(ptr) Variable Function
|
||||
@@ -268,7 +268,7 @@ Linked fragment stage:
|
||||
Store 26(color) 173
|
||||
174: 137 Load 139(shadowSampler1D)
|
||||
175: 22(fvec4) Load 24(coords4D)
|
||||
176: 6(float) CompositeExtract 175 3
|
||||
176: 6(float) CompositeExtract 175 2
|
||||
177: 6(float) ImageSampleProjDrefImplicitLod 174 175 176
|
||||
178: 22(fvec4) Load 26(color)
|
||||
179: 22(fvec4) CompositeConstruct 177 177 177 177
|
||||
@@ -277,7 +277,7 @@ Linked fragment stage:
|
||||
181: 137 Load 139(shadowSampler1D)
|
||||
182: 22(fvec4) Load 24(coords4D)
|
||||
183: 6(float) Load 10(bias)
|
||||
184: 6(float) CompositeExtract 182 3
|
||||
184: 6(float) CompositeExtract 182 2
|
||||
185: 6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183
|
||||
186: 22(fvec4) Load 26(color)
|
||||
187: 22(fvec4) CompositeConstruct 185 185 185 185
|
||||
@@ -285,7 +285,7 @@ Linked fragment stage:
|
||||
Store 26(color) 188
|
||||
189: 156 Load 158(shadowSampler2D)
|
||||
190: 22(fvec4) Load 24(coords4D)
|
||||
191: 6(float) CompositeExtract 190 3
|
||||
191: 6(float) CompositeExtract 190 2
|
||||
192: 6(float) ImageSampleProjDrefImplicitLod 189 190 191
|
||||
193: 22(fvec4) Load 26(color)
|
||||
194: 22(fvec4) CompositeConstruct 192 192 192 192
|
||||
@@ -294,7 +294,7 @@ Linked fragment stage:
|
||||
196: 156 Load 158(shadowSampler2D)
|
||||
197: 22(fvec4) Load 24(coords4D)
|
||||
198: 6(float) Load 10(bias)
|
||||
199: 6(float) CompositeExtract 197 3
|
||||
199: 6(float) CompositeExtract 197 2
|
||||
200: 6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198
|
||||
201: 22(fvec4) Load 26(color)
|
||||
202: 22(fvec4) CompositeConstruct 200 200 200 200
|
||||
@@ -370,7 +370,8 @@ Linked fragment stage:
|
||||
283: 6(float) Load 282(blend)
|
||||
284: 6(float) Load 8(blendscale)
|
||||
285: 6(float) FMul 283 284
|
||||
286: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 285
|
||||
Store 276(gl_FragColor) 286
|
||||
286: 22(fvec4) CompositeConstruct 285 285 285 285
|
||||
287: 22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 277 280 286
|
||||
Store 276(gl_FragColor) 287
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked vertex stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 39 144
|
||||
EntryPoint Vertex 4 "main" 39 140 144
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
Name 8 "lod"
|
||||
@@ -174,7 +174,7 @@ Linked vertex stage:
|
||||
123: 100 Load 102(shadowSampler1D)
|
||||
124: 18(fvec4) Load 20(coords4D)
|
||||
125: 6(float) Load 8(lod)
|
||||
126: 6(float) CompositeExtract 124 3
|
||||
126: 6(float) CompositeExtract 124 2
|
||||
127: 6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125
|
||||
128: 18(fvec4) Load 23(color)
|
||||
129: 18(fvec4) CompositeConstruct 127 127 127 127
|
||||
@@ -183,7 +183,7 @@ Linked vertex stage:
|
||||
131: 112 Load 114(shadowSampler2D)
|
||||
132: 18(fvec4) Load 20(coords4D)
|
||||
133: 6(float) Load 8(lod)
|
||||
134: 6(float) CompositeExtract 132 3
|
||||
134: 6(float) CompositeExtract 132 2
|
||||
135: 6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133
|
||||
136: 18(fvec4) Load 23(color)
|
||||
137: 18(fvec4) CompositeConstruct 135 135 135 135
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 94 104 114 124 134 144 154 164
|
||||
EntryPoint Fragment 4 "main" 94 104 114 124 134 144 154 164 168
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 15 200 77 68
|
||||
EntryPoint Fragment 4 "main" 15 68 77 200
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main"
|
||||
EntryPoint Fragment 4 "main" 47
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -12,7 +12,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 63
|
||||
EntryPoint Fragment 4 "main" 54 63
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -15,7 +15,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 34 39 19 19 48
|
||||
EntryPoint Fragment 4 "main" 19 34 39 45 48
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -15,7 +15,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 45 50 30 30 19
|
||||
EntryPoint Fragment 4 "main" 19 30 45 50 56
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 130
|
||||
Name 4 "main"
|
||||
|
||||
@@ -10,7 +10,7 @@ Linked fragment stage:
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 41
|
||||
EntryPoint Fragment 4 "main" 37 41
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 120
|
||||
Name 4 "main"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user