Move to revision 31 of SPIR-V.
This commit is contained in:
parent
e24a74c320
commit
5e4b1242bf
3
SPIRV/CMakeLists.txt
Normal file → Executable file
3
SPIRV/CMakeLists.txt
Normal file → Executable file
@ -10,7 +10,8 @@ set(SOURCES
|
||||
disassemble.cpp)
|
||||
|
||||
set(HEADERS
|
||||
spirv.h
|
||||
spirv.hpp
|
||||
GLSL.std.450.h
|
||||
GlslangToSpv.h
|
||||
SpvBuilder.h
|
||||
SPVRemapper.h
|
||||
|
||||
300
SPIRV/GlslangToSpv.cpp
Normal file → Executable file
300
SPIRV/GlslangToSpv.cpp
Normal file → Executable file
@ -39,14 +39,17 @@
|
||||
// translate them to SPIR-V.
|
||||
//
|
||||
|
||||
#include "spirv.h"
|
||||
#include "spirv.hpp"
|
||||
#include "GlslangToSpv.h"
|
||||
#include "SpvBuilder.h"
|
||||
#include "GLSL450Lib.h"
|
||||
namespace spv {
|
||||
#include "GLSL.std.450.h"
|
||||
}
|
||||
|
||||
// Glslang includes
|
||||
#include "../glslang/MachineIndependent/localintermediate.h"
|
||||
#include "../glslang/MachineIndependent/SymbolTable.h"
|
||||
#include "../glslang/Include/Common.h"
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
@ -85,6 +88,7 @@ protected:
|
||||
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
||||
spv::Id getSampledType(const glslang::TSampler&);
|
||||
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
||||
void updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset);
|
||||
|
||||
bool isShaderEntrypoint(const glslang::TIntermAggregate* node);
|
||||
void makeFunctions(const glslang::TIntermSequence&);
|
||||
@ -93,6 +97,7 @@ protected:
|
||||
void handleFunctionEntry(const glslang::TIntermAggregate* node);
|
||||
void translateArguments(const glslang::TIntermSequence& glslangArguments, std::vector<spv::Id>& arguments);
|
||||
spv::Id handleBuiltInFunctionCall(const glslang::TIntermAggregate*);
|
||||
spv::Id handleTextureCall(spv::Decoration precision, glslang::TOperator, spv::Id typeId, glslang::TSampler, std::vector<spv::Id>& idArguments);
|
||||
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);
|
||||
@ -100,7 +105,7 @@ protected:
|
||||
spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Id destTypeId, spv::Id operand);
|
||||
spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
|
||||
spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands);
|
||||
spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands);
|
||||
spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
|
||||
spv::Id createNoArgOperation(glslang::TOperator op);
|
||||
spv::Id getSymbolId(const glslang::TIntermSymbol* node);
|
||||
void addDecoration(spv::Id id, spv::Decoration dec);
|
||||
@ -208,9 +213,9 @@ spv::Dim TranslateDimensionality(const glslang::TSampler& sampler)
|
||||
spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type)
|
||||
{
|
||||
switch (type.getQualifier().precision) {
|
||||
case glslang::EpqLow: return spv::DecorationPrecisionLow;
|
||||
case glslang::EpqMedium: return spv::DecorationPrecisionMedium;
|
||||
case glslang::EpqHigh: return spv::DecorationPrecisionHigh;
|
||||
case glslang::EpqLow: return spv::DecorationRelaxedPrecision; // TODO: Map instead to 16-bit types?
|
||||
case glslang::EpqMedium: return spv::DecorationRelaxedPrecision;
|
||||
case glslang::EpqHigh: return spv::NoPrecision;
|
||||
default:
|
||||
return spv::NoPrecision;
|
||||
}
|
||||
@ -255,12 +260,9 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type)
|
||||
case glslang::EvqBuffer:
|
||||
switch (type.getQualifier().layoutPacking) {
|
||||
case glslang::ElpShared: return spv::DecorationGLSLShared;
|
||||
case glslang::ElpStd140: return spv::DecorationGLSLStd140;
|
||||
case glslang::ElpStd430: return spv::DecorationGLSLStd430;
|
||||
case glslang::ElpPacked: return spv::DecorationGLSLPacked;
|
||||
default:
|
||||
spv::MissingFunctionality("uniform block layout");
|
||||
return spv::DecorationGLSLShared;
|
||||
return (spv::Decoration)spv::BadValue;
|
||||
}
|
||||
case glslang::EvqVaryingIn:
|
||||
case glslang::EvqVaryingOut:
|
||||
@ -309,7 +311,6 @@ spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn)
|
||||
switch (builtIn) {
|
||||
case glslang::EbvPosition: return spv::BuiltInPosition;
|
||||
case glslang::EbvPointSize: return spv::BuiltInPointSize;
|
||||
case glslang::EbvClipVertex: return spv::BuiltInClipVertex;
|
||||
case glslang::EbvClipDistance: return spv::BuiltInClipDistance;
|
||||
case glslang::EbvCullDistance: return spv::BuiltInCullDistance;
|
||||
case glslang::EbvVertexId: return spv::BuiltInVertexId;
|
||||
@ -359,7 +360,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
||||
stdBuiltins = builder.import("GLSL.std.450");
|
||||
builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450);
|
||||
shaderEntry = builder.makeMain();
|
||||
builder.addEntryPoint(executionModel, shaderEntry);
|
||||
builder.addEntryPoint(executionModel, shaderEntry, "main");
|
||||
|
||||
// Add the source extensions
|
||||
const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions();
|
||||
@ -374,13 +375,16 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
||||
unsigned int mode;
|
||||
switch (glslangIntermediate->getStage()) {
|
||||
case EShLangVertex:
|
||||
builder.addCapability(spv::CapabilityShader);
|
||||
break;
|
||||
|
||||
case EShLangTessControl:
|
||||
builder.addCapability(spv::CapabilityTessellation);
|
||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices());
|
||||
break;
|
||||
|
||||
case EShLangTessEvaluation:
|
||||
builder.addCapability(spv::CapabilityTessellation);
|
||||
switch (glslangIntermediate->getInputPrimitive()) {
|
||||
case glslang::ElgTriangles: mode = spv::ExecutionModeInputTriangles; break;
|
||||
case glslang::ElgQuads: mode = spv::ExecutionModeInputQuads; break;
|
||||
@ -397,6 +401,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
||||
break;
|
||||
|
||||
case EShLangGeometry:
|
||||
builder.addCapability(spv::CapabilityGeometry);
|
||||
switch (glslangIntermediate->getInputPrimitive()) {
|
||||
case glslang::ElgPoints: mode = spv::ExecutionModeInputPoints; break;
|
||||
case glslang::ElgLines: mode = spv::ExecutionModeInputLines; break;
|
||||
@ -421,13 +426,17 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
||||
break;
|
||||
|
||||
case EShLangFragment:
|
||||
builder.addCapability(spv::CapabilityShader);
|
||||
if (glslangIntermediate->getPixelCenterInteger())
|
||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModePixelCenterInteger);
|
||||
if (glslangIntermediate->getOriginUpperLeft())
|
||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginUpperLeft);
|
||||
else
|
||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginLowerLeft);
|
||||
break;
|
||||
|
||||
case EShLangCompute:
|
||||
builder.addCapability(spv::CapabilityShader);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1051,7 +1060,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
|
||||
result = createUnaryOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands.front(), node->getType().getBasicType() == glslang::EbtFloat || node->getType().getBasicType() == glslang::EbtDouble);
|
||||
break;
|
||||
default:
|
||||
result = createMiscOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands);
|
||||
result = createMiscOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1311,9 +1320,11 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
case glslang::EbtSampler:
|
||||
{
|
||||
const glslang::TSampler& sampler = type.getSampler();
|
||||
spvType = builder.makeSampler(getSampledType(sampler), TranslateDimensionality(sampler),
|
||||
sampler.image ? spv::Builder::samplerContentImage : spv::Builder::samplerContentTextureFilter,
|
||||
sampler.arrayed, sampler.shadow, sampler.ms);
|
||||
spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), sampler.shadow, sampler.arrayed, sampler.ms,
|
||||
sampler.image ? 2 : 1, spv::ImageFormatUnknown); // TODO: translate format, needed for GLSL image ops
|
||||
// OpenGL "textures" need to be combined with a sampler
|
||||
if (! sampler.image)
|
||||
spvType = builder.makeSampledImageType(spvType);
|
||||
}
|
||||
break;
|
||||
case glslang::EbtStruct:
|
||||
@ -1350,6 +1361,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
structMap[glslangStruct] = spvType;
|
||||
|
||||
// Name and decorate the non-hidden members
|
||||
int offset = -1;
|
||||
for (int i = 0; i < (int)glslangStruct->size(); i++) {
|
||||
glslang::TType& glslangType = *(*glslangStruct)[i].type;
|
||||
int member = i;
|
||||
@ -1368,6 +1380,14 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent);
|
||||
if (glslangType.getQualifier().hasXfbOffset())
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutXfbOffset);
|
||||
else {
|
||||
// figure out what to do with offset, which is accumulating
|
||||
int nextOffset;
|
||||
updateMemberOffset(type, glslangType, offset, nextOffset);
|
||||
if (offset >= 0)
|
||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutOffset);
|
||||
offset = nextOffset;
|
||||
}
|
||||
|
||||
// built-in variable decorations
|
||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangType.getQualifier().builtIn);
|
||||
@ -1383,7 +1403,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream);
|
||||
if (glslangIntermediate->getXfbMode()) {
|
||||
if (type.getQualifier().hasXfbStride())
|
||||
builder.addDecoration(spvType, spv::DecorationStride, type.getQualifier().layoutXfbStride);
|
||||
builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride);
|
||||
if (type.getQualifier().hasXfbBuffer())
|
||||
builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer);
|
||||
}
|
||||
@ -1415,6 +1435,49 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
||||
return spvType;
|
||||
}
|
||||
|
||||
// Given a member type of a struct, realign the current offset for it, and compute
|
||||
// the next (not yet aligned) offset for the next member, which will get aligned
|
||||
// on the next call.
|
||||
// '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)
|
||||
{
|
||||
// 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;
|
||||
|
||||
// It could be that current linker usage in glslang updated all the layoutOffset,
|
||||
// in which case the following code does not matter. But, that's not quite right
|
||||
// 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 (! memberType.getQualifier().hasOffset())
|
||||
currentOffset = -1;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Getting this far means we are forcing offsets
|
||||
if (currentOffset < 0)
|
||||
currentOffset = 0;
|
||||
|
||||
// Now, currentOffset is valid (either 0, or from a previous nextOffset),
|
||||
// but possibly not yet correctly aligned.
|
||||
|
||||
int memberSize;
|
||||
int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, memberType.getQualifier().layoutPacking == glslang::ElpStd140);
|
||||
glslang::RoundToPow2(currentOffset, memberAlignment);
|
||||
nextOffset = currentOffset + memberSize;
|
||||
}
|
||||
|
||||
bool TGlslangToSpvTraverser::isShaderEntrypoint(const glslang::TIntermAggregate* node)
|
||||
{
|
||||
return node->getName() == "main(";
|
||||
@ -1519,11 +1582,6 @@ spv::Id TGlslangToSpvTraverser::handleBuiltInFunctionCall(const glslang::TInterm
|
||||
{
|
||||
std::vector<spv::Id> arguments;
|
||||
translateArguments(node->getSequence(), arguments);
|
||||
|
||||
std::vector<spv::Id> argTypes;
|
||||
for (int a = 0; a < (int)arguments.size(); ++a)
|
||||
argTypes.push_back(builder.getTypeId(arguments[a]));
|
||||
|
||||
spv::Decoration precision = TranslatePrecisionDecoration(node->getType());
|
||||
|
||||
if (node->getName() == "ftransform(") {
|
||||
@ -1544,22 +1602,22 @@ spv::Id TGlslangToSpvTraverser::handleBuiltInFunctionCall(const glslang::TInterm
|
||||
if (node->getName().find("textureSize", 0) != std::string::npos) {
|
||||
if (arguments.size() > 1) {
|
||||
params.lod = arguments[1];
|
||||
return builder.createTextureQueryCall(spv::OpTextureQuerySizeLod, params);
|
||||
return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params);
|
||||
} else
|
||||
return builder.createTextureQueryCall(spv::OpTextureQuerySize, params);
|
||||
return builder.createTextureQueryCall(spv::OpImageQuerySize, params);
|
||||
}
|
||||
|
||||
// special case the number of samples query
|
||||
if (node->getName().find("textureSamples", 0) != std::string::npos)
|
||||
return builder.createTextureQueryCall(spv::OpTextureQuerySamples, params);
|
||||
return builder.createTextureQueryCall(spv::OpImageQuerySamples, params);
|
||||
|
||||
// special case the other queries
|
||||
if (node->getName().find("Query", 0) != std::string::npos) {
|
||||
if (node->getName().find("Levels", 0) != std::string::npos)
|
||||
return builder.createTextureQueryCall(spv::OpTextureQueryLevels, params);
|
||||
return builder.createTextureQueryCall(spv::OpImageQueryLevels, params);
|
||||
else if (node->getName().find("Lod", 0) != std::string::npos) {
|
||||
params.coords = arguments[1];
|
||||
return builder.createTextureQueryCall(spv::OpTextureQueryLod, params);
|
||||
return builder.createTextureQueryCall(spv::OpImageQueryLod, params);
|
||||
} else
|
||||
spv::MissingFunctionality("glslang texture query");
|
||||
}
|
||||
@ -1599,6 +1657,16 @@ spv::Id TGlslangToSpvTraverser::handleBuiltInFunctionCall(const glslang::TInterm
|
||||
int extraArgs = 0;
|
||||
if (cubeCompare)
|
||||
params.Dref = arguments[2];
|
||||
else if (sampler.shadow) {
|
||||
std::vector<spv::Id> indexes;
|
||||
int comp;
|
||||
if (proj)
|
||||
comp = 3;
|
||||
else
|
||||
comp = builder.getNumComponents(params.coords) - 1;
|
||||
indexes.push_back(comp);
|
||||
params.Dref = builder.createCompositeExtract(params.coords, builder.getScalarTypeId(builder.getTypeId(params.coords)), indexes);
|
||||
}
|
||||
if (lod) {
|
||||
params.lod = arguments[2];
|
||||
++extraArgs;
|
||||
@ -1835,7 +1903,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
|
||||
break;
|
||||
case glslang::EOpLogicalXor:
|
||||
needMatchingVectors = false;
|
||||
binOp = spv::OpLogicalXor;
|
||||
binOp = spv::OpLogicalNotEqual;
|
||||
break;
|
||||
|
||||
case glslang::EOpLessThan:
|
||||
@ -1974,107 +2042,109 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
||||
|
||||
case glslang::EOpLogicalNot:
|
||||
case glslang::EOpVectorLogicalNot:
|
||||
unaryOp = spv::OpLogicalNot;
|
||||
break;
|
||||
case glslang::EOpBitwiseNot:
|
||||
unaryOp = spv::OpNot;
|
||||
break;
|
||||
|
||||
|
||||
case glslang::EOpDeterminant:
|
||||
libCall = GLSL_STD_450::Determinant;
|
||||
libCall = spv::GLSLstd450Determinant;
|
||||
break;
|
||||
case glslang::EOpMatrixInverse:
|
||||
libCall = GLSL_STD_450::MatrixInverse;
|
||||
libCall = spv::GLSLstd450MatrixInverse;
|
||||
break;
|
||||
case glslang::EOpTranspose:
|
||||
unaryOp = spv::OpTranspose;
|
||||
break;
|
||||
|
||||
case glslang::EOpRadians:
|
||||
libCall = GLSL_STD_450::Radians;
|
||||
libCall = spv::GLSLstd450Radians;
|
||||
break;
|
||||
case glslang::EOpDegrees:
|
||||
libCall = GLSL_STD_450::Degrees;
|
||||
libCall = spv::GLSLstd450Degrees;
|
||||
break;
|
||||
case glslang::EOpSin:
|
||||
libCall = GLSL_STD_450::Sin;
|
||||
libCall = spv::GLSLstd450Sin;
|
||||
break;
|
||||
case glslang::EOpCos:
|
||||
libCall = GLSL_STD_450::Cos;
|
||||
libCall = spv::GLSLstd450Cos;
|
||||
break;
|
||||
case glslang::EOpTan:
|
||||
libCall = GLSL_STD_450::Tan;
|
||||
libCall = spv::GLSLstd450Tan;
|
||||
break;
|
||||
case glslang::EOpAcos:
|
||||
libCall = GLSL_STD_450::Acos;
|
||||
libCall = spv::GLSLstd450Acos;
|
||||
break;
|
||||
case glslang::EOpAsin:
|
||||
libCall = GLSL_STD_450::Asin;
|
||||
libCall = spv::GLSLstd450Asin;
|
||||
break;
|
||||
case glslang::EOpAtan:
|
||||
libCall = GLSL_STD_450::Atan;
|
||||
libCall = spv::GLSLstd450Atan;
|
||||
break;
|
||||
|
||||
case glslang::EOpAcosh:
|
||||
libCall = GLSL_STD_450::Acosh;
|
||||
libCall = spv::GLSLstd450Acosh;
|
||||
break;
|
||||
case glslang::EOpAsinh:
|
||||
libCall = GLSL_STD_450::Asinh;
|
||||
libCall = spv::GLSLstd450Asinh;
|
||||
break;
|
||||
case glslang::EOpAtanh:
|
||||
libCall = GLSL_STD_450::Atanh;
|
||||
libCall = spv::GLSLstd450Atanh;
|
||||
break;
|
||||
case glslang::EOpTanh:
|
||||
libCall = GLSL_STD_450::Tanh;
|
||||
libCall = spv::GLSLstd450Tanh;
|
||||
break;
|
||||
case glslang::EOpCosh:
|
||||
libCall = GLSL_STD_450::Cosh;
|
||||
libCall = spv::GLSLstd450Cosh;
|
||||
break;
|
||||
case glslang::EOpSinh:
|
||||
libCall = GLSL_STD_450::Sinh;
|
||||
libCall = spv::GLSLstd450Sinh;
|
||||
break;
|
||||
|
||||
case glslang::EOpLength:
|
||||
libCall = GLSL_STD_450::Length;
|
||||
libCall = spv::GLSLstd450Length;
|
||||
break;
|
||||
case glslang::EOpNormalize:
|
||||
libCall = GLSL_STD_450::Normalize;
|
||||
libCall = spv::GLSLstd450Normalize;
|
||||
break;
|
||||
|
||||
case glslang::EOpExp:
|
||||
libCall = GLSL_STD_450::Exp;
|
||||
libCall = spv::GLSLstd450Exp;
|
||||
break;
|
||||
case glslang::EOpLog:
|
||||
libCall = GLSL_STD_450::Log;
|
||||
libCall = spv::GLSLstd450Log;
|
||||
break;
|
||||
case glslang::EOpExp2:
|
||||
libCall = GLSL_STD_450::Exp2;
|
||||
libCall = spv::GLSLstd450Exp2;
|
||||
break;
|
||||
case glslang::EOpLog2:
|
||||
libCall = GLSL_STD_450::Log2;
|
||||
libCall = spv::GLSLstd450Log2;
|
||||
break;
|
||||
case glslang::EOpSqrt:
|
||||
libCall = GLSL_STD_450::Sqrt;
|
||||
libCall = spv::GLSLstd450Sqrt;
|
||||
break;
|
||||
case glslang::EOpInverseSqrt:
|
||||
libCall = GLSL_STD_450::InverseSqrt;
|
||||
libCall = spv::GLSLstd450InverseSqrt;
|
||||
break;
|
||||
|
||||
case glslang::EOpFloor:
|
||||
libCall = GLSL_STD_450::Floor;
|
||||
libCall = spv::GLSLstd450Floor;
|
||||
break;
|
||||
case glslang::EOpTrunc:
|
||||
libCall = GLSL_STD_450::Trunc;
|
||||
libCall = spv::GLSLstd450Trunc;
|
||||
break;
|
||||
case glslang::EOpRound:
|
||||
libCall = GLSL_STD_450::Round;
|
||||
libCall = spv::GLSLstd450Round;
|
||||
break;
|
||||
case glslang::EOpRoundEven:
|
||||
libCall = GLSL_STD_450::RoundEven;
|
||||
libCall = spv::GLSLstd450RoundEven;
|
||||
break;
|
||||
case glslang::EOpCeil:
|
||||
libCall = GLSL_STD_450::Ceil;
|
||||
libCall = spv::GLSLstd450Ceil;
|
||||
break;
|
||||
case glslang::EOpFract:
|
||||
libCall = GLSL_STD_450::Fract;
|
||||
libCall = spv::GLSLstd450Fract;
|
||||
break;
|
||||
|
||||
case glslang::EOpIsNan:
|
||||
@ -2084,35 +2154,23 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
||||
unaryOp = spv::OpIsInf;
|
||||
break;
|
||||
|
||||
case glslang::EOpFloatBitsToInt:
|
||||
libCall = GLSL_STD_450::FloatBitsToInt;
|
||||
break;
|
||||
case glslang::EOpFloatBitsToUint:
|
||||
libCall = GLSL_STD_450::FloatBitsToUint;
|
||||
break;
|
||||
case glslang::EOpIntBitsToFloat:
|
||||
libCall = GLSL_STD_450::IntBitsToFloat;
|
||||
break;
|
||||
case glslang::EOpUintBitsToFloat:
|
||||
libCall = GLSL_STD_450::UintBitsToFloat;
|
||||
break;
|
||||
case glslang::EOpPackSnorm2x16:
|
||||
libCall = GLSL_STD_450::PackSnorm2x16;
|
||||
libCall = spv::GLSLstd450PackSnorm2x16;
|
||||
break;
|
||||
case glslang::EOpUnpackSnorm2x16:
|
||||
libCall = GLSL_STD_450::UnpackSnorm2x16;
|
||||
libCall = spv::GLSLstd450UnpackSnorm2x16;
|
||||
break;
|
||||
case glslang::EOpPackUnorm2x16:
|
||||
libCall = GLSL_STD_450::PackUnorm2x16;
|
||||
libCall = spv::GLSLstd450PackUnorm2x16;
|
||||
break;
|
||||
case glslang::EOpUnpackUnorm2x16:
|
||||
libCall = GLSL_STD_450::UnpackUnorm2x16;
|
||||
libCall = spv::GLSLstd450UnpackUnorm2x16;
|
||||
break;
|
||||
case glslang::EOpPackHalf2x16:
|
||||
libCall = GLSL_STD_450::PackHalf2x16;
|
||||
libCall = spv::GLSLstd450PackHalf2x16;
|
||||
break;
|
||||
case glslang::EOpUnpackHalf2x16:
|
||||
libCall = GLSL_STD_450::UnpackHalf2x16;
|
||||
libCall = spv::GLSLstd450UnpackHalf2x16;
|
||||
break;
|
||||
|
||||
case glslang::EOpDPdx:
|
||||
@ -2151,10 +2209,16 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
||||
break;
|
||||
|
||||
case glslang::EOpAbs:
|
||||
libCall = GLSL_STD_450::Abs;
|
||||
if (isFloat)
|
||||
libCall = spv::GLSLstd450FAbs;
|
||||
else
|
||||
libCall = spv::GLSLstd450SAbs;
|
||||
break;
|
||||
case glslang::EOpSign:
|
||||
libCall = GLSL_STD_450::Sign;
|
||||
if (isFloat)
|
||||
libCall = spv::GLSLstd450FSign;
|
||||
else
|
||||
libCall = spv::GLSLstd450SSign;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -2291,10 +2355,10 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
||||
opCode = spv::OpAtomicIAdd;
|
||||
break;
|
||||
case glslang::EOpAtomicMin:
|
||||
opCode = spv::OpAtomicIMin;
|
||||
opCode = spv::OpAtomicSMin;
|
||||
break;
|
||||
case glslang::EOpAtomicMax:
|
||||
opCode = spv::OpAtomicIMax;
|
||||
opCode = spv::OpAtomicSMax;
|
||||
break;
|
||||
case glslang::EOpAtomicAnd:
|
||||
opCode = spv::OpAtomicAnd;
|
||||
@ -2331,8 +2395,8 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
||||
std::vector<spv::Id> spvAtomicOperands; // hold the spv operands
|
||||
auto opIt = operands.begin(); // walk the glslang operands
|
||||
spvAtomicOperands.push_back(*(opIt++));
|
||||
spvAtomicOperands.push_back(spv::ExecutionScopeDevice); // TBD: what is the correct scope?
|
||||
spvAtomicOperands.push_back( spv::MemorySemanticsMaskNone); // TBD: what are the correct memory semantics?
|
||||
spvAtomicOperands.push_back(builder.makeUintConstant(spv::ScopeDevice)); // TBD: what is the correct scope?
|
||||
spvAtomicOperands.push_back(builder.makeUintConstant(spv::MemorySemanticsMaskNone)); // TBD: what are the correct memory semantics?
|
||||
|
||||
// Add the rest of the operands, skipping the first one, which was dealt with above.
|
||||
// For some ops, there are none, for some 1, for compare-exchange, 2.
|
||||
@ -2342,58 +2406,76 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
||||
return builder.createOp(opCode, typeId, spvAtomicOperands);
|
||||
}
|
||||
|
||||
spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands)
|
||||
spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
|
||||
{
|
||||
bool isUnsigned = typeProxy == glslang::EbtUint;
|
||||
bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
|
||||
|
||||
spv::Op opCode = spv::OpNop;
|
||||
int libCall = -1;
|
||||
|
||||
switch (op) {
|
||||
case glslang::EOpMin:
|
||||
libCall = GLSL_STD_450::Min;
|
||||
if (isFloat)
|
||||
libCall = spv::GLSLstd450FMin;
|
||||
else if (isUnsigned)
|
||||
libCall = spv::GLSLstd450UMin;
|
||||
else
|
||||
libCall = spv::GLSLstd450SMin;
|
||||
break;
|
||||
case glslang::EOpModf:
|
||||
libCall = GLSL_STD_450::Modf;
|
||||
libCall = spv::GLSLstd450Modf;
|
||||
break;
|
||||
case glslang::EOpMax:
|
||||
libCall = GLSL_STD_450::Max;
|
||||
if (isFloat)
|
||||
libCall = spv::GLSLstd450FMax;
|
||||
else if (isUnsigned)
|
||||
libCall = spv::GLSLstd450UMax;
|
||||
else
|
||||
libCall = spv::GLSLstd450SMax;
|
||||
break;
|
||||
case glslang::EOpPow:
|
||||
libCall = GLSL_STD_450::Pow;
|
||||
libCall = spv::GLSLstd450Pow;
|
||||
break;
|
||||
case glslang::EOpDot:
|
||||
opCode = spv::OpDot;
|
||||
break;
|
||||
case glslang::EOpAtan:
|
||||
libCall = GLSL_STD_450::Atan2;
|
||||
libCall = spv::GLSLstd450Atan2;
|
||||
break;
|
||||
|
||||
case glslang::EOpClamp:
|
||||
libCall = GLSL_STD_450::Clamp;
|
||||
if (isFloat)
|
||||
libCall = spv::GLSLstd450FClamp;
|
||||
else if (isUnsigned)
|
||||
libCall = spv::GLSLstd450UClamp;
|
||||
else
|
||||
libCall = spv::GLSLstd450SClamp;
|
||||
break;
|
||||
case glslang::EOpMix:
|
||||
libCall = GLSL_STD_450::Mix;
|
||||
libCall = spv::GLSLstd450Mix;
|
||||
break;
|
||||
case glslang::EOpStep:
|
||||
libCall = GLSL_STD_450::Step;
|
||||
libCall = spv::GLSLstd450Step;
|
||||
break;
|
||||
case glslang::EOpSmoothStep:
|
||||
libCall = GLSL_STD_450::SmoothStep;
|
||||
libCall = spv::GLSLstd450SmoothStep;
|
||||
break;
|
||||
|
||||
case glslang::EOpDistance:
|
||||
libCall = GLSL_STD_450::Distance;
|
||||
libCall = spv::GLSLstd450Distance;
|
||||
break;
|
||||
case glslang::EOpCross:
|
||||
libCall = GLSL_STD_450::Cross;
|
||||
libCall = spv::GLSLstd450Cross;
|
||||
break;
|
||||
case glslang::EOpFaceForward:
|
||||
libCall = GLSL_STD_450::FaceForward;
|
||||
libCall = spv::GLSLstd450FaceForward;
|
||||
break;
|
||||
case glslang::EOpReflect:
|
||||
libCall = GLSL_STD_450::Reflect;
|
||||
libCall = spv::GLSLstd450Reflect;
|
||||
break;
|
||||
case glslang::EOpRefract:
|
||||
libCall = GLSL_STD_450::Refract;
|
||||
libCall = spv::GLSLstd450Refract;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -2444,26 +2526,26 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op)
|
||||
builder.createNoResultOp(spv::OpEndPrimitive);
|
||||
return 0;
|
||||
case glslang::EOpBarrier:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsAllMemory);
|
||||
builder.createControlBarrier(spv::ExecutionScopeDevice);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
|
||||
return 0;
|
||||
case glslang::EOpMemoryBarrier:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsAllMemory);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||
return 0;
|
||||
case glslang::EOpMemoryBarrierAtomicCounter:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpMemoryBarrierBuffer:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsUniformMemoryMask);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpMemoryBarrierImage:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsImageMemoryMask);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpMemoryBarrierShared:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsWorkgroupLocalMemoryMask);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupLocalMemoryMask);
|
||||
return 0;
|
||||
case glslang::EOpGroupMemoryBarrier:
|
||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsWorkgroupGlobalMemoryMask);
|
||||
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupGlobalMemoryMask);
|
||||
return 0;
|
||||
default:
|
||||
spv::MissingFunctionality("operation with no arguments");
|
||||
@ -2495,7 +2577,7 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
||||
builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent);
|
||||
if (glslangIntermediate->getXfbMode()) {
|
||||
if (symbol->getQualifier().hasXfbStride())
|
||||
builder.addDecoration(id, spv::DecorationStride, symbol->getQualifier().layoutXfbStride);
|
||||
builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride);
|
||||
if (symbol->getQualifier().hasXfbBuffer())
|
||||
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
||||
if (symbol->getQualifier().hasXfbOffset())
|
||||
@ -2512,14 +2594,14 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
||||
builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding);
|
||||
if (glslangIntermediate->getXfbMode()) {
|
||||
if (symbol->getQualifier().hasXfbStride())
|
||||
builder.addDecoration(id, spv::DecorationStride, symbol->getQualifier().layoutXfbStride);
|
||||
builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride);
|
||||
if (symbol->getQualifier().hasXfbBuffer())
|
||||
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
||||
}
|
||||
|
||||
// built-in variable decorations
|
||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn);
|
||||
if ((unsigned int)builtIn != spv::BadValue)
|
||||
if (builtIn != spv::BadValue)
|
||||
builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn);
|
||||
|
||||
if (linkageOnly)
|
||||
|
||||
50
SPIRV/SPVRemapper.cpp
Normal file → Executable file
50
SPIRV/SPVRemapper.cpp
Normal file → Executable file
@ -82,6 +82,8 @@ namespace spv {
|
||||
case spv::OpTypeFloat: // fall through...
|
||||
case spv::OpTypePointer: return range_t(2, 3);
|
||||
case spv::OpTypeInt: return range_t(2, 4);
|
||||
// TODO: case spv::OpTypeImage:
|
||||
// TODO: case spv::OpTypeSampledImage:
|
||||
case spv::OpTypeSampler: return range_t(3, 8);
|
||||
case spv::OpTypeVector: // fall through
|
||||
case spv::OpTypeMatrix: // ...
|
||||
@ -164,8 +166,8 @@ namespace spv {
|
||||
case spv::OpTypeFloat:
|
||||
case spv::OpTypeVector:
|
||||
case spv::OpTypeMatrix:
|
||||
case spv::OpTypeImage:
|
||||
case spv::OpTypeSampler:
|
||||
case spv::OpTypeFilter:
|
||||
case spv::OpTypeArray:
|
||||
case spv::OpTypeRuntimeArray:
|
||||
case spv::OpTypeStruct:
|
||||
@ -184,12 +186,11 @@ namespace spv {
|
||||
bool spirvbin_t::isConstOp(spv::Op opCode) const
|
||||
{
|
||||
switch (opCode) {
|
||||
case spv::OpConstantNullObject: error("unimplemented constant type");
|
||||
case spv::OpConstantNull: error("unimplemented constant type");
|
||||
case spv::OpConstantSampler: error("unimplemented constant type");
|
||||
|
||||
case spv::OpConstantTrue:
|
||||
case spv::OpConstantFalse:
|
||||
case spv::OpConstantNullPointer:
|
||||
case spv::OpConstantComposite:
|
||||
case spv::OpConstant: return true;
|
||||
default: return false;
|
||||
@ -486,7 +487,7 @@ namespace spv {
|
||||
case spv::OperandFunction:
|
||||
case spv::OperandMemorySemantics:
|
||||
case spv::OperandMemoryAccess:
|
||||
case spv::OperandExecutionScope:
|
||||
case spv::OperandScope:
|
||||
case spv::OperandGroupOperation:
|
||||
case spv::OperandKernelEnqueueFlags:
|
||||
case spv::OperandKernelProfilingInfo:
|
||||
@ -610,19 +611,14 @@ namespace spv {
|
||||
fnId = asId(start + 2);
|
||||
break;
|
||||
|
||||
case spv::OpTextureSample:
|
||||
case spv::OpTextureSampleDref:
|
||||
case spv::OpTextureSampleLod:
|
||||
case spv::OpTextureSampleProj:
|
||||
case spv::OpTextureSampleGrad:
|
||||
case spv::OpTextureSampleOffset:
|
||||
case spv::OpTextureSampleProjLod:
|
||||
case spv::OpTextureSampleProjGrad:
|
||||
case spv::OpTextureSampleLodOffset:
|
||||
case spv::OpTextureSampleProjOffset:
|
||||
case spv::OpTextureSampleGradOffset:
|
||||
case spv::OpTextureSampleProjLodOffset:
|
||||
case spv::OpTextureSampleProjGradOffset:
|
||||
case spv::OpImageSampleImplicitLod:
|
||||
case spv::OpImageSampleExplicitLod:
|
||||
case spv::OpImageSampleDrefImplicitLod:
|
||||
case spv::OpImageSampleDrefExplicitLod:
|
||||
case spv::OpImageSampleProjImplicitLod:
|
||||
case spv::OpImageSampleProjExplicitLod:
|
||||
case spv::OpImageSampleProjDrefImplicitLod:
|
||||
case spv::OpImageSampleProjDrefExplicitLod:
|
||||
case spv::OpDot:
|
||||
case spv::OpCompositeExtract:
|
||||
case spv::OpCompositeInsert:
|
||||
@ -668,7 +664,7 @@ namespace spv {
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
// Add inputs and uniforms to the map
|
||||
if (((opCode == spv::OpVariable && asWordCount(start) == 4) || (opCode == spv::OpVariableArray)) &&
|
||||
if ((opCode == spv::OpVariable && asWordCount(start) == 4) &&
|
||||
(spv[start+3] == spv::StorageClassUniform ||
|
||||
spv[start+3] == spv::StorageClassUniformConstant ||
|
||||
spv[start+3] == spv::StorageClassInput))
|
||||
@ -695,7 +691,7 @@ namespace spv {
|
||||
process(
|
||||
[&](spv::Op opCode, unsigned start) {
|
||||
// Add inputs and uniforms to the map
|
||||
if (((opCode == spv::OpVariable && asWordCount(start) == 4) || (opCode == spv::OpVariableArray)) &&
|
||||
if ((opCode == spv::OpVariable && asWordCount(start) == 4) &&
|
||||
(spv[start+3] == spv::StorageClassOutput))
|
||||
fnLocalVars.insert(asId(start+2));
|
||||
|
||||
@ -729,8 +725,7 @@ namespace spv {
|
||||
const int wordCount = asWordCount(start);
|
||||
|
||||
// Add local variables to the map
|
||||
if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4) ||
|
||||
(opCode == spv::OpVariableArray && spv[start+3] == spv::StorageClassFunction))
|
||||
if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4))
|
||||
fnLocalVars.insert(asId(start+2));
|
||||
|
||||
// Ignore process vars referenced via access chain
|
||||
@ -1008,14 +1003,14 @@ namespace spv {
|
||||
return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
|
||||
case spv::OpTypeMatrix:
|
||||
return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
|
||||
case spv::OpTypeSampler:
|
||||
case spv::OpTypeImage:
|
||||
return 120 + hashType(typePos(spv[typeStart+2])) +
|
||||
spv[typeStart+3] + // dimensionality
|
||||
spv[typeStart+4] * 8 * 16 + // content
|
||||
spv[typeStart+4] * 8 * 16 + // depth
|
||||
spv[typeStart+5] * 4 * 16 + // arrayed
|
||||
spv[typeStart+6] * 2 * 16 + // compare
|
||||
spv[typeStart+7] * 1 * 16; // multisampled
|
||||
case spv::OpTypeFilter:
|
||||
spv[typeStart+6] * 2 * 16 + // multisampled
|
||||
spv[typeStart+7] * 1 * 16; // format
|
||||
case spv::OpTypeSampler:
|
||||
return 500;
|
||||
case spv::OpTypeArray:
|
||||
return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3];
|
||||
@ -1045,12 +1040,11 @@ namespace spv {
|
||||
case spv::OpTypeQueue: return 300003;
|
||||
case spv::OpTypePipe: return 300004;
|
||||
|
||||
case spv::OpConstantNullObject: return 300005;
|
||||
case spv::OpConstantNull: return 300005;
|
||||
case spv::OpConstantSampler: return 300006;
|
||||
|
||||
case spv::OpConstantTrue: return 300007;
|
||||
case spv::OpConstantFalse: return 300008;
|
||||
case spv::OpConstantNullPointer: return 300009;
|
||||
case spv::OpConstantComposite:
|
||||
{
|
||||
std::uint32_t hash = 300011 + hashType(typePos(spv[typeStart+1]));
|
||||
|
||||
2
SPIRV/SPVRemapper.h
Normal file → Executable file
2
SPIRV/SPVRemapper.h
Normal file → Executable file
@ -101,7 +101,7 @@ public:
|
||||
#include <set>
|
||||
#include <cassert>
|
||||
|
||||
#include "spirv.h"
|
||||
#include "spirv.hpp"
|
||||
#include "spvIR.h"
|
||||
|
||||
namespace spv {
|
||||
|
||||
198
SPIRV/SpvBuilder.cpp
Normal file → Executable file
198
SPIRV/SpvBuilder.cpp
Normal file → Executable file
@ -295,31 +295,54 @@ Id Builder::makeFunctionType(Id returnType, std::vector<Id>& paramTypes)
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
Id Builder::makeSampler(Id sampledType, Dim dim, samplerContent content, bool arrayed, bool shadow, bool ms)
|
||||
Id Builder::makeImageType(Id sampledType, Dim dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format)
|
||||
{
|
||||
// try to find it
|
||||
Instruction* type;
|
||||
for (int t = 0; t < (int)groupedTypes[OpTypeSampler].size(); ++t) {
|
||||
type = groupedTypes[OpTypeSampler][t];
|
||||
for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) {
|
||||
type = groupedTypes[OpTypeImage][t];
|
||||
if (type->getIdOperand(0) == sampledType &&
|
||||
type->getImmediateOperand(1) == (unsigned int)dim &&
|
||||
type->getImmediateOperand(2) == (unsigned int)content &&
|
||||
type->getImmediateOperand(2) == ( depth ? 1u : 0u) &&
|
||||
type->getImmediateOperand(3) == (arrayed ? 1u : 0u) &&
|
||||
type->getImmediateOperand(4) == ( shadow ? 1u : 0u) &&
|
||||
type->getImmediateOperand(5) == ( ms ? 1u : 0u))
|
||||
type->getImmediateOperand(4) == ( ms ? 1u : 0u) &&
|
||||
type->getImmediateOperand(5) == sampled &&
|
||||
type->getImmediateOperand(6) == (unsigned int)format)
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
// not found, make it
|
||||
type = new Instruction(getUniqueId(), NoType, OpTypeSampler);
|
||||
type = new Instruction(getUniqueId(), NoType, OpTypeImage);
|
||||
type->addIdOperand(sampledType);
|
||||
type->addImmediateOperand( dim);
|
||||
type->addImmediateOperand(content);
|
||||
type->addImmediateOperand( depth ? 1 : 0);
|
||||
type->addImmediateOperand(arrayed ? 1 : 0);
|
||||
type->addImmediateOperand( shadow ? 1 : 0);
|
||||
type->addImmediateOperand( ms ? 1 : 0);
|
||||
type->addImmediateOperand(sampled);
|
||||
type->addImmediateOperand((unsigned int)format);
|
||||
|
||||
groupedTypes[OpTypeSampler].push_back(type);
|
||||
groupedTypes[OpTypeImage].push_back(type);
|
||||
constantsTypesGlobals.push_back(type);
|
||||
module.mapInstruction(type);
|
||||
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
Id Builder::makeSampledImageType(Id imageType)
|
||||
{
|
||||
// try to find it
|
||||
Instruction* type;
|
||||
for (int t = 0; t < (int)groupedTypes[OpTypeSampledImage].size(); ++t) {
|
||||
type = groupedTypes[OpTypeSampledImage][t];
|
||||
if (type->getIdOperand(0) == imageType)
|
||||
return type->getResultId();
|
||||
}
|
||||
|
||||
// not found, make it
|
||||
type = new Instruction(getUniqueId(), NoType, OpTypeSampledImage);
|
||||
type->addIdOperand(imageType);
|
||||
|
||||
groupedTypes[OpTypeSampledImage].push_back(type);
|
||||
constantsTypesGlobals.push_back(type);
|
||||
module.mapInstruction(type);
|
||||
|
||||
@ -606,11 +629,12 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector<Id>& members)
|
||||
return c->getResultId();
|
||||
}
|
||||
|
||||
void Builder::addEntryPoint(ExecutionModel model, Function* function)
|
||||
void Builder::addEntryPoint(ExecutionModel model, Function* function, const char* name)
|
||||
{
|
||||
Instruction* entryPoint = new Instruction(OpEntryPoint);
|
||||
entryPoint->addImmediateOperand(model);
|
||||
entryPoint->addIdOperand(function->getId());
|
||||
entryPoint->addStringOperand(name);
|
||||
|
||||
entryPoints.push_back(entryPoint);
|
||||
}
|
||||
@ -945,18 +969,20 @@ void Builder::createNoResultOp(Op opCode, Id operand)
|
||||
buildPoint->addInstruction(op);
|
||||
}
|
||||
|
||||
void Builder::createControlBarrier(unsigned executionScope)
|
||||
void Builder::createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask semantics)
|
||||
{
|
||||
Instruction* op = new Instruction(OpControlBarrier);
|
||||
op->addImmediateOperand(executionScope);
|
||||
op->addImmediateOperand(makeUintConstant(execution));
|
||||
op->addImmediateOperand(makeUintConstant(memory));
|
||||
op->addImmediateOperand(makeUintConstant(semantics));
|
||||
buildPoint->addInstruction(op);
|
||||
}
|
||||
|
||||
void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemantics)
|
||||
{
|
||||
Instruction* op = new Instruction(OpMemoryBarrier);
|
||||
op->addImmediateOperand(executionScope);
|
||||
op->addImmediateOperand(memorySemantics);
|
||||
op->addImmediateOperand(makeUintConstant(executionScope));
|
||||
op->addImmediateOperand(makeUintConstant(memorySemantics));
|
||||
buildPoint->addInstruction(op);
|
||||
}
|
||||
|
||||
@ -991,7 +1017,7 @@ Id Builder::createTriOp(Op opCode, Id typeId, Id op1, Id op2, Id op3)
|
||||
return op->getResultId();
|
||||
}
|
||||
|
||||
Id Builder::createOp(Op opCode, Id typeId, std::vector<Id>& operands)
|
||||
Id Builder::createOp(Op opCode, Id typeId, const std::vector<Id>& operands)
|
||||
{
|
||||
Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
|
||||
for (auto operand : operands)
|
||||
@ -1107,64 +1133,95 @@ Id Builder::createBuiltinCall(Decoration /*precision*/, Id resultType, Id builti
|
||||
// Create the correct instruction based on the inputs, and make the call.
|
||||
Id Builder::createTextureCall(Decoration precision, Id resultType, bool proj, const TextureParameters& parameters)
|
||||
{
|
||||
static const int maxTextureArgs = 5;
|
||||
static const int maxTextureArgs = 10;
|
||||
Id texArgs[maxTextureArgs] = {};
|
||||
|
||||
//
|
||||
// Set up the arguments
|
||||
// Set up the fixed arguments
|
||||
//
|
||||
|
||||
int numArgs = 0;
|
||||
bool xplicit = false;
|
||||
texArgs[numArgs++] = parameters.sampler;
|
||||
texArgs[numArgs++] = parameters.coords;
|
||||
|
||||
if (parameters.gradX) {
|
||||
texArgs[numArgs++] = parameters.gradX;
|
||||
texArgs[numArgs++] = parameters.gradY;
|
||||
}
|
||||
if (parameters.lod)
|
||||
texArgs[numArgs++] = parameters.lod;
|
||||
if (parameters.offset)
|
||||
texArgs[numArgs++] = parameters.offset;
|
||||
if (parameters.bias)
|
||||
texArgs[numArgs++] = parameters.bias;
|
||||
if (parameters.Dref)
|
||||
texArgs[numArgs++] = parameters.Dref;
|
||||
|
||||
//
|
||||
// Set up the optional arguments
|
||||
//
|
||||
int optArgNum = numArgs; // track which operand, if it exists, is the mask of optional arguments
|
||||
++numArgs; // speculatively make room for the mask operand
|
||||
ImageOperandsMask mask = ImageOperandsMaskNone; // the mask operand
|
||||
if (parameters.bias) {
|
||||
mask = (ImageOperandsMask)(mask | ImageOperandsBiasMask);
|
||||
texArgs[numArgs++] = parameters.bias;
|
||||
}
|
||||
if (parameters.lod) {
|
||||
mask = (ImageOperandsMask)(mask | ImageOperandsLodMask);
|
||||
texArgs[numArgs++] = parameters.lod;
|
||||
xplicit = true;
|
||||
}
|
||||
if (parameters.gradX) {
|
||||
mask = (ImageOperandsMask)(mask | ImageOperandsGradMask);
|
||||
texArgs[numArgs++] = parameters.gradX;
|
||||
texArgs[numArgs++] = parameters.gradY;
|
||||
xplicit = true;
|
||||
}
|
||||
if (parameters.offset) {
|
||||
mask = (ImageOperandsMask)(mask | ImageOperandsOffsetMask);
|
||||
texArgs[numArgs++] = parameters.offset;
|
||||
}
|
||||
// TBD: if Offset is constant, use ImageOperandsConstOffsetMask
|
||||
if (parameters.offsets) {
|
||||
mask = (ImageOperandsMask)(mask | ImageOperandsConstOffsetsMask);
|
||||
texArgs[numArgs++] = parameters.offsets;
|
||||
}
|
||||
if (parameters.sample) {
|
||||
mask = (ImageOperandsMask)(mask | ImageOperandsSampleMask);
|
||||
texArgs[numArgs++] = parameters.sample;
|
||||
}
|
||||
if (mask == ImageOperandsMaskNone)
|
||||
--numArgs; // undo speculative reservation for the mask argument
|
||||
else
|
||||
texArgs[optArgNum] = mask;
|
||||
|
||||
//
|
||||
// Set up the instruction
|
||||
//
|
||||
|
||||
Op opCode;
|
||||
if (proj && parameters.gradX && parameters.offset)
|
||||
opCode = OpTextureSampleProjGradOffset;
|
||||
else if (proj && parameters.lod && parameters.offset)
|
||||
opCode = OpTextureSampleProjLodOffset;
|
||||
else if (parameters.gradX && parameters.offset)
|
||||
opCode = OpTextureSampleGradOffset;
|
||||
else if (proj && parameters.offset)
|
||||
opCode = OpTextureSampleProjOffset;
|
||||
else if (parameters.lod && parameters.offset)
|
||||
opCode = OpTextureSampleLodOffset;
|
||||
else if (proj && parameters.gradX)
|
||||
opCode = OpTextureSampleProjGrad;
|
||||
else if (proj && parameters.lod)
|
||||
opCode = OpTextureSampleProjLod;
|
||||
else if (parameters.offset)
|
||||
opCode = OpTextureSampleOffset;
|
||||
else if (parameters.gradX)
|
||||
opCode = OpTextureSampleGrad;
|
||||
else if (proj)
|
||||
opCode = OpTextureSampleProj;
|
||||
else if (parameters.lod)
|
||||
opCode = OpTextureSampleLod;
|
||||
else if (parameters.Dref)
|
||||
opCode = OpTextureSampleDref;
|
||||
else
|
||||
opCode = OpTextureSample;
|
||||
opCode = OpImageSampleImplicitLod;
|
||||
if (xplicit) {
|
||||
if (parameters.Dref) {
|
||||
if (proj)
|
||||
opCode = OpImageSampleProjDrefExplicitLod;
|
||||
else
|
||||
opCode = OpImageSampleDrefExplicitLod;
|
||||
} else {
|
||||
if (proj)
|
||||
opCode = OpImageSampleProjExplicitLod;
|
||||
else
|
||||
opCode = OpImageSampleExplicitLod;
|
||||
}
|
||||
} else {
|
||||
if (parameters.Dref) {
|
||||
if (proj)
|
||||
opCode = OpImageSampleProjDrefImplicitLod;
|
||||
else
|
||||
opCode = OpImageSampleDrefImplicitLod;
|
||||
} else {
|
||||
if (proj)
|
||||
opCode = OpImageSampleProjImplicitLod;
|
||||
else
|
||||
opCode = OpImageSampleImplicitLod;
|
||||
}
|
||||
}
|
||||
|
||||
Instruction* textureInst = new Instruction(getUniqueId(), resultType, opCode);
|
||||
for (int op = 0; op < numArgs; ++op)
|
||||
for (int op = 0; op < optArgNum; ++op)
|
||||
textureInst->addIdOperand(texArgs[op]);
|
||||
if (optArgNum < numArgs)
|
||||
textureInst->addImmediateOperand(texArgs[optArgNum]);
|
||||
for (int op = optArgNum + 1; op < numArgs; ++op)
|
||||
textureInst->addIdOperand(texArgs[op]);
|
||||
setPrecision(textureInst->getResultId(), precision);
|
||||
buildPoint->addInstruction(textureInst);
|
||||
@ -1176,13 +1233,13 @@ Id Builder::createTextureCall(Decoration precision, Id resultType, bool proj, co
|
||||
Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters)
|
||||
{
|
||||
// Figure out the result type
|
||||
Id resultType = NoType;
|
||||
Id resultType = 0;
|
||||
switch (opCode) {
|
||||
case OpTextureQuerySize:
|
||||
case OpTextureQuerySizeLod:
|
||||
case OpImageQuerySize:
|
||||
case OpImageQuerySizeLod:
|
||||
{
|
||||
int numComponents;
|
||||
switch (getDimensionality(parameters.sampler)) {
|
||||
switch (getTypeDimensionality(getImageType(parameters.sampler))) {
|
||||
case Dim1D:
|
||||
case DimBuffer:
|
||||
numComponents = 1;
|
||||
@ -1199,7 +1256,7 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
|
||||
MissingFunctionality("texture query dimensionality");
|
||||
break;
|
||||
}
|
||||
if (isArrayedSampler(parameters.sampler))
|
||||
if (isArrayedImageType(getImageType(parameters.sampler)))
|
||||
++numComponents;
|
||||
if (numComponents == 1)
|
||||
resultType = makeIntType(32);
|
||||
@ -1208,11 +1265,11 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
|
||||
|
||||
break;
|
||||
}
|
||||
case OpTextureQueryLod:
|
||||
case OpImageQueryLod:
|
||||
resultType = makeVectorType(makeFloatType(32), 2);
|
||||
break;
|
||||
case OpTextureQueryLevels:
|
||||
case OpTextureQuerySamples:
|
||||
case OpImageQueryLevels:
|
||||
case OpImageQuerySamples:
|
||||
resultType = makeIntType(32);
|
||||
break;
|
||||
default:
|
||||
@ -2040,7 +2097,16 @@ void Builder::dump(std::vector<unsigned int>& out) const
|
||||
extInst.addStringOperand(extensions[e]);
|
||||
extInst.dump(out);
|
||||
}
|
||||
|
||||
// TBD: OpExtension ...
|
||||
|
||||
// Capabilities
|
||||
for (auto cap : capabilities) {
|
||||
Instruction capInst(0, 0, OpCapability);
|
||||
capInst.addImmediateOperand(cap);
|
||||
capInst.dump(out);
|
||||
}
|
||||
|
||||
dumpInstructions(out, imports);
|
||||
Instruction memInst(0, 0, OpMemoryModel);
|
||||
memInst.addImmediateOperand(addressModel);
|
||||
|
||||
40
SPIRV/SpvBuilder.h
Normal file → Executable file
40
SPIRV/SpvBuilder.h
Normal file → Executable file
@ -48,7 +48,7 @@
|
||||
#ifndef SpvBuilder_H
|
||||
#define SpvBuilder_H
|
||||
|
||||
#include "spirv.h"
|
||||
#include "spirv.hpp"
|
||||
#include "spvIR.h"
|
||||
|
||||
#include <algorithm>
|
||||
@ -77,6 +77,8 @@ public:
|
||||
memoryModel = mem;
|
||||
}
|
||||
|
||||
void addCapability(spv::Capability cap) { capabilities.push_back(cap); }
|
||||
|
||||
// To get a new <id> for anything needing a new one.
|
||||
Id getUniqueId() { return ++uniqueId; }
|
||||
|
||||
@ -101,12 +103,8 @@ public:
|
||||
Id makeMatrixType(Id component, int cols, int rows);
|
||||
Id makeArrayType(Id element, unsigned size);
|
||||
Id makeFunctionType(Id returnType, std::vector<Id>& paramTypes);
|
||||
enum samplerContent {
|
||||
samplerContentTexture,
|
||||
samplerContentImage,
|
||||
samplerContentTextureFilter
|
||||
};
|
||||
Id makeSampler(Id sampledType, Dim, samplerContent, bool arrayed, bool shadow, bool ms);
|
||||
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format);
|
||||
Id makeSampledImageType(Id imageType);
|
||||
|
||||
// For querying about types.
|
||||
Id getTypeId(Id resultId) const { return module.getTypeId(resultId); }
|
||||
@ -133,7 +131,9 @@ public:
|
||||
bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; }
|
||||
bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; }
|
||||
bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); }
|
||||
bool isImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeImage; }
|
||||
bool isSamplerType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampler; }
|
||||
bool isSampledImageType(Id typeId) const { return getTypeClass(typeId) == OpTypeSampledImage; }
|
||||
|
||||
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
|
||||
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
||||
@ -151,15 +151,20 @@ public:
|
||||
}
|
||||
int getNumRows(Id resultId) const { return getTypeNumRows(getTypeId(resultId)); }
|
||||
|
||||
Dim getDimensionality(Id resultId) const
|
||||
Dim getTypeDimensionality(Id typeId) const
|
||||
{
|
||||
assert(isSamplerType(getTypeId(resultId)));
|
||||
return (Dim)module.getInstruction(getTypeId(resultId))->getImmediateOperand(1);
|
||||
assert(isImageType(typeId));
|
||||
return (Dim)module.getInstruction(typeId)->getImmediateOperand(1);
|
||||
}
|
||||
bool isArrayedSampler(Id resultId) const
|
||||
Id getImageType(Id resultId) const
|
||||
{
|
||||
assert(isSamplerType(getTypeId(resultId)));
|
||||
return module.getInstruction(getTypeId(resultId))->getImmediateOperand(3) != 0;
|
||||
assert(isSampledImageType(getTypeId(resultId)));
|
||||
return module.getInstruction(getTypeId(resultId))->getIdOperand(0);
|
||||
}
|
||||
bool isArrayedImageType(Id typeId) const
|
||||
{
|
||||
assert(isImageType(typeId));
|
||||
return module.getInstruction(typeId)->getImmediateOperand(3) != 0;
|
||||
}
|
||||
|
||||
// For making new constants (will return old constant if the requested one was already made).
|
||||
@ -174,7 +179,7 @@ public:
|
||||
Id makeCompositeConstant(Id type, std::vector<Id>& comps);
|
||||
|
||||
// Methods for adding information outside the CFG.
|
||||
void addEntryPoint(ExecutionModel, Function*);
|
||||
void addEntryPoint(ExecutionModel, Function*, const char* name);
|
||||
void addExecutionMode(Function*, ExecutionMode mode, int value = -1);
|
||||
void addName(Id, const char* name);
|
||||
void addMemberName(Id, int member, const char* name);
|
||||
@ -233,12 +238,12 @@ public:
|
||||
|
||||
void createNoResultOp(Op);
|
||||
void createNoResultOp(Op, Id operand);
|
||||
void createControlBarrier(unsigned executionScope);
|
||||
void createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask);
|
||||
void createMemoryBarrier(unsigned executionScope, unsigned memorySemantics);
|
||||
Id createUnaryOp(Op, Id typeId, Id operand);
|
||||
Id createBinOp(Op, Id typeId, Id operand1, Id operand2);
|
||||
Id createTriOp(Op, Id typeId, Id operand1, Id operand2, Id operand3);
|
||||
Id createOp(Op, Id typeId, std::vector<Id>& operands);
|
||||
Id createOp(Op, Id typeId, const std::vector<Id>& operands);
|
||||
Id createFunctionCall(spv::Function*, std::vector<spv::Id>&);
|
||||
|
||||
// Take an rvalue (source) and a set of channels to extract from it to
|
||||
@ -283,8 +288,10 @@ public:
|
||||
Id lod;
|
||||
Id Dref;
|
||||
Id offset;
|
||||
Id offsets;
|
||||
Id gradX;
|
||||
Id gradY;
|
||||
Id sample;
|
||||
};
|
||||
|
||||
// Select the correct texture operation based on all inputs, and emit the correct instruction
|
||||
@ -497,6 +504,7 @@ protected:
|
||||
std::vector<const char*> extensions;
|
||||
AddressingModel addressModel;
|
||||
MemoryModel memoryModel;
|
||||
std::vector<spv::Capability> capabilities;
|
||||
int builderNumber;
|
||||
Module module;
|
||||
Block* buildPoint;
|
||||
|
||||
209
SPIRV/disassemble.cpp
Normal file → Executable file
209
SPIRV/disassemble.cpp
Normal file → Executable file
@ -1,5 +1,5 @@
|
||||
//
|
||||
//Copyright (C) 2014 LunarG, Inc.
|
||||
//Copyright (C) 2014-2015 LunarG, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
//
|
||||
@ -21,16 +21,16 @@
|
||||
//
|
||||
//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTAstreamITY AND FITNESS
|
||||
//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
//CAUSED AND ON ANY THEORY OF LIAstreamITY, WHETHER IN CONTRACT, STRICT
|
||||
//LIAstreamITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
//POSSIstreamITY OF SUCH DAMAGE.
|
||||
//POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//
|
||||
// Author: John Kessenich, LunarG
|
||||
@ -41,25 +41,34 @@
|
||||
//
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <iomanip>
|
||||
#include <stack>
|
||||
#include <sstream>
|
||||
|
||||
#include "GLSL450Lib.h"
|
||||
extern const char* GlslStd450DebugNames[GLSL_STD_450::Count];
|
||||
#include <cstring>
|
||||
|
||||
#include "disassemble.h"
|
||||
#include "doc.h"
|
||||
|
||||
namespace spv {
|
||||
|
||||
#include "GLSL.std.450.h"
|
||||
|
||||
const char* GlslStd450DebugNames[spv::GLSLstd450Count];
|
||||
|
||||
void Kill(std::ostream& out, const char* message)
|
||||
{
|
||||
out << std::endl << "Disassembly failed: " << message << std::endl;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// used to identify the extended instruction library imported when printing
|
||||
enum ExtInstSet {
|
||||
GLSL450Inst,
|
||||
OpenCLExtInst,
|
||||
};
|
||||
|
||||
// Container class for a single instance of a SPIR-V stream, with methods for disassembly.
|
||||
class SpirvStream {
|
||||
public:
|
||||
@ -70,9 +79,8 @@ public:
|
||||
void processInstructions();
|
||||
|
||||
protected:
|
||||
SpirvStream(SpirvStream&);
|
||||
SpirvStream& operator=(SpirvStream&);
|
||||
|
||||
SpirvStream(const SpirvStream&);
|
||||
SpirvStream& operator=(const SpirvStream&);
|
||||
Op getOpCode(int id) const { return idInstruction[id] ? (Op)(stream[idInstruction[id]] & OpCodeMask) : OpNop; }
|
||||
|
||||
// Output methods
|
||||
@ -81,6 +89,7 @@ protected:
|
||||
void outputResultId(Id id);
|
||||
void outputTypeId(Id id);
|
||||
void outputId(Id id);
|
||||
void outputMask(OperandClass operandClass, unsigned mask);
|
||||
void disassembleImmediates(int numOperands);
|
||||
void disassembleIds(int numOperands);
|
||||
void disassembleString();
|
||||
@ -241,6 +250,18 @@ void SpirvStream::outputId(Id id)
|
||||
out << "(" << idDescriptor[id] << ")";
|
||||
}
|
||||
|
||||
void SpirvStream::outputMask(OperandClass operandClass, unsigned mask)
|
||||
{
|
||||
if (mask == 0)
|
||||
out << "None";
|
||||
else {
|
||||
for (int m = 0; m < OperandClassParams[operandClass].ceiling; ++m) {
|
||||
if (mask & (1 << m))
|
||||
out << OperandClassParams[operandClass].getName(m) << " ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SpirvStream::disassembleImmediates(int numOperands)
|
||||
{
|
||||
for (int i = 0; i < numOperands; ++i) {
|
||||
@ -294,8 +315,9 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
||||
nestedControl.push(nextNestedControl);
|
||||
nextNestedControl = 0;
|
||||
}
|
||||
} else if (opCode == OpExtInstImport)
|
||||
} else if (opCode == OpExtInstImport) {
|
||||
idDescriptor[resultId] = (char*)(&stream[word]);
|
||||
}
|
||||
else {
|
||||
if (idDescriptor[resultId].size() == 0) {
|
||||
switch (opCode) {
|
||||
@ -337,27 +359,35 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
||||
// Process the operands. Note, a new context-dependent set could be
|
||||
// swapped in mid-traversal.
|
||||
|
||||
// Handle textures specially, so can put out helpful strings.
|
||||
if (opCode == OpTypeSampler) {
|
||||
// Handle images specially, so can put out helpful strings.
|
||||
if (opCode == OpTypeImage) {
|
||||
out << " ";
|
||||
disassembleIds(1);
|
||||
out << " " << DimensionString((Dim)stream[word++]);
|
||||
switch (stream[word++]) {
|
||||
case 0: out << " texture"; break;
|
||||
case 1: out << " image"; break;
|
||||
case 2: out << " filter+texture"; break;
|
||||
}
|
||||
out << (stream[word++] != 0 ? " array" : "");
|
||||
out << (stream[word++] != 0 ? " depth" : "");
|
||||
out << (stream[word++] != 0 ? " array" : "");
|
||||
out << (stream[word++] != 0 ? " multi-sampled" : "");
|
||||
switch (stream[word++]) {
|
||||
case 0: out << " runtime"; break;
|
||||
case 1: out << " sampled"; break;
|
||||
case 2: out << " nonsampled"; break;
|
||||
}
|
||||
out << " format:" << ImageFormatString((ImageFormat)stream[word++]);
|
||||
|
||||
if (numOperands == 8) {
|
||||
out << " " << AccessQualifierString(stream[word++]);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Handle all the parameterized operands
|
||||
for (int op = 0; op < InstructionDesc[opCode].operands.getNum(); ++op) {
|
||||
for (int op = 0; op < InstructionDesc[opCode].operands.getNum() && numOperands > 0; ++op) {
|
||||
out << " ";
|
||||
OperandClass operandClass = InstructionDesc[opCode].operands.getClass(op);
|
||||
switch (operandClass) {
|
||||
case OperandId:
|
||||
case OperandScope:
|
||||
case OperandMemorySemantics:
|
||||
disassembleIds(1);
|
||||
// Get names for printing "(XXX)" for readability, *after* this id
|
||||
if (opCode == OpName)
|
||||
@ -367,15 +397,34 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
||||
case OperandVariableIds:
|
||||
disassembleIds(numOperands);
|
||||
return;
|
||||
case OperandOptionalImage:
|
||||
outputMask(operandClass, stream[word++]);
|
||||
--numOperands;
|
||||
disassembleIds(numOperands);
|
||||
return;
|
||||
case OperandOptionalLiteral:
|
||||
case OperandVariableLiterals:
|
||||
if ((opCode == OpDecorate && stream[word - 1] == DecorationBuiltIn) ||
|
||||
(opCode == OpMemberDecorate && stream[word - 1] == DecorationBuiltIn)) {
|
||||
if (opCode == OpDecorate && stream[word - 1] == DecorationBuiltIn ||
|
||||
opCode == OpMemberDecorate && stream[word - 1] == DecorationBuiltIn) {
|
||||
out << BuiltInString(stream[word++]);
|
||||
--numOperands;
|
||||
++op;
|
||||
}
|
||||
disassembleImmediates(numOperands);
|
||||
return;
|
||||
case OperandVariableIdLiteral:
|
||||
while (numOperands > 0) {
|
||||
out << std::endl;
|
||||
outputResultId(0);
|
||||
outputTypeId(0);
|
||||
outputIndent();
|
||||
out << " Type ";
|
||||
disassembleIds(1);
|
||||
out << ", member ";
|
||||
disassembleImmediates(1);
|
||||
numOperands -= 2;
|
||||
}
|
||||
return;
|
||||
case OperandVariableLiteralId:
|
||||
while (numOperands > 0) {
|
||||
out << std::endl;
|
||||
@ -392,9 +441,16 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
||||
case OperandLiteralNumber:
|
||||
disassembleImmediates(1);
|
||||
if (opCode == OpExtInst) {
|
||||
ExtInstSet extInstSet = GLSL450Inst;
|
||||
if (0 == memcmp("OpenCL", (char*)(idDescriptor[stream[word-2]].c_str()), 6)) {
|
||||
extInstSet = OpenCLExtInst;
|
||||
}
|
||||
unsigned entrypoint = stream[word - 1];
|
||||
if (entrypoint < GLSL_STD_450::Count)
|
||||
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
|
||||
if (extInstSet == GLSL450Inst) {
|
||||
if (entrypoint < spv::GLSLstd450Count) {
|
||||
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case OperandLiteralString:
|
||||
@ -403,18 +459,9 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
||||
default:
|
||||
assert(operandClass >= OperandSource && operandClass < OperandOpcode);
|
||||
|
||||
if (OperandClassParams[operandClass].bitmask) {
|
||||
unsigned int mask = stream[word++];
|
||||
if (mask == 0)
|
||||
out << "None";
|
||||
else {
|
||||
for (int m = 0; m < OperandClassParams[operandClass].ceiling; ++m) {
|
||||
if (mask & (1 << m))
|
||||
out << OperandClassParams[operandClass].getName(m) << " ";
|
||||
}
|
||||
}
|
||||
break;
|
||||
} else
|
||||
if (OperandClassParams[operandClass].bitmask)
|
||||
outputMask(operandClass, stream[word++]);
|
||||
else
|
||||
out << OperandClassParams[operandClass].getName(stream[word++]);
|
||||
|
||||
break;
|
||||
@ -425,9 +472,97 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
||||
return;
|
||||
}
|
||||
|
||||
void GLSLstd450GetDebugNames(const char** names)
|
||||
{
|
||||
for (int i = 0; i < GLSLstd450Count; ++i)
|
||||
names[i] = "Unknown";
|
||||
|
||||
names[GLSLstd450Round] = "Round";
|
||||
names[GLSLstd450RoundEven] = "RoundEven";
|
||||
names[GLSLstd450Trunc] = "Trunc";
|
||||
names[GLSLstd450FAbs] = "FAbs";
|
||||
names[GLSLstd450SAbs] = "SAbs";
|
||||
names[GLSLstd450FSign] = "FSign";
|
||||
names[GLSLstd450SSign] = "SSign";
|
||||
names[GLSLstd450Floor] = "Floor";
|
||||
names[GLSLstd450Ceil] = "Ceil";
|
||||
names[GLSLstd450Fract] = "Fract";
|
||||
names[GLSLstd450Radians] = "Radians";
|
||||
names[GLSLstd450Degrees] = "Degrees";
|
||||
names[GLSLstd450Sin] = "Sin";
|
||||
names[GLSLstd450Cos] = "Cos";
|
||||
names[GLSLstd450Tan] = "Tan";
|
||||
names[GLSLstd450Asin] = "Asin";
|
||||
names[GLSLstd450Acos] = "Acos";
|
||||
names[GLSLstd450Atan] = "Atan";
|
||||
names[GLSLstd450Sinh] = "Sinh";
|
||||
names[GLSLstd450Cosh] = "Cosh";
|
||||
names[GLSLstd450Tanh] = "Tanh";
|
||||
names[GLSLstd450Asinh] = "Asinh";
|
||||
names[GLSLstd450Acosh] = "Acosh";
|
||||
names[GLSLstd450Atanh] = "Atanh";
|
||||
names[GLSLstd450Atan2] = "Atan2";
|
||||
names[GLSLstd450Pow] = "Pow";
|
||||
names[GLSLstd450Exp] = "Exp";
|
||||
names[GLSLstd450Log] = "Log";
|
||||
names[GLSLstd450Exp2] = "Exp2";
|
||||
names[GLSLstd450Log2] = "Log2";
|
||||
names[GLSLstd450Sqrt] = "Sqrt";
|
||||
names[GLSLstd450InverseSqrt] = "Inversesqrt";
|
||||
names[GLSLstd450Determinant] = "Determinant";
|
||||
names[GLSLstd450MatrixInverse] = "Inverse";
|
||||
names[GLSLstd450Modf] = "Modf";
|
||||
names[GLSLstd450ModfStruct] = "ModfStruct";
|
||||
names[GLSLstd450FMin] = "FMin";
|
||||
names[GLSLstd450SMin] = "SMin";
|
||||
names[GLSLstd450UMin] = "UMin";
|
||||
names[GLSLstd450FMax] = "FMax";
|
||||
names[GLSLstd450SMax] = "SMax";
|
||||
names[GLSLstd450UMax] = "UMax";
|
||||
names[GLSLstd450FClamp] = "FClamp";
|
||||
names[GLSLstd450SClamp] = "SClamp";
|
||||
names[GLSLstd450UClamp] = "UClamp";
|
||||
names[GLSLstd450Mix] = "Mix";
|
||||
names[GLSLstd450Step] = "Step";
|
||||
names[GLSLstd450SmoothStep] = "Smoothstep";
|
||||
names[GLSLstd450Fma] = "Fma";
|
||||
names[GLSLstd450Frexp] = "Frexp";
|
||||
names[GLSLstd450FrexpStruct] = "FrexpStruct";
|
||||
names[GLSLstd450Ldexp] = "Ldexp";
|
||||
names[GLSLstd450PackSnorm4x8] = "PackSnorm4x8";
|
||||
names[GLSLstd450PackUnorm4x8] = "PackUnorm4x8";
|
||||
names[GLSLstd450PackSnorm2x16] = "PackSnorm2x16";
|
||||
names[GLSLstd450PackUnorm2x16] = "PackUnorm2x16";
|
||||
names[GLSLstd450PackHalf2x16] = "PackHalf2x16";
|
||||
names[GLSLstd450PackDouble2x32] = "PackDouble2x32";
|
||||
names[GLSLstd450UnpackSnorm2x16] = "UnpackSnorm2x16";
|
||||
names[GLSLstd450UnpackUnorm2x16] = "UnpackUnorm2x16";
|
||||
names[GLSLstd450UnpackHalf2x16] = "UnpackHalf2x16";
|
||||
names[GLSLstd450UnpackSnorm4x8] = "UnpackSnorm4x8";
|
||||
names[GLSLstd450UnpackUnorm4x8] = "UnpackUnorm4x8";
|
||||
names[GLSLstd450UnpackDouble2x32] = "UnpackDouble2x32";
|
||||
names[GLSLstd450Length] = "Length";
|
||||
names[GLSLstd450Distance] = "Distance";
|
||||
names[GLSLstd450Cross] = "Cross";
|
||||
names[GLSLstd450Normalize] = "Normalize";
|
||||
names[GLSLstd450FaceForward] = "Faceforward";
|
||||
names[GLSLstd450Reflect] = "Reflect";
|
||||
names[GLSLstd450Refract] = "Refract";
|
||||
names[GLSLstd450AddCarry] = "UaddCarry";
|
||||
names[GLSLstd450SubBorrow] = "UsubBorrow";
|
||||
names[GLSLstd450MulExtended] = "UmulExtended";
|
||||
names[GLSLstd450FindILSB] = "FindILsb";
|
||||
names[GLSLstd450FindSMSB] = "FindSMsb";
|
||||
names[GLSLstd450FindUMSB] = "FindUMsb";
|
||||
names[GLSLstd450InterpolateAtCentroid] = "InterpolateAtCentroid";
|
||||
names[GLSLstd450InterpolateAtSample] = "InterpolateAtSample";
|
||||
names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset";
|
||||
}
|
||||
|
||||
void Disassemble(std::ostream& out, const std::vector<unsigned int>& stream)
|
||||
{
|
||||
SpirvStream SpirvStream(out, stream);
|
||||
GLSLstd450GetDebugNames(GlslStd450DebugNames);
|
||||
SpirvStream.validate();
|
||||
SpirvStream.processInstructions();
|
||||
}
|
||||
|
||||
2
SPIRV/disassemble.h
Normal file → Executable file
2
SPIRV/disassemble.h
Normal file → Executable file
@ -1,5 +1,5 @@
|
||||
//
|
||||
//Copyright (C) 2014 LunarG, Inc.
|
||||
//Copyright (C) 2014-2015 LunarG, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
//
|
||||
|
||||
1977
SPIRV/doc.cpp
Normal file → Executable file
1977
SPIRV/doc.cpp
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
46
SPIRV/doc.h
Normal file → Executable file
46
SPIRV/doc.h
Normal file → Executable file
@ -1,5 +1,5 @@
|
||||
//
|
||||
//Copyright (C) 2014 LunarG, Inc.
|
||||
//Copyright (C) 2014-2015 LunarG, Inc.
|
||||
//
|
||||
//All rights reserved.
|
||||
//
|
||||
@ -40,7 +40,7 @@
|
||||
// Parameterize the SPIR-V enumerants.
|
||||
//
|
||||
|
||||
#include "spirv.h"
|
||||
#include "spirv.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
||||
@ -64,6 +64,10 @@ const char* LoopControlString(int);
|
||||
const char* FunctionControlString(int);
|
||||
const char* SamplerAddressingModeString(int);
|
||||
const char* SamplerFilterModeString(int);
|
||||
const char* ImageFormatString(int);
|
||||
const char* ImageChannelOrderString(int);
|
||||
const char* ImageChannelTypeString(int);
|
||||
const char* ImageOperands(int);
|
||||
const char* FPFastMathString(int);
|
||||
const char* FPRoundingModeString(int);
|
||||
const char* LinkageTypeString(int);
|
||||
@ -75,11 +79,12 @@ const char* ExecutionScopeString(int);
|
||||
const char* GroupOperationString(int);
|
||||
const char* KernelEnqueueFlagsString(int);
|
||||
const char* KernelProfilingInfoString(int);
|
||||
const char* CapabilityString(int);
|
||||
const char* OpcodeString(int);
|
||||
|
||||
// For grouping opcodes into subsections
|
||||
enum OpcodeClass {
|
||||
OpClassMisc, // default, until opcode is classified
|
||||
OpClassMisc,
|
||||
OpClassDebug,
|
||||
OpClassAnnotate,
|
||||
OpClassExtension,
|
||||
@ -88,10 +93,11 @@ enum OpcodeClass {
|
||||
OpClassConstant,
|
||||
OpClassMemory,
|
||||
OpClassFunction,
|
||||
OpClassTexture,
|
||||
OpClassImage,
|
||||
OpClassConvert,
|
||||
OpClassComposite,
|
||||
OpClassArithmetic,
|
||||
OpClassBit,
|
||||
OpClassRelationalLogical,
|
||||
OpClassDerivative,
|
||||
OpClassFlowControl,
|
||||
@ -102,7 +108,8 @@ enum OpcodeClass {
|
||||
OpClassDeviceSideEnqueue,
|
||||
OpClassPipe,
|
||||
|
||||
OpClassCount
|
||||
OpClassCount,
|
||||
OpClassMissing // all instructions start out as missing
|
||||
};
|
||||
|
||||
// For parameterizing operands.
|
||||
@ -110,8 +117,11 @@ enum OperandClass {
|
||||
OperandNone,
|
||||
OperandId,
|
||||
OperandOptionalId,
|
||||
OperandOptionalImage,
|
||||
OperandVariableIds,
|
||||
OperandOptionalLiteral,
|
||||
OperandVariableLiterals,
|
||||
OperandVariableIdLiteral,
|
||||
OperandVariableLiteralId,
|
||||
OperandLiteralNumber,
|
||||
OperandLiteralString,
|
||||
@ -124,6 +134,10 @@ enum OperandClass {
|
||||
OperandDimensionality,
|
||||
OperandSamplerAddressingMode,
|
||||
OperandSamplerFilterMode,
|
||||
OperandSamplerImageFormat,
|
||||
OperandImageChannelOrder,
|
||||
OperandImageChannelDataType,
|
||||
OperandImageOperands,
|
||||
OperandFPFastMath,
|
||||
OperandFPRoundingMode,
|
||||
OperandLinkageType,
|
||||
@ -136,29 +150,17 @@ enum OperandClass {
|
||||
OperandFunction,
|
||||
OperandMemorySemantics,
|
||||
OperandMemoryAccess,
|
||||
OperandExecutionScope,
|
||||
OperandScope,
|
||||
OperandGroupOperation,
|
||||
OperandKernelEnqueueFlags,
|
||||
OperandKernelProfilingInfo,
|
||||
OperandCapability,
|
||||
|
||||
OperandOpcode,
|
||||
|
||||
OperandCount
|
||||
};
|
||||
|
||||
// Set of capabilities. Generally, something is assumed to be in core,
|
||||
// if nothing else is said. So, these are used to identify when something
|
||||
// requires a specific capability to be declared.
|
||||
enum Capability {
|
||||
CapMatrix,
|
||||
CapShader,
|
||||
CapGeom,
|
||||
CapTess,
|
||||
CapAddr,
|
||||
CapLink,
|
||||
CapKernel
|
||||
};
|
||||
|
||||
// Any specific enum can have a set of capabilities that allow it:
|
||||
typedef std::vector<Capability> EnumCaps;
|
||||
|
||||
@ -213,8 +215,8 @@ public:
|
||||
class InstructionParameters {
|
||||
public:
|
||||
InstructionParameters() :
|
||||
opDesc(0),
|
||||
opClass(OpClassMisc),
|
||||
opDesc("TBD"),
|
||||
opClass(OpClassMissing),
|
||||
typePresent(true), // most normal, only exceptions have to be spelled out
|
||||
resultPresent(true) // most normal, only exceptions have to be spelled out
|
||||
{ }
|
||||
@ -238,7 +240,7 @@ protected:
|
||||
int resultPresent : 1;
|
||||
};
|
||||
|
||||
const int OpcodeCeiling = 267;
|
||||
const int OpcodeCeiling = 305;
|
||||
|
||||
// The set of objects that hold all the instruction/operand
|
||||
// parameterization information.
|
||||
|
||||
2
SPIRV/spvIR.h
Normal file → Executable file
2
SPIRV/spvIR.h
Normal file → Executable file
@ -50,7 +50,7 @@
|
||||
#ifndef spvIR_H
|
||||
#define spvIR_H
|
||||
|
||||
#include "spirv.h"
|
||||
#include "spirv.hpp"
|
||||
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
|
||||
7
StandAlone/StandAlone.cpp
Normal file → Executable file
7
StandAlone/StandAlone.cpp
Normal file → Executable file
@ -42,7 +42,7 @@
|
||||
#include "./../glslang/Include/revision.h"
|
||||
#include "./../glslang/Public/ShaderLang.h"
|
||||
#include "../SPIRV/GlslangToSpv.h"
|
||||
#include "../SPIRV/GLSL450Lib.h"
|
||||
#include "../SPIRV/GLSL.std.450.h"
|
||||
#include "../SPIRV/doc.h"
|
||||
#include "../SPIRV/disassemble.h"
|
||||
#include <string.h>
|
||||
@ -644,8 +644,6 @@ CompileShaders(void*)
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* GlslStd450DebugNames[GLSL_STD_450::Count];
|
||||
|
||||
// Outputs the given string, but only if it is non-null and non-empty.
|
||||
// This prevents erroneous newlines from appearing.
|
||||
void PutsIfNonEmpty(const char* str)
|
||||
@ -754,7 +752,6 @@ void CompileAndLinkShaders()
|
||||
glslang::OutputSpv(spirv, GetBinaryName((EShLanguage)stage));
|
||||
if (Options & EOptionHumanReadableSpv) {
|
||||
spv::Parameterize();
|
||||
GLSL_STD_450::GetDebugNames(GlslStd450DebugNames);
|
||||
spv::Disassemble(std::cout, spirv);
|
||||
}
|
||||
}
|
||||
@ -790,7 +787,7 @@ int C_DECL main(int argc, char* argv[])
|
||||
std::string spirvVersion;
|
||||
glslang::GetSpirvVersion(spirvVersion);
|
||||
printf("SPIR-V Version %s\n", spirvVersion.c_str());
|
||||
printf("GLSL.std.450 Version %d, Revision %d\n", GLSL_STD_450::Version, GLSL_STD_450::Revision);
|
||||
printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision);
|
||||
if (Worklist.empty())
|
||||
return ESuccess;
|
||||
}
|
||||
|
||||
58
Test/baseResults/spv.100ops.frag.out
Normal file → Executable file
58
Test/baseResults/spv.100ops.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 48
|
||||
|
||||
Source ESSL 100
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "foo("
|
||||
Name 12 "face1"
|
||||
@ -19,68 +21,68 @@ Linked fragment stage:
|
||||
Name 22 "low"
|
||||
Name 27 "high"
|
||||
Name 37 "gl_FragColor"
|
||||
Decorate 12(face1) PrecisionLow
|
||||
Decorate 14(face2) PrecisionLow
|
||||
Decorate 18(z) PrecisionMedium
|
||||
Decorate 22(low) PrecisionMedium
|
||||
Decorate 27(high) PrecisionMedium
|
||||
Decorate 37(gl_FragColor) PrecisionMedium
|
||||
Decorate 12(face1) RelaxedPrecision
|
||||
Decorate 14(face2) RelaxedPrecision
|
||||
Decorate 18(z) RelaxedPrecision
|
||||
Decorate 22(low) RelaxedPrecision
|
||||
Decorate 27(high) RelaxedPrecision
|
||||
Decorate 37(gl_FragColor) RelaxedPrecision
|
||||
Decorate 37(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeFunction 7(float)
|
||||
8: TypeFunction 7(float)
|
||||
11: TypePointer PrivateGlobal 7(float)
|
||||
12(face1): 11(ptr) Variable PrivateGlobal
|
||||
12(face1): 11(ptr) Variable PrivateGlobal
|
||||
13: 7(float) Constant 1093664768
|
||||
14(face2): 11(ptr) Variable PrivateGlobal
|
||||
14(face2): 11(ptr) Variable PrivateGlobal
|
||||
15: 7(float) Constant 3221225472
|
||||
16: TypeInt 32 1
|
||||
17: TypePointer Function 16(int)
|
||||
19: 16(int) Constant 3
|
||||
20: 16(int) Constant 2
|
||||
21: TypePointer UniformConstant 16(int)
|
||||
22(low): 21(ptr) Variable UniformConstant
|
||||
22(low): 21(ptr) Variable UniformConstant
|
||||
25: 16(int) Constant 1
|
||||
27(high): 21(ptr) Variable UniformConstant
|
||||
27(high): 21(ptr) Variable UniformConstant
|
||||
29: TypeBool
|
||||
35: TypeVector 7(float) 4
|
||||
36: TypePointer Output 35(fvec4)
|
||||
37(gl_FragColor): 36(ptr) Variable Output
|
||||
37(gl_FragColor): 36(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18(z): 17(ptr) Variable Function
|
||||
Store 12(face1) 13
|
||||
Store 14(face2) 15
|
||||
Store 18(z) 19
|
||||
23: 16(int) Load 22(low)
|
||||
18(z): 17(ptr) Variable Function
|
||||
Store 12(face1) 13
|
||||
Store 14(face2) 15
|
||||
Store 18(z) 19
|
||||
23: 16(int) Load 22(low)
|
||||
24: 16(int) IMul 20 23
|
||||
26: 16(int) IAdd 24 25
|
||||
28: 16(int) Load 27(high)
|
||||
28: 16(int) Load 27(high)
|
||||
30: 29(bool) SLessThan 26 28
|
||||
SelectionMerge 32 None
|
||||
BranchConditional 30 31 32
|
||||
BranchConditional 30 31 32
|
||||
31: Label
|
||||
33: 16(int) Load 18(z)
|
||||
33: 16(int) Load 18(z)
|
||||
34: 16(int) IAdd 33 25
|
||||
Store 18(z) 34
|
||||
Store 18(z) 34
|
||||
Branch 32
|
||||
32: Label
|
||||
38: 7(float) Load 12(face1)
|
||||
39: 16(int) Load 18(z)
|
||||
38: 7(float) Load 12(face1)
|
||||
39: 16(int) Load 18(z)
|
||||
40: 7(float) ConvertSToF 39
|
||||
41: 35(fvec4) CompositeConstruct 40 40 40 40
|
||||
42: 35(fvec4) VectorTimesScalar 41 38
|
||||
43: 7(float) FunctionCall 9(foo()
|
||||
43: 7(float) FunctionCall 9(foo()
|
||||
44: 35(fvec4) CompositeConstruct 43 43 43 43
|
||||
45: 35(fvec4) FAdd 42 44
|
||||
Store 37(gl_FragColor) 45
|
||||
Store 37(gl_FragColor) 45
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
9(foo(): 7(float) Function None 8
|
||||
10: Label
|
||||
46: 7(float) Load 14(face2)
|
||||
46: 7(float) Load 14(face2)
|
||||
ReturnValue 46
|
||||
FunctionEnd
|
||||
|
||||
181
Test/baseResults/spv.140.frag.out
Normal file → Executable file
181
Test/baseResults/spv.140.frag.out
Normal file → Executable file
@ -5,12 +5,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 90
|
||||
// Id's are bound by 93
|
||||
|
||||
Source GLSL 140
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "foo("
|
||||
Name 12 "i1"
|
||||
@ -19,130 +21,137 @@ Linked fragment stage:
|
||||
Name 29 "o"
|
||||
Name 34 "gl_ClipDistance"
|
||||
Name 43 "k"
|
||||
Name 54 "sampR"
|
||||
Name 60 "sampB"
|
||||
Name 83 "samp2Da"
|
||||
Name 87 "bn"
|
||||
MemberName 87(bn) 0 "matra"
|
||||
MemberName 87(bn) 1 "matca"
|
||||
MemberName 87(bn) 2 "matr"
|
||||
MemberName 87(bn) 3 "matc"
|
||||
MemberName 87(bn) 4 "matrdef"
|
||||
Name 89 ""
|
||||
Name 55 "sampR"
|
||||
Name 62 "sampB"
|
||||
Name 86 "samp2Da"
|
||||
Name 90 "bn"
|
||||
MemberName 90(bn) 0 "matra"
|
||||
MemberName 90(bn) 1 "matca"
|
||||
MemberName 90(bn) 2 "matr"
|
||||
MemberName 90(bn) 3 "matc"
|
||||
MemberName 90(bn) 4 "matrdef"
|
||||
Name 92 ""
|
||||
Decorate 17(gl_FrontFacing) BuiltIn FrontFacing
|
||||
Decorate 34(gl_ClipDistance) Smooth
|
||||
Decorate 34(gl_ClipDistance) Smooth
|
||||
Decorate 34(gl_ClipDistance) BuiltIn ClipDistance
|
||||
Decorate 43(k) Smooth
|
||||
Decorate 83(samp2Da) NoStaticUse
|
||||
MemberDecorate 87(bn) 0 RowMajor
|
||||
MemberDecorate 87(bn) 1 ColMajor
|
||||
MemberDecorate 87(bn) 2 RowMajor
|
||||
MemberDecorate 87(bn) 3 ColMajor
|
||||
MemberDecorate 87(bn) 4 RowMajor
|
||||
Decorate 87(bn) GLSLStd140
|
||||
Decorate 87(bn) Block
|
||||
Decorate 89 NoStaticUse
|
||||
Decorate 43(k) Smooth
|
||||
Decorate 86(samp2Da) NoStaticUse
|
||||
MemberDecorate 90(bn) 0 RowMajor
|
||||
MemberDecorate 90(bn) 0 Offset 0
|
||||
MemberDecorate 90(bn) 1 ColMajor
|
||||
MemberDecorate 90(bn) 1 Offset 256
|
||||
MemberDecorate 90(bn) 2 RowMajor
|
||||
MemberDecorate 90(bn) 2 Offset 512
|
||||
MemberDecorate 90(bn) 3 ColMajor
|
||||
MemberDecorate 90(bn) 3 Offset 576
|
||||
MemberDecorate 90(bn) 4 RowMajor
|
||||
MemberDecorate 90(bn) 4 Offset 640
|
||||
Decorate 90(bn) Block
|
||||
Decorate 92 NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeFunction 7(float)
|
||||
8: TypeFunction 7(float)
|
||||
11: TypePointer PrivateGlobal 7(float)
|
||||
12(i1): 11(ptr) Variable PrivateGlobal
|
||||
12(i1): 11(ptr) Variable PrivateGlobal
|
||||
13: TypePointer Function 7(float)
|
||||
15: TypeBool
|
||||
16: TypePointer Input 15(bool)
|
||||
17(gl_FrontFacing): 16(ptr) Variable Input
|
||||
17(gl_FrontFacing): 16(ptr) Variable Input
|
||||
21: 7(float) Constant 3221225472
|
||||
23: 7(float) Constant 1073741824
|
||||
25(i2): 11(ptr) Variable PrivateGlobal
|
||||
25(i2): 11(ptr) Variable PrivateGlobal
|
||||
26: 7(float) Constant 1120665600
|
||||
27: TypeVector 7(float) 4
|
||||
28: TypePointer Output 27(fvec4)
|
||||
29(o): 28(ptr) Variable Output
|
||||
29(o): 28(ptr) Variable Output
|
||||
30: TypeInt 32 0
|
||||
31: 30(int) Constant 5
|
||||
32: TypeArray 7(float) 31
|
||||
33: TypePointer Input 32
|
||||
34(gl_ClipDistance): 33(ptr) Variable Input
|
||||
34(gl_ClipDistance): 33(ptr) Variable Input
|
||||
35: TypeInt 32 1
|
||||
36: 35(int) Constant 2
|
||||
37: TypePointer Input 7(float)
|
||||
42: TypePointer Input 27(fvec4)
|
||||
43(k): 42(ptr) Variable Input
|
||||
43(k): 42(ptr) Variable Input
|
||||
45: TypeVector 35(int) 4
|
||||
52: TypeSampler7(float) Rect filter+texture
|
||||
53: TypePointer UniformConstant 52
|
||||
54(sampR): 53(ptr) Variable UniformConstant
|
||||
56: TypeVector 35(int) 2
|
||||
58: TypeSampler35(int) Buffer filter+texture
|
||||
59: TypePointer UniformConstant 58
|
||||
60(sampB): 59(ptr) Variable UniformConstant
|
||||
65: TypeVector 7(float) 2
|
||||
68: 7(float) Constant 1120403456
|
||||
79: TypeSampler7(float) 2D filter+texture
|
||||
80: 30(int) Constant 3
|
||||
81: TypeArray 79 80
|
||||
82: TypePointer UniformConstant 81
|
||||
83(samp2Da): 82(ptr) Variable UniformConstant
|
||||
84: TypeMatrix 27(fvec4) 4
|
||||
85: 30(int) Constant 4
|
||||
86: TypeArray 84 85
|
||||
87(bn): TypeStruct 86 86 84 84 84
|
||||
88: TypePointer Uniform 87(bn)
|
||||
89: 88(ptr) Variable Uniform
|
||||
52: TypeImage 7(float) Rect sampled format:Unknown
|
||||
53: TypeSampledImage 52
|
||||
54: TypePointer UniformConstant 53
|
||||
55(sampR): 54(ptr) Variable UniformConstant
|
||||
57: TypeVector 35(int) 2
|
||||
59: TypeImage 35(int) Buffer sampled format:Unknown
|
||||
60: TypeSampledImage 59
|
||||
61: TypePointer UniformConstant 60
|
||||
62(sampB): 61(ptr) Variable UniformConstant
|
||||
67: TypeVector 7(float) 2
|
||||
70: 7(float) Constant 1120403456
|
||||
81: TypeImage 7(float) 2D sampled format:Unknown
|
||||
82: TypeSampledImage 81
|
||||
83: 30(int) Constant 3
|
||||
84: TypeArray 82 83
|
||||
85: TypePointer UniformConstant 84
|
||||
86(samp2Da): 85(ptr) Variable UniformConstant
|
||||
87: TypeMatrix 27(fvec4) 4
|
||||
88: 30(int) Constant 4
|
||||
89: TypeArray 87 88
|
||||
90(bn): TypeStruct 89 89 87 87 87
|
||||
91: TypePointer Uniform 90(bn)
|
||||
92: 91(ptr) Variable Uniform
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
14: 13(ptr) Variable Function
|
||||
18: 15(bool) Load 17(gl_FrontFacing)
|
||||
14: 13(ptr) Variable Function
|
||||
18: 15(bool) Load 17(gl_FrontFacing)
|
||||
SelectionMerge 20 None
|
||||
BranchConditional 18 19 22
|
||||
BranchConditional 18 19 22
|
||||
19: Label
|
||||
Store 14 21
|
||||
Store 14 21
|
||||
Branch 20
|
||||
22: Label
|
||||
Store 14 23
|
||||
Store 14 23
|
||||
Branch 20
|
||||
20: Label
|
||||
24: 7(float) Load 14
|
||||
Store 12(i1) 24
|
||||
Store 25(i2) 26
|
||||
24: 7(float) Load 14
|
||||
Store 12(i1) 24
|
||||
Store 25(i2) 26
|
||||
38: 37(ptr) AccessChain 34(gl_ClipDistance) 36
|
||||
39: 7(float) Load 38
|
||||
40: 27(fvec4) Load 29(o)
|
||||
39: 7(float) Load 38
|
||||
40: 27(fvec4) Load 29(o)
|
||||
41: 27(fvec4) CompositeInsert 39 40 1
|
||||
Store 29(o) 41
|
||||
44: 27(fvec4) Load 43(k)
|
||||
Store 29(o) 41
|
||||
44: 27(fvec4) Load 43(k)
|
||||
46: 45(ivec4) ConvertFToS 44
|
||||
47: 35(int) CompositeExtract 46 0
|
||||
48: 37(ptr) AccessChain 34(gl_ClipDistance) 47
|
||||
49: 7(float) Load 48
|
||||
50: 27(fvec4) Load 29(o)
|
||||
49: 7(float) Load 48
|
||||
50: 27(fvec4) Load 29(o)
|
||||
51: 27(fvec4) CompositeInsert 49 50 2
|
||||
Store 29(o) 51
|
||||
55: 52 Load 54(sampR)
|
||||
57: 56(ivec2) TextureQuerySize 55
|
||||
61: 58 Load 60(sampB)
|
||||
62: 35(int) TextureQuerySize 61
|
||||
63: 56(ivec2) CompositeConstruct 62 62
|
||||
64: 56(ivec2) IAdd 57 63
|
||||
66: 65(fvec2) ConvertSToF 64
|
||||
67: 7(float) CompositeExtract 66 0
|
||||
69: 7(float) FDiv 67 68
|
||||
70: 27(fvec4) Load 29(o)
|
||||
71: 27(fvec4) CompositeInsert 69 70 3
|
||||
Store 29(o) 71
|
||||
72: 7(float) FunctionCall 9(foo()
|
||||
73: 27(fvec4) Load 29(o)
|
||||
74: 27(fvec4) CompositeInsert 72 73 2
|
||||
Store 29(o) 74
|
||||
Store 29(o) 51
|
||||
56: 53 Load 55(sampR)
|
||||
58: 57(ivec2) ImageQuerySize 56
|
||||
63: 60 Load 62(sampB)
|
||||
64: 35(int) ImageQuerySize 63
|
||||
65: 57(ivec2) CompositeConstruct 64 64
|
||||
66: 57(ivec2) IAdd 58 65
|
||||
68: 67(fvec2) ConvertSToF 66
|
||||
69: 7(float) CompositeExtract 68 0
|
||||
71: 7(float) FDiv 69 70
|
||||
72: 27(fvec4) Load 29(o)
|
||||
73: 27(fvec4) CompositeInsert 71 72 3
|
||||
Store 29(o) 73
|
||||
74: 7(float) FunctionCall 9(foo()
|
||||
75: 27(fvec4) Load 29(o)
|
||||
76: 27(fvec4) CompositeInsert 74 75 2
|
||||
Store 29(o) 76
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
9(foo(): 7(float) Function None 8
|
||||
10: Label
|
||||
75: 7(float) Load 12(i1)
|
||||
76: 7(float) Load 25(i2)
|
||||
77: 7(float) FAdd 75 76
|
||||
ReturnValue 77
|
||||
77: 7(float) Load 12(i1)
|
||||
78: 7(float) Load 25(i2)
|
||||
79: 7(float) FAdd 77 78
|
||||
ReturnValue 79
|
||||
FunctionEnd
|
||||
|
||||
73
Test/baseResults/spv.150.geom.out
Normal file → Executable file
73
Test/baseResults/spv.150.geom.out
Normal file → Executable file
@ -8,12 +8,13 @@ Linked geometry stage:
|
||||
// Id's are bound by 72
|
||||
|
||||
Source GLSL 150
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4
|
||||
ExecutionMode 4 InputTrianglesAdjacency
|
||||
EntryPoint Geometry 4 "main"
|
||||
ExecutionMode 4 InputTrianglesAdjacency
|
||||
ExecutionMode 4 Invocations 0
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputVertices 30
|
||||
Name 4 "main"
|
||||
Name 9 "fromVertex"
|
||||
@ -38,36 +39,36 @@ Linked geometry stage:
|
||||
Name 69 "toFragment"
|
||||
MemberName 69(toFragment) 0 "color"
|
||||
Name 71 "toF"
|
||||
Decorate 9(fromVertex) Block
|
||||
Decorate 9(fromVertex) Block
|
||||
Decorate 9(fromVertex) Stream 3
|
||||
Decorate 11 Stream 3
|
||||
Decorate 14(fromVertex) Block
|
||||
Decorate 14(fromVertex) Block
|
||||
MemberDecorate 28(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 28(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 28(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 28(gl_PerVertex) Block
|
||||
Decorate 28(gl_PerVertex) Block
|
||||
Decorate 28(gl_PerVertex) Stream 0
|
||||
Decorate 30 Stream 0
|
||||
MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 31(gl_PerVertex) Block
|
||||
Decorate 31(gl_PerVertex) Block
|
||||
Decorate 48(gl_PrimitiveID) Stream 0
|
||||
Decorate 48(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||
Decorate 50(gl_PrimitiveIDIn) BuiltIn PrimitiveId
|
||||
Decorate 52(gl_Layer) Stream 0
|
||||
Decorate 52(gl_Layer) BuiltIn Layer
|
||||
Decorate 69(toFragment) Block
|
||||
Decorate 69(toFragment) Block
|
||||
Decorate 69(toFragment) Stream 3
|
||||
Decorate 71(toF) Stream 3
|
||||
Decorate 71(toF) NoStaticUse
|
||||
Decorate 71(toF) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 3
|
||||
9(fromVertex): TypeStruct 8(fvec3)
|
||||
10: TypePointer Output 9(fromVertex)
|
||||
11: 10(ptr) Variable Output
|
||||
11: 10(ptr) Variable Output
|
||||
12: TypeInt 32 1
|
||||
13: 12(int) Constant 0
|
||||
14(fromVertex): TypeStruct 8(fvec3)
|
||||
@ -75,7 +76,7 @@ Linked geometry stage:
|
||||
16: 15(int) Constant 6
|
||||
17: TypeArray 14(fromVertex) 16
|
||||
18: TypePointer Input 17
|
||||
19(fromV): 18(ptr) Variable Input
|
||||
19(fromV): 18(ptr) Variable Input
|
||||
20: TypePointer Input 8(fvec3)
|
||||
23: TypePointer Output 8(fvec3)
|
||||
25: TypeVector 7(float) 4
|
||||
@ -83,11 +84,11 @@ Linked geometry stage:
|
||||
27: TypeArray 7(float) 26
|
||||
28(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
|
||||
29: TypePointer Output 28(gl_PerVertex)
|
||||
30: 29(ptr) Variable Output
|
||||
30: 29(ptr) Variable Output
|
||||
31(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
|
||||
32: TypeArray 31(gl_PerVertex) 16
|
||||
33: TypePointer Input 32
|
||||
34(gl_in): 33(ptr) Variable Input
|
||||
34(gl_in): 33(ptr) Variable Input
|
||||
35: TypePointer Input 25(fvec4)
|
||||
38: TypePointer Output 25(fvec4)
|
||||
40: 12(int) Constant 1
|
||||
@ -95,52 +96,52 @@ Linked geometry stage:
|
||||
42: TypePointer Input 7(float)
|
||||
45: TypePointer Output 7(float)
|
||||
47: TypePointer Output 12(int)
|
||||
48(gl_PrimitiveID): 47(ptr) Variable Output
|
||||
48(gl_PrimitiveID): 47(ptr) Variable Output
|
||||
49: TypePointer Input 12(int)
|
||||
50(gl_PrimitiveIDIn): 49(ptr) Variable Input
|
||||
52(gl_Layer): 47(ptr) Variable Output
|
||||
50(gl_PrimitiveIDIn): 49(ptr) Variable Input
|
||||
52(gl_Layer): 47(ptr) Variable Output
|
||||
53: 12(int) Constant 2
|
||||
54: 7(float) Constant 1073741824
|
||||
69(toFragment): TypeStruct 8(fvec3)
|
||||
70: TypePointer Output 69(toFragment)
|
||||
71(toF): 70(ptr) Variable Output
|
||||
71(toF): 70(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
21: 20(ptr) AccessChain 19(fromV) 13 13
|
||||
22: 8(fvec3) Load 21
|
||||
22: 8(fvec3) Load 21
|
||||
24: 23(ptr) AccessChain 11 13
|
||||
Store 24 22
|
||||
Store 24 22
|
||||
36: 35(ptr) AccessChain 34(gl_in) 13 13
|
||||
37: 25(fvec4) Load 36
|
||||
37: 25(fvec4) Load 36
|
||||
39: 38(ptr) AccessChain 30 13
|
||||
Store 39 37
|
||||
Store 39 37
|
||||
43: 42(ptr) AccessChain 34(gl_in) 41 40
|
||||
44: 7(float) Load 43
|
||||
44: 7(float) Load 43
|
||||
46: 45(ptr) AccessChain 30 40
|
||||
Store 46 44
|
||||
51: 12(int) Load 50(gl_PrimitiveIDIn)
|
||||
Store 48(gl_PrimitiveID) 51
|
||||
Store 52(gl_Layer) 53
|
||||
Store 46 44
|
||||
51: 12(int) Load 50(gl_PrimitiveIDIn)
|
||||
Store 48(gl_PrimitiveID) 51
|
||||
Store 52(gl_Layer) 53
|
||||
EmitVertex
|
||||
55: 20(ptr) AccessChain 19(fromV) 13 13
|
||||
56: 8(fvec3) Load 55
|
||||
56: 8(fvec3) Load 55
|
||||
57: 8(fvec3) VectorTimesScalar 56 54
|
||||
58: 23(ptr) AccessChain 11 13
|
||||
Store 58 57
|
||||
Store 58 57
|
||||
59: 35(ptr) AccessChain 34(gl_in) 13 13
|
||||
60: 25(fvec4) Load 59
|
||||
60: 25(fvec4) Load 59
|
||||
61: 25(fvec4) VectorTimesScalar 60 54
|
||||
62: 38(ptr) AccessChain 30 13
|
||||
Store 62 61
|
||||
Store 62 61
|
||||
63: 42(ptr) AccessChain 34(gl_in) 41 40
|
||||
64: 7(float) Load 63
|
||||
64: 7(float) Load 63
|
||||
65: 7(float) FMul 54 64
|
||||
66: 45(ptr) AccessChain 30 40
|
||||
Store 66 65
|
||||
67: 12(int) Load 50(gl_PrimitiveIDIn)
|
||||
Store 66 65
|
||||
67: 12(int) Load 50(gl_PrimitiveIDIn)
|
||||
68: 12(int) IAdd 67 40
|
||||
Store 48(gl_PrimitiveID) 68
|
||||
Store 52(gl_Layer) 41
|
||||
Store 48(gl_PrimitiveID) 68
|
||||
Store 52(gl_Layer) 41
|
||||
EmitVertex
|
||||
EndPrimitive
|
||||
Branch 6
|
||||
|
||||
52
Test/baseResults/spv.150.vert.out
Normal file → Executable file
52
Test/baseResults/spv.150.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 53
|
||||
|
||||
Source GLSL 150
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 14 "gl_PerVertex"
|
||||
MemberName 14(gl_PerVertex) 0 "gl_Position"
|
||||
@ -38,19 +39,18 @@ Linked vertex stage:
|
||||
Name 49 "ui"
|
||||
Name 51 "gl_VertexID"
|
||||
Name 52 "gl_InstanceID"
|
||||
MemberDecorate 14(gl_PerVertex) 0 Invariant
|
||||
MemberDecorate 14(gl_PerVertex) 0 Invariant
|
||||
MemberDecorate 14(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 14(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 14(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
MemberDecorate 14(gl_PerVertex) 3 BuiltIn ClipVertex
|
||||
Decorate 14(gl_PerVertex) Block
|
||||
Decorate 49(ui) NoStaticUse
|
||||
Decorate 14(gl_PerVertex) Block
|
||||
Decorate 49(ui) NoStaticUse
|
||||
Decorate 51(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 51(gl_VertexID) NoStaticUse
|
||||
Decorate 51(gl_VertexID) NoStaticUse
|
||||
Decorate 52(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 52(gl_InstanceID) NoStaticUse
|
||||
Decorate 52(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypeInt 32 0
|
||||
@ -60,15 +60,15 @@ Linked vertex stage:
|
||||
13: TypeArray 8(fvec4) 12
|
||||
14(gl_PerVertex): TypeStruct 8(fvec4) 7(float) 11 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 13 7(float)
|
||||
15: TypePointer Output 14(gl_PerVertex)
|
||||
16: 15(ptr) Variable Output
|
||||
16: 15(ptr) Variable Output
|
||||
17: TypeInt 32 1
|
||||
18: 17(int) Constant 0
|
||||
19: TypePointer Input 8(fvec4)
|
||||
20(iv4): 19(ptr) Variable Input
|
||||
20(iv4): 19(ptr) Variable Input
|
||||
22: TypePointer Output 8(fvec4)
|
||||
24: 17(int) Constant 1
|
||||
25: TypePointer UniformConstant 7(float)
|
||||
26(ps): 25(ptr) Variable UniformConstant
|
||||
26(ps): 25(ptr) Variable UniformConstant
|
||||
28: TypePointer Output 7(float)
|
||||
30: 17(int) Constant 2
|
||||
34: 9(int) Constant 3
|
||||
@ -77,32 +77,32 @@ Linked vertex stage:
|
||||
37: TypeArray 36(s1) 10
|
||||
38(s2): TypeStruct 17(int) 37
|
||||
39: TypePointer Output 38(s2)
|
||||
40(s2out): 39(ptr) Variable Output
|
||||
40(s2out): 39(ptr) Variable Output
|
||||
41: TypePointer Function 17(int)
|
||||
48: TypePointer UniformConstant 17(int)
|
||||
49(ui): 48(ptr) Variable UniformConstant
|
||||
49(ui): 48(ptr) Variable UniformConstant
|
||||
50: TypePointer Input 17(int)
|
||||
51(gl_VertexID): 50(ptr) Variable Input
|
||||
52(gl_InstanceID): 50(ptr) Variable Input
|
||||
51(gl_VertexID): 50(ptr) Variable Input
|
||||
52(gl_InstanceID): 50(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
42(i): 41(ptr) Variable Function
|
||||
21: 8(fvec4) Load 20(iv4)
|
||||
42(i): 41(ptr) Variable Function
|
||||
21: 8(fvec4) Load 20(iv4)
|
||||
23: 22(ptr) AccessChain 16 18
|
||||
Store 23 21
|
||||
27: 7(float) Load 26(ps)
|
||||
Store 23 21
|
||||
27: 7(float) Load 26(ps)
|
||||
29: 28(ptr) AccessChain 16 24
|
||||
Store 29 27
|
||||
31: 8(fvec4) Load 20(iv4)
|
||||
Store 29 27
|
||||
31: 8(fvec4) Load 20(iv4)
|
||||
32: 7(float) CompositeExtract 31 0
|
||||
33: 28(ptr) AccessChain 16 30 30
|
||||
Store 33 32
|
||||
43: 17(int) Load 42(i)
|
||||
44: 7(float) Load 26(ps)
|
||||
Store 33 32
|
||||
43: 17(int) Load 42(i)
|
||||
44: 7(float) Load 26(ps)
|
||||
45: 22(ptr) AccessChain 40(s2out) 24 43 30 30
|
||||
46: 8(fvec4) Load 45
|
||||
46: 8(fvec4) Load 45
|
||||
47: 8(fvec4) CompositeInsert 44 46 3
|
||||
Store 45 47
|
||||
Store 45 47
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
61
Test/baseResults/spv.300BuiltIns.vert.out
Normal file → Executable file
61
Test/baseResults/spv.300BuiltIns.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 41
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 12 "gl_VertexID"
|
||||
@ -19,63 +20,59 @@ Linked vertex stage:
|
||||
Name 26 "ps"
|
||||
Name 34 "gl_PointSize"
|
||||
Name 40 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionMedium
|
||||
Decorate 12(gl_VertexID) PrecisionHigh
|
||||
Decorate 9(i) RelaxedPrecision
|
||||
Decorate 12(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 17(j) PrecisionMedium
|
||||
Decorate 24(gl_Position) PrecisionHigh
|
||||
Decorate 24(gl_Position) Invariant
|
||||
Decorate 17(j) RelaxedPrecision
|
||||
Decorate 24(gl_Position) Invariant
|
||||
Decorate 24(gl_Position) BuiltIn Position
|
||||
Decorate 26(ps) PrecisionMedium
|
||||
Decorate 34(gl_PointSize) PrecisionHigh
|
||||
Decorate 26(ps) RelaxedPrecision
|
||||
Decorate 34(gl_PointSize) BuiltIn PointSize
|
||||
Decorate 40(gl_InstanceID) PrecisionHigh
|
||||
Decorate 40(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 40(gl_InstanceID) NoStaticUse
|
||||
Decorate 40(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 4
|
||||
11: TypePointer Input 7(int)
|
||||
12(gl_VertexID): 11(ptr) Variable Input
|
||||
12(gl_VertexID): 11(ptr) Variable Input
|
||||
15: 7(int) Constant 10
|
||||
21: TypeFloat 32
|
||||
22: TypeVector 21(float) 4
|
||||
23: TypePointer Output 22(fvec4)
|
||||
24(gl_Position): 23(ptr) Variable Output
|
||||
24(gl_Position): 23(ptr) Variable Output
|
||||
25: TypePointer Input 21(float)
|
||||
26(ps): 25(ptr) Variable Input
|
||||
26(ps): 25(ptr) Variable Input
|
||||
33: TypePointer Output 21(float)
|
||||
34(gl_PointSize): 33(ptr) Variable Output
|
||||
40(gl_InstanceID): 11(ptr) Variable Input
|
||||
34(gl_PointSize): 33(ptr) Variable Output
|
||||
40(gl_InstanceID): 11(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
17(j): 8(ptr) Variable Function
|
||||
13: 7(int) Load 12(gl_VertexID)
|
||||
9(i): 8(ptr) Variable Function
|
||||
17(j): 8(ptr) Variable Function
|
||||
13: 7(int) Load 12(gl_VertexID)
|
||||
14: 7(int) IMul 10 13
|
||||
16: 7(int) ISub 14 15
|
||||
Store 9(i) 16
|
||||
18: 7(int) Load 12(gl_VertexID)
|
||||
Store 9(i) 16
|
||||
18: 7(int) Load 12(gl_VertexID)
|
||||
19: 7(int) IMul 10 18
|
||||
20: 7(int) ISub 19 15
|
||||
Store 17(j) 20
|
||||
27: 21(float) Load 26(ps)
|
||||
Store 17(j) 20
|
||||
27: 21(float) Load 26(ps)
|
||||
28: 22(fvec4) CompositeConstruct 27 27 27 27
|
||||
Store 24(gl_Position) 28
|
||||
29: 7(int) Load 9(i)
|
||||
Store 24(gl_Position) 28
|
||||
29: 7(int) Load 9(i)
|
||||
30: 21(float) ConvertSToF 29
|
||||
31: 22(fvec4) Load 24(gl_Position)
|
||||
31: 22(fvec4) Load 24(gl_Position)
|
||||
32: 22(fvec4) VectorTimesScalar 31 30
|
||||
Store 24(gl_Position) 32
|
||||
35: 21(float) Load 26(ps)
|
||||
Store 34(gl_PointSize) 35
|
||||
36: 7(int) Load 17(j)
|
||||
Store 24(gl_Position) 32
|
||||
35: 21(float) Load 26(ps)
|
||||
Store 34(gl_PointSize) 35
|
||||
36: 7(int) Load 17(j)
|
||||
37: 21(float) ConvertSToF 36
|
||||
38: 21(float) Load 34(gl_PointSize)
|
||||
38: 21(float) Load 34(gl_PointSize)
|
||||
39: 21(float) FMul 38 37
|
||||
Store 34(gl_PointSize) 39
|
||||
Store 34(gl_PointSize) 39
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
44
Test/baseResults/spv.300layout.frag.out
Normal file → Executable file
44
Test/baseResults/spv.300layout.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 38
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "c"
|
||||
Name 12 "color"
|
||||
@ -20,27 +22,27 @@ Linked fragment stage:
|
||||
Name 16 "s"
|
||||
Name 27 "p"
|
||||
Name 30 "pos"
|
||||
Decorate 10(c) PrecisionMedium
|
||||
Decorate 10(c) RelaxedPrecision
|
||||
Decorate 10(c) Location 7
|
||||
Decorate 12(color) PrecisionMedium
|
||||
Decorate 12(color) Smooth
|
||||
MemberDecorate 14(S) 0 PrecisionMedium
|
||||
MemberDecorate 14(S) 1 PrecisionMedium
|
||||
Decorate 27(p) PrecisionMedium
|
||||
Decorate 12(color) RelaxedPrecision
|
||||
Decorate 12(color) Smooth
|
||||
MemberDecorate 14(S) 0 RelaxedPrecision
|
||||
MemberDecorate 14(S) 1 RelaxedPrecision
|
||||
Decorate 27(p) RelaxedPrecision
|
||||
Decorate 27(p) Location 3
|
||||
Decorate 30(pos) PrecisionMedium
|
||||
Decorate 30(pos) Smooth
|
||||
Decorate 30(pos) RelaxedPrecision
|
||||
Decorate 30(pos) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 3
|
||||
9: TypePointer Output 8(fvec3)
|
||||
10(c): 9(ptr) Variable Output
|
||||
10(c): 9(ptr) Variable Output
|
||||
11: TypePointer Input 8(fvec3)
|
||||
12(color): 11(ptr) Variable Input
|
||||
12(color): 11(ptr) Variable Input
|
||||
14(S): TypeStruct 8(fvec3) 7(float)
|
||||
15: TypePointer Input 14(S)
|
||||
16(s): 15(ptr) Variable Input
|
||||
16(s): 15(ptr) Variable Input
|
||||
17: TypeInt 32 1
|
||||
18: 17(int) Constant 0
|
||||
22: TypeVector 7(float) 4
|
||||
@ -48,25 +50,25 @@ Linked fragment stage:
|
||||
24: 23(int) Constant 2
|
||||
25: TypeArray 22(fvec4) 24
|
||||
26: TypePointer Output 25
|
||||
27(p): 26(ptr) Variable Output
|
||||
27(p): 26(ptr) Variable Output
|
||||
28: 17(int) Constant 1
|
||||
29: TypePointer Input 22(fvec4)
|
||||
30(pos): 29(ptr) Variable Input
|
||||
30(pos): 29(ptr) Variable Input
|
||||
32: TypePointer Input 7(float)
|
||||
36: TypePointer Output 22(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 8(fvec3) Load 12(color)
|
||||
13: 8(fvec3) Load 12(color)
|
||||
19: 11(ptr) AccessChain 16(s) 18
|
||||
20: 8(fvec3) Load 19
|
||||
20: 8(fvec3) Load 19
|
||||
21: 8(fvec3) FAdd 13 20
|
||||
Store 10(c) 21
|
||||
31: 22(fvec4) Load 30(pos)
|
||||
Store 10(c) 21
|
||||
31: 22(fvec4) Load 30(pos)
|
||||
33: 32(ptr) AccessChain 16(s) 28
|
||||
34: 7(float) Load 33
|
||||
34: 7(float) Load 33
|
||||
35: 22(fvec4) VectorTimesScalar 31 34
|
||||
37: 36(ptr) AccessChain 27(p) 28
|
||||
Store 37 35
|
||||
Store 37 35
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
136
Test/baseResults/spv.300layoutp.vert.out
Normal file → Executable file
136
Test/baseResults/spv.300layoutp.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 112
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 10 "pos"
|
||||
Name 12 "p"
|
||||
@ -41,64 +42,47 @@ Linked vertex stage:
|
||||
Name 80 "s"
|
||||
Name 110 "gl_VertexID"
|
||||
Name 111 "gl_InstanceID"
|
||||
Decorate 10(pos) PrecisionHigh
|
||||
Decorate 10(pos) Smooth
|
||||
Decorate 12(p) PrecisionHigh
|
||||
Decorate 10(pos) Smooth
|
||||
Decorate 12(p) Location 3
|
||||
MemberDecorate 18(Transform) 0 RowMajor
|
||||
MemberDecorate 18(Transform) 0 PrecisionHigh
|
||||
MemberDecorate 18(Transform) 1 ColMajor
|
||||
MemberDecorate 18(Transform) 1 PrecisionHigh
|
||||
MemberDecorate 18(Transform) 2 RowMajor
|
||||
MemberDecorate 18(Transform) 2 PrecisionHigh
|
||||
MemberDecorate 18(Transform) 3 PrecisionHigh
|
||||
Decorate 18(Transform) GLSLStd140
|
||||
Decorate 18(Transform) Block
|
||||
MemberDecorate 34(T3) 0 ColMajor
|
||||
MemberDecorate 34(T3) 0 PrecisionHigh
|
||||
MemberDecorate 34(T3) 1 RowMajor
|
||||
MemberDecorate 34(T3) 1 PrecisionHigh
|
||||
MemberDecorate 34(T3) 2 ColMajor
|
||||
MemberDecorate 34(T3) 2 PrecisionHigh
|
||||
MemberDecorate 34(T3) 3 PrecisionHigh
|
||||
Decorate 34(T3) GLSLShared
|
||||
Decorate 34(T3) Block
|
||||
MemberDecorate 44(T2) 1 RowMajor
|
||||
MemberDecorate 44(T2) 1 PrecisionHigh
|
||||
Decorate 44(T2) GLSLShared
|
||||
Decorate 44(T2) Block
|
||||
Decorate 52(color) PrecisionHigh
|
||||
Decorate 52(color) Smooth
|
||||
Decorate 54(c) PrecisionHigh
|
||||
MemberDecorate 18(Transform) 0 RowMajor
|
||||
MemberDecorate 18(Transform) 0 Offset 0
|
||||
MemberDecorate 18(Transform) 1 ColMajor
|
||||
MemberDecorate 18(Transform) 1 Offset 64
|
||||
MemberDecorate 18(Transform) 2 RowMajor
|
||||
MemberDecorate 18(Transform) 2 Offset 128
|
||||
MemberDecorate 18(Transform) 3 Offset 176
|
||||
Decorate 18(Transform) Block
|
||||
MemberDecorate 34(T3) 0 ColMajor
|
||||
MemberDecorate 34(T3) 1 RowMajor
|
||||
MemberDecorate 34(T3) 2 ColMajor
|
||||
Decorate 34(T3) GLSLShared
|
||||
Decorate 34(T3) Block
|
||||
MemberDecorate 44(T2) 1 RowMajor
|
||||
Decorate 44(T2) GLSLShared
|
||||
Decorate 44(T2) Block
|
||||
Decorate 52(color) Smooth
|
||||
Decorate 54(c) Location 7
|
||||
Decorate 62(iout) PrecisionHigh
|
||||
Decorate 62(iout) Flat
|
||||
Decorate 68(uiuin) PrecisionHigh
|
||||
Decorate 74(aiv2) PrecisionHigh
|
||||
Decorate 62(iout) Flat
|
||||
Decorate 74(aiv2) Location 9
|
||||
MemberDecorate 78(S) 0 PrecisionHigh
|
||||
MemberDecorate 78(S) 1 PrecisionHigh
|
||||
Decorate 110(gl_VertexID) PrecisionHigh
|
||||
Decorate 110(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 110(gl_VertexID) NoStaticUse
|
||||
Decorate 111(gl_InstanceID) PrecisionHigh
|
||||
Decorate 110(gl_VertexID) NoStaticUse
|
||||
Decorate 111(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 111(gl_InstanceID) NoStaticUse
|
||||
Decorate 111(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Output 8(fvec4)
|
||||
10(pos): 9(ptr) Variable Output
|
||||
10(pos): 9(ptr) Variable Output
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(p): 11(ptr) Variable Input
|
||||
12(p): 11(ptr) Variable Input
|
||||
14: TypeMatrix 8(fvec4) 4
|
||||
15: TypeVector 7(float) 3
|
||||
16: TypeMatrix 15(fvec3) 3
|
||||
17: TypeInt 32 1
|
||||
18(Transform): TypeStruct 14 14 16 17(int)
|
||||
19: TypePointer Uniform 18(Transform)
|
||||
20(tblock): 19(ptr) Variable Uniform
|
||||
20(tblock): 19(ptr) Variable Uniform
|
||||
21: 17(int) Constant 0
|
||||
22: TypePointer Uniform 14
|
||||
25: 17(int) Constant 1
|
||||
@ -109,29 +93,29 @@ Linked vertex stage:
|
||||
33: TypeArray 31(ivec3) 32
|
||||
34(T3): TypeStruct 14 14 29 33
|
||||
35: TypePointer Uniform 34(T3)
|
||||
36: 35(ptr) Variable Uniform
|
||||
36: 35(ptr) Variable Uniform
|
||||
43: TypeBool
|
||||
44(T2): TypeStruct 43(bool) 14
|
||||
45: TypePointer Uniform 44(T2)
|
||||
46: 45(ptr) Variable Uniform
|
||||
46: 45(ptr) Variable Uniform
|
||||
51: TypePointer Output 15(fvec3)
|
||||
52(color): 51(ptr) Variable Output
|
||||
52(color): 51(ptr) Variable Output
|
||||
53: TypePointer Input 15(fvec3)
|
||||
54(c): 53(ptr) Variable Input
|
||||
54(c): 53(ptr) Variable Input
|
||||
56: 17(int) Constant 2
|
||||
57: TypePointer Uniform 16
|
||||
61: TypePointer Output 17(int)
|
||||
62(iout): 61(ptr) Variable Output
|
||||
62(iout): 61(ptr) Variable Output
|
||||
63: 17(int) Constant 3
|
||||
64: TypePointer Uniform 17(int)
|
||||
67: TypePointer UniformConstant 30(int)
|
||||
68(uiuin): 67(ptr) Variable UniformConstant
|
||||
68(uiuin): 67(ptr) Variable UniformConstant
|
||||
72: TypeVector 17(int) 2
|
||||
73: TypePointer Input 72(ivec2)
|
||||
74(aiv2): 73(ptr) Variable Input
|
||||
74(aiv2): 73(ptr) Variable Input
|
||||
78(S): TypeStruct 15(fvec3) 7(float)
|
||||
79: TypePointer Output 78(S)
|
||||
80(s): 79(ptr) Variable Output
|
||||
80(s): 79(ptr) Variable Output
|
||||
85: TypePointer Output 7(float)
|
||||
87: TypePointer Uniform 15(fvec3)
|
||||
90: 7(float) Constant 1065353216
|
||||
@ -141,65 +125,65 @@ Linked vertex stage:
|
||||
98: 30(int) Constant 5
|
||||
99: 31(ivec3) ConstantComposite 98 98 98
|
||||
109: TypePointer Input 17(int)
|
||||
110(gl_VertexID): 109(ptr) Variable Input
|
||||
111(gl_InstanceID): 109(ptr) Variable Input
|
||||
110(gl_VertexID): 109(ptr) Variable Input
|
||||
111(gl_InstanceID): 109(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 8(fvec4) Load 12(p)
|
||||
13: 8(fvec4) Load 12(p)
|
||||
23: 22(ptr) AccessChain 20(tblock) 21
|
||||
24: 14 Load 23
|
||||
24: 14 Load 23
|
||||
26: 22(ptr) AccessChain 20(tblock) 25
|
||||
27: 14 Load 26
|
||||
27: 14 Load 26
|
||||
28: 14 MatrixTimesMatrix 24 27
|
||||
37: 22(ptr) AccessChain 36 25
|
||||
38: 14 Load 37
|
||||
38: 14 Load 37
|
||||
39: 14 MatrixTimesMatrix 28 38
|
||||
40: 22(ptr) AccessChain 36 21
|
||||
41: 14 Load 40
|
||||
41: 14 Load 40
|
||||
42: 14 MatrixTimesMatrix 39 41
|
||||
47: 22(ptr) AccessChain 46 25
|
||||
48: 14 Load 47
|
||||
48: 14 Load 47
|
||||
49: 14 MatrixTimesMatrix 42 48
|
||||
50: 8(fvec4) VectorTimesMatrix 13 49
|
||||
Store 10(pos) 50
|
||||
55: 15(fvec3) Load 54(c)
|
||||
Store 10(pos) 50
|
||||
55: 15(fvec3) Load 54(c)
|
||||
58: 57(ptr) AccessChain 20(tblock) 56
|
||||
59: 16 Load 58
|
||||
59: 16 Load 58
|
||||
60: 15(fvec3) VectorTimesMatrix 55 59
|
||||
Store 52(color) 60
|
||||
Store 52(color) 60
|
||||
65: 64(ptr) AccessChain 20(tblock) 63
|
||||
66: 17(int) Load 65
|
||||
69: 30(int) Load 68(uiuin)
|
||||
66: 17(int) Load 65
|
||||
69: 30(int) Load 68(uiuin)
|
||||
70: 17(int) Bitcast 69
|
||||
71: 17(int) IAdd 66 70
|
||||
75: 72(ivec2) Load 74(aiv2)
|
||||
75: 72(ivec2) Load 74(aiv2)
|
||||
76: 17(int) CompositeExtract 75 1
|
||||
77: 17(int) IAdd 71 76
|
||||
Store 62(iout) 77
|
||||
81: 15(fvec3) Load 54(c)
|
||||
Store 62(iout) 77
|
||||
81: 15(fvec3) Load 54(c)
|
||||
82: 51(ptr) AccessChain 80(s) 21
|
||||
Store 82 81
|
||||
83: 8(fvec4) Load 12(p)
|
||||
Store 82 81
|
||||
83: 8(fvec4) Load 12(p)
|
||||
84: 7(float) CompositeExtract 83 0
|
||||
86: 85(ptr) AccessChain 80(s) 25
|
||||
Store 86 84
|
||||
Store 86 84
|
||||
88: 87(ptr) AccessChain 36 56 25
|
||||
89: 15(fvec3) Load 88
|
||||
89: 15(fvec3) Load 88
|
||||
93: 92(bvec3) FOrdNotEqual 89 91
|
||||
94: 43(bool) Any 93
|
||||
96: 95(ptr) AccessChain 36 63 56
|
||||
97: 31(ivec3) Load 96
|
||||
97: 31(ivec3) Load 96
|
||||
100: 92(bvec3) INotEqual 97 99
|
||||
101: 43(bool) Any 100
|
||||
102: 43(bool) LogicalOr 94 101
|
||||
SelectionMerge 104 None
|
||||
BranchConditional 102 103 104
|
||||
BranchConditional 102 103 104
|
||||
103: Label
|
||||
105: 51(ptr) AccessChain 80(s) 21
|
||||
106: 15(fvec3) Load 105
|
||||
106: 15(fvec3) Load 105
|
||||
107: 15(fvec3) CompositeConstruct 90 90 90
|
||||
108: 15(fvec3) FAdd 106 107
|
||||
Store 105 108
|
||||
Store 105 108
|
||||
Branch 104
|
||||
104: Label
|
||||
Branch 6
|
||||
|
||||
25
Test/baseResults/spv.330.geom.out
Normal file → Executable file
25
Test/baseResults/spv.330.geom.out
Normal file → Executable file
@ -9,12 +9,13 @@ Linked geometry stage:
|
||||
|
||||
Source GLSL 330
|
||||
SourceExtension "GL_ARB_separate_shader_objects"
|
||||
Capability Geometry
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Geometry 4
|
||||
ExecutionMode 4 InputTriangles
|
||||
EntryPoint Geometry 4 "main"
|
||||
ExecutionMode 4 InputTriangles
|
||||
ExecutionMode 4 Invocations 0
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputTriangleStrip
|
||||
ExecutionMode 4 OutputVertices 3
|
||||
Name 4 "main"
|
||||
Name 12 "gl_PerVertex"
|
||||
@ -27,14 +28,14 @@ Linked geometry stage:
|
||||
Name 21 "gl_in"
|
||||
MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance
|
||||
Decorate 12(gl_PerVertex) Block
|
||||
Decorate 12(gl_PerVertex) Block
|
||||
Decorate 12(gl_PerVertex) Stream 0
|
||||
Decorate 14 Stream 0
|
||||
MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance
|
||||
Decorate 17(gl_PerVertex) Block
|
||||
Decorate 17(gl_PerVertex) Block
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypeInt 32 0
|
||||
@ -42,14 +43,14 @@ Linked geometry stage:
|
||||
11: TypeArray 7(float) 10
|
||||
12(gl_PerVertex): TypeStruct 8(fvec4) 11
|
||||
13: TypePointer Output 12(gl_PerVertex)
|
||||
14: 13(ptr) Variable Output
|
||||
14: 13(ptr) Variable Output
|
||||
15: TypeInt 32 1
|
||||
16: 15(int) Constant 0
|
||||
17(gl_PerVertex): TypeStruct 8(fvec4) 11
|
||||
18: 9(int) Constant 3
|
||||
19: TypeArray 17(gl_PerVertex) 18
|
||||
20: TypePointer Input 19
|
||||
21(gl_in): 20(ptr) Variable Input
|
||||
21(gl_in): 20(ptr) Variable Input
|
||||
22: 15(int) Constant 1
|
||||
23: TypePointer Input 8(fvec4)
|
||||
26: TypePointer Output 8(fvec4)
|
||||
@ -58,13 +59,13 @@ Linked geometry stage:
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
24: 23(ptr) AccessChain 21(gl_in) 22 16
|
||||
25: 8(fvec4) Load 24
|
||||
25: 8(fvec4) Load 24
|
||||
27: 26(ptr) AccessChain 14 16
|
||||
Store 27 25
|
||||
Store 27 25
|
||||
29: 28(ptr) AccessChain 21(gl_in) 22 22 16
|
||||
30: 7(float) Load 29
|
||||
30: 7(float) Load 29
|
||||
32: 31(ptr) AccessChain 14 22 16
|
||||
Store 32 30
|
||||
Store 32 30
|
||||
EmitVertex
|
||||
EndPrimitive
|
||||
Branch 6
|
||||
|
||||
311
Test/baseResults/spv.400.tesc.out
Normal file → Executable file
311
Test/baseResults/spv.400.tesc.out
Normal file → Executable file
@ -7,170 +7,173 @@ Linked tessellation control stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 89
|
||||
// Id's are bound by 91
|
||||
|
||||
Source GLSL 400
|
||||
SourceExtension "GL_ARB_separate_shader_objects"
|
||||
Capability Tessellation
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationControl 4
|
||||
EntryPoint TessellationControl 4 "main"
|
||||
ExecutionMode 4 OutputVertices 4
|
||||
Name 4 "main"
|
||||
Name 9 "a"
|
||||
Name 14 "p"
|
||||
Name 18 "gl_PerVertex"
|
||||
MemberName 18(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 18(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 18(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 22 "gl_in"
|
||||
Name 29 "ps"
|
||||
Name 33 "cd"
|
||||
Name 37 "pvi"
|
||||
Name 39 "gl_PatchVerticesIn"
|
||||
Name 41 "pid"
|
||||
Name 42 "gl_PrimitiveID"
|
||||
Name 44 "iid"
|
||||
Name 45 "gl_InvocationID"
|
||||
Name 47 "gl_PerVertex"
|
||||
MemberName 47(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 47(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 47(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 51 "gl_out"
|
||||
Name 62 "gl_TessLevelOuter"
|
||||
Name 69 "gl_TessLevelInner"
|
||||
Name 74 "outa"
|
||||
Name 75 "patchOut"
|
||||
Name 79 "inb"
|
||||
Name 80 "ind"
|
||||
Name 83 "ivla"
|
||||
Name 84 "ivlb"
|
||||
Name 87 "ovla"
|
||||
Name 88 "ovlb"
|
||||
Decorate 18(gl_PerVertex) Block
|
||||
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||
Decorate 45(gl_InvocationID) BuiltIn InvocationId
|
||||
MemberDecorate 47(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 47(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 47(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 47(gl_PerVertex) Block
|
||||
Decorate 62(gl_TessLevelOuter) Patch
|
||||
Decorate 62(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||
Decorate 69(gl_TessLevelInner) Patch
|
||||
Decorate 69(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||
Decorate 74(outa) NoStaticUse
|
||||
Decorate 75(patchOut) Patch
|
||||
Decorate 75(patchOut) NoStaticUse
|
||||
Decorate 79(inb) NoStaticUse
|
||||
Decorate 80(ind) NoStaticUse
|
||||
Decorate 83(ivla) Location 3
|
||||
Decorate 83(ivla) NoStaticUse
|
||||
Decorate 84(ivlb) Location 4
|
||||
Decorate 84(ivlb) NoStaticUse
|
||||
Decorate 87(ovla) Location 3
|
||||
Decorate 87(ovla) NoStaticUse
|
||||
Decorate 88(ovlb) Location 4
|
||||
Decorate 88(ovlb) NoStaticUse
|
||||
Name 13 "a"
|
||||
Name 18 "p"
|
||||
Name 20 "gl_PerVertex"
|
||||
MemberName 20(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 20(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 24 "gl_in"
|
||||
Name 31 "ps"
|
||||
Name 35 "cd"
|
||||
Name 39 "pvi"
|
||||
Name 41 "gl_PatchVerticesIn"
|
||||
Name 43 "pid"
|
||||
Name 44 "gl_PrimitiveID"
|
||||
Name 46 "iid"
|
||||
Name 47 "gl_InvocationID"
|
||||
Name 49 "gl_PerVertex"
|
||||
MemberName 49(gl_PerVertex) 0 "gl_Position"
|
||||
MemberName 49(gl_PerVertex) 1 "gl_PointSize"
|
||||
MemberName 49(gl_PerVertex) 2 "gl_ClipDistance"
|
||||
Name 53 "gl_out"
|
||||
Name 64 "gl_TessLevelOuter"
|
||||
Name 71 "gl_TessLevelInner"
|
||||
Name 76 "outa"
|
||||
Name 77 "patchOut"
|
||||
Name 81 "inb"
|
||||
Name 82 "ind"
|
||||
Name 85 "ivla"
|
||||
Name 86 "ivlb"
|
||||
Name 89 "ovla"
|
||||
Name 90 "ovlb"
|
||||
Decorate 20(gl_PerVertex) Block
|
||||
Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||
Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||
Decorate 47(gl_InvocationID) BuiltIn InvocationId
|
||||
MemberDecorate 49(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 49(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 49(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 49(gl_PerVertex) Block
|
||||
Decorate 64(gl_TessLevelOuter) Patch
|
||||
Decorate 64(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||
Decorate 71(gl_TessLevelInner) Patch
|
||||
Decorate 71(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||
Decorate 76(outa) NoStaticUse
|
||||
Decorate 77(patchOut) Patch
|
||||
Decorate 77(patchOut) NoStaticUse
|
||||
Decorate 81(inb) NoStaticUse
|
||||
Decorate 82(ind) NoStaticUse
|
||||
Decorate 85(ivla) Location 3
|
||||
Decorate 85(ivla) NoStaticUse
|
||||
Decorate 86(ivlb) Location 4
|
||||
Decorate 86(ivlb) NoStaticUse
|
||||
Decorate 89(ovla) Location 3
|
||||
Decorate 89(ovla) NoStaticUse
|
||||
Decorate 90(ovlb) Location 4
|
||||
Decorate 90(ovlb) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 5392
|
||||
11: TypeFloat 32
|
||||
12: TypeVector 11(float) 4
|
||||
13: TypePointer Function 12(fvec4)
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 1
|
||||
17: TypeArray 11(float) 16
|
||||
18(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
|
||||
19: 15(int) Constant 32
|
||||
20: TypeArray 18(gl_PerVertex) 19
|
||||
21: TypePointer Input 20
|
||||
22(gl_in): 21(ptr) Variable Input
|
||||
23: 7(int) Constant 1
|
||||
24: 7(int) Constant 0
|
||||
25: TypePointer Input 12(fvec4)
|
||||
28: TypePointer Function 11(float)
|
||||
30: TypePointer Input 11(float)
|
||||
34: 7(int) Constant 2
|
||||
38: TypePointer Input 7(int)
|
||||
39(gl_PatchVerticesIn): 38(ptr) Variable Input
|
||||
42(gl_PrimitiveID): 38(ptr) Variable Input
|
||||
45(gl_InvocationID): 38(ptr) Variable Input
|
||||
47(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
|
||||
48: 15(int) Constant 4
|
||||
49: TypeArray 47(gl_PerVertex) 48
|
||||
50: TypePointer Output 49
|
||||
51(gl_out): 50(ptr) Variable Output
|
||||
53: TypePointer Output 12(fvec4)
|
||||
56: TypePointer Output 11(float)
|
||||
60: TypeArray 11(float) 48
|
||||
61: TypePointer Output 60
|
||||
62(gl_TessLevelOuter): 61(ptr) Variable Output
|
||||
63: 7(int) Constant 3
|
||||
64: 11(float) Constant 1078774989
|
||||
66: 15(int) Constant 2
|
||||
67: TypeArray 11(float) 66
|
||||
68: TypePointer Output 67
|
||||
69(gl_TessLevelInner): 68(ptr) Variable Output
|
||||
70: 11(float) Constant 1067869798
|
||||
72: TypeArray 7(int) 48
|
||||
73: TypePointer PrivateGlobal 72
|
||||
74(outa): 73(ptr) Variable PrivateGlobal
|
||||
75(patchOut): 53(ptr) Variable Output
|
||||
76: TypeVector 11(float) 2
|
||||
77: TypeArray 76(fvec2) 19
|
||||
78: TypePointer Input 77
|
||||
79(inb): 78(ptr) Variable Input
|
||||
80(ind): 78(ptr) Variable Input
|
||||
81: TypeArray 12(fvec4) 19
|
||||
82: TypePointer Input 81
|
||||
83(ivla): 82(ptr) Variable Input
|
||||
84(ivlb): 82(ptr) Variable Input
|
||||
85: TypeArray 12(fvec4) 48
|
||||
86: TypePointer Output 85
|
||||
87(ovla): 86(ptr) Variable Output
|
||||
88(ovlb): 86(ptr) Variable Output
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 0
|
||||
8: 7(int) Constant 1
|
||||
9: 7(int) Constant 1023
|
||||
10: 7(int) Constant 0
|
||||
11: TypeInt 32 1
|
||||
12: TypePointer Function 11(int)
|
||||
14: 11(int) Constant 5392
|
||||
15: TypeFloat 32
|
||||
16: TypeVector 15(float) 4
|
||||
17: TypePointer Function 16(fvec4)
|
||||
19: TypeArray 15(float) 8
|
||||
20(gl_PerVertex): TypeStruct 16(fvec4) 15(float) 19
|
||||
21: 7(int) Constant 32
|
||||
22: TypeArray 20(gl_PerVertex) 21
|
||||
23: TypePointer Input 22
|
||||
24(gl_in): 23(ptr) Variable Input
|
||||
25: 11(int) Constant 1
|
||||
26: 11(int) Constant 0
|
||||
27: TypePointer Input 16(fvec4)
|
||||
30: TypePointer Function 15(float)
|
||||
32: TypePointer Input 15(float)
|
||||
36: 11(int) Constant 2
|
||||
40: TypePointer Input 11(int)
|
||||
41(gl_PatchVerticesIn): 40(ptr) Variable Input
|
||||
44(gl_PrimitiveID): 40(ptr) Variable Input
|
||||
47(gl_InvocationID): 40(ptr) Variable Input
|
||||
49(gl_PerVertex): TypeStruct 16(fvec4) 15(float) 19
|
||||
50: 7(int) Constant 4
|
||||
51: TypeArray 49(gl_PerVertex) 50
|
||||
52: TypePointer Output 51
|
||||
53(gl_out): 52(ptr) Variable Output
|
||||
55: TypePointer Output 16(fvec4)
|
||||
58: TypePointer Output 15(float)
|
||||
62: TypeArray 15(float) 50
|
||||
63: TypePointer Output 62
|
||||
64(gl_TessLevelOuter): 63(ptr) Variable Output
|
||||
65: 11(int) Constant 3
|
||||
66: 15(float) Constant 1078774989
|
||||
68: 7(int) Constant 2
|
||||
69: TypeArray 15(float) 68
|
||||
70: TypePointer Output 69
|
||||
71(gl_TessLevelInner): 70(ptr) Variable Output
|
||||
72: 15(float) Constant 1067869798
|
||||
74: TypeArray 11(int) 50
|
||||
75: TypePointer PrivateGlobal 74
|
||||
76(outa): 75(ptr) Variable PrivateGlobal
|
||||
77(patchOut): 55(ptr) Variable Output
|
||||
78: TypeVector 15(float) 2
|
||||
79: TypeArray 78(fvec2) 21
|
||||
80: TypePointer Input 79
|
||||
81(inb): 80(ptr) Variable Input
|
||||
82(ind): 80(ptr) Variable Input
|
||||
83: TypeArray 16(fvec4) 21
|
||||
84: TypePointer Input 83
|
||||
85(ivla): 84(ptr) Variable Input
|
||||
86(ivlb): 84(ptr) Variable Input
|
||||
87: TypeArray 16(fvec4) 50
|
||||
88: TypePointer Output 87
|
||||
89(ovla): 88(ptr) Variable Output
|
||||
90(ovlb): 88(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(a): 8(ptr) Variable Function
|
||||
14(p): 13(ptr) Variable Function
|
||||
29(ps): 28(ptr) Variable Function
|
||||
33(cd): 28(ptr) Variable Function
|
||||
37(pvi): 8(ptr) Variable Function
|
||||
41(pid): 8(ptr) Variable Function
|
||||
44(iid): 8(ptr) Variable Function
|
||||
MemoryBarrier Device Relaxed SequentiallyConsistent Acquire Release UniformMemory SubgroupMemory WorkgroupLocalMemory WorkgroupGlobalMemory AtomicCounterMemory ImageMemory
|
||||
ControlBarrier Device
|
||||
Store 9(a) 10
|
||||
26: 25(ptr) AccessChain 22(gl_in) 23 24
|
||||
27: 12(fvec4) Load 26
|
||||
Store 14(p) 27
|
||||
31: 30(ptr) AccessChain 22(gl_in) 23 23
|
||||
32: 11(float) Load 31
|
||||
Store 29(ps) 32
|
||||
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
|
||||
36: 11(float) Load 35
|
||||
Store 33(cd) 36
|
||||
40: 7(int) Load 39(gl_PatchVerticesIn)
|
||||
Store 37(pvi) 40
|
||||
43: 7(int) Load 42(gl_PrimitiveID)
|
||||
Store 41(pid) 43
|
||||
46: 7(int) Load 45(gl_InvocationID)
|
||||
Store 44(iid) 46
|
||||
52: 12(fvec4) Load 14(p)
|
||||
54: 53(ptr) AccessChain 51(gl_out) 23 24
|
||||
Store 54 52
|
||||
55: 11(float) Load 29(ps)
|
||||
57: 56(ptr) AccessChain 51(gl_out) 23 23
|
||||
Store 57 55
|
||||
58: 11(float) Load 33(cd)
|
||||
59: 56(ptr) AccessChain 51(gl_out) 23 34 23
|
||||
Store 59 58
|
||||
65: 56(ptr) AccessChain 62(gl_TessLevelOuter) 63
|
||||
Store 65 64
|
||||
71: 56(ptr) AccessChain 69(gl_TessLevelInner) 23
|
||||
Store 71 70
|
||||
13(a): 12(ptr) Variable Function
|
||||
18(p): 17(ptr) Variable Function
|
||||
31(ps): 30(ptr) Variable Function
|
||||
35(cd): 30(ptr) Variable Function
|
||||
39(pvi): 12(ptr) Variable Function
|
||||
43(pid): 12(ptr) Variable Function
|
||||
46(iid): 12(ptr) Variable Function
|
||||
MemoryBarrier 8 9
|
||||
ControlBarrier 8 8 10
|
||||
Store 13(a) 14
|
||||
28: 27(ptr) AccessChain 24(gl_in) 25 26
|
||||
29: 16(fvec4) Load 28
|
||||
Store 18(p) 29
|
||||
33: 32(ptr) AccessChain 24(gl_in) 25 25
|
||||
34: 15(float) Load 33
|
||||
Store 31(ps) 34
|
||||
37: 32(ptr) AccessChain 24(gl_in) 25 36 36
|
||||
38: 15(float) Load 37
|
||||
Store 35(cd) 38
|
||||
42: 11(int) Load 41(gl_PatchVerticesIn)
|
||||
Store 39(pvi) 42
|
||||
45: 11(int) Load 44(gl_PrimitiveID)
|
||||
Store 43(pid) 45
|
||||
48: 11(int) Load 47(gl_InvocationID)
|
||||
Store 46(iid) 48
|
||||
54: 16(fvec4) Load 18(p)
|
||||
56: 55(ptr) AccessChain 53(gl_out) 25 26
|
||||
Store 56 54
|
||||
57: 15(float) Load 31(ps)
|
||||
59: 58(ptr) AccessChain 53(gl_out) 25 25
|
||||
Store 59 57
|
||||
60: 15(float) Load 35(cd)
|
||||
61: 58(ptr) AccessChain 53(gl_out) 25 36 25
|
||||
Store 61 60
|
||||
67: 58(ptr) AccessChain 64(gl_TessLevelOuter) 65
|
||||
Store 67 66
|
||||
73: 58(ptr) AccessChain 71(gl_TessLevelInner) 25
|
||||
Store 73 72
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
131
Test/baseResults/spv.400.tese.out
Normal file → Executable file
131
Test/baseResults/spv.400.tese.out
Normal file → Executable file
@ -11,10 +11,11 @@ Linked tessellation evaluation stage:
|
||||
|
||||
Source GLSL 400
|
||||
SourceExtension "GL_ARB_separate_shader_objects"
|
||||
Capability Tessellation
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationEvaluation 4
|
||||
ExecutionMode 4 InputTriangles
|
||||
EntryPoint TessellationEvaluation 4 "main"
|
||||
ExecutionMode 4 InputTriangles
|
||||
Name 4 "main"
|
||||
Name 9 "a"
|
||||
Name 14 "p"
|
||||
@ -52,34 +53,34 @@ Linked tessellation evaluation stage:
|
||||
Name 94 "ivla"
|
||||
Name 95 "ivlb"
|
||||
Name 98 "ovla"
|
||||
Decorate 18(gl_PerVertex) Block
|
||||
Decorate 18(gl_PerVertex) Block
|
||||
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||
Decorate 48(gl_TessCoord) BuiltIn TessCoord
|
||||
Decorate 54(gl_TessLevelOuter) Patch
|
||||
Decorate 54(gl_TessLevelOuter) Patch
|
||||
Decorate 54(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||
Decorate 62(gl_TessLevelInner) Patch
|
||||
Decorate 62(gl_TessLevelInner) Patch
|
||||
Decorate 62(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||
MemberDecorate 67(gl_PerVertex) 0 BuiltIn Position
|
||||
MemberDecorate 67(gl_PerVertex) 1 BuiltIn PointSize
|
||||
MemberDecorate 67(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||
Decorate 67(gl_PerVertex) Block
|
||||
Decorate 78(patchIn) Patch
|
||||
Decorate 78(patchIn) NoStaticUse
|
||||
Decorate 82(inb) NoStaticUse
|
||||
Decorate 83(ind) NoStaticUse
|
||||
Decorate 84(testblb) Block
|
||||
Decorate 87(blb) NoStaticUse
|
||||
Decorate 88(testbld) Block
|
||||
Decorate 91(bld) NoStaticUse
|
||||
Decorate 67(gl_PerVertex) Block
|
||||
Decorate 78(patchIn) Patch
|
||||
Decorate 78(patchIn) NoStaticUse
|
||||
Decorate 82(inb) NoStaticUse
|
||||
Decorate 83(ind) NoStaticUse
|
||||
Decorate 84(testblb) Block
|
||||
Decorate 87(blb) NoStaticUse
|
||||
Decorate 88(testbld) Block
|
||||
Decorate 91(bld) NoStaticUse
|
||||
Decorate 94(ivla) Location 23
|
||||
Decorate 94(ivla) NoStaticUse
|
||||
Decorate 94(ivla) NoStaticUse
|
||||
Decorate 95(ivlb) Location 24
|
||||
Decorate 95(ivlb) NoStaticUse
|
||||
Decorate 95(ivlb) NoStaticUse
|
||||
Decorate 98(ovla) Location 23
|
||||
Decorate 98(ovla) NoStaticUse
|
||||
Decorate 98(ovla) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 1512
|
||||
@ -93,7 +94,7 @@ Linked tessellation evaluation stage:
|
||||
19: 15(int) Constant 32
|
||||
20: TypeArray 18(gl_PerVertex) 19
|
||||
21: TypePointer Input 20
|
||||
22(gl_in): 21(ptr) Variable Input
|
||||
22(gl_in): 21(ptr) Variable Input
|
||||
23: 7(int) Constant 1
|
||||
24: 7(int) Constant 0
|
||||
25: TypePointer Input 12(fvec4)
|
||||
@ -101,91 +102,91 @@ Linked tessellation evaluation stage:
|
||||
30: TypePointer Input 11(float)
|
||||
34: 7(int) Constant 2
|
||||
38: TypePointer Input 7(int)
|
||||
39(gl_PatchVerticesIn): 38(ptr) Variable Input
|
||||
42(gl_PrimitiveID): 38(ptr) Variable Input
|
||||
39(gl_PatchVerticesIn): 38(ptr) Variable Input
|
||||
42(gl_PrimitiveID): 38(ptr) Variable Input
|
||||
44: TypeVector 11(float) 3
|
||||
45: TypePointer Function 44(fvec3)
|
||||
47: TypePointer Input 44(fvec3)
|
||||
48(gl_TessCoord): 47(ptr) Variable Input
|
||||
48(gl_TessCoord): 47(ptr) Variable Input
|
||||
51: 15(int) Constant 4
|
||||
52: TypeArray 11(float) 51
|
||||
53: TypePointer Input 52
|
||||
54(gl_TessLevelOuter): 53(ptr) Variable Input
|
||||
54(gl_TessLevelOuter): 53(ptr) Variable Input
|
||||
55: 7(int) Constant 3
|
||||
59: 15(int) Constant 2
|
||||
60: TypeArray 11(float) 59
|
||||
61: TypePointer Input 60
|
||||
62(gl_TessLevelInner): 61(ptr) Variable Input
|
||||
62(gl_TessLevelInner): 61(ptr) Variable Input
|
||||
65: 15(int) Constant 3
|
||||
66: TypeArray 11(float) 65
|
||||
67(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 66
|
||||
68: TypePointer Output 67(gl_PerVertex)
|
||||
69: 68(ptr) Variable Output
|
||||
69: 68(ptr) Variable Output
|
||||
71: TypePointer Output 12(fvec4)
|
||||
74: TypePointer Output 11(float)
|
||||
78(patchIn): 25(ptr) Variable Input
|
||||
78(patchIn): 25(ptr) Variable Input
|
||||
79: TypeVector 11(float) 2
|
||||
80: TypeArray 79(fvec2) 19
|
||||
81: TypePointer Input 80
|
||||
82(inb): 81(ptr) Variable Input
|
||||
83(ind): 81(ptr) Variable Input
|
||||
82(inb): 81(ptr) Variable Input
|
||||
83(ind): 81(ptr) Variable Input
|
||||
84(testblb): TypeStruct 7(int)
|
||||
85: TypeArray 84(testblb) 19
|
||||
86: TypePointer Input 85
|
||||
87(blb): 86(ptr) Variable Input
|
||||
87(blb): 86(ptr) Variable Input
|
||||
88(testbld): TypeStruct 7(int)
|
||||
89: TypeArray 88(testbld) 19
|
||||
90: TypePointer Input 89
|
||||
91(bld): 90(ptr) Variable Input
|
||||
91(bld): 90(ptr) Variable Input
|
||||
92: TypeArray 12(fvec4) 19
|
||||
93: TypePointer Input 92
|
||||
94(ivla): 93(ptr) Variable Input
|
||||
95(ivlb): 93(ptr) Variable Input
|
||||
94(ivla): 93(ptr) Variable Input
|
||||
95(ivlb): 93(ptr) Variable Input
|
||||
96: TypeArray 12(fvec4) 59
|
||||
97: TypePointer Output 96
|
||||
98(ovla): 97(ptr) Variable Output
|
||||
98(ovla): 97(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(a): 8(ptr) Variable Function
|
||||
14(p): 13(ptr) Variable Function
|
||||
29(ps): 28(ptr) Variable Function
|
||||
33(cd): 28(ptr) Variable Function
|
||||
37(pvi): 8(ptr) Variable Function
|
||||
41(pid): 8(ptr) Variable Function
|
||||
46(tc): 45(ptr) Variable Function
|
||||
50(tlo): 28(ptr) Variable Function
|
||||
58(tli): 28(ptr) Variable Function
|
||||
Store 9(a) 10
|
||||
9(a): 8(ptr) Variable Function
|
||||
14(p): 13(ptr) Variable Function
|
||||
29(ps): 28(ptr) Variable Function
|
||||
33(cd): 28(ptr) Variable Function
|
||||
37(pvi): 8(ptr) Variable Function
|
||||
41(pid): 8(ptr) Variable Function
|
||||
46(tc): 45(ptr) Variable Function
|
||||
50(tlo): 28(ptr) Variable Function
|
||||
58(tli): 28(ptr) Variable Function
|
||||
Store 9(a) 10
|
||||
26: 25(ptr) AccessChain 22(gl_in) 23 24
|
||||
27: 12(fvec4) Load 26
|
||||
Store 14(p) 27
|
||||
27: 12(fvec4) Load 26
|
||||
Store 14(p) 27
|
||||
31: 30(ptr) AccessChain 22(gl_in) 23 23
|
||||
32: 11(float) Load 31
|
||||
Store 29(ps) 32
|
||||
32: 11(float) Load 31
|
||||
Store 29(ps) 32
|
||||
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
|
||||
36: 11(float) Load 35
|
||||
Store 33(cd) 36
|
||||
40: 7(int) Load 39(gl_PatchVerticesIn)
|
||||
Store 37(pvi) 40
|
||||
43: 7(int) Load 42(gl_PrimitiveID)
|
||||
Store 41(pid) 43
|
||||
49: 44(fvec3) Load 48(gl_TessCoord)
|
||||
Store 46(tc) 49
|
||||
36: 11(float) Load 35
|
||||
Store 33(cd) 36
|
||||
40: 7(int) Load 39(gl_PatchVerticesIn)
|
||||
Store 37(pvi) 40
|
||||
43: 7(int) Load 42(gl_PrimitiveID)
|
||||
Store 41(pid) 43
|
||||
49: 44(fvec3) Load 48(gl_TessCoord)
|
||||
Store 46(tc) 49
|
||||
56: 30(ptr) AccessChain 54(gl_TessLevelOuter) 55
|
||||
57: 11(float) Load 56
|
||||
Store 50(tlo) 57
|
||||
57: 11(float) Load 56
|
||||
Store 50(tlo) 57
|
||||
63: 30(ptr) AccessChain 62(gl_TessLevelInner) 23
|
||||
64: 11(float) Load 63
|
||||
Store 58(tli) 64
|
||||
70: 12(fvec4) Load 14(p)
|
||||
64: 11(float) Load 63
|
||||
Store 58(tli) 64
|
||||
70: 12(fvec4) Load 14(p)
|
||||
72: 71(ptr) AccessChain 69 24
|
||||
Store 72 70
|
||||
73: 11(float) Load 29(ps)
|
||||
Store 72 70
|
||||
73: 11(float) Load 29(ps)
|
||||
75: 74(ptr) AccessChain 69 23
|
||||
Store 75 73
|
||||
76: 11(float) Load 33(cd)
|
||||
Store 75 73
|
||||
76: 11(float) Load 33(cd)
|
||||
77: 74(ptr) AccessChain 69 34 34
|
||||
Store 77 76
|
||||
Store 77 76
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
120
Test/baseResults/spv.430.vert.out
Normal file → Executable file
120
Test/baseResults/spv.430.vert.out
Normal file → Executable file
@ -7,12 +7,13 @@ Linked vertex stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 62
|
||||
// Id's are bound by 63
|
||||
|
||||
Source GLSL 430
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 11 "gl_PerVertex"
|
||||
MemberName 11(gl_PerVertex) 0 "gl_ClipDistance"
|
||||
@ -29,49 +30,49 @@ Linked vertex stage:
|
||||
Name 49 "anonblock"
|
||||
MemberName 49(anonblock) 0 "aoeu"
|
||||
Name 51 ""
|
||||
Name 54 "sampb1"
|
||||
Name 57 "sampb2"
|
||||
Name 58 "sampb4"
|
||||
Name 60 "gl_VertexID"
|
||||
Name 61 "gl_InstanceID"
|
||||
Name 55 "sampb1"
|
||||
Name 58 "sampb2"
|
||||
Name 59 "sampb4"
|
||||
Name 61 "gl_VertexID"
|
||||
Name 62 "gl_InstanceID"
|
||||
MemberDecorate 11(gl_PerVertex) 0 BuiltIn ClipDistance
|
||||
Decorate 11(gl_PerVertex) Block
|
||||
Decorate 35(badorder3) Flat
|
||||
Decorate 11(gl_PerVertex) Block
|
||||
Decorate 35(badorder3) Flat
|
||||
Decorate 43(uv4) Location 4
|
||||
Decorate 43(uv4) NoStaticUse
|
||||
Decorate 29 NoStaticUse
|
||||
Decorate 29 NoStaticUse
|
||||
Decorate 44(badorder) NoStaticUse
|
||||
Decorate 45(badorder2) Smooth
|
||||
Decorate 45(badorder2) Invariant
|
||||
Decorate 45(badorder2) NoStaticUse
|
||||
Decorate 46(boundblock) GLSLShared
|
||||
Decorate 46(boundblock) Block
|
||||
Decorate 43(uv4) NoStaticUse
|
||||
Decorate 29 NoStaticUse
|
||||
Decorate 29 NoStaticUse
|
||||
Decorate 44(badorder) NoStaticUse
|
||||
Decorate 45(badorder2) Smooth
|
||||
Decorate 45(badorder2) Invariant
|
||||
Decorate 45(badorder2) NoStaticUse
|
||||
Decorate 46(boundblock) GLSLShared
|
||||
Decorate 46(boundblock) Block
|
||||
Decorate 48(boundInst) Binding 3
|
||||
Decorate 48(boundInst) NoStaticUse
|
||||
Decorate 49(anonblock) GLSLShared
|
||||
Decorate 49(anonblock) Block
|
||||
Decorate 48(boundInst) NoStaticUse
|
||||
Decorate 49(anonblock) GLSLShared
|
||||
Decorate 49(anonblock) Block
|
||||
Decorate 51 Binding 7
|
||||
Decorate 51 NoStaticUse
|
||||
Decorate 54(sampb1) Binding 4
|
||||
Decorate 54(sampb1) NoStaticUse
|
||||
Decorate 57(sampb2) Binding 5
|
||||
Decorate 57(sampb2) NoStaticUse
|
||||
Decorate 58(sampb4) Binding 31
|
||||
Decorate 58(sampb4) NoStaticUse
|
||||
Decorate 60(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 60(gl_VertexID) NoStaticUse
|
||||
Decorate 61(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 61(gl_InstanceID) NoStaticUse
|
||||
Decorate 51 NoStaticUse
|
||||
Decorate 55(sampb1) Binding 4
|
||||
Decorate 55(sampb1) NoStaticUse
|
||||
Decorate 58(sampb2) Binding 5
|
||||
Decorate 58(sampb2) NoStaticUse
|
||||
Decorate 59(sampb4) Binding 31
|
||||
Decorate 59(sampb4) NoStaticUse
|
||||
Decorate 61(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 61(gl_VertexID) NoStaticUse
|
||||
Decorate 62(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 62(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeInt 32 0
|
||||
9: 8(int) Constant 3
|
||||
10: TypeArray 7(float) 9
|
||||
11(gl_PerVertex): TypeStruct 10
|
||||
12: TypePointer Output 11(gl_PerVertex)
|
||||
13: 12(ptr) Variable Output
|
||||
13: 12(ptr) Variable Output
|
||||
14: TypeInt 32 1
|
||||
15: 14(int) Constant 0
|
||||
16: 14(int) Constant 2
|
||||
@ -81,53 +82,54 @@ Linked vertex stage:
|
||||
21: 8(int) Constant 10
|
||||
22: TypeArray 20(fvec4) 21
|
||||
23: TypePointer Input 22
|
||||
24(bad): 23(ptr) Variable Input
|
||||
24(bad): 23(ptr) Variable Input
|
||||
25: TypePointer Input 20(fvec4)
|
||||
29: 7(float) Constant 1082549862
|
||||
30: TypeBool
|
||||
34: TypePointer Output 20(fvec4)
|
||||
35(badorder3): 34(ptr) Variable Output
|
||||
35(badorder3): 34(ptr) Variable Output
|
||||
38: TypePointer UniformConstant 7(float)
|
||||
39(f): 38(ptr) Variable UniformConstant
|
||||
39(f): 38(ptr) Variable UniformConstant
|
||||
42: TypePointer UniformConstant 20(fvec4)
|
||||
43(uv4): 42(ptr) Variable UniformConstant
|
||||
44(badorder): 25(ptr) Variable Input
|
||||
45(badorder2): 34(ptr) Variable Output
|
||||
43(uv4): 42(ptr) Variable UniformConstant
|
||||
44(badorder): 25(ptr) Variable Input
|
||||
45(badorder2): 34(ptr) Variable Output
|
||||
46(boundblock): TypeStruct 14(int)
|
||||
47: TypePointer Uniform 46(boundblock)
|
||||
48(boundInst): 47(ptr) Variable Uniform
|
||||
48(boundInst): 47(ptr) Variable Uniform
|
||||
49(anonblock): TypeStruct 14(int)
|
||||
50: TypePointer Uniform 49(anonblock)
|
||||
51: 50(ptr) Variable Uniform
|
||||
52: TypeSampler7(float) 2D filter+texture
|
||||
53: TypePointer UniformConstant 52
|
||||
54(sampb1): 53(ptr) Variable UniformConstant
|
||||
55: TypeArray 52 21
|
||||
56: TypePointer UniformConstant 55
|
||||
57(sampb2): 56(ptr) Variable UniformConstant
|
||||
58(sampb4): 53(ptr) Variable UniformConstant
|
||||
59: TypePointer Input 14(int)
|
||||
60(gl_VertexID): 59(ptr) Variable Input
|
||||
61(gl_InstanceID): 59(ptr) Variable Input
|
||||
51: 50(ptr) Variable Uniform
|
||||
52: TypeImage 7(float) 2D sampled format:Unknown
|
||||
53: TypeSampledImage 52
|
||||
54: TypePointer UniformConstant 53
|
||||
55(sampb1): 54(ptr) Variable UniformConstant
|
||||
56: TypeArray 53 21
|
||||
57: TypePointer UniformConstant 56
|
||||
58(sampb2): 57(ptr) Variable UniformConstant
|
||||
59(sampb4): 54(ptr) Variable UniformConstant
|
||||
60: TypePointer Input 14(int)
|
||||
61(gl_VertexID): 60(ptr) Variable Input
|
||||
62(gl_InstanceID): 60(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
19: 18(ptr) AccessChain 13 15 16
|
||||
Store 19 17
|
||||
Store 19 17
|
||||
26: 25(ptr) AccessChain 24(bad) 15
|
||||
27: 20(fvec4) Load 26
|
||||
27: 20(fvec4) Load 26
|
||||
28: 7(float) CompositeExtract 27 0
|
||||
31: 30(bool) FOrdEqual 28 29
|
||||
SelectionMerge 33 None
|
||||
BranchConditional 31 32 33
|
||||
BranchConditional 31 32 33
|
||||
32: Label
|
||||
36: 25(ptr) AccessChain 24(bad) 15
|
||||
37: 20(fvec4) Load 36
|
||||
Store 35(badorder3) 37
|
||||
37: 20(fvec4) Load 36
|
||||
Store 35(badorder3) 37
|
||||
Branch 33
|
||||
33: Label
|
||||
40: 7(float) Load 39(f)
|
||||
40: 7(float) Load 39(f)
|
||||
41: 18(ptr) AccessChain 13 15 15
|
||||
Store 41 40
|
||||
Store 41 40
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
652
Test/baseResults/spv.Operations.frag.out
Normal file → Executable file
652
Test/baseResults/spv.Operations.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 399
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "v"
|
||||
Name 12 "uv4"
|
||||
@ -25,27 +27,27 @@ Linked fragment stage:
|
||||
Name 396 "uiv4"
|
||||
Name 398 "ub"
|
||||
Decorate 378(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 396(uiv4) NoStaticUse
|
||||
Decorate 398(ub) NoStaticUse
|
||||
Decorate 396(uiv4) NoStaticUse
|
||||
Decorate 398(ub) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer UniformConstant 8(fvec4)
|
||||
12(uv4): 11(ptr) Variable UniformConstant
|
||||
12(uv4): 11(ptr) Variable UniformConstant
|
||||
19: TypeInt 32 1
|
||||
20: TypePointer Function 19(int)
|
||||
22: TypePointer UniformConstant 19(int)
|
||||
23(ui): 22(ptr) Variable UniformConstant
|
||||
23(ui): 22(ptr) Variable UniformConstant
|
||||
169: TypePointer UniformConstant 7(float)
|
||||
170(uf): 169(ptr) Variable UniformConstant
|
||||
170(uf): 169(ptr) Variable UniformConstant
|
||||
215: TypeBool
|
||||
216: TypePointer Function 215(bool)
|
||||
220: TypeVector 215(bool) 4
|
||||
242: TypePointer UniformConstant 220(bvec4)
|
||||
243(ub41): 242(ptr) Variable UniformConstant
|
||||
245(ub42): 242(ptr) Variable UniformConstant
|
||||
243(ub41): 242(ptr) Variable UniformConstant
|
||||
245(ub42): 242(ptr) Variable UniformConstant
|
||||
292: 19(int) Constant 2
|
||||
299: 19(int) Constant 1
|
||||
301: TypePointer Function 7(float)
|
||||
@ -55,458 +57,458 @@ Linked fragment stage:
|
||||
359: 19(int) Constant 66
|
||||
365: 19(int) Constant 17
|
||||
377: TypePointer Output 8(fvec4)
|
||||
378(gl_FragColor): 377(ptr) Variable Output
|
||||
378(gl_FragColor): 377(ptr) Variable Output
|
||||
394: TypeVector 19(int) 4
|
||||
395: TypePointer UniformConstant 394(ivec4)
|
||||
396(uiv4): 395(ptr) Variable UniformConstant
|
||||
396(uiv4): 395(ptr) Variable UniformConstant
|
||||
397: TypePointer UniformConstant 215(bool)
|
||||
398(ub): 397(ptr) Variable UniformConstant
|
||||
398(ub): 397(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(v): 9(ptr) Variable Function
|
||||
21(i): 20(ptr) Variable Function
|
||||
217(b): 216(ptr) Variable Function
|
||||
302(f): 301(ptr) Variable Function
|
||||
379: 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(uv4)
|
||||
14: 8(fvec4) ExtInst 1(GLSL.std.450) 8(radians) 13
|
||||
Store 10(v) 14
|
||||
15: 8(fvec4) Load 10(v)
|
||||
16: 8(fvec4) ExtInst 1(GLSL.std.450) 9(degrees) 15
|
||||
17: 8(fvec4) Load 10(v)
|
||||
10(v): 9(ptr) Variable Function
|
||||
21(i): 20(ptr) Variable Function
|
||||
217(b): 216(ptr) Variable Function
|
||||
302(f): 301(ptr) Variable Function
|
||||
379: 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(uv4)
|
||||
14: 8(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 13
|
||||
Store 10(v) 14
|
||||
15: 8(fvec4) Load 10(v)
|
||||
16: 8(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 15
|
||||
17: 8(fvec4) Load 10(v)
|
||||
18: 8(fvec4) FAdd 17 16
|
||||
Store 10(v) 18
|
||||
24: 19(int) Load 23(ui)
|
||||
25: 19(int) Load 23(ui)
|
||||
Store 10(v) 18
|
||||
24: 19(int) Load 23(ui)
|
||||
25: 19(int) Load 23(ui)
|
||||
26: 19(int) IMul 24 25
|
||||
Store 21(i) 26
|
||||
27: 8(fvec4) Load 10(v)
|
||||
28: 8(fvec4) ExtInst 1(GLSL.std.450) 10(sin) 27
|
||||
29: 8(fvec4) Load 10(v)
|
||||
Store 21(i) 26
|
||||
27: 8(fvec4) Load 10(v)
|
||||
28: 8(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 27
|
||||
29: 8(fvec4) Load 10(v)
|
||||
30: 8(fvec4) FAdd 29 28
|
||||
Store 10(v) 30
|
||||
31: 8(fvec4) Load 10(v)
|
||||
32: 8(fvec4) ExtInst 1(GLSL.std.450) 11(cos) 31
|
||||
33: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 30
|
||||
31: 8(fvec4) Load 10(v)
|
||||
32: 8(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 31
|
||||
33: 8(fvec4) Load 10(v)
|
||||
34: 8(fvec4) FAdd 33 32
|
||||
Store 10(v) 34
|
||||
35: 8(fvec4) Load 10(v)
|
||||
36: 8(fvec4) ExtInst 1(GLSL.std.450) 12(tan) 35
|
||||
37: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 34
|
||||
35: 8(fvec4) Load 10(v)
|
||||
36: 8(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 35
|
||||
37: 8(fvec4) Load 10(v)
|
||||
38: 8(fvec4) FAdd 37 36
|
||||
Store 10(v) 38
|
||||
39: 8(fvec4) Load 10(v)
|
||||
40: 8(fvec4) ExtInst 1(GLSL.std.450) 13(asin) 39
|
||||
41: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 38
|
||||
39: 8(fvec4) Load 10(v)
|
||||
40: 8(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 39
|
||||
41: 8(fvec4) Load 10(v)
|
||||
42: 8(fvec4) FAdd 41 40
|
||||
Store 10(v) 42
|
||||
43: 8(fvec4) Load 10(v)
|
||||
44: 8(fvec4) ExtInst 1(GLSL.std.450) 14(acos) 43
|
||||
45: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 42
|
||||
43: 8(fvec4) Load 10(v)
|
||||
44: 8(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 43
|
||||
45: 8(fvec4) Load 10(v)
|
||||
46: 8(fvec4) FAdd 45 44
|
||||
Store 10(v) 46
|
||||
47: 8(fvec4) Load 10(v)
|
||||
48: 8(fvec4) ExtInst 1(GLSL.std.450) 15(atan) 47
|
||||
49: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 46
|
||||
47: 8(fvec4) Load 10(v)
|
||||
48: 8(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 47
|
||||
49: 8(fvec4) Load 10(v)
|
||||
50: 8(fvec4) FAdd 49 48
|
||||
Store 10(v) 50
|
||||
51: 8(fvec4) Load 10(v)
|
||||
52: 8(fvec4) ExtInst 1(GLSL.std.450) 16(sinh) 51
|
||||
53: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 50
|
||||
51: 8(fvec4) Load 10(v)
|
||||
52: 8(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 51
|
||||
53: 8(fvec4) Load 10(v)
|
||||
54: 8(fvec4) FAdd 53 52
|
||||
Store 10(v) 54
|
||||
55: 8(fvec4) Load 10(v)
|
||||
56: 8(fvec4) ExtInst 1(GLSL.std.450) 17(cosh) 55
|
||||
57: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 54
|
||||
55: 8(fvec4) Load 10(v)
|
||||
56: 8(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 55
|
||||
57: 8(fvec4) Load 10(v)
|
||||
58: 8(fvec4) FAdd 57 56
|
||||
Store 10(v) 58
|
||||
59: 8(fvec4) Load 10(v)
|
||||
60: 8(fvec4) ExtInst 1(GLSL.std.450) 18(tanh) 59
|
||||
61: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 58
|
||||
59: 8(fvec4) Load 10(v)
|
||||
60: 8(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 59
|
||||
61: 8(fvec4) Load 10(v)
|
||||
62: 8(fvec4) FAdd 61 60
|
||||
Store 10(v) 62
|
||||
63: 8(fvec4) Load 10(v)
|
||||
64: 8(fvec4) ExtInst 1(GLSL.std.450) 19(asinh) 63
|
||||
65: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 62
|
||||
63: 8(fvec4) Load 10(v)
|
||||
64: 8(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 63
|
||||
65: 8(fvec4) Load 10(v)
|
||||
66: 8(fvec4) FAdd 65 64
|
||||
Store 10(v) 66
|
||||
67: 8(fvec4) Load 10(v)
|
||||
68: 8(fvec4) ExtInst 1(GLSL.std.450) 20(acosh) 67
|
||||
69: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 66
|
||||
67: 8(fvec4) Load 10(v)
|
||||
68: 8(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 67
|
||||
69: 8(fvec4) Load 10(v)
|
||||
70: 8(fvec4) FAdd 69 68
|
||||
Store 10(v) 70
|
||||
71: 8(fvec4) Load 10(v)
|
||||
72: 8(fvec4) ExtInst 1(GLSL.std.450) 21(atanh) 71
|
||||
73: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 70
|
||||
71: 8(fvec4) Load 10(v)
|
||||
72: 8(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 71
|
||||
73: 8(fvec4) Load 10(v)
|
||||
74: 8(fvec4) FAdd 73 72
|
||||
Store 10(v) 74
|
||||
75: 8(fvec4) Load 10(v)
|
||||
76: 8(fvec4) Load 10(v)
|
||||
77: 8(fvec4) ExtInst 1(GLSL.std.450) 23(pow) 75 76
|
||||
78: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 74
|
||||
75: 8(fvec4) Load 10(v)
|
||||
76: 8(fvec4) Load 10(v)
|
||||
77: 8(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 75 76
|
||||
78: 8(fvec4) Load 10(v)
|
||||
79: 8(fvec4) FAdd 78 77
|
||||
Store 10(v) 79
|
||||
80: 8(fvec4) Load 10(v)
|
||||
81: 8(fvec4) ExtInst 1(GLSL.std.450) 24(exp) 80
|
||||
82: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 79
|
||||
80: 8(fvec4) Load 10(v)
|
||||
81: 8(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 80
|
||||
82: 8(fvec4) Load 10(v)
|
||||
83: 8(fvec4) FAdd 82 81
|
||||
Store 10(v) 83
|
||||
84: 8(fvec4) Load 10(v)
|
||||
85: 8(fvec4) ExtInst 1(GLSL.std.450) 25(log) 84
|
||||
86: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 83
|
||||
84: 8(fvec4) Load 10(v)
|
||||
85: 8(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 84
|
||||
86: 8(fvec4) Load 10(v)
|
||||
87: 8(fvec4) FAdd 86 85
|
||||
Store 10(v) 87
|
||||
88: 8(fvec4) Load 10(v)
|
||||
89: 8(fvec4) ExtInst 1(GLSL.std.450) 26(exp2) 88
|
||||
90: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 87
|
||||
88: 8(fvec4) Load 10(v)
|
||||
89: 8(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 88
|
||||
90: 8(fvec4) Load 10(v)
|
||||
91: 8(fvec4) FAdd 90 89
|
||||
Store 10(v) 91
|
||||
92: 8(fvec4) Load 10(v)
|
||||
93: 8(fvec4) ExtInst 1(GLSL.std.450) 27(log2) 92
|
||||
94: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 91
|
||||
92: 8(fvec4) Load 10(v)
|
||||
93: 8(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 92
|
||||
94: 8(fvec4) Load 10(v)
|
||||
95: 8(fvec4) FAdd 94 93
|
||||
Store 10(v) 95
|
||||
96: 8(fvec4) Load 10(v)
|
||||
97: 8(fvec4) ExtInst 1(GLSL.std.450) 28(sqrt) 96
|
||||
98: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 95
|
||||
96: 8(fvec4) Load 10(v)
|
||||
97: 8(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 96
|
||||
98: 8(fvec4) Load 10(v)
|
||||
99: 8(fvec4) FAdd 98 97
|
||||
Store 10(v) 99
|
||||
100: 8(fvec4) Load 10(v)
|
||||
101: 8(fvec4) ExtInst 1(GLSL.std.450) 29(inverseSqrt) 100
|
||||
102: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 99
|
||||
100: 8(fvec4) Load 10(v)
|
||||
101: 8(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 100
|
||||
102: 8(fvec4) Load 10(v)
|
||||
103: 8(fvec4) FAdd 102 101
|
||||
Store 10(v) 103
|
||||
104: 8(fvec4) Load 10(v)
|
||||
105: 8(fvec4) ExtInst 1(GLSL.std.450) 3(abs) 104
|
||||
106: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 103
|
||||
104: 8(fvec4) Load 10(v)
|
||||
105: 8(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 104
|
||||
106: 8(fvec4) Load 10(v)
|
||||
107: 8(fvec4) FAdd 106 105
|
||||
Store 10(v) 107
|
||||
108: 8(fvec4) Load 10(v)
|
||||
109: 8(fvec4) ExtInst 1(GLSL.std.450) 4(sign) 108
|
||||
110: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 107
|
||||
108: 8(fvec4) Load 10(v)
|
||||
109: 8(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 108
|
||||
110: 8(fvec4) Load 10(v)
|
||||
111: 8(fvec4) FAdd 110 109
|
||||
Store 10(v) 111
|
||||
112: 8(fvec4) Load 10(v)
|
||||
113: 8(fvec4) ExtInst 1(GLSL.std.450) 5(floor) 112
|
||||
114: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 111
|
||||
112: 8(fvec4) Load 10(v)
|
||||
113: 8(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 112
|
||||
114: 8(fvec4) Load 10(v)
|
||||
115: 8(fvec4) FAdd 114 113
|
||||
Store 10(v) 115
|
||||
116: 8(fvec4) Load 10(v)
|
||||
117: 8(fvec4) ExtInst 1(GLSL.std.450) 6(ceil) 116
|
||||
118: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 115
|
||||
116: 8(fvec4) Load 10(v)
|
||||
117: 8(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 116
|
||||
118: 8(fvec4) Load 10(v)
|
||||
119: 8(fvec4) FAdd 118 117
|
||||
Store 10(v) 119
|
||||
120: 8(fvec4) Load 10(v)
|
||||
121: 8(fvec4) ExtInst 1(GLSL.std.450) 7(fract) 120
|
||||
122: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 119
|
||||
120: 8(fvec4) Load 10(v)
|
||||
121: 8(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 120
|
||||
122: 8(fvec4) Load 10(v)
|
||||
123: 8(fvec4) FAdd 122 121
|
||||
Store 10(v) 123
|
||||
124: 8(fvec4) Load 10(v)
|
||||
125: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 123
|
||||
124: 8(fvec4) Load 10(v)
|
||||
125: 8(fvec4) Load 10(v)
|
||||
126: 8(fvec4) FMod 124 125
|
||||
127: 8(fvec4) Load 10(v)
|
||||
127: 8(fvec4) Load 10(v)
|
||||
128: 8(fvec4) FAdd 127 126
|
||||
Store 10(v) 128
|
||||
129: 8(fvec4) Load 10(v)
|
||||
130: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 128
|
||||
129: 8(fvec4) Load 10(v)
|
||||
130: 8(fvec4) Load 10(v)
|
||||
131: 7(float) CompositeExtract 130 0
|
||||
132: 8(fvec4) CompositeConstruct 131 131 131 131
|
||||
133: 8(fvec4) FMod 129 132
|
||||
134: 8(fvec4) Load 10(v)
|
||||
134: 8(fvec4) Load 10(v)
|
||||
135: 8(fvec4) FAdd 134 133
|
||||
Store 10(v) 135
|
||||
136: 8(fvec4) Load 10(v)
|
||||
137: 8(fvec4) Load 12(uv4)
|
||||
138: 8(fvec4) ExtInst 1(GLSL.std.450) 33(min) 136 137
|
||||
139: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 135
|
||||
136: 8(fvec4) Load 10(v)
|
||||
137: 8(fvec4) Load 12(uv4)
|
||||
138: 8(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 136 137
|
||||
139: 8(fvec4) Load 10(v)
|
||||
140: 8(fvec4) FAdd 139 138
|
||||
Store 10(v) 140
|
||||
141: 8(fvec4) Load 10(v)
|
||||
142: 8(fvec4) Load 12(uv4)
|
||||
143: 8(fvec4) ExtInst 1(GLSL.std.450) 34(max) 141 142
|
||||
144: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 140
|
||||
141: 8(fvec4) Load 10(v)
|
||||
142: 8(fvec4) Load 12(uv4)
|
||||
143: 8(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 141 142
|
||||
144: 8(fvec4) Load 10(v)
|
||||
145: 8(fvec4) FAdd 144 143
|
||||
Store 10(v) 145
|
||||
146: 8(fvec4) Load 10(v)
|
||||
147: 8(fvec4) Load 12(uv4)
|
||||
148: 8(fvec4) Load 12(uv4)
|
||||
149: 8(fvec4) ExtInst 1(GLSL.std.450) 35(clamp) 146 147 148
|
||||
150: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 145
|
||||
146: 8(fvec4) Load 10(v)
|
||||
147: 8(fvec4) Load 12(uv4)
|
||||
148: 8(fvec4) Load 12(uv4)
|
||||
149: 8(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 146 147 148
|
||||
150: 8(fvec4) Load 10(v)
|
||||
151: 8(fvec4) FAdd 150 149
|
||||
Store 10(v) 151
|
||||
152: 8(fvec4) Load 10(v)
|
||||
153: 8(fvec4) Load 10(v)
|
||||
154: 8(fvec4) Load 10(v)
|
||||
155: 8(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 152 153 154
|
||||
156: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 151
|
||||
152: 8(fvec4) Load 10(v)
|
||||
153: 8(fvec4) Load 10(v)
|
||||
154: 8(fvec4) Load 10(v)
|
||||
155: 8(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 152 153 154
|
||||
156: 8(fvec4) Load 10(v)
|
||||
157: 8(fvec4) FAdd 156 155
|
||||
Store 10(v) 157
|
||||
158: 8(fvec4) Load 10(v)
|
||||
159: 8(fvec4) Load 10(v)
|
||||
160: 8(fvec4) ExtInst 1(GLSL.std.450) 37(step) 158 159
|
||||
161: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 157
|
||||
158: 8(fvec4) Load 10(v)
|
||||
159: 8(fvec4) Load 10(v)
|
||||
160: 8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 158 159
|
||||
161: 8(fvec4) Load 10(v)
|
||||
162: 8(fvec4) FAdd 161 160
|
||||
Store 10(v) 162
|
||||
163: 8(fvec4) Load 10(v)
|
||||
164: 8(fvec4) Load 10(v)
|
||||
165: 8(fvec4) Load 10(v)
|
||||
166: 8(fvec4) ExtInst 1(GLSL.std.450) 38(smoothStep) 163 164 165
|
||||
167: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 162
|
||||
163: 8(fvec4) Load 10(v)
|
||||
164: 8(fvec4) Load 10(v)
|
||||
165: 8(fvec4) Load 10(v)
|
||||
166: 8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 163 164 165
|
||||
167: 8(fvec4) Load 10(v)
|
||||
168: 8(fvec4) FAdd 167 166
|
||||
Store 10(v) 168
|
||||
171: 7(float) Load 170(uf)
|
||||
172: 8(fvec4) Load 10(v)
|
||||
173: 8(fvec4) ExtInst 1(GLSL.std.450) 37(step) 171 172
|
||||
174: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 168
|
||||
171: 7(float) Load 170(uf)
|
||||
172: 8(fvec4) Load 10(v)
|
||||
173: 8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 171 172
|
||||
174: 8(fvec4) Load 10(v)
|
||||
175: 8(fvec4) FAdd 174 173
|
||||
Store 10(v) 175
|
||||
176: 7(float) Load 170(uf)
|
||||
177: 7(float) Load 170(uf)
|
||||
178: 8(fvec4) Load 10(v)
|
||||
179: 8(fvec4) ExtInst 1(GLSL.std.450) 38(smoothStep) 176 177 178
|
||||
180: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 175
|
||||
176: 7(float) Load 170(uf)
|
||||
177: 7(float) Load 170(uf)
|
||||
178: 8(fvec4) Load 10(v)
|
||||
179: 8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 176 177 178
|
||||
180: 8(fvec4) Load 10(v)
|
||||
181: 8(fvec4) FAdd 180 179
|
||||
Store 10(v) 181
|
||||
182: 8(fvec4) Load 10(v)
|
||||
183: 8(fvec4) ExtInst 1(GLSL.std.450) 61(normalize) 182
|
||||
184: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 181
|
||||
182: 8(fvec4) Load 10(v)
|
||||
183: 8(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 182
|
||||
184: 8(fvec4) Load 10(v)
|
||||
185: 8(fvec4) FAdd 184 183
|
||||
Store 10(v) 185
|
||||
186: 8(fvec4) Load 10(v)
|
||||
187: 8(fvec4) Load 10(v)
|
||||
188: 8(fvec4) Load 10(v)
|
||||
189: 8(fvec4) ExtInst 1(GLSL.std.450) 63(faceForward) 186 187 188
|
||||
190: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 185
|
||||
186: 8(fvec4) Load 10(v)
|
||||
187: 8(fvec4) Load 10(v)
|
||||
188: 8(fvec4) Load 10(v)
|
||||
189: 8(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 186 187 188
|
||||
190: 8(fvec4) Load 10(v)
|
||||
191: 8(fvec4) FAdd 190 189
|
||||
Store 10(v) 191
|
||||
192: 8(fvec4) Load 10(v)
|
||||
193: 8(fvec4) Load 10(v)
|
||||
194: 8(fvec4) ExtInst 1(GLSL.std.450) 64(reflect) 192 193
|
||||
195: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 191
|
||||
192: 8(fvec4) Load 10(v)
|
||||
193: 8(fvec4) Load 10(v)
|
||||
194: 8(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 192 193
|
||||
195: 8(fvec4) Load 10(v)
|
||||
196: 8(fvec4) FAdd 195 194
|
||||
Store 10(v) 196
|
||||
197: 8(fvec4) Load 10(v)
|
||||
198: 8(fvec4) Load 10(v)
|
||||
199: 7(float) Load 170(uf)
|
||||
200: 8(fvec4) ExtInst 1(GLSL.std.450) 65(refract) 197 198 199
|
||||
201: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 196
|
||||
197: 8(fvec4) Load 10(v)
|
||||
198: 8(fvec4) Load 10(v)
|
||||
199: 7(float) Load 170(uf)
|
||||
200: 8(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 197 198 199
|
||||
201: 8(fvec4) Load 10(v)
|
||||
202: 8(fvec4) FAdd 201 200
|
||||
Store 10(v) 202
|
||||
203: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 202
|
||||
203: 8(fvec4) Load 10(v)
|
||||
204: 8(fvec4) DPdx 203
|
||||
205: 8(fvec4) Load 10(v)
|
||||
205: 8(fvec4) Load 10(v)
|
||||
206: 8(fvec4) FAdd 205 204
|
||||
Store 10(v) 206
|
||||
207: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 206
|
||||
207: 8(fvec4) Load 10(v)
|
||||
208: 8(fvec4) DPdy 207
|
||||
209: 8(fvec4) Load 10(v)
|
||||
209: 8(fvec4) Load 10(v)
|
||||
210: 8(fvec4) FAdd 209 208
|
||||
Store 10(v) 210
|
||||
211: 8(fvec4) Load 10(v)
|
||||
Store 10(v) 210
|
||||
211: 8(fvec4) Load 10(v)
|
||||
212: 8(fvec4) Fwidth 211
|
||||
213: 8(fvec4) Load 10(v)
|
||||
213: 8(fvec4) Load 10(v)
|
||||
214: 8(fvec4) FAdd 213 212
|
||||
Store 10(v) 214
|
||||
218: 8(fvec4) Load 10(v)
|
||||
219: 8(fvec4) Load 12(uv4)
|
||||
Store 10(v) 214
|
||||
218: 8(fvec4) Load 10(v)
|
||||
219: 8(fvec4) Load 12(uv4)
|
||||
221: 220(bvec4) FOrdLessThan 218 219
|
||||
222: 215(bool) Any 221
|
||||
Store 217(b) 222
|
||||
223: 215(bool) Load 217(b)
|
||||
224: 8(fvec4) Load 10(v)
|
||||
225: 8(fvec4) Load 12(uv4)
|
||||
Store 217(b) 222
|
||||
223: 215(bool) Load 217(b)
|
||||
224: 8(fvec4) Load 10(v)
|
||||
225: 8(fvec4) Load 12(uv4)
|
||||
226: 220(bvec4) FOrdLessThanEqual 224 225
|
||||
227: 215(bool) Any 226
|
||||
228: 215(bool) LogicalAnd 223 227
|
||||
Store 217(b) 228
|
||||
229: 215(bool) Load 217(b)
|
||||
230: 8(fvec4) Load 10(v)
|
||||
231: 8(fvec4) Load 12(uv4)
|
||||
Store 217(b) 228
|
||||
229: 215(bool) Load 217(b)
|
||||
230: 8(fvec4) Load 10(v)
|
||||
231: 8(fvec4) Load 12(uv4)
|
||||
232: 220(bvec4) FOrdGreaterThan 230 231
|
||||
233: 215(bool) Any 232
|
||||
234: 215(bool) LogicalAnd 229 233
|
||||
Store 217(b) 234
|
||||
235: 215(bool) Load 217(b)
|
||||
236: 8(fvec4) Load 10(v)
|
||||
237: 8(fvec4) Load 12(uv4)
|
||||
Store 217(b) 234
|
||||
235: 215(bool) Load 217(b)
|
||||
236: 8(fvec4) Load 10(v)
|
||||
237: 8(fvec4) Load 12(uv4)
|
||||
238: 220(bvec4) FOrdGreaterThanEqual 236 237
|
||||
239: 215(bool) Any 238
|
||||
240: 215(bool) LogicalAnd 235 239
|
||||
Store 217(b) 240
|
||||
241: 215(bool) Load 217(b)
|
||||
244: 220(bvec4) Load 243(ub41)
|
||||
246: 220(bvec4) Load 245(ub42)
|
||||
Store 217(b) 240
|
||||
241: 215(bool) Load 217(b)
|
||||
244: 220(bvec4) Load 243(ub41)
|
||||
246: 220(bvec4) Load 245(ub42)
|
||||
247: 220(bvec4) IEqual 244 246
|
||||
248: 215(bool) Any 247
|
||||
249: 215(bool) LogicalAnd 241 248
|
||||
Store 217(b) 249
|
||||
250: 215(bool) Load 217(b)
|
||||
251: 220(bvec4) Load 243(ub41)
|
||||
252: 220(bvec4) Load 245(ub42)
|
||||
Store 217(b) 249
|
||||
250: 215(bool) Load 217(b)
|
||||
251: 220(bvec4) Load 243(ub41)
|
||||
252: 220(bvec4) Load 245(ub42)
|
||||
253: 220(bvec4) INotEqual 251 252
|
||||
254: 215(bool) Any 253
|
||||
255: 215(bool) LogicalAnd 250 254
|
||||
Store 217(b) 255
|
||||
256: 215(bool) Load 217(b)
|
||||
257: 220(bvec4) Load 243(ub41)
|
||||
Store 217(b) 255
|
||||
256: 215(bool) Load 217(b)
|
||||
257: 220(bvec4) Load 243(ub41)
|
||||
258: 215(bool) Any 257
|
||||
259: 215(bool) LogicalAnd 256 258
|
||||
Store 217(b) 259
|
||||
260: 215(bool) Load 217(b)
|
||||
261: 220(bvec4) Load 243(ub41)
|
||||
Store 217(b) 259
|
||||
260: 215(bool) Load 217(b)
|
||||
261: 220(bvec4) Load 243(ub41)
|
||||
262: 215(bool) All 261
|
||||
263: 215(bool) LogicalAnd 260 262
|
||||
Store 217(b) 263
|
||||
264: 215(bool) Load 217(b)
|
||||
265: 220(bvec4) Load 243(ub41)
|
||||
266: 220(bvec4) Not 265
|
||||
Store 217(b) 263
|
||||
264: 215(bool) Load 217(b)
|
||||
265: 220(bvec4) Load 243(ub41)
|
||||
266: 220(bvec4) LogicalNot 265
|
||||
267: 215(bool) Any 266
|
||||
268: 215(bool) LogicalAnd 264 267
|
||||
Store 217(b) 268
|
||||
269: 19(int) Load 21(i)
|
||||
270: 19(int) Load 23(ui)
|
||||
Store 217(b) 268
|
||||
269: 19(int) Load 21(i)
|
||||
270: 19(int) Load 23(ui)
|
||||
271: 19(int) IAdd 269 270
|
||||
272: 19(int) Load 21(i)
|
||||
272: 19(int) Load 21(i)
|
||||
273: 19(int) IMul 271 272
|
||||
274: 19(int) Load 23(ui)
|
||||
274: 19(int) Load 23(ui)
|
||||
275: 19(int) ISub 273 274
|
||||
276: 19(int) Load 21(i)
|
||||
276: 19(int) Load 21(i)
|
||||
277: 19(int) SDiv 275 276
|
||||
Store 21(i) 277
|
||||
278: 19(int) Load 21(i)
|
||||
279: 19(int) Load 23(ui)
|
||||
Store 21(i) 277
|
||||
278: 19(int) Load 21(i)
|
||||
279: 19(int) Load 23(ui)
|
||||
280: 19(int) SMod 278 279
|
||||
Store 21(i) 280
|
||||
281: 19(int) Load 21(i)
|
||||
282: 19(int) Load 23(ui)
|
||||
Store 21(i) 280
|
||||
281: 19(int) Load 21(i)
|
||||
282: 19(int) Load 23(ui)
|
||||
283: 215(bool) IEqual 281 282
|
||||
284: 19(int) Load 21(i)
|
||||
285: 19(int) Load 23(ui)
|
||||
284: 19(int) Load 21(i)
|
||||
285: 19(int) Load 23(ui)
|
||||
286: 215(bool) INotEqual 284 285
|
||||
287: 19(int) Load 21(i)
|
||||
288: 19(int) Load 23(ui)
|
||||
287: 19(int) Load 21(i)
|
||||
288: 19(int) Load 23(ui)
|
||||
289: 215(bool) IEqual 287 288
|
||||
290: 215(bool) LogicalAnd 286 289
|
||||
291: 19(int) Load 21(i)
|
||||
291: 19(int) Load 21(i)
|
||||
293: 215(bool) INotEqual 291 292
|
||||
294: 215(bool) LogicalXor 290 293
|
||||
294: 215(bool) LogicalNotEqual 290 293
|
||||
295: 215(bool) LogicalOr 283 294
|
||||
SelectionMerge 297 None
|
||||
BranchConditional 295 296 297
|
||||
BranchConditional 295 296 297
|
||||
296: Label
|
||||
298: 19(int) Load 21(i)
|
||||
298: 19(int) Load 21(i)
|
||||
300: 19(int) IAdd 298 299
|
||||
Store 21(i) 300
|
||||
Store 21(i) 300
|
||||
Branch 297
|
||||
297: Label
|
||||
303: 7(float) Load 170(uf)
|
||||
304: 7(float) Load 170(uf)
|
||||
303: 7(float) Load 170(uf)
|
||||
304: 7(float) Load 170(uf)
|
||||
305: 7(float) FAdd 303 304
|
||||
306: 7(float) Load 170(uf)
|
||||
306: 7(float) Load 170(uf)
|
||||
307: 7(float) FMul 305 306
|
||||
308: 7(float) Load 170(uf)
|
||||
308: 7(float) Load 170(uf)
|
||||
309: 7(float) FSub 307 308
|
||||
310: 7(float) Load 170(uf)
|
||||
310: 7(float) Load 170(uf)
|
||||
311: 7(float) FDiv 309 310
|
||||
Store 302(f) 311
|
||||
312: 8(fvec4) Load 10(v)
|
||||
313: 7(float) ExtInst 1(GLSL.std.450) 58(length) 312
|
||||
314: 7(float) Load 302(f)
|
||||
Store 302(f) 311
|
||||
312: 8(fvec4) Load 10(v)
|
||||
313: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 312
|
||||
314: 7(float) Load 302(f)
|
||||
315: 7(float) FAdd 314 313
|
||||
Store 302(f) 315
|
||||
316: 8(fvec4) Load 10(v)
|
||||
317: 8(fvec4) Load 10(v)
|
||||
318: 7(float) ExtInst 1(GLSL.std.450) 59(distance) 316 317
|
||||
319: 7(float) Load 302(f)
|
||||
Store 302(f) 315
|
||||
316: 8(fvec4) Load 10(v)
|
||||
317: 8(fvec4) Load 10(v)
|
||||
318: 7(float) ExtInst 1(GLSL.std.450) 66(Distance) 316 317
|
||||
319: 7(float) Load 302(f)
|
||||
320: 7(float) FAdd 319 318
|
||||
Store 302(f) 320
|
||||
321: 8(fvec4) Load 10(v)
|
||||
322: 8(fvec4) Load 10(v)
|
||||
Store 302(f) 320
|
||||
321: 8(fvec4) Load 10(v)
|
||||
322: 8(fvec4) Load 10(v)
|
||||
323: 7(float) Dot 321 322
|
||||
324: 7(float) Load 302(f)
|
||||
324: 7(float) Load 302(f)
|
||||
325: 7(float) FAdd 324 323
|
||||
Store 302(f) 325
|
||||
326: 7(float) Load 302(f)
|
||||
327: 7(float) Load 170(uf)
|
||||
Store 302(f) 325
|
||||
326: 7(float) Load 302(f)
|
||||
327: 7(float) Load 170(uf)
|
||||
328: 7(float) FMul 326 327
|
||||
329: 7(float) Load 302(f)
|
||||
329: 7(float) Load 302(f)
|
||||
330: 7(float) FAdd 329 328
|
||||
Store 302(f) 330
|
||||
331: 8(fvec4) Load 10(v)
|
||||
Store 302(f) 330
|
||||
331: 8(fvec4) Load 10(v)
|
||||
333: 332(fvec3) VectorShuffle 331 331 0 1 2
|
||||
334: 8(fvec4) Load 10(v)
|
||||
334: 8(fvec4) Load 10(v)
|
||||
335: 332(fvec3) VectorShuffle 334 334 0 1 2
|
||||
336: 332(fvec3) ExtInst 1(GLSL.std.450) 60(cross) 333 335
|
||||
336: 332(fvec3) ExtInst 1(GLSL.std.450) 67(Cross) 333 335
|
||||
337: 7(float) CompositeExtract 336 0
|
||||
338: 7(float) Load 302(f)
|
||||
338: 7(float) Load 302(f)
|
||||
339: 7(float) FAdd 338 337
|
||||
Store 302(f) 339
|
||||
340: 7(float) Load 302(f)
|
||||
341: 7(float) Load 170(uf)
|
||||
Store 302(f) 339
|
||||
340: 7(float) Load 302(f)
|
||||
341: 7(float) Load 170(uf)
|
||||
342: 215(bool) FOrdEqual 340 341
|
||||
343: 7(float) Load 302(f)
|
||||
344: 7(float) Load 170(uf)
|
||||
343: 7(float) Load 302(f)
|
||||
344: 7(float) Load 170(uf)
|
||||
345: 215(bool) FOrdNotEqual 343 344
|
||||
346: 7(float) Load 302(f)
|
||||
346: 7(float) Load 302(f)
|
||||
348: 215(bool) FOrdNotEqual 346 347
|
||||
349: 215(bool) LogicalAnd 345 348
|
||||
350: 215(bool) LogicalOr 342 349
|
||||
SelectionMerge 352 None
|
||||
BranchConditional 350 351 352
|
||||
BranchConditional 350 351 352
|
||||
351: Label
|
||||
353: 7(float) Load 302(f)
|
||||
353: 7(float) Load 302(f)
|
||||
355: 7(float) FAdd 353 354
|
||||
Store 302(f) 355
|
||||
Store 302(f) 355
|
||||
Branch 352
|
||||
352: Label
|
||||
356: 19(int) Load 23(ui)
|
||||
357: 19(int) Load 21(i)
|
||||
356: 19(int) Load 23(ui)
|
||||
357: 19(int) Load 21(i)
|
||||
358: 19(int) BitwiseAnd 357 356
|
||||
Store 21(i) 358
|
||||
360: 19(int) Load 21(i)
|
||||
Store 21(i) 358
|
||||
360: 19(int) Load 21(i)
|
||||
361: 19(int) BitwiseOr 360 359
|
||||
Store 21(i) 361
|
||||
362: 19(int) Load 23(ui)
|
||||
363: 19(int) Load 21(i)
|
||||
Store 21(i) 361
|
||||
362: 19(int) Load 23(ui)
|
||||
363: 19(int) Load 21(i)
|
||||
364: 19(int) BitwiseXor 363 362
|
||||
Store 21(i) 364
|
||||
366: 19(int) Load 21(i)
|
||||
Store 21(i) 364
|
||||
366: 19(int) Load 21(i)
|
||||
367: 19(int) SMod 366 365
|
||||
Store 21(i) 367
|
||||
368: 19(int) Load 21(i)
|
||||
Store 21(i) 367
|
||||
368: 19(int) Load 21(i)
|
||||
369: 19(int) ShiftRightArithmetic 368 292
|
||||
Store 21(i) 369
|
||||
370: 19(int) Load 23(ui)
|
||||
371: 19(int) Load 21(i)
|
||||
Store 21(i) 369
|
||||
370: 19(int) Load 23(ui)
|
||||
371: 19(int) Load 21(i)
|
||||
372: 19(int) ShiftLeftLogical 371 370
|
||||
Store 21(i) 372
|
||||
373: 19(int) Load 21(i)
|
||||
Store 21(i) 372
|
||||
373: 19(int) Load 21(i)
|
||||
374: 19(int) Not 373
|
||||
Store 21(i) 374
|
||||
375: 215(bool) Load 217(b)
|
||||
376: 215(bool) Not 375
|
||||
Store 217(b) 376
|
||||
380: 215(bool) Load 217(b)
|
||||
Store 21(i) 374
|
||||
375: 215(bool) Load 217(b)
|
||||
376: 215(bool) LogicalNot 375
|
||||
Store 217(b) 376
|
||||
380: 215(bool) Load 217(b)
|
||||
SelectionMerge 382 None
|
||||
BranchConditional 380 381 391
|
||||
BranchConditional 380 381 391
|
||||
381: Label
|
||||
383: 19(int) Load 21(i)
|
||||
383: 19(int) Load 21(i)
|
||||
384: 7(float) ConvertSToF 383
|
||||
385: 8(fvec4) CompositeConstruct 384 384 384 384
|
||||
386: 7(float) Load 302(f)
|
||||
386: 7(float) Load 302(f)
|
||||
387: 8(fvec4) CompositeConstruct 386 386 386 386
|
||||
388: 8(fvec4) FAdd 385 387
|
||||
389: 8(fvec4) Load 10(v)
|
||||
389: 8(fvec4) Load 10(v)
|
||||
390: 8(fvec4) FAdd 388 389
|
||||
Store 379 390
|
||||
Store 379 390
|
||||
Branch 382
|
||||
391: Label
|
||||
392: 8(fvec4) Load 10(v)
|
||||
Store 379 392
|
||||
392: 8(fvec4) Load 10(v)
|
||||
Store 379 392
|
||||
Branch 382
|
||||
382: Label
|
||||
393: 8(fvec4) Load 379
|
||||
Store 378(gl_FragColor) 393
|
||||
393: 8(fvec4) Load 379
|
||||
Store 378(gl_FragColor) 393
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
180
Test/baseResults/spv.accessChain.frag.out
Normal file → Executable file
180
Test/baseResults/spv.accessChain.frag.out
Normal file → Executable file
@ -10,9 +10,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 198
|
||||
|
||||
Source GLSL 420
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "S"
|
||||
MemberName 9(S) 0 "color"
|
||||
@ -71,7 +73,7 @@ Linked fragment stage:
|
||||
Name 195 "param"
|
||||
Decorate 66(OutColor) Location 0
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 3
|
||||
9(S): TypeStruct 8(fvec3)
|
||||
@ -80,7 +82,7 @@ Linked fragment stage:
|
||||
15: TypePointer Function 14(int)
|
||||
16: TypeFunction 2 9(S) 15(ptr)
|
||||
65: TypePointer Output 8(fvec3)
|
||||
66(OutColor): 65(ptr) Variable Output
|
||||
66(OutColor): 65(ptr) Variable Output
|
||||
67: 14(int) Constant 0
|
||||
68: TypeInt 32 0
|
||||
69: 68(int) Constant 0
|
||||
@ -90,72 +92,72 @@ Linked fragment stage:
|
||||
143: 8(fvec3) ConstantComposite 142 142 142
|
||||
144: TypePointer Function 9(S)
|
||||
149: TypePointer UniformConstant 14(int)
|
||||
150(u): 149(ptr) Variable UniformConstant
|
||||
150(u): 149(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
145(s): 144(ptr) Variable Function
|
||||
151(param): 15(ptr) Variable Function
|
||||
155(param): 15(ptr) Variable Function
|
||||
159(param): 15(ptr) Variable Function
|
||||
163(param): 15(ptr) Variable Function
|
||||
167(param): 15(ptr) Variable Function
|
||||
171(param): 15(ptr) Variable Function
|
||||
175(param): 15(ptr) Variable Function
|
||||
179(param): 15(ptr) Variable Function
|
||||
183(param): 15(ptr) Variable Function
|
||||
187(param): 15(ptr) Variable Function
|
||||
191(param): 15(ptr) Variable Function
|
||||
195(param): 15(ptr) Variable Function
|
||||
Store 66(OutColor) 143
|
||||
146: 9(S) Load 145(s)
|
||||
145(s): 144(ptr) Variable Function
|
||||
151(param): 15(ptr) Variable Function
|
||||
155(param): 15(ptr) Variable Function
|
||||
159(param): 15(ptr) Variable Function
|
||||
163(param): 15(ptr) Variable Function
|
||||
167(param): 15(ptr) Variable Function
|
||||
171(param): 15(ptr) Variable Function
|
||||
175(param): 15(ptr) Variable Function
|
||||
179(param): 15(ptr) Variable Function
|
||||
183(param): 15(ptr) Variable Function
|
||||
187(param): 15(ptr) Variable Function
|
||||
191(param): 15(ptr) Variable Function
|
||||
195(param): 15(ptr) Variable Function
|
||||
Store 66(OutColor) 143
|
||||
146: 9(S) Load 145(s)
|
||||
147: 2 FunctionCall 12(GetColor1(struct-S-vf31;) 146
|
||||
148: 9(S) Load 145(s)
|
||||
152: 14(int) Load 150(u)
|
||||
Store 151(param) 152
|
||||
148: 9(S) Load 145(s)
|
||||
152: 14(int) Load 150(u)
|
||||
Store 151(param) 152
|
||||
153: 2 FunctionCall 19(GetColor2(struct-S-vf31;i1;) 148 151(param)
|
||||
154: 9(S) Load 145(s)
|
||||
156: 14(int) Load 150(u)
|
||||
Store 155(param) 156
|
||||
154: 9(S) Load 145(s)
|
||||
156: 14(int) Load 150(u)
|
||||
Store 155(param) 156
|
||||
157: 2 FunctionCall 23(GetColor3(struct-S-vf31;i1;) 154 155(param)
|
||||
158: 9(S) Load 145(s)
|
||||
160: 14(int) Load 150(u)
|
||||
Store 159(param) 160
|
||||
158: 9(S) Load 145(s)
|
||||
160: 14(int) Load 150(u)
|
||||
Store 159(param) 160
|
||||
161: 2 FunctionCall 27(GetColor4(struct-S-vf31;i1;) 158 159(param)
|
||||
162: 9(S) Load 145(s)
|
||||
164: 14(int) Load 150(u)
|
||||
Store 163(param) 164
|
||||
162: 9(S) Load 145(s)
|
||||
164: 14(int) Load 150(u)
|
||||
Store 163(param) 164
|
||||
165: 2 FunctionCall 31(GetColor5(struct-S-vf31;i1;) 162 163(param)
|
||||
166: 9(S) Load 145(s)
|
||||
168: 14(int) Load 150(u)
|
||||
Store 167(param) 168
|
||||
166: 9(S) Load 145(s)
|
||||
168: 14(int) Load 150(u)
|
||||
Store 167(param) 168
|
||||
169: 2 FunctionCall 35(GetColor6(struct-S-vf31;i1;) 166 167(param)
|
||||
170: 9(S) Load 145(s)
|
||||
172: 14(int) Load 150(u)
|
||||
Store 171(param) 172
|
||||
170: 9(S) Load 145(s)
|
||||
172: 14(int) Load 150(u)
|
||||
Store 171(param) 172
|
||||
173: 2 FunctionCall 39(GetColor7(struct-S-vf31;i1;) 170 171(param)
|
||||
174: 9(S) Load 145(s)
|
||||
176: 14(int) Load 150(u)
|
||||
Store 175(param) 176
|
||||
174: 9(S) Load 145(s)
|
||||
176: 14(int) Load 150(u)
|
||||
Store 175(param) 176
|
||||
177: 2 FunctionCall 43(GetColor8(struct-S-vf31;i1;) 174 175(param)
|
||||
178: 9(S) Load 145(s)
|
||||
180: 14(int) Load 150(u)
|
||||
Store 179(param) 180
|
||||
178: 9(S) Load 145(s)
|
||||
180: 14(int) Load 150(u)
|
||||
Store 179(param) 180
|
||||
181: 2 FunctionCall 47(GetColor9(struct-S-vf31;i1;) 178 179(param)
|
||||
182: 9(S) Load 145(s)
|
||||
184: 14(int) Load 150(u)
|
||||
Store 183(param) 184
|
||||
182: 9(S) Load 145(s)
|
||||
184: 14(int) Load 150(u)
|
||||
Store 183(param) 184
|
||||
185: 2 FunctionCall 51(GetColor10(struct-S-vf31;i1;) 182 183(param)
|
||||
186: 9(S) Load 145(s)
|
||||
188: 14(int) Load 150(u)
|
||||
Store 187(param) 188
|
||||
186: 9(S) Load 145(s)
|
||||
188: 14(int) Load 150(u)
|
||||
Store 187(param) 188
|
||||
189: 2 FunctionCall 55(GetColor11(struct-S-vf31;i1;) 186 187(param)
|
||||
190: 9(S) Load 145(s)
|
||||
192: 14(int) Load 150(u)
|
||||
Store 191(param) 192
|
||||
190: 9(S) Load 145(s)
|
||||
192: 14(int) Load 150(u)
|
||||
Store 191(param) 192
|
||||
193: 2 FunctionCall 59(GetColor12(struct-S-vf31;i1;) 190 191(param)
|
||||
194: 9(S) Load 145(s)
|
||||
196: 14(int) Load 150(u)
|
||||
Store 195(param) 196
|
||||
194: 9(S) Load 145(s)
|
||||
196: 14(int) Load 150(u)
|
||||
Store 195(param) 196
|
||||
197: 2 FunctionCall 63(GetColor13(struct-S-vf31;i1;) 194 195(param)
|
||||
Branch 6
|
||||
6: Label
|
||||
@ -165,49 +167,49 @@ Linked fragment stage:
|
||||
11(i): 9(S) FunctionParameter
|
||||
13: Label
|
||||
70: 7(float) CompositeExtract 11(i) 0 0
|
||||
71: 8(fvec3) Load 66(OutColor)
|
||||
71: 8(fvec3) Load 66(OutColor)
|
||||
72: 8(fvec3) CompositeConstruct 70 70 70
|
||||
73: 8(fvec3) FAdd 71 72
|
||||
Store 66(OutColor) 73
|
||||
Store 66(OutColor) 73
|
||||
Return
|
||||
FunctionEnd
|
||||
19(GetColor2(struct-S-vf31;i1;): 2 Function None 16
|
||||
17(i): 9(S) FunctionParameter
|
||||
18(comp): 15(ptr) FunctionParameter
|
||||
20: Label
|
||||
74: 14(int) Load 18(comp)
|
||||
74: 14(int) Load 18(comp)
|
||||
75: 8(fvec3) CompositeExtract 17(i) 0
|
||||
76: 7(float) VectorExtractDynamic 75 74
|
||||
77: 8(fvec3) Load 66(OutColor)
|
||||
77: 8(fvec3) Load 66(OutColor)
|
||||
78: 8(fvec3) CompositeConstruct 76 76 76
|
||||
79: 8(fvec3) FAdd 77 78
|
||||
Store 66(OutColor) 79
|
||||
Store 66(OutColor) 79
|
||||
Return
|
||||
FunctionEnd
|
||||
23(GetColor3(struct-S-vf31;i1;): 2 Function None 16
|
||||
21(i): 9(S) FunctionParameter
|
||||
22(comp): 15(ptr) FunctionParameter
|
||||
24: Label
|
||||
80: 14(int) Load 22(comp)
|
||||
80: 14(int) Load 22(comp)
|
||||
81: 8(fvec3) CompositeExtract 21(i) 0
|
||||
82: 7(float) VectorExtractDynamic 81 80
|
||||
83: 8(fvec3) Load 66(OutColor)
|
||||
83: 8(fvec3) Load 66(OutColor)
|
||||
84: 8(fvec3) CompositeConstruct 82 82 82
|
||||
85: 8(fvec3) FAdd 83 84
|
||||
Store 66(OutColor) 85
|
||||
Store 66(OutColor) 85
|
||||
Return
|
||||
FunctionEnd
|
||||
27(GetColor4(struct-S-vf31;i1;): 2 Function None 16
|
||||
25(i): 9(S) FunctionParameter
|
||||
26(comp): 15(ptr) FunctionParameter
|
||||
28: Label
|
||||
86: 14(int) Load 26(comp)
|
||||
86: 14(int) Load 26(comp)
|
||||
87: 8(fvec3) CompositeExtract 25(i) 0
|
||||
88: 7(float) VectorExtractDynamic 87 86
|
||||
89: 8(fvec3) Load 66(OutColor)
|
||||
89: 8(fvec3) Load 66(OutColor)
|
||||
90: 8(fvec3) CompositeConstruct 88 88 88
|
||||
91: 8(fvec3) FAdd 89 90
|
||||
Store 66(OutColor) 91
|
||||
Store 66(OutColor) 91
|
||||
Return
|
||||
FunctionEnd
|
||||
31(GetColor5(struct-S-vf31;i1;): 2 Function None 16
|
||||
@ -215,23 +217,23 @@ Linked fragment stage:
|
||||
30(comp): 15(ptr) FunctionParameter
|
||||
32: Label
|
||||
92: 8(fvec3) CompositeExtract 29(i) 0
|
||||
93: 8(fvec3) Load 66(OutColor)
|
||||
93: 8(fvec3) Load 66(OutColor)
|
||||
94: 8(fvec3) FAdd 93 92
|
||||
Store 66(OutColor) 94
|
||||
Store 66(OutColor) 94
|
||||
Return
|
||||
FunctionEnd
|
||||
35(GetColor6(struct-S-vf31;i1;): 2 Function None 16
|
||||
33(i): 9(S) FunctionParameter
|
||||
34(comp): 15(ptr) FunctionParameter
|
||||
36: Label
|
||||
95: 14(int) Load 34(comp)
|
||||
95: 14(int) Load 34(comp)
|
||||
96: 8(fvec3) CompositeExtract 33(i) 0
|
||||
98: 97(fvec2) VectorShuffle 96 96 1 0
|
||||
99: 7(float) VectorExtractDynamic 98 95
|
||||
100: 8(fvec3) Load 66(OutColor)
|
||||
100: 8(fvec3) Load 66(OutColor)
|
||||
101: 8(fvec3) CompositeConstruct 99 99 99
|
||||
102: 8(fvec3) FAdd 100 101
|
||||
Store 66(OutColor) 102
|
||||
Store 66(OutColor) 102
|
||||
Return
|
||||
FunctionEnd
|
||||
39(GetColor7(struct-S-vf31;i1;): 2 Function None 16
|
||||
@ -240,12 +242,12 @@ Linked fragment stage:
|
||||
40: Label
|
||||
103: 8(fvec3) CompositeExtract 37(i) 0
|
||||
104: 97(fvec2) VectorShuffle 103 103 0 1
|
||||
105: 8(fvec3) Load 66(OutColor)
|
||||
105: 8(fvec3) Load 66(OutColor)
|
||||
106: 97(fvec2) VectorShuffle 105 105 0 1
|
||||
107: 97(fvec2) FAdd 106 104
|
||||
108: 8(fvec3) Load 66(OutColor)
|
||||
108: 8(fvec3) Load 66(OutColor)
|
||||
109: 8(fvec3) VectorShuffle 108 107 3 4 2
|
||||
Store 66(OutColor) 109
|
||||
Store 66(OutColor) 109
|
||||
Return
|
||||
FunctionEnd
|
||||
43(GetColor8(struct-S-vf31;i1;): 2 Function None 16
|
||||
@ -253,10 +255,10 @@ Linked fragment stage:
|
||||
42(comp): 15(ptr) FunctionParameter
|
||||
44: Label
|
||||
111: 7(float) CompositeExtract 41(i) 0 2
|
||||
112: 8(fvec3) Load 66(OutColor)
|
||||
112: 8(fvec3) Load 66(OutColor)
|
||||
113: 8(fvec3) CompositeConstruct 111 111 111
|
||||
114: 8(fvec3) FAdd 112 113
|
||||
Store 66(OutColor) 114
|
||||
Store 66(OutColor) 114
|
||||
Return
|
||||
FunctionEnd
|
||||
47(GetColor9(struct-S-vf31;i1;): 2 Function None 16
|
||||
@ -264,12 +266,12 @@ Linked fragment stage:
|
||||
46(comp): 15(ptr) FunctionParameter
|
||||
48: Label
|
||||
115: 8(fvec3) CompositeExtract 45(i) 0
|
||||
116: 8(fvec3) Load 66(OutColor)
|
||||
116: 8(fvec3) Load 66(OutColor)
|
||||
117: 8(fvec3) VectorShuffle 116 116 2 0 1
|
||||
118: 8(fvec3) FAdd 117 115
|
||||
119: 8(fvec3) Load 66(OutColor)
|
||||
119: 8(fvec3) Load 66(OutColor)
|
||||
120: 8(fvec3) VectorShuffle 119 118 4 5 3
|
||||
Store 66(OutColor) 120
|
||||
Store 66(OutColor) 120
|
||||
Return
|
||||
FunctionEnd
|
||||
51(GetColor10(struct-S-vf31;i1;): 2 Function None 16
|
||||
@ -278,12 +280,12 @@ Linked fragment stage:
|
||||
52: Label
|
||||
121: 8(fvec3) CompositeExtract 49(i) 0
|
||||
122: 97(fvec2) VectorShuffle 121 121 0 1
|
||||
123: 8(fvec3) Load 66(OutColor)
|
||||
123: 8(fvec3) Load 66(OutColor)
|
||||
124: 97(fvec2) VectorShuffle 123 123 2 1
|
||||
125: 97(fvec2) FAdd 124 122
|
||||
126: 8(fvec3) Load 66(OutColor)
|
||||
126: 8(fvec3) Load 66(OutColor)
|
||||
127: 8(fvec3) VectorShuffle 126 125 0 4 3
|
||||
Store 66(OutColor) 127
|
||||
Store 66(OutColor) 127
|
||||
Return
|
||||
FunctionEnd
|
||||
55(GetColor11(struct-S-vf31;i1;): 2 Function None 16
|
||||
@ -292,26 +294,26 @@ Linked fragment stage:
|
||||
56: Label
|
||||
128: 8(fvec3) CompositeExtract 53(i) 0
|
||||
129: 97(fvec2) VectorShuffle 128 128 0 1
|
||||
130: 8(fvec3) Load 66(OutColor)
|
||||
130: 8(fvec3) Load 66(OutColor)
|
||||
131: 97(fvec2) VectorShuffle 130 130 0 2
|
||||
132: 97(fvec2) FAdd 131 129
|
||||
133: 8(fvec3) Load 66(OutColor)
|
||||
133: 8(fvec3) Load 66(OutColor)
|
||||
134: 8(fvec3) VectorShuffle 133 132 3 1 4
|
||||
Store 66(OutColor) 134
|
||||
Store 66(OutColor) 134
|
||||
Return
|
||||
FunctionEnd
|
||||
59(GetColor12(struct-S-vf31;i1;): 2 Function None 16
|
||||
57(i): 9(S) FunctionParameter
|
||||
58(comp): 15(ptr) FunctionParameter
|
||||
60: Label
|
||||
135: 14(int) Load 58(comp)
|
||||
135: 14(int) Load 58(comp)
|
||||
136: 7(float) CompositeExtract 57(i) 0 0
|
||||
137: 8(fvec3) Load 66(OutColor)
|
||||
137: 8(fvec3) Load 66(OutColor)
|
||||
138: 7(float) VectorExtractDynamic 137 135
|
||||
139: 7(float) FAdd 138 136
|
||||
140: 8(fvec3) Load 66(OutColor)
|
||||
140: 8(fvec3) Load 66(OutColor)
|
||||
141: 8(fvec3) VectorInsertDynamic 140 139 135
|
||||
Store 66(OutColor) 141
|
||||
Store 66(OutColor) 141
|
||||
Return
|
||||
FunctionEnd
|
||||
63(GetColor13(struct-S-vf31;i1;): 2 Function None 16
|
||||
|
||||
94
Test/baseResults/spv.always-discard.frag.out
Normal file → Executable file
94
Test/baseResults/spv.always-discard.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 81
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "white"
|
||||
Name 13 "black"
|
||||
@ -20,10 +22,10 @@ Linked fragment stage:
|
||||
Name 28 "y"
|
||||
Name 33 "radius"
|
||||
Name 56 "gl_FragColor"
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 56(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
@ -34,96 +36,96 @@ Linked fragment stage:
|
||||
18: TypePointer Function 7(float)
|
||||
20: TypeVector 7(float) 2
|
||||
21: TypePointer Input 20(fvec2)
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
25: 7(float) Constant 1073741824
|
||||
43: TypeBool
|
||||
48: 7(float) Constant 1066192077
|
||||
55: TypePointer Output 8(fvec4)
|
||||
56(gl_FragColor): 55(ptr) Variable Output
|
||||
56(gl_FragColor): 55(ptr) Variable Output
|
||||
59: 7(float) Constant 1067030938
|
||||
68: 7(float) Constant 1061158912
|
||||
73: 7(float) Constant 1098907648
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
33(radius): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
33(radius): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
24: 7(float) CompositeExtract 23 0
|
||||
26: 7(float) FMul 24 25
|
||||
27: 7(float) FSub 26 11
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
30: 7(float) CompositeExtract 29 1
|
||||
31: 7(float) FMul 30 25
|
||||
32: 7(float) FSub 31 11
|
||||
Store 28(y) 32
|
||||
34: 7(float) Load 19(x)
|
||||
35: 7(float) Load 19(x)
|
||||
Store 28(y) 32
|
||||
34: 7(float) Load 19(x)
|
||||
35: 7(float) Load 19(x)
|
||||
36: 7(float) FMul 34 35
|
||||
37: 7(float) Load 28(y)
|
||||
38: 7(float) Load 28(y)
|
||||
37: 7(float) Load 28(y)
|
||||
38: 7(float) Load 28(y)
|
||||
39: 7(float) FMul 37 38
|
||||
40: 7(float) FAdd 36 39
|
||||
41: 7(float) ExtInst 1(GLSL.std.450) 28(sqrt) 40
|
||||
Store 33(radius) 41
|
||||
42: 7(float) Load 33(radius)
|
||||
41: 7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40
|
||||
Store 33(radius) 41
|
||||
42: 7(float) Load 33(radius)
|
||||
44: 43(bool) FOrdGreaterThan 42 11
|
||||
SelectionMerge 46 None
|
||||
BranchConditional 44 45 46
|
||||
BranchConditional 44 45 46
|
||||
45: Label
|
||||
47: 7(float) Load 33(radius)
|
||||
47: 7(float) Load 33(radius)
|
||||
49: 43(bool) FOrdGreaterThan 47 48
|
||||
SelectionMerge 51 None
|
||||
BranchConditional 49 50 51
|
||||
BranchConditional 49 50 51
|
||||
50: Label
|
||||
52: 8(fvec4) Load 16(color)
|
||||
52: 8(fvec4) Load 16(color)
|
||||
53: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||
54: 8(fvec4) FAdd 52 53
|
||||
Store 16(color) 54
|
||||
Store 16(color) 54
|
||||
Branch 51
|
||||
51: Label
|
||||
57: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 57
|
||||
58: 7(float) Load 33(radius)
|
||||
57: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 57
|
||||
58: 7(float) Load 33(radius)
|
||||
60: 43(bool) FOrdGreaterThan 58 59
|
||||
SelectionMerge 62 None
|
||||
BranchConditional 60 61 62
|
||||
BranchConditional 60 61 62
|
||||
61: Label
|
||||
63: 8(fvec4) Load 16(color)
|
||||
63: 8(fvec4) Load 16(color)
|
||||
64: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||
65: 8(fvec4) FAdd 63 64
|
||||
Store 16(color) 65
|
||||
Store 16(color) 65
|
||||
Branch 62
|
||||
62: Label
|
||||
Branch 46
|
||||
46: Label
|
||||
Kill
|
||||
66: Label
|
||||
67: 7(float) Load 33(radius)
|
||||
67: 7(float) Load 33(radius)
|
||||
69: 43(bool) FOrdGreaterThanEqual 67 68
|
||||
SelectionMerge 71 None
|
||||
BranchConditional 69 70 71
|
||||
BranchConditional 69 70 71
|
||||
70: Label
|
||||
72: 7(float) Load 33(radius)
|
||||
74: 7(float) ExtInst 1(GLSL.std.450) 23(pow) 72 73
|
||||
72: 7(float) Load 33(radius)
|
||||
74: 7(float) ExtInst 1(GLSL.std.450) 26(Pow) 72 73
|
||||
75: 7(float) FDiv 74 25
|
||||
76: 7(float) ExtInst 1(GLSL.std.450) 3(abs) 75
|
||||
77: 8(fvec4) Load 16(color)
|
||||
76: 7(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75
|
||||
77: 8(fvec4) Load 16(color)
|
||||
78: 8(fvec4) CompositeConstruct 76 76 76 76
|
||||
79: 8(fvec4) FSub 77 78
|
||||
Store 16(color) 79
|
||||
Store 16(color) 79
|
||||
Branch 71
|
||||
71: Label
|
||||
80: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 80
|
||||
80: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 80
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
38
Test/baseResults/spv.always-discard2.frag.out
Normal file → Executable file
38
Test/baseResults/spv.always-discard2.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 37
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "white"
|
||||
Name 13 "black"
|
||||
@ -19,10 +21,10 @@ Linked fragment stage:
|
||||
Name 22 "tex_coord"
|
||||
Name 28 "y"
|
||||
Name 35 "gl_FragColor"
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 35(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
@ -33,31 +35,31 @@ Linked fragment stage:
|
||||
18: TypePointer Function 7(float)
|
||||
20: TypeVector 7(float) 2
|
||||
21: TypePointer Input 20(fvec2)
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
25: 7(float) Constant 1073741824
|
||||
34: TypePointer Output 8(fvec4)
|
||||
35(gl_FragColor): 34(ptr) Variable Output
|
||||
35(gl_FragColor): 34(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
24: 7(float) CompositeExtract 23 0
|
||||
26: 7(float) FMul 24 25
|
||||
27: 7(float) FSub 26 11
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
30: 7(float) CompositeExtract 29 1
|
||||
31: 7(float) FMul 30 25
|
||||
32: 7(float) FSub 31 11
|
||||
Store 28(y) 32
|
||||
Store 28(y) 32
|
||||
Kill
|
||||
6: Label
|
||||
Return
|
||||
|
||||
196
Test/baseResults/spv.atomic.comp.out
Normal file → Executable file
196
Test/baseResults/spv.atomic.comp.out
Normal file → Executable file
@ -8,88 +8,80 @@ Linked compute stage:
|
||||
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 75
|
||||
// Id's are bound by 77
|
||||
|
||||
Source ESSL 310
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4
|
||||
EntryPoint GLCompute 4 "main"
|
||||
Name 4 "main"
|
||||
Name 11 "func(au1;"
|
||||
Name 10 "c"
|
||||
Name 13 "atoms("
|
||||
Name 20 "counter"
|
||||
Name 21 "param"
|
||||
Name 24 "val"
|
||||
Name 28 "countArr"
|
||||
Name 38 "origi"
|
||||
Name 40 "atomi"
|
||||
Name 44 "origu"
|
||||
Name 46 "atomu"
|
||||
Name 48 "value"
|
||||
Name 72 "arrX"
|
||||
Name 73 "arrY"
|
||||
Name 74 "arrZ"
|
||||
Decorate 20(counter) PrecisionHigh
|
||||
Decorate 20(counter) Binding 0
|
||||
Decorate 24(val) PrecisionHigh
|
||||
Decorate 28(countArr) PrecisionHigh
|
||||
Decorate 28(countArr) Binding 0
|
||||
Decorate 38(origi) PrecisionHigh
|
||||
Decorate 40(atomi) PrecisionHigh
|
||||
Decorate 44(origu) PrecisionHigh
|
||||
Decorate 46(atomu) PrecisionHigh
|
||||
Decorate 48(value) PrecisionHigh
|
||||
Decorate 72(arrX) PrecisionHigh
|
||||
Decorate 72(arrX) NoStaticUse
|
||||
Decorate 73(arrY) PrecisionHigh
|
||||
Decorate 73(arrY) NoStaticUse
|
||||
Decorate 74(arrZ) PrecisionHigh
|
||||
Decorate 74(arrZ) NoStaticUse
|
||||
Name 23 "counter"
|
||||
Name 24 "param"
|
||||
Name 27 "val"
|
||||
Name 31 "countArr"
|
||||
Name 41 "origi"
|
||||
Name 43 "atomi"
|
||||
Name 47 "origu"
|
||||
Name 49 "atomu"
|
||||
Name 51 "value"
|
||||
Name 74 "arrX"
|
||||
Name 75 "arrY"
|
||||
Name 76 "arrZ"
|
||||
Decorate 23(counter) Binding 0
|
||||
Decorate 31(countArr) Binding 0
|
||||
Decorate 74(arrX) NoStaticUse
|
||||
Decorate 75(arrY) NoStaticUse
|
||||
Decorate 76(arrZ) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 0
|
||||
8: TypePointer Function 7(int)
|
||||
9: TypeFunction 7(int) 8(ptr)
|
||||
19: TypePointer UniformConstant 7(int)
|
||||
20(counter): 19(ptr) Variable UniformConstant
|
||||
25: 7(int) Constant 4
|
||||
26: TypeArray 7(int) 25
|
||||
27: TypePointer UniformConstant 26
|
||||
28(countArr): 27(ptr) Variable UniformConstant
|
||||
29: TypeInt 32 1
|
||||
30: 29(int) Constant 2
|
||||
37: TypePointer Function 29(int)
|
||||
39: TypePointer WorkgroupLocal 29(int)
|
||||
40(atomi): 39(ptr) Variable WorkgroupLocal
|
||||
42: 29(int) Constant 3
|
||||
45: TypePointer WorkgroupLocal 7(int)
|
||||
46(atomu): 45(ptr) Variable WorkgroupLocal
|
||||
48(value): 19(ptr) Variable UniformConstant
|
||||
52: 7(int) Constant 7
|
||||
60: 29(int) Constant 7
|
||||
66: 7(int) Constant 10
|
||||
69: 7(int) Constant 1
|
||||
70: TypeArray 29(int) 69
|
||||
71: TypePointer PrivateGlobal 70
|
||||
72(arrX): 71(ptr) Variable PrivateGlobal
|
||||
73(arrY): 71(ptr) Variable PrivateGlobal
|
||||
74(arrZ): 71(ptr) Variable PrivateGlobal
|
||||
16: 7(int) Constant 1
|
||||
17: 7(int) Constant 0
|
||||
21: 7(int) Constant 256
|
||||
22: TypePointer UniformConstant 7(int)
|
||||
23(counter): 22(ptr) Variable UniformConstant
|
||||
28: 7(int) Constant 4
|
||||
29: TypeArray 7(int) 28
|
||||
30: TypePointer UniformConstant 29
|
||||
31(countArr): 30(ptr) Variable UniformConstant
|
||||
32: TypeInt 32 1
|
||||
33: 32(int) Constant 2
|
||||
40: TypePointer Function 32(int)
|
||||
42: TypePointer WorkgroupLocal 32(int)
|
||||
43(atomi): 42(ptr) Variable WorkgroupLocal
|
||||
45: 32(int) Constant 3
|
||||
48: TypePointer WorkgroupLocal 7(int)
|
||||
49(atomu): 48(ptr) Variable WorkgroupLocal
|
||||
51(value): 22(ptr) Variable UniformConstant
|
||||
55: 7(int) Constant 7
|
||||
63: 32(int) Constant 7
|
||||
69: 7(int) Constant 10
|
||||
72: TypeArray 32(int) 16
|
||||
73: TypePointer PrivateGlobal 72
|
||||
74(arrX): 73(ptr) Variable PrivateGlobal
|
||||
75(arrY): 73(ptr) Variable PrivateGlobal
|
||||
76(arrZ): 73(ptr) Variable PrivateGlobal
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
21(param): 8(ptr) Variable Function
|
||||
24(val): 8(ptr) Variable Function
|
||||
MemoryBarrier Device AtomicCounterMemory
|
||||
22: 7(int) Load 20(counter)
|
||||
Store 21(param) 22
|
||||
23: 7(int) FunctionCall 11(func(au1;) 21(param)
|
||||
31: 19(ptr) AccessChain 28(countArr) 30
|
||||
32: 7(int) Load 31
|
||||
33: 7(int) AtomicLoad 32 Device None
|
||||
34: 7(int) Load 31
|
||||
Store 24(val) 34
|
||||
35: 7(int) Load 20(counter)
|
||||
36: 7(int) AtomicIDecrement 35 Device None
|
||||
24(param): 8(ptr) Variable Function
|
||||
27(val): 8(ptr) Variable Function
|
||||
MemoryBarrier 16 21
|
||||
25: 7(int) Load 23(counter)
|
||||
Store 24(param) 25
|
||||
26: 7(int) FunctionCall 11(func(au1;) 24(param)
|
||||
34: 22(ptr) AccessChain 31(countArr) 33
|
||||
35: 7(int) Load 34
|
||||
36: 7(int) AtomicLoad 35 16 17
|
||||
37: 7(int) Load 34
|
||||
Store 27(val) 37
|
||||
38: 7(int) Load 23(counter)
|
||||
39: 7(int) AtomicIDecrement 38 16 17
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
@ -97,42 +89,42 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class,
|
||||
11(func(au1;): 7(int) Function None 9
|
||||
10(c): 8(ptr) FunctionParameter
|
||||
12: Label
|
||||
15: 7(int) Load 10(c)
|
||||
16: 7(int) AtomicIIncrement 15 Device None
|
||||
17: 7(int) Load 10(c)
|
||||
ReturnValue 17
|
||||
15: 7(int) Load 10(c)
|
||||
18: 7(int) AtomicIIncrement 15 16 17
|
||||
19: 7(int) Load 10(c)
|
||||
ReturnValue 19
|
||||
FunctionEnd
|
||||
13(atoms(): 2 Function None 3
|
||||
14: Label
|
||||
38(origi): 37(ptr) Variable Function
|
||||
44(origu): 8(ptr) Variable Function
|
||||
41: 29(int) Load 40(atomi)
|
||||
43: 29(int) AtomicIAdd 41 Device None 42
|
||||
Store 38(origi) 43
|
||||
47: 7(int) Load 46(atomu)
|
||||
49: 7(int) Load 48(value)
|
||||
50: 7(int) AtomicAnd 47 Device None 49
|
||||
Store 44(origu) 50
|
||||
51: 7(int) Load 46(atomu)
|
||||
53: 7(int) AtomicOr 51 Device None 52
|
||||
Store 44(origu) 53
|
||||
54: 7(int) Load 46(atomu)
|
||||
55: 7(int) AtomicXor 54 Device None 52
|
||||
Store 44(origu) 55
|
||||
56: 7(int) Load 46(atomu)
|
||||
57: 7(int) Load 48(value)
|
||||
58: 7(int) AtomicIMin 56 Device None 57
|
||||
Store 44(origu) 58
|
||||
59: 29(int) Load 40(atomi)
|
||||
61: 29(int) AtomicIMax 59 Device None 60
|
||||
Store 38(origi) 61
|
||||
62: 29(int) Load 40(atomi)
|
||||
63: 29(int) Load 38(origi)
|
||||
64: 29(int) AtomicExchange 62 Device None 63
|
||||
Store 38(origi) 64
|
||||
65: 7(int) Load 46(atomu)
|
||||
67: 7(int) Load 48(value)
|
||||
68: 7(int) AtomicCompareExchange 65 Device None 66 67
|
||||
Store 44(origu) 68
|
||||
41(origi): 40(ptr) Variable Function
|
||||
47(origu): 8(ptr) Variable Function
|
||||
44: 32(int) Load 43(atomi)
|
||||
46: 32(int) AtomicIAdd 44 16 17 45
|
||||
Store 41(origi) 46
|
||||
50: 7(int) Load 49(atomu)
|
||||
52: 7(int) Load 51(value)
|
||||
53: 7(int) AtomicAnd 50 16 17 52
|
||||
Store 47(origu) 53
|
||||
54: 7(int) Load 49(atomu)
|
||||
56: 7(int) AtomicOr 54 16 17 55
|
||||
Store 47(origu) 56
|
||||
57: 7(int) Load 49(atomu)
|
||||
58: 7(int) AtomicXor 57 16 17 55
|
||||
Store 47(origu) 58
|
||||
59: 7(int) Load 49(atomu)
|
||||
60: 7(int) Load 51(value)
|
||||
61: 7(int) AtomicSMin 59 16 17 60
|
||||
Store 47(origu) 61
|
||||
62: 32(int) Load 43(atomi)
|
||||
64: 32(int) AtomicSMax 62 16 17 63
|
||||
Store 41(origi) 64
|
||||
65: 32(int) Load 43(atomi)
|
||||
66: 32(int) Load 41(origi)
|
||||
67: 32(int) AtomicExchange 65 16 17 66
|
||||
Store 41(origi) 67
|
||||
68: 7(int) Load 49(atomu)
|
||||
70: 7(int) Load 51(value)
|
||||
71: 7(int) AtomicCompareExchange 68 16 17 69 70
|
||||
Store 47(origu) 71
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
77
Test/baseResults/spv.conditionalDiscard.frag.out
Normal file → Executable file
77
Test/baseResults/spv.conditionalDiscard.frag.out
Normal file → Executable file
@ -5,56 +5,59 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 36
|
||||
// Id's are bound by 37
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "v"
|
||||
Name 13 "tex"
|
||||
Name 17 "coord"
|
||||
Name 34 "gl_FragColor"
|
||||
Decorate 17(coord) Smooth
|
||||
Decorate 34(gl_FragColor) BuiltIn FragColor
|
||||
Name 14 "tex"
|
||||
Name 18 "coord"
|
||||
Name 35 "gl_FragColor"
|
||||
Decorate 18(coord) Smooth
|
||||
Decorate 35(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypeSampler7(float) 2D filter+texture
|
||||
12: TypePointer UniformConstant 11
|
||||
13(tex): 12(ptr) Variable UniformConstant
|
||||
15: TypeVector 7(float) 2
|
||||
16: TypePointer Input 15(fvec2)
|
||||
17(coord): 16(ptr) Variable Input
|
||||
21: 7(float) Constant 1036831949
|
||||
22: 7(float) Constant 1045220557
|
||||
23: 7(float) Constant 1050253722
|
||||
24: 7(float) Constant 1053609165
|
||||
25: 8(fvec4) ConstantComposite 21 22 23 24
|
||||
26: TypeBool
|
||||
27: TypeVector 26(bool) 4
|
||||
33: TypePointer Output 8(fvec4)
|
||||
34(gl_FragColor): 33(ptr) Variable Output
|
||||
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||
12: TypeSampledImage 11
|
||||
13: TypePointer UniformConstant 12
|
||||
14(tex): 13(ptr) Variable UniformConstant
|
||||
16: TypeVector 7(float) 2
|
||||
17: TypePointer Input 16(fvec2)
|
||||
18(coord): 17(ptr) Variable Input
|
||||
22: 7(float) Constant 1036831949
|
||||
23: 7(float) Constant 1045220557
|
||||
24: 7(float) Constant 1050253722
|
||||
25: 7(float) Constant 1053609165
|
||||
26: 8(fvec4) ConstantComposite 22 23 24 25
|
||||
27: TypeBool
|
||||
28: TypeVector 27(bool) 4
|
||||
34: TypePointer Output 8(fvec4)
|
||||
35(gl_FragColor): 34(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(v): 9(ptr) Variable Function
|
||||
14: 11 Load 13(tex)
|
||||
18: 15(fvec2) Load 17(coord)
|
||||
19: 8(fvec4) TextureSample 14 18
|
||||
Store 10(v) 19
|
||||
20: 8(fvec4) Load 10(v)
|
||||
28: 27(bvec4) FOrdEqual 20 25
|
||||
29: 26(bool) All 28
|
||||
SelectionMerge 31 None
|
||||
BranchConditional 29 30 31
|
||||
30: Label
|
||||
10(v): 9(ptr) Variable Function
|
||||
15: 12 Load 14(tex)
|
||||
19: 16(fvec2) Load 18(coord)
|
||||
20: 8(fvec4) ImageSampleImplicitLod 15 19
|
||||
Store 10(v) 20
|
||||
21: 8(fvec4) Load 10(v)
|
||||
29: 28(bvec4) FOrdEqual 21 26
|
||||
30: 27(bool) All 29
|
||||
SelectionMerge 32 None
|
||||
BranchConditional 30 31 32
|
||||
31: Label
|
||||
Kill
|
||||
31: Label
|
||||
35: 8(fvec4) Load 10(v)
|
||||
Store 34(gl_FragColor) 35
|
||||
32: Label
|
||||
36: 8(fvec4) Load 10(v)
|
||||
Store 35(gl_FragColor) 36
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
494
Test/baseResults/spv.conversion.frag.out
Normal file → Executable file
494
Test/baseResults/spv.conversion.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 444
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "b"
|
||||
Name 12 "u_i"
|
||||
@ -51,54 +53,54 @@ Linked fragment stage:
|
||||
Name 439 "i_f2"
|
||||
Name 441 "i_f3"
|
||||
Name 443 "i_f4"
|
||||
Decorate 40(i_i) Flat
|
||||
Decorate 54(i_f) Smooth
|
||||
Decorate 158(i_i4) Flat
|
||||
Decorate 40(i_i) Flat
|
||||
Decorate 54(i_f) Smooth
|
||||
Decorate 158(i_i4) Flat
|
||||
Decorate 313(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 417(u_b) NoStaticUse
|
||||
Decorate 419(u_b2) NoStaticUse
|
||||
Decorate 421(u_b3) NoStaticUse
|
||||
Decorate 423(u_b4) NoStaticUse
|
||||
Decorate 425(u_i2) NoStaticUse
|
||||
Decorate 427(u_i3) NoStaticUse
|
||||
Decorate 429(u_i4) NoStaticUse
|
||||
Decorate 430(i_b) NoStaticUse
|
||||
Decorate 431(i_b2) NoStaticUse
|
||||
Decorate 432(i_b3) NoStaticUse
|
||||
Decorate 433(i_b4) NoStaticUse
|
||||
Decorate 435(i_i2) Flat
|
||||
Decorate 435(i_i2) NoStaticUse
|
||||
Decorate 437(i_i3) Flat
|
||||
Decorate 437(i_i3) NoStaticUse
|
||||
Decorate 439(i_f2) Smooth
|
||||
Decorate 439(i_f2) NoStaticUse
|
||||
Decorate 441(i_f3) Smooth
|
||||
Decorate 441(i_f3) NoStaticUse
|
||||
Decorate 443(i_f4) Smooth
|
||||
Decorate 443(i_f4) NoStaticUse
|
||||
Decorate 417(u_b) NoStaticUse
|
||||
Decorate 419(u_b2) NoStaticUse
|
||||
Decorate 421(u_b3) NoStaticUse
|
||||
Decorate 423(u_b4) NoStaticUse
|
||||
Decorate 425(u_i2) NoStaticUse
|
||||
Decorate 427(u_i3) NoStaticUse
|
||||
Decorate 429(u_i4) NoStaticUse
|
||||
Decorate 430(i_b) NoStaticUse
|
||||
Decorate 431(i_b2) NoStaticUse
|
||||
Decorate 432(i_b3) NoStaticUse
|
||||
Decorate 433(i_b4) NoStaticUse
|
||||
Decorate 435(i_i2) Flat
|
||||
Decorate 435(i_i2) NoStaticUse
|
||||
Decorate 437(i_i3) Flat
|
||||
Decorate 437(i_i3) NoStaticUse
|
||||
Decorate 439(i_f2) Smooth
|
||||
Decorate 439(i_f2) NoStaticUse
|
||||
Decorate 441(i_f3) Smooth
|
||||
Decorate 441(i_f3) NoStaticUse
|
||||
Decorate 443(i_f4) Smooth
|
||||
Decorate 443(i_f4) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeBool
|
||||
8: TypePointer Function 7(bool)
|
||||
10: TypeInt 32 1
|
||||
11: TypePointer UniformConstant 10(int)
|
||||
12(u_i): 11(ptr) Variable UniformConstant
|
||||
12(u_i): 11(ptr) Variable UniformConstant
|
||||
14: TypeInt 32 0
|
||||
15: 14(int) Constant 0
|
||||
17: TypeFloat 32
|
||||
18: TypePointer UniformConstant 17(float)
|
||||
19(u_f): 18(ptr) Variable UniformConstant
|
||||
19(u_f): 18(ptr) Variable UniformConstant
|
||||
21: 17(float) Constant 0
|
||||
24: TypeVector 7(bool) 2
|
||||
25: TypePointer Function 24(bvec2)
|
||||
32: TypeVector 7(bool) 3
|
||||
33: TypePointer Function 32(bvec3)
|
||||
39: TypePointer Input 10(int)
|
||||
40(i_i): 39(ptr) Variable Input
|
||||
40(i_i): 39(ptr) Variable Input
|
||||
44: TypeVector 7(bool) 4
|
||||
45: TypePointer Function 44(bvec4)
|
||||
53: TypePointer Input 17(float)
|
||||
54(i_f): 53(ptr) Variable Input
|
||||
54(i_f): 53(ptr) Variable Input
|
||||
58: TypePointer Function 10(int)
|
||||
63: 10(int) Constant 0
|
||||
64: 10(int) Constant 1
|
||||
@ -106,21 +108,21 @@ Linked fragment stage:
|
||||
68: TypePointer Function 67(ivec2)
|
||||
70: TypeVector 17(float) 2
|
||||
71: TypePointer UniformConstant 70(fvec2)
|
||||
72(u_f2): 71(ptr) Variable UniformConstant
|
||||
72(u_f2): 71(ptr) Variable UniformConstant
|
||||
76: 67(ivec2) ConstantComposite 63 63
|
||||
77: 67(ivec2) ConstantComposite 64 64
|
||||
80: TypeVector 10(int) 3
|
||||
81: TypePointer Function 80(ivec3)
|
||||
83: TypeVector 17(float) 3
|
||||
84: TypePointer UniformConstant 83(fvec3)
|
||||
85(u_f3): 84(ptr) Variable UniformConstant
|
||||
85(u_f3): 84(ptr) Variable UniformConstant
|
||||
89: 80(ivec3) ConstantComposite 63 63 63
|
||||
90: 80(ivec3) ConstantComposite 64 64 64
|
||||
93: TypeVector 10(int) 4
|
||||
94: TypePointer Function 93(ivec4)
|
||||
96: TypeVector 17(float) 4
|
||||
97: TypePointer UniformConstant 96(fvec4)
|
||||
98(u_f4): 97(ptr) Variable UniformConstant
|
||||
98(u_f4): 97(ptr) Variable UniformConstant
|
||||
102: 93(ivec4) ConstantComposite 63 63 63 63
|
||||
103: 93(ivec4) ConstantComposite 64 64 64 64
|
||||
106: TypePointer Function 17(float)
|
||||
@ -135,442 +137,442 @@ Linked fragment stage:
|
||||
151: 96(fvec4) ConstantComposite 21 21 21 21
|
||||
152: 96(fvec4) ConstantComposite 125 125 125 125
|
||||
157: TypePointer Input 93(ivec4)
|
||||
158(i_i4): 157(ptr) Variable Input
|
||||
158(i_i4): 157(ptr) Variable Input
|
||||
160: TypeVector 14(int) 4
|
||||
161: 160(ivec4) ConstantComposite 15 15 15 15
|
||||
312: TypePointer Output 96(fvec4)
|
||||
313(gl_FragColor): 312(ptr) Variable Output
|
||||
313(gl_FragColor): 312(ptr) Variable Output
|
||||
416: TypePointer UniformConstant 7(bool)
|
||||
417(u_b): 416(ptr) Variable UniformConstant
|
||||
417(u_b): 416(ptr) Variable UniformConstant
|
||||
418: TypePointer UniformConstant 24(bvec2)
|
||||
419(u_b2): 418(ptr) Variable UniformConstant
|
||||
419(u_b2): 418(ptr) Variable UniformConstant
|
||||
420: TypePointer UniformConstant 32(bvec3)
|
||||
421(u_b3): 420(ptr) Variable UniformConstant
|
||||
421(u_b3): 420(ptr) Variable UniformConstant
|
||||
422: TypePointer UniformConstant 44(bvec4)
|
||||
423(u_b4): 422(ptr) Variable UniformConstant
|
||||
423(u_b4): 422(ptr) Variable UniformConstant
|
||||
424: TypePointer UniformConstant 67(ivec2)
|
||||
425(u_i2): 424(ptr) Variable UniformConstant
|
||||
425(u_i2): 424(ptr) Variable UniformConstant
|
||||
426: TypePointer UniformConstant 80(ivec3)
|
||||
427(u_i3): 426(ptr) Variable UniformConstant
|
||||
427(u_i3): 426(ptr) Variable UniformConstant
|
||||
428: TypePointer UniformConstant 93(ivec4)
|
||||
429(u_i4): 428(ptr) Variable UniformConstant
|
||||
430(i_b): 416(ptr) Variable UniformConstant
|
||||
431(i_b2): 418(ptr) Variable UniformConstant
|
||||
432(i_b3): 420(ptr) Variable UniformConstant
|
||||
433(i_b4): 422(ptr) Variable UniformConstant
|
||||
429(u_i4): 428(ptr) Variable UniformConstant
|
||||
430(i_b): 416(ptr) Variable UniformConstant
|
||||
431(i_b2): 418(ptr) Variable UniformConstant
|
||||
432(i_b3): 420(ptr) Variable UniformConstant
|
||||
433(i_b4): 422(ptr) Variable UniformConstant
|
||||
434: TypePointer Input 67(ivec2)
|
||||
435(i_i2): 434(ptr) Variable Input
|
||||
435(i_i2): 434(ptr) Variable Input
|
||||
436: TypePointer Input 80(ivec3)
|
||||
437(i_i3): 436(ptr) Variable Input
|
||||
437(i_i3): 436(ptr) Variable Input
|
||||
438: TypePointer Input 70(fvec2)
|
||||
439(i_f2): 438(ptr) Variable Input
|
||||
439(i_f2): 438(ptr) Variable Input
|
||||
440: TypePointer Input 83(fvec3)
|
||||
441(i_f3): 440(ptr) Variable Input
|
||||
441(i_f3): 440(ptr) Variable Input
|
||||
442: TypePointer Input 96(fvec4)
|
||||
443(i_f4): 442(ptr) Variable Input
|
||||
443(i_f4): 442(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(b): 8(ptr) Variable Function
|
||||
26(b2): 25(ptr) Variable Function
|
||||
34(b3): 33(ptr) Variable Function
|
||||
46(b4): 45(ptr) Variable Function
|
||||
59(i): 58(ptr) Variable Function
|
||||
69(i2): 68(ptr) Variable Function
|
||||
82(i3): 81(ptr) Variable Function
|
||||
95(i4): 94(ptr) Variable Function
|
||||
107(f): 106(ptr) Variable Function
|
||||
111(f2): 110(ptr) Variable Function
|
||||
115(f3): 114(ptr) Variable Function
|
||||
119(f4): 118(ptr) Variable Function
|
||||
289: 106(ptr) Variable Function
|
||||
299: 106(ptr) Variable Function
|
||||
314: 118(ptr) Variable Function
|
||||
406(cv2): 94(ptr) Variable Function
|
||||
407(cv5): 45(ptr) Variable Function
|
||||
13: 10(int) Load 12(u_i)
|
||||
9(b): 8(ptr) Variable Function
|
||||
26(b2): 25(ptr) Variable Function
|
||||
34(b3): 33(ptr) Variable Function
|
||||
46(b4): 45(ptr) Variable Function
|
||||
59(i): 58(ptr) Variable Function
|
||||
69(i2): 68(ptr) Variable Function
|
||||
82(i3): 81(ptr) Variable Function
|
||||
95(i4): 94(ptr) Variable Function
|
||||
107(f): 106(ptr) Variable Function
|
||||
111(f2): 110(ptr) Variable Function
|
||||
115(f3): 114(ptr) Variable Function
|
||||
119(f4): 118(ptr) Variable Function
|
||||
289: 106(ptr) Variable Function
|
||||
299: 106(ptr) Variable Function
|
||||
314: 118(ptr) Variable Function
|
||||
406(cv2): 94(ptr) Variable Function
|
||||
407(cv5): 45(ptr) Variable Function
|
||||
13: 10(int) Load 12(u_i)
|
||||
16: 7(bool) INotEqual 13 15
|
||||
20: 17(float) Load 19(u_f)
|
||||
20: 17(float) Load 19(u_f)
|
||||
22: 7(bool) FOrdNotEqual 20 21
|
||||
23: 7(bool) LogicalXor 16 22
|
||||
Store 9(b) 23
|
||||
27: 10(int) Load 12(u_i)
|
||||
23: 7(bool) LogicalNotEqual 16 22
|
||||
Store 9(b) 23
|
||||
27: 10(int) Load 12(u_i)
|
||||
28: 7(bool) INotEqual 27 15
|
||||
29: 17(float) Load 19(u_f)
|
||||
29: 17(float) Load 19(u_f)
|
||||
30: 7(bool) FOrdNotEqual 29 21
|
||||
31: 24(bvec2) CompositeConstruct 28 30
|
||||
Store 26(b2) 31
|
||||
35: 10(int) Load 12(u_i)
|
||||
Store 26(b2) 31
|
||||
35: 10(int) Load 12(u_i)
|
||||
36: 7(bool) INotEqual 35 15
|
||||
37: 17(float) Load 19(u_f)
|
||||
37: 17(float) Load 19(u_f)
|
||||
38: 7(bool) FOrdNotEqual 37 21
|
||||
41: 10(int) Load 40(i_i)
|
||||
41: 10(int) Load 40(i_i)
|
||||
42: 7(bool) INotEqual 41 15
|
||||
43: 32(bvec3) CompositeConstruct 36 38 42
|
||||
Store 34(b3) 43
|
||||
47: 10(int) Load 12(u_i)
|
||||
Store 34(b3) 43
|
||||
47: 10(int) Load 12(u_i)
|
||||
48: 7(bool) INotEqual 47 15
|
||||
49: 17(float) Load 19(u_f)
|
||||
49: 17(float) Load 19(u_f)
|
||||
50: 7(bool) FOrdNotEqual 49 21
|
||||
51: 10(int) Load 40(i_i)
|
||||
51: 10(int) Load 40(i_i)
|
||||
52: 7(bool) INotEqual 51 15
|
||||
55: 17(float) Load 54(i_f)
|
||||
55: 17(float) Load 54(i_f)
|
||||
56: 7(bool) FOrdNotEqual 55 21
|
||||
57: 44(bvec4) CompositeConstruct 48 50 52 56
|
||||
Store 46(b4) 57
|
||||
60: 17(float) Load 19(u_f)
|
||||
Store 46(b4) 57
|
||||
60: 17(float) Load 19(u_f)
|
||||
61: 10(int) ConvertFToS 60
|
||||
62: 7(bool) Load 9(b)
|
||||
62: 7(bool) Load 9(b)
|
||||
65: 10(int) Select 62 64 63
|
||||
66: 10(int) IAdd 61 65
|
||||
Store 59(i) 66
|
||||
73: 70(fvec2) Load 72(u_f2)
|
||||
Store 59(i) 66
|
||||
73: 70(fvec2) Load 72(u_f2)
|
||||
74: 67(ivec2) ConvertFToS 73
|
||||
75: 24(bvec2) Load 26(b2)
|
||||
75: 24(bvec2) Load 26(b2)
|
||||
78: 67(ivec2) Select 75 77 76
|
||||
79: 67(ivec2) IAdd 74 78
|
||||
Store 69(i2) 79
|
||||
86: 83(fvec3) Load 85(u_f3)
|
||||
Store 69(i2) 79
|
||||
86: 83(fvec3) Load 85(u_f3)
|
||||
87: 80(ivec3) ConvertFToS 86
|
||||
88: 32(bvec3) Load 34(b3)
|
||||
88: 32(bvec3) Load 34(b3)
|
||||
91: 80(ivec3) Select 88 90 89
|
||||
92: 80(ivec3) IAdd 87 91
|
||||
Store 82(i3) 92
|
||||
99: 96(fvec4) Load 98(u_f4)
|
||||
Store 82(i3) 92
|
||||
99: 96(fvec4) Load 98(u_f4)
|
||||
100: 93(ivec4) ConvertFToS 99
|
||||
101: 44(bvec4) Load 46(b4)
|
||||
101: 44(bvec4) Load 46(b4)
|
||||
104: 93(ivec4) Select 101 103 102
|
||||
105: 93(ivec4) IAdd 100 104
|
||||
Store 95(i4) 105
|
||||
108: 10(int) Load 59(i)
|
||||
Store 95(i4) 105
|
||||
108: 10(int) Load 59(i)
|
||||
109: 17(float) ConvertSToF 108
|
||||
Store 107(f) 109
|
||||
112: 67(ivec2) Load 69(i2)
|
||||
Store 107(f) 109
|
||||
112: 67(ivec2) Load 69(i2)
|
||||
113: 70(fvec2) ConvertSToF 112
|
||||
Store 111(f2) 113
|
||||
116: 80(ivec3) Load 82(i3)
|
||||
Store 111(f2) 113
|
||||
116: 80(ivec3) Load 82(i3)
|
||||
117: 83(fvec3) ConvertSToF 116
|
||||
Store 115(f3) 117
|
||||
120: 93(ivec4) Load 95(i4)
|
||||
Store 115(f3) 117
|
||||
120: 93(ivec4) Load 95(i4)
|
||||
121: 96(fvec4) ConvertSToF 120
|
||||
Store 119(f4) 121
|
||||
122: 10(int) Load 59(i)
|
||||
Store 119(f4) 121
|
||||
122: 10(int) Load 59(i)
|
||||
123: 17(float) ConvertSToF 122
|
||||
124: 7(bool) Load 9(b)
|
||||
124: 7(bool) Load 9(b)
|
||||
126: 17(float) Select 124 125 21
|
||||
127: 17(float) FAdd 123 126
|
||||
128: 17(float) Load 107(f)
|
||||
128: 17(float) Load 107(f)
|
||||
129: 17(float) FAdd 128 127
|
||||
Store 107(f) 129
|
||||
130: 67(ivec2) Load 69(i2)
|
||||
Store 107(f) 129
|
||||
130: 67(ivec2) Load 69(i2)
|
||||
131: 70(fvec2) ConvertSToF 130
|
||||
132: 24(bvec2) Load 26(b2)
|
||||
132: 24(bvec2) Load 26(b2)
|
||||
135: 70(fvec2) Select 132 134 133
|
||||
136: 70(fvec2) FAdd 131 135
|
||||
137: 70(fvec2) Load 111(f2)
|
||||
137: 70(fvec2) Load 111(f2)
|
||||
138: 70(fvec2) FSub 137 136
|
||||
Store 111(f2) 138
|
||||
139: 80(ivec3) Load 82(i3)
|
||||
Store 111(f2) 138
|
||||
139: 80(ivec3) Load 82(i3)
|
||||
140: 83(fvec3) ConvertSToF 139
|
||||
141: 32(bvec3) Load 34(b3)
|
||||
141: 32(bvec3) Load 34(b3)
|
||||
144: 83(fvec3) Select 141 143 142
|
||||
145: 83(fvec3) FAdd 140 144
|
||||
146: 83(fvec3) Load 115(f3)
|
||||
146: 83(fvec3) Load 115(f3)
|
||||
147: 83(fvec3) FDiv 146 145
|
||||
Store 115(f3) 147
|
||||
148: 93(ivec4) Load 95(i4)
|
||||
Store 115(f3) 147
|
||||
148: 93(ivec4) Load 95(i4)
|
||||
149: 96(fvec4) ConvertSToF 148
|
||||
150: 44(bvec4) Load 46(b4)
|
||||
150: 44(bvec4) Load 46(b4)
|
||||
153: 96(fvec4) Select 150 152 151
|
||||
154: 96(fvec4) FAdd 149 153
|
||||
155: 96(fvec4) Load 119(f4)
|
||||
155: 96(fvec4) Load 119(f4)
|
||||
156: 96(fvec4) FAdd 155 154
|
||||
Store 119(f4) 156
|
||||
159: 93(ivec4) Load 158(i_i4)
|
||||
Store 119(f4) 156
|
||||
159: 93(ivec4) Load 158(i_i4)
|
||||
162: 44(bvec4) INotEqual 159 161
|
||||
163: 96(fvec4) Select 162 152 151
|
||||
164: 96(fvec4) Load 119(f4)
|
||||
164: 96(fvec4) Load 119(f4)
|
||||
165: 96(fvec4) FAdd 164 163
|
||||
Store 119(f4) 165
|
||||
166: 96(fvec4) Load 98(u_f4)
|
||||
Store 119(f4) 165
|
||||
166: 96(fvec4) Load 98(u_f4)
|
||||
167: 44(bvec4) FOrdNotEqual 166 151
|
||||
168: 96(fvec4) Select 167 152 151
|
||||
169: 96(fvec4) Load 119(f4)
|
||||
169: 96(fvec4) Load 119(f4)
|
||||
170: 96(fvec4) FAdd 169 168
|
||||
Store 119(f4) 170
|
||||
171: 17(float) Load 107(f)
|
||||
172: 10(int) Load 59(i)
|
||||
Store 119(f4) 170
|
||||
171: 17(float) Load 107(f)
|
||||
172: 10(int) Load 59(i)
|
||||
173: 17(float) ConvertSToF 172
|
||||
174: 17(float) FSub 171 173
|
||||
175: 17(float) Load 107(f)
|
||||
175: 17(float) Load 107(f)
|
||||
176: 17(float) FAdd 175 174
|
||||
Store 107(f) 176
|
||||
177: 17(float) Load 107(f)
|
||||
178: 10(int) Load 59(i)
|
||||
Store 107(f) 176
|
||||
177: 17(float) Load 107(f)
|
||||
178: 10(int) Load 59(i)
|
||||
179: 17(float) ConvertSToF 178
|
||||
180: 70(fvec2) CompositeConstruct 177 179
|
||||
181: 67(ivec2) Load 69(i2)
|
||||
181: 67(ivec2) Load 69(i2)
|
||||
182: 70(fvec2) ConvertSToF 181
|
||||
183: 70(fvec2) FAdd 180 182
|
||||
184: 70(fvec2) Load 111(f2)
|
||||
184: 70(fvec2) Load 111(f2)
|
||||
185: 70(fvec2) FAdd 184 183
|
||||
Store 111(f2) 185
|
||||
186: 80(ivec3) Load 82(i3)
|
||||
Store 111(f2) 185
|
||||
186: 80(ivec3) Load 82(i3)
|
||||
187: 83(fvec3) ConvertSToF 186
|
||||
188: 17(float) Load 107(f)
|
||||
189: 10(int) Load 59(i)
|
||||
188: 17(float) Load 107(f)
|
||||
189: 10(int) Load 59(i)
|
||||
190: 17(float) ConvertSToF 189
|
||||
191: 17(float) Load 107(f)
|
||||
191: 17(float) Load 107(f)
|
||||
192: 83(fvec3) CompositeConstruct 188 190 191
|
||||
193: 83(fvec3) FAdd 187 192
|
||||
194: 83(fvec3) Load 115(f3)
|
||||
194: 83(fvec3) Load 115(f3)
|
||||
195: 83(fvec3) FAdd 194 193
|
||||
Store 115(f3) 195
|
||||
196: 7(bool) Load 9(b)
|
||||
Store 115(f3) 195
|
||||
196: 7(bool) Load 9(b)
|
||||
197: 17(float) Select 196 125 21
|
||||
198: 10(int) Load 59(i)
|
||||
198: 10(int) Load 59(i)
|
||||
199: 17(float) ConvertSToF 198
|
||||
200: 17(float) Load 107(f)
|
||||
201: 10(int) Load 59(i)
|
||||
200: 17(float) Load 107(f)
|
||||
201: 10(int) Load 59(i)
|
||||
202: 17(float) ConvertSToF 201
|
||||
203: 96(fvec4) CompositeConstruct 197 199 200 202
|
||||
204: 93(ivec4) Load 95(i4)
|
||||
204: 93(ivec4) Load 95(i4)
|
||||
205: 96(fvec4) ConvertSToF 204
|
||||
206: 96(fvec4) FAdd 203 205
|
||||
207: 96(fvec4) Load 119(f4)
|
||||
207: 96(fvec4) Load 119(f4)
|
||||
208: 96(fvec4) FAdd 207 206
|
||||
Store 119(f4) 208
|
||||
209: 17(float) Load 107(f)
|
||||
210: 10(int) Load 59(i)
|
||||
Store 119(f4) 208
|
||||
209: 17(float) Load 107(f)
|
||||
210: 10(int) Load 59(i)
|
||||
211: 17(float) ConvertSToF 210
|
||||
212: 70(fvec2) CompositeConstruct 209 211
|
||||
213: 10(int) Load 59(i)
|
||||
213: 10(int) Load 59(i)
|
||||
214: 17(float) ConvertSToF 213
|
||||
215: 70(fvec2) VectorTimesScalar 212 214
|
||||
216: 70(fvec2) Load 111(f2)
|
||||
216: 70(fvec2) Load 111(f2)
|
||||
217: 70(fvec2) FAdd 216 215
|
||||
Store 111(f2) 217
|
||||
218: 17(float) Load 107(f)
|
||||
219: 10(int) Load 59(i)
|
||||
Store 111(f2) 217
|
||||
218: 17(float) Load 107(f)
|
||||
219: 10(int) Load 59(i)
|
||||
220: 17(float) ConvertSToF 219
|
||||
221: 17(float) Load 107(f)
|
||||
221: 17(float) Load 107(f)
|
||||
222: 83(fvec3) CompositeConstruct 218 220 221
|
||||
223: 10(int) Load 59(i)
|
||||
223: 10(int) Load 59(i)
|
||||
224: 17(float) ConvertSToF 223
|
||||
225: 83(fvec3) CompositeConstruct 224 224 224
|
||||
226: 83(fvec3) FAdd 222 225
|
||||
227: 83(fvec3) Load 115(f3)
|
||||
227: 83(fvec3) Load 115(f3)
|
||||
228: 83(fvec3) FAdd 227 226
|
||||
Store 115(f3) 228
|
||||
229: 10(int) Load 59(i)
|
||||
Store 115(f3) 228
|
||||
229: 10(int) Load 59(i)
|
||||
230: 17(float) ConvertSToF 229
|
||||
231: 7(bool) Load 9(b)
|
||||
231: 7(bool) Load 9(b)
|
||||
232: 17(float) Select 231 125 21
|
||||
233: 10(int) Load 59(i)
|
||||
233: 10(int) Load 59(i)
|
||||
234: 17(float) ConvertSToF 233
|
||||
235: 17(float) Load 107(f)
|
||||
236: 10(int) Load 59(i)
|
||||
235: 17(float) Load 107(f)
|
||||
236: 10(int) Load 59(i)
|
||||
237: 17(float) ConvertSToF 236
|
||||
238: 96(fvec4) CompositeConstruct 232 234 235 237
|
||||
239: 96(fvec4) CompositeConstruct 230 230 230 230
|
||||
240: 96(fvec4) FSub 239 238
|
||||
241: 96(fvec4) Load 119(f4)
|
||||
241: 96(fvec4) Load 119(f4)
|
||||
242: 96(fvec4) FAdd 241 240
|
||||
Store 119(f4) 242
|
||||
243: 17(float) Load 107(f)
|
||||
Store 119(f4) 242
|
||||
243: 17(float) Load 107(f)
|
||||
244: 10(int) ConvertFToS 243
|
||||
245: 10(int) Load 59(i)
|
||||
245: 10(int) Load 59(i)
|
||||
246: 67(ivec2) CompositeConstruct 244 245
|
||||
247: 67(ivec2) Load 69(i2)
|
||||
247: 67(ivec2) Load 69(i2)
|
||||
248: 67(ivec2) IAdd 247 246
|
||||
Store 69(i2) 248
|
||||
249: 17(float) Load 107(f)
|
||||
Store 69(i2) 248
|
||||
249: 17(float) Load 107(f)
|
||||
250: 10(int) ConvertFToS 249
|
||||
251: 10(int) Load 59(i)
|
||||
252: 17(float) Load 107(f)
|
||||
251: 10(int) Load 59(i)
|
||||
252: 17(float) Load 107(f)
|
||||
253: 10(int) ConvertFToS 252
|
||||
254: 80(ivec3) CompositeConstruct 250 251 253
|
||||
255: 80(ivec3) Load 82(i3)
|
||||
255: 80(ivec3) Load 82(i3)
|
||||
256: 80(ivec3) IAdd 255 254
|
||||
Store 82(i3) 256
|
||||
257: 7(bool) Load 9(b)
|
||||
Store 82(i3) 256
|
||||
257: 7(bool) Load 9(b)
|
||||
258: 10(int) Select 257 64 63
|
||||
259: 10(int) Load 59(i)
|
||||
260: 17(float) Load 107(f)
|
||||
259: 10(int) Load 59(i)
|
||||
260: 17(float) Load 107(f)
|
||||
261: 10(int) ConvertFToS 260
|
||||
262: 10(int) Load 59(i)
|
||||
262: 10(int) Load 59(i)
|
||||
263: 93(ivec4) CompositeConstruct 258 259 261 262
|
||||
264: 93(ivec4) Load 95(i4)
|
||||
264: 93(ivec4) Load 95(i4)
|
||||
265: 93(ivec4) IAdd 264 263
|
||||
Store 95(i4) 265
|
||||
266: 17(float) Load 107(f)
|
||||
267: 10(int) Load 59(i)
|
||||
Store 95(i4) 265
|
||||
266: 17(float) Load 107(f)
|
||||
267: 10(int) Load 59(i)
|
||||
268: 17(float) ConvertSToF 267
|
||||
269: 7(bool) FOrdLessThan 266 268
|
||||
270: 10(int) Load 59(i)
|
||||
270: 10(int) Load 59(i)
|
||||
271: 17(float) ConvertSToF 270
|
||||
272: 17(float) Load 107(f)
|
||||
272: 17(float) Load 107(f)
|
||||
273: 7(bool) FOrdLessThan 271 272
|
||||
274: 7(bool) LogicalOr 269 273
|
||||
275: 70(fvec2) Load 111(f2)
|
||||
276: 67(ivec2) Load 69(i2)
|
||||
275: 70(fvec2) Load 111(f2)
|
||||
276: 67(ivec2) Load 69(i2)
|
||||
277: 70(fvec2) ConvertSToF 276
|
||||
278: 24(bvec2) FOrdEqual 275 277
|
||||
279: 7(bool) All 278
|
||||
280: 7(bool) LogicalOr 274 279
|
||||
281: 80(ivec3) Load 82(i3)
|
||||
281: 80(ivec3) Load 82(i3)
|
||||
282: 83(fvec3) ConvertSToF 281
|
||||
283: 83(fvec3) Load 115(f3)
|
||||
283: 83(fvec3) Load 115(f3)
|
||||
284: 32(bvec3) FOrdNotEqual 282 283
|
||||
285: 7(bool) Any 284
|
||||
286: 7(bool) LogicalOr 280 285
|
||||
SelectionMerge 288 None
|
||||
BranchConditional 286 287 288
|
||||
BranchConditional 286 287 288
|
||||
287: Label
|
||||
290: 7(bool) Load 9(b)
|
||||
290: 7(bool) Load 9(b)
|
||||
SelectionMerge 292 None
|
||||
BranchConditional 290 291 295
|
||||
BranchConditional 290 291 295
|
||||
291: Label
|
||||
293: 10(int) Load 59(i)
|
||||
293: 10(int) Load 59(i)
|
||||
294: 17(float) ConvertSToF 293
|
||||
Store 289 294
|
||||
Store 289 294
|
||||
Branch 292
|
||||
295: Label
|
||||
296: 70(fvec2) Load 111(f2)
|
||||
296: 70(fvec2) Load 111(f2)
|
||||
297: 17(float) CompositeExtract 296 0
|
||||
Store 289 297
|
||||
Store 289 297
|
||||
Branch 292
|
||||
292: Label
|
||||
298: 17(float) Load 289
|
||||
300: 24(bvec2) Load 26(b2)
|
||||
298: 17(float) Load 289
|
||||
300: 24(bvec2) Load 26(b2)
|
||||
301: 7(bool) CompositeExtract 300 0
|
||||
SelectionMerge 303 None
|
||||
BranchConditional 301 302 306
|
||||
BranchConditional 301 302 306
|
||||
302: Label
|
||||
304: 83(fvec3) Load 115(f3)
|
||||
304: 83(fvec3) Load 115(f3)
|
||||
305: 17(float) CompositeExtract 304 0
|
||||
Store 299 305
|
||||
Store 299 305
|
||||
Branch 303
|
||||
306: Label
|
||||
307: 67(ivec2) Load 69(i2)
|
||||
307: 67(ivec2) Load 69(i2)
|
||||
308: 10(int) CompositeExtract 307 1
|
||||
309: 17(float) ConvertSToF 308
|
||||
Store 299 309
|
||||
Store 299 309
|
||||
Branch 303
|
||||
303: Label
|
||||
310: 17(float) Load 299
|
||||
310: 17(float) Load 299
|
||||
311: 17(float) FAdd 298 310
|
||||
Store 107(f) 311
|
||||
Store 107(f) 311
|
||||
Branch 288
|
||||
288: Label
|
||||
315: 7(bool) Load 9(b)
|
||||
316: 24(bvec2) Load 26(b2)
|
||||
315: 7(bool) Load 9(b)
|
||||
316: 24(bvec2) Load 26(b2)
|
||||
317: 7(bool) CompositeExtract 316 0
|
||||
318: 7(bool) LogicalOr 315 317
|
||||
319: 24(bvec2) Load 26(b2)
|
||||
319: 24(bvec2) Load 26(b2)
|
||||
320: 7(bool) CompositeExtract 319 1
|
||||
321: 7(bool) LogicalOr 318 320
|
||||
322: 32(bvec3) Load 34(b3)
|
||||
322: 32(bvec3) Load 34(b3)
|
||||
323: 7(bool) CompositeExtract 322 0
|
||||
324: 7(bool) LogicalOr 321 323
|
||||
325: 32(bvec3) Load 34(b3)
|
||||
325: 32(bvec3) Load 34(b3)
|
||||
326: 7(bool) CompositeExtract 325 1
|
||||
327: 7(bool) LogicalOr 324 326
|
||||
328: 32(bvec3) Load 34(b3)
|
||||
328: 32(bvec3) Load 34(b3)
|
||||
329: 7(bool) CompositeExtract 328 2
|
||||
330: 7(bool) LogicalOr 327 329
|
||||
331: 44(bvec4) Load 46(b4)
|
||||
331: 44(bvec4) Load 46(b4)
|
||||
332: 7(bool) CompositeExtract 331 0
|
||||
333: 7(bool) LogicalOr 330 332
|
||||
334: 44(bvec4) Load 46(b4)
|
||||
334: 44(bvec4) Load 46(b4)
|
||||
335: 7(bool) CompositeExtract 334 1
|
||||
336: 7(bool) LogicalOr 333 335
|
||||
337: 44(bvec4) Load 46(b4)
|
||||
337: 44(bvec4) Load 46(b4)
|
||||
338: 7(bool) CompositeExtract 337 2
|
||||
339: 7(bool) LogicalOr 336 338
|
||||
340: 44(bvec4) Load 46(b4)
|
||||
340: 44(bvec4) Load 46(b4)
|
||||
341: 7(bool) CompositeExtract 340 3
|
||||
342: 7(bool) LogicalOr 339 341
|
||||
SelectionMerge 344 None
|
||||
BranchConditional 342 343 404
|
||||
BranchConditional 342 343 404
|
||||
343: Label
|
||||
345: 10(int) Load 59(i)
|
||||
346: 67(ivec2) Load 69(i2)
|
||||
345: 10(int) Load 59(i)
|
||||
346: 67(ivec2) Load 69(i2)
|
||||
347: 10(int) CompositeExtract 346 0
|
||||
348: 10(int) IAdd 345 347
|
||||
349: 67(ivec2) Load 69(i2)
|
||||
349: 67(ivec2) Load 69(i2)
|
||||
350: 10(int) CompositeExtract 349 1
|
||||
351: 10(int) IAdd 348 350
|
||||
352: 80(ivec3) Load 82(i3)
|
||||
352: 80(ivec3) Load 82(i3)
|
||||
353: 10(int) CompositeExtract 352 0
|
||||
354: 10(int) IAdd 351 353
|
||||
355: 80(ivec3) Load 82(i3)
|
||||
355: 80(ivec3) Load 82(i3)
|
||||
356: 10(int) CompositeExtract 355 1
|
||||
357: 10(int) IAdd 354 356
|
||||
358: 80(ivec3) Load 82(i3)
|
||||
358: 80(ivec3) Load 82(i3)
|
||||
359: 10(int) CompositeExtract 358 2
|
||||
360: 10(int) IAdd 357 359
|
||||
361: 93(ivec4) Load 95(i4)
|
||||
361: 93(ivec4) Load 95(i4)
|
||||
362: 10(int) CompositeExtract 361 0
|
||||
363: 10(int) IAdd 360 362
|
||||
364: 93(ivec4) Load 95(i4)
|
||||
364: 93(ivec4) Load 95(i4)
|
||||
365: 10(int) CompositeExtract 364 1
|
||||
366: 10(int) IAdd 363 365
|
||||
367: 93(ivec4) Load 95(i4)
|
||||
367: 93(ivec4) Load 95(i4)
|
||||
368: 10(int) CompositeExtract 367 2
|
||||
369: 10(int) IAdd 366 368
|
||||
370: 93(ivec4) Load 95(i4)
|
||||
370: 93(ivec4) Load 95(i4)
|
||||
371: 10(int) CompositeExtract 370 3
|
||||
372: 10(int) IAdd 369 371
|
||||
373: 17(float) ConvertSToF 372
|
||||
374: 17(float) Load 107(f)
|
||||
374: 17(float) Load 107(f)
|
||||
375: 17(float) FAdd 373 374
|
||||
376: 70(fvec2) Load 111(f2)
|
||||
376: 70(fvec2) Load 111(f2)
|
||||
377: 17(float) CompositeExtract 376 0
|
||||
378: 17(float) FAdd 375 377
|
||||
379: 70(fvec2) Load 111(f2)
|
||||
379: 70(fvec2) Load 111(f2)
|
||||
380: 17(float) CompositeExtract 379 1
|
||||
381: 17(float) FAdd 378 380
|
||||
382: 83(fvec3) Load 115(f3)
|
||||
382: 83(fvec3) Load 115(f3)
|
||||
383: 17(float) CompositeExtract 382 0
|
||||
384: 17(float) FAdd 381 383
|
||||
385: 83(fvec3) Load 115(f3)
|
||||
385: 83(fvec3) Load 115(f3)
|
||||
386: 17(float) CompositeExtract 385 1
|
||||
387: 17(float) FAdd 384 386
|
||||
388: 83(fvec3) Load 115(f3)
|
||||
388: 83(fvec3) Load 115(f3)
|
||||
389: 17(float) CompositeExtract 388 2
|
||||
390: 17(float) FAdd 387 389
|
||||
391: 96(fvec4) Load 119(f4)
|
||||
391: 96(fvec4) Load 119(f4)
|
||||
392: 17(float) CompositeExtract 391 0
|
||||
393: 17(float) FAdd 390 392
|
||||
394: 96(fvec4) Load 119(f4)
|
||||
394: 96(fvec4) Load 119(f4)
|
||||
395: 17(float) CompositeExtract 394 1
|
||||
396: 17(float) FAdd 393 395
|
||||
397: 96(fvec4) Load 119(f4)
|
||||
397: 96(fvec4) Load 119(f4)
|
||||
398: 17(float) CompositeExtract 397 2
|
||||
399: 17(float) FAdd 396 398
|
||||
400: 96(fvec4) Load 119(f4)
|
||||
400: 96(fvec4) Load 119(f4)
|
||||
401: 17(float) CompositeExtract 400 3
|
||||
402: 17(float) FAdd 399 401
|
||||
403: 96(fvec4) CompositeConstruct 402 402 402 402
|
||||
Store 314 403
|
||||
Store 314 403
|
||||
Branch 344
|
||||
404: Label
|
||||
Store 314 152
|
||||
Store 314 152
|
||||
Branch 344
|
||||
344: Label
|
||||
405: 96(fvec4) Load 314
|
||||
Store 313(gl_FragColor) 405
|
||||
Store 406(cv2) 103
|
||||
408: 93(ivec4) Load 406(cv2)
|
||||
405: 96(fvec4) Load 314
|
||||
Store 313(gl_FragColor) 405
|
||||
Store 406(cv2) 103
|
||||
408: 93(ivec4) Load 406(cv2)
|
||||
409: 44(bvec4) INotEqual 408 161
|
||||
Store 407(cv5) 409
|
||||
410: 44(bvec4) Load 407(cv5)
|
||||
Store 407(cv5) 409
|
||||
410: 44(bvec4) Load 407(cv5)
|
||||
411: 96(fvec4) Select 410 152 151
|
||||
412: 17(float) CompositeExtract 411 0
|
||||
413: 96(fvec4) Load 313(gl_FragColor)
|
||||
413: 96(fvec4) Load 313(gl_FragColor)
|
||||
414: 96(fvec4) CompositeConstruct 412 412 412 412
|
||||
415: 96(fvec4) FAdd 413 414
|
||||
Store 313(gl_FragColor) 415
|
||||
Store 313(gl_FragColor) 415
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
16
Test/baseResults/spv.dataOut.frag.out
Normal file → Executable file
16
Test/baseResults/spv.dataOut.frag.out
Normal file → Executable file
@ -10,33 +10,35 @@ Linked fragment stage:
|
||||
// Id's are bound by 21
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 13 "gl_FragData"
|
||||
Name 17 "Color"
|
||||
Decorate 13(gl_FragData) BuiltIn FragColor
|
||||
Decorate 17(Color) Smooth
|
||||
Decorate 17(Color) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypeInt 32 0
|
||||
10: 9(int) Constant 32
|
||||
11: TypeArray 8(fvec4) 10
|
||||
12: TypePointer Output 11
|
||||
13(gl_FragData): 12(ptr) Variable Output
|
||||
13(gl_FragData): 12(ptr) Variable Output
|
||||
14: TypeInt 32 1
|
||||
15: 14(int) Constant 1
|
||||
16: TypePointer Input 8(fvec4)
|
||||
17(Color): 16(ptr) Variable Input
|
||||
17(Color): 16(ptr) Variable Input
|
||||
19: TypePointer Output 8(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18: 8(fvec4) Load 17(Color)
|
||||
18: 8(fvec4) Load 17(Color)
|
||||
20: 19(ptr) AccessChain 13(gl_FragData) 15
|
||||
Store 20 18
|
||||
Store 20 18
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
20
Test/baseResults/spv.dataOutIndirect.frag.out
Normal file → Executable file
20
Test/baseResults/spv.dataOutIndirect.frag.out
Normal file → Executable file
@ -10,36 +10,38 @@ Linked fragment stage:
|
||||
// Id's are bound by 23
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 13 "gl_FragData"
|
||||
Name 16 "i"
|
||||
Name 19 "Color"
|
||||
Decorate 13(gl_FragData) BuiltIn FragColor
|
||||
Decorate 19(Color) Smooth
|
||||
Decorate 19(Color) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypeInt 32 0
|
||||
10: 9(int) Constant 32
|
||||
11: TypeArray 8(fvec4) 10
|
||||
12: TypePointer Output 11
|
||||
13(gl_FragData): 12(ptr) Variable Output
|
||||
13(gl_FragData): 12(ptr) Variable Output
|
||||
14: TypeInt 32 1
|
||||
15: TypePointer UniformConstant 14(int)
|
||||
16(i): 15(ptr) Variable UniformConstant
|
||||
16(i): 15(ptr) Variable UniformConstant
|
||||
18: TypePointer Input 8(fvec4)
|
||||
19(Color): 18(ptr) Variable Input
|
||||
19(Color): 18(ptr) Variable Input
|
||||
21: TypePointer Output 8(fvec4)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
17: 14(int) Load 16(i)
|
||||
20: 8(fvec4) Load 19(Color)
|
||||
17: 14(int) Load 16(i)
|
||||
20: 8(fvec4) Load 19(Color)
|
||||
22: 21(ptr) AccessChain 13(gl_FragData) 17
|
||||
Store 22 20
|
||||
Store 22 20
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
39
Test/baseResults/spv.dataOutIndirect.vert.out
Normal file → Executable file
39
Test/baseResults/spv.dataOutIndirect.vert.out
Normal file → Executable file
@ -11,21 +11,22 @@ Linked vertex stage:
|
||||
// Id's are bound by 39
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 24 "colorOut"
|
||||
Name 27 "color"
|
||||
Name 33 "gl_Position"
|
||||
Name 38 "gl_VertexID"
|
||||
Decorate 24(colorOut) Smooth
|
||||
Decorate 24(colorOut) Smooth
|
||||
Decorate 33(gl_Position) BuiltIn Position
|
||||
Decorate 38(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 38(gl_VertexID) NoStaticUse
|
||||
Decorate 38(gl_VertexID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 1
|
||||
@ -37,37 +38,37 @@ Linked vertex stage:
|
||||
21: 20(int) Constant 6
|
||||
22: TypeArray 19(fvec4) 21
|
||||
23: TypePointer Output 22
|
||||
24(colorOut): 23(ptr) Variable Output
|
||||
24(colorOut): 23(ptr) Variable Output
|
||||
26: TypePointer Input 19(fvec4)
|
||||
27(color): 26(ptr) Variable Input
|
||||
27(color): 26(ptr) Variable Input
|
||||
29: TypePointer Output 19(fvec4)
|
||||
33(gl_Position): 29(ptr) Variable Output
|
||||
33(gl_Position): 29(ptr) Variable Output
|
||||
34: 7(int) Constant 2
|
||||
37: TypePointer Input 7(int)
|
||||
38(gl_VertexID): 37(ptr) Variable Input
|
||||
38(gl_VertexID): 37(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 7(int) Load 9(i)
|
||||
14: 7(int) Load 9(i)
|
||||
17: 16(bool) SLessThan 14 15
|
||||
LoopMerge 12 None
|
||||
BranchConditional 17 13 12
|
||||
BranchConditional 17 13 12
|
||||
13: Label
|
||||
25: 7(int) Load 9(i)
|
||||
28: 19(fvec4) Load 27(color)
|
||||
25: 7(int) Load 9(i)
|
||||
28: 19(fvec4) Load 27(color)
|
||||
30: 29(ptr) AccessChain 24(colorOut) 25
|
||||
Store 30 28
|
||||
31: 7(int) Load 9(i)
|
||||
Store 30 28
|
||||
31: 7(int) Load 9(i)
|
||||
32: 7(int) IAdd 31 10
|
||||
Store 9(i) 32
|
||||
Store 9(i) 32
|
||||
Branch 11
|
||||
12: Label
|
||||
35: 29(ptr) AccessChain 24(colorOut) 34
|
||||
36: 19(fvec4) Load 35
|
||||
Store 33(gl_Position) 36
|
||||
36: 19(fvec4) Load 35
|
||||
Store 33(gl_Position) 36
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
26
Test/baseResults/spv.depthOut.frag.out
Normal file → Executable file
26
Test/baseResults/spv.depthOut.frag.out
Normal file → Executable file
@ -11,36 +11,38 @@ Linked fragment stage:
|
||||
// Id's are bound by 19
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "gl_FragDepth"
|
||||
Name 11 "Depth"
|
||||
Name 15 "gl_FragColor"
|
||||
Name 17 "Color"
|
||||
Decorate 9(gl_FragDepth) BuiltIn FragDepth
|
||||
Decorate 11(Depth) Smooth
|
||||
Decorate 11(Depth) Smooth
|
||||
Decorate 15(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 17(Color) Smooth
|
||||
Decorate 17(Color) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypePointer Output 7(float)
|
||||
9(gl_FragDepth): 8(ptr) Variable Output
|
||||
9(gl_FragDepth): 8(ptr) Variable Output
|
||||
10: TypePointer Input 7(float)
|
||||
11(Depth): 10(ptr) Variable Input
|
||||
11(Depth): 10(ptr) Variable Input
|
||||
13: TypeVector 7(float) 4
|
||||
14: TypePointer Output 13(fvec4)
|
||||
15(gl_FragColor): 14(ptr) Variable Output
|
||||
15(gl_FragColor): 14(ptr) Variable Output
|
||||
16: TypePointer Input 13(fvec4)
|
||||
17(Color): 16(ptr) Variable Input
|
||||
17(Color): 16(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(float) Load 11(Depth)
|
||||
Store 9(gl_FragDepth) 12
|
||||
18: 13(fvec4) Load 17(Color)
|
||||
Store 15(gl_FragColor) 18
|
||||
12: 7(float) Load 11(Depth)
|
||||
Store 9(gl_FragDepth) 12
|
||||
18: 13(fvec4) Load 17(Color)
|
||||
Store 15(gl_FragColor) 18
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
94
Test/baseResults/spv.discard-dce.frag.out
Normal file → Executable file
94
Test/baseResults/spv.discard-dce.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 81
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "white"
|
||||
Name 13 "black"
|
||||
@ -20,10 +22,10 @@ Linked fragment stage:
|
||||
Name 28 "y"
|
||||
Name 33 "radius"
|
||||
Name 56 "gl_FragColor"
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 22(tex_coord) Smooth
|
||||
Decorate 56(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
@ -34,94 +36,94 @@ Linked fragment stage:
|
||||
18: TypePointer Function 7(float)
|
||||
20: TypeVector 7(float) 2
|
||||
21: TypePointer Input 20(fvec2)
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
22(tex_coord): 21(ptr) Variable Input
|
||||
25: 7(float) Constant 1073741824
|
||||
43: TypeBool
|
||||
48: 7(float) Constant 1066192077
|
||||
55: TypePointer Output 8(fvec4)
|
||||
56(gl_FragColor): 55(ptr) Variable Output
|
||||
56(gl_FragColor): 55(ptr) Variable Output
|
||||
59: 7(float) Constant 1067030938
|
||||
68: 7(float) Constant 1061158912
|
||||
73: 7(float) Constant 1098907648
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
33(radius): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
10(white): 9(ptr) Variable Function
|
||||
13(black): 9(ptr) Variable Function
|
||||
16(color): 9(ptr) Variable Function
|
||||
19(x): 18(ptr) Variable Function
|
||||
28(y): 18(ptr) Variable Function
|
||||
33(radius): 18(ptr) Variable Function
|
||||
Store 10(white) 12
|
||||
Store 13(black) 15
|
||||
17: 8(fvec4) Load 10(white)
|
||||
Store 16(color) 17
|
||||
23: 20(fvec2) Load 22(tex_coord)
|
||||
24: 7(float) CompositeExtract 23 0
|
||||
26: 7(float) FMul 24 25
|
||||
27: 7(float) FSub 26 11
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
Store 19(x) 27
|
||||
29: 20(fvec2) Load 22(tex_coord)
|
||||
30: 7(float) CompositeExtract 29 1
|
||||
31: 7(float) FMul 30 25
|
||||
32: 7(float) FSub 31 11
|
||||
Store 28(y) 32
|
||||
34: 7(float) Load 19(x)
|
||||
35: 7(float) Load 19(x)
|
||||
Store 28(y) 32
|
||||
34: 7(float) Load 19(x)
|
||||
35: 7(float) Load 19(x)
|
||||
36: 7(float) FMul 34 35
|
||||
37: 7(float) Load 28(y)
|
||||
38: 7(float) Load 28(y)
|
||||
37: 7(float) Load 28(y)
|
||||
38: 7(float) Load 28(y)
|
||||
39: 7(float) FMul 37 38
|
||||
40: 7(float) FAdd 36 39
|
||||
41: 7(float) ExtInst 1(GLSL.std.450) 28(sqrt) 40
|
||||
Store 33(radius) 41
|
||||
42: 7(float) Load 33(radius)
|
||||
41: 7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40
|
||||
Store 33(radius) 41
|
||||
42: 7(float) Load 33(radius)
|
||||
44: 43(bool) FOrdGreaterThan 42 11
|
||||
SelectionMerge 46 None
|
||||
BranchConditional 44 45 46
|
||||
BranchConditional 44 45 46
|
||||
45: Label
|
||||
47: 7(float) Load 33(radius)
|
||||
47: 7(float) Load 33(radius)
|
||||
49: 43(bool) FOrdGreaterThan 47 48
|
||||
SelectionMerge 51 None
|
||||
BranchConditional 49 50 51
|
||||
BranchConditional 49 50 51
|
||||
50: Label
|
||||
52: 8(fvec4) Load 16(color)
|
||||
52: 8(fvec4) Load 16(color)
|
||||
53: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||
54: 8(fvec4) FAdd 52 53
|
||||
Store 16(color) 54
|
||||
Store 16(color) 54
|
||||
Branch 51
|
||||
51: Label
|
||||
57: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 57
|
||||
58: 7(float) Load 33(radius)
|
||||
57: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 57
|
||||
58: 7(float) Load 33(radius)
|
||||
60: 43(bool) FOrdGreaterThan 58 59
|
||||
SelectionMerge 62 None
|
||||
BranchConditional 60 61 62
|
||||
BranchConditional 60 61 62
|
||||
61: Label
|
||||
63: 8(fvec4) Load 16(color)
|
||||
63: 8(fvec4) Load 16(color)
|
||||
64: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||
65: 8(fvec4) FAdd 63 64
|
||||
Store 16(color) 65
|
||||
Store 16(color) 65
|
||||
Branch 62
|
||||
62: Label
|
||||
Kill
|
||||
46: Label
|
||||
67: 7(float) Load 33(radius)
|
||||
67: 7(float) Load 33(radius)
|
||||
69: 43(bool) FOrdGreaterThanEqual 67 68
|
||||
SelectionMerge 71 None
|
||||
BranchConditional 69 70 71
|
||||
BranchConditional 69 70 71
|
||||
70: Label
|
||||
72: 7(float) Load 33(radius)
|
||||
74: 7(float) ExtInst 1(GLSL.std.450) 23(pow) 72 73
|
||||
72: 7(float) Load 33(radius)
|
||||
74: 7(float) ExtInst 1(GLSL.std.450) 26(Pow) 72 73
|
||||
75: 7(float) FDiv 74 25
|
||||
76: 7(float) ExtInst 1(GLSL.std.450) 3(abs) 75
|
||||
77: 8(fvec4) Load 16(color)
|
||||
76: 7(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75
|
||||
77: 8(fvec4) Load 16(color)
|
||||
78: 8(fvec4) CompositeConstruct 76 76 76 76
|
||||
79: 8(fvec4) FSub 77 78
|
||||
Store 16(color) 79
|
||||
Store 16(color) 79
|
||||
Branch 71
|
||||
71: Label
|
||||
80: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 80
|
||||
80: 8(fvec4) Load 16(color)
|
||||
Store 56(gl_FragColor) 80
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
30
Test/baseResults/spv.do-simple.vert.out
Normal file → Executable file
30
Test/baseResults/spv.do-simple.vert.out
Normal file → Executable file
@ -8,22 +8,20 @@ Linked vertex stage:
|
||||
// Id's are bound by 30
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 28 "gl_VertexID"
|
||||
Name 29 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionHigh
|
||||
Decorate 28(gl_VertexID) PrecisionHigh
|
||||
Decorate 28(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 28(gl_VertexID) NoStaticUse
|
||||
Decorate 29(gl_InstanceID) PrecisionHigh
|
||||
Decorate 28(gl_VertexID) NoStaticUse
|
||||
Decorate 29(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 29(gl_InstanceID) NoStaticUse
|
||||
Decorate 29(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 0
|
||||
@ -33,12 +31,12 @@ Linked vertex stage:
|
||||
24: 7(int) Constant 1
|
||||
26: 15(bool) ConstantFalse
|
||||
27: TypePointer Input 7(int)
|
||||
28(gl_VertexID): 27(ptr) Variable Input
|
||||
29(gl_InstanceID): 27(ptr) Variable Input
|
||||
28(gl_VertexID): 27(ptr) Variable Input
|
||||
29(gl_InstanceID): 27(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 15(bool) Phi 16 5 26 13
|
||||
@ -46,18 +44,18 @@ Linked vertex stage:
|
||||
Branch 17
|
||||
17: Label
|
||||
SelectionMerge 13 None
|
||||
BranchConditional 14 13 18
|
||||
BranchConditional 14 13 18
|
||||
18: Label
|
||||
19: 7(int) Load 9(i)
|
||||
19: 7(int) Load 9(i)
|
||||
21: 15(bool) SLessThan 19 20
|
||||
SelectionMerge 22 None
|
||||
BranchConditional 21 22 12
|
||||
BranchConditional 21 22 12
|
||||
22: Label
|
||||
Branch 13
|
||||
13: Label
|
||||
23: 7(int) Load 9(i)
|
||||
23: 7(int) Load 9(i)
|
||||
25: 7(int) IAdd 23 24
|
||||
Store 9(i) 25
|
||||
Store 9(i) 25
|
||||
Branch 11
|
||||
12: Label
|
||||
Branch 6
|
||||
|
||||
71
Test/baseResults/spv.do-while-continue-break.vert.out
Normal file → Executable file
71
Test/baseResults/spv.do-while-continue-break.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 52
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 25 "A"
|
||||
@ -22,22 +23,12 @@ Linked vertex stage:
|
||||
Name 47 "G"
|
||||
Name 50 "gl_VertexID"
|
||||
Name 51 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionHigh
|
||||
Decorate 25(A) PrecisionHigh
|
||||
Decorate 31(B) PrecisionHigh
|
||||
Decorate 34(C) PrecisionHigh
|
||||
Decorate 40(D) PrecisionHigh
|
||||
Decorate 43(E) PrecisionHigh
|
||||
Decorate 45(F) PrecisionHigh
|
||||
Decorate 47(G) PrecisionHigh
|
||||
Decorate 50(gl_VertexID) PrecisionHigh
|
||||
Decorate 50(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 50(gl_VertexID) NoStaticUse
|
||||
Decorate 51(gl_InstanceID) PrecisionHigh
|
||||
Decorate 50(gl_VertexID) NoStaticUse
|
||||
Decorate 51(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 51(gl_InstanceID) NoStaticUse
|
||||
Decorate 51(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 0
|
||||
@ -53,19 +44,19 @@ Linked vertex stage:
|
||||
46: 7(int) Constant 99
|
||||
48: 7(int) Constant 12
|
||||
49: TypePointer Input 7(int)
|
||||
50(gl_VertexID): 49(ptr) Variable Input
|
||||
51(gl_InstanceID): 49(ptr) Variable Input
|
||||
50(gl_VertexID): 49(ptr) Variable Input
|
||||
51(gl_InstanceID): 49(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
25(A): 8(ptr) Variable Function
|
||||
31(B): 8(ptr) Variable Function
|
||||
34(C): 8(ptr) Variable Function
|
||||
40(D): 8(ptr) Variable Function
|
||||
43(E): 8(ptr) Variable Function
|
||||
45(F): 8(ptr) Variable Function
|
||||
47(G): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
25(A): 8(ptr) Variable Function
|
||||
31(B): 8(ptr) Variable Function
|
||||
34(C): 8(ptr) Variable Function
|
||||
40(D): 8(ptr) Variable Function
|
||||
43(E): 8(ptr) Variable Function
|
||||
45(F): 8(ptr) Variable Function
|
||||
47(G): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 15(bool) Phi 16 5 32 29 32 39
|
||||
@ -73,44 +64,44 @@ Linked vertex stage:
|
||||
Branch 17
|
||||
17: Label
|
||||
SelectionMerge 13 None
|
||||
BranchConditional 14 13 18
|
||||
BranchConditional 14 13 18
|
||||
18: Label
|
||||
19: 7(int) Load 9(i)
|
||||
19: 7(int) Load 9(i)
|
||||
21: 7(int) IAdd 19 20
|
||||
Store 9(i) 21
|
||||
Store 9(i) 21
|
||||
23: 15(bool) SLessThan 21 22
|
||||
SelectionMerge 24 None
|
||||
BranchConditional 23 24 12
|
||||
BranchConditional 23 24 12
|
||||
24: Label
|
||||
Branch 13
|
||||
13: Label
|
||||
Store 25(A) 10
|
||||
26: 7(int) Load 9(i)
|
||||
Store 25(A) 10
|
||||
26: 7(int) Load 9(i)
|
||||
28: 15(bool) IEqual 26 27
|
||||
SelectionMerge 30 None
|
||||
BranchConditional 28 29 30
|
||||
BranchConditional 28 29 30
|
||||
29: Label
|
||||
Store 31(B) 20
|
||||
Store 31(B) 20
|
||||
Branch 11
|
||||
33: Label
|
||||
Store 34(C) 27
|
||||
Store 34(C) 27
|
||||
Branch 30
|
||||
30: Label
|
||||
35: 7(int) Load 9(i)
|
||||
35: 7(int) Load 9(i)
|
||||
37: 15(bool) IEqual 35 36
|
||||
SelectionMerge 39 None
|
||||
BranchConditional 37 38 39
|
||||
BranchConditional 37 38 39
|
||||
38: Label
|
||||
Store 40(D) 41
|
||||
Store 40(D) 41
|
||||
Branch 12
|
||||
42: Label
|
||||
Store 43(E) 44
|
||||
Store 43(E) 44
|
||||
Branch 39
|
||||
39: Label
|
||||
Store 45(F) 46
|
||||
Store 45(F) 46
|
||||
Branch 11
|
||||
12: Label
|
||||
Store 47(G) 48
|
||||
Store 47(G) 48
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
40
Test/baseResults/spv.doWhileLoop.frag.out
Normal file → Executable file
40
Test/baseResults/spv.doWhileLoop.frag.out
Normal file → Executable file
@ -8,38 +8,40 @@ Linked fragment stage:
|
||||
// Id's are bound by 38
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 12 "BaseColor"
|
||||
Name 25 "d"
|
||||
Name 30 "bigColor"
|
||||
Name 36 "gl_FragColor"
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 36(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
18: TypeBool
|
||||
19: 18(bool) ConstantTrue
|
||||
24: TypePointer UniformConstant 7(float)
|
||||
25(d): 24(ptr) Variable UniformConstant
|
||||
25(d): 24(ptr) Variable UniformConstant
|
||||
29: TypePointer UniformConstant 8(fvec4)
|
||||
30(bigColor): 29(ptr) Variable UniformConstant
|
||||
30(bigColor): 29(ptr) Variable UniformConstant
|
||||
34: 18(bool) ConstantFalse
|
||||
35: TypePointer Output 8(fvec4)
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(color): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
10(color): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
Branch 14
|
||||
14: Label
|
||||
17: 18(bool) Phi 19 5 34 16
|
||||
@ -47,25 +49,25 @@ Linked fragment stage:
|
||||
Branch 20
|
||||
20: Label
|
||||
SelectionMerge 16 None
|
||||
BranchConditional 17 16 21
|
||||
BranchConditional 17 16 21
|
||||
21: Label
|
||||
22: 8(fvec4) Load 10(color)
|
||||
22: 8(fvec4) Load 10(color)
|
||||
23: 7(float) CompositeExtract 22 0
|
||||
26: 7(float) Load 25(d)
|
||||
26: 7(float) Load 25(d)
|
||||
27: 18(bool) FOrdLessThan 23 26
|
||||
SelectionMerge 28 None
|
||||
BranchConditional 27 28 15
|
||||
BranchConditional 27 28 15
|
||||
28: Label
|
||||
Branch 16
|
||||
16: Label
|
||||
31: 8(fvec4) Load 30(bigColor)
|
||||
32: 8(fvec4) Load 10(color)
|
||||
31: 8(fvec4) Load 30(bigColor)
|
||||
32: 8(fvec4) Load 10(color)
|
||||
33: 8(fvec4) FAdd 32 31
|
||||
Store 10(color) 33
|
||||
Store 10(color) 33
|
||||
Branch 14
|
||||
15: Label
|
||||
37: 8(fvec4) Load 10(color)
|
||||
Store 36(gl_FragColor) 37
|
||||
37: 8(fvec4) Load 10(color)
|
||||
Store 36(gl_FragColor) 37
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
59
Test/baseResults/spv.double.comp.out
Normal file → Executable file
59
Test/baseResults/spv.double.comp.out
Normal file → Executable file
@ -10,9 +10,10 @@ Linked compute stage:
|
||||
// Id's are bound by 63
|
||||
|
||||
Source GLSL 430
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint GLCompute 4
|
||||
EntryPoint GLCompute 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "bufName"
|
||||
MemberName 9(bufName) 0 "f"
|
||||
@ -26,23 +27,23 @@ Linked compute stage:
|
||||
Name 55 "globalCoef"
|
||||
Name 59 "roll"
|
||||
Name 62 "destTex"
|
||||
Decorate 9(bufName) GLSLShared
|
||||
Decorate 9(bufName) BufferBlock
|
||||
Decorate 9(bufName) GLSLShared
|
||||
Decorate 9(bufName) BufferBlock
|
||||
Decorate 27(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
|
||||
Decorate 34(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||
Decorate 14 NoStaticUse
|
||||
Decorate 57 NoStaticUse
|
||||
Decorate 14 NoStaticUse
|
||||
Decorate 14 NoStaticUse
|
||||
Decorate 59(roll) NoStaticUse
|
||||
Decorate 62(destTex) NoStaticUse
|
||||
Decorate 14 NoStaticUse
|
||||
Decorate 57 NoStaticUse
|
||||
Decorate 14 NoStaticUse
|
||||
Decorate 14 NoStaticUse
|
||||
Decorate 59(roll) NoStaticUse
|
||||
Decorate 62(destTex) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeFloat 64
|
||||
9(bufName): TypeStruct 7(float) 8(float)
|
||||
10: TypePointer Uniform 9(bufName)
|
||||
11(bufInst): 10(ptr) Variable Uniform
|
||||
11(bufInst): 10(ptr) Variable Uniform
|
||||
12: TypeInt 32 1
|
||||
13: 12(int) Constant 1
|
||||
14: 8(float) Constant 1413754136 1074340347
|
||||
@ -55,10 +56,10 @@ Linked compute stage:
|
||||
24: TypeInt 32 0
|
||||
25: TypeVector 24(int) 3
|
||||
26: TypePointer Input 25(ivec3)
|
||||
27(gl_GlobalInvocationID): 26(ptr) Variable Input
|
||||
27(gl_GlobalInvocationID): 26(ptr) Variable Input
|
||||
29: TypeVector 24(int) 2
|
||||
32: TypePointer Function 8(float)
|
||||
34(gl_LocalInvocationID): 26(ptr) Variable Input
|
||||
34(gl_LocalInvocationID): 26(ptr) Variable Input
|
||||
38: 12(int) Constant 8
|
||||
41: TypeVector 7(float) 2
|
||||
43: 7(float) Constant 1090519040
|
||||
@ -71,25 +72,25 @@ Linked compute stage:
|
||||
56: 8(float) Constant 0 1072693248
|
||||
57: 8(float) Constant 3229815407 1074340298
|
||||
58: TypePointer UniformConstant 8(float)
|
||||
59(roll): 58(ptr) Variable UniformConstant
|
||||
60: TypeSampler7(float) 2D image
|
||||
59(roll): 58(ptr) Variable UniformConstant
|
||||
60: TypeImage 7(float) 2D nonsampled format:Unknown
|
||||
61: TypePointer UniformConstant 60
|
||||
62(destTex): 61(ptr) Variable UniformConstant
|
||||
62(destTex): 61(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
23(storePos): 22(ptr) Variable Function
|
||||
33(localCoef): 32(ptr) Variable Function
|
||||
50(aa): 49(ptr) Variable Function
|
||||
55(globalCoef): 32(ptr) Variable Function
|
||||
23(storePos): 22(ptr) Variable Function
|
||||
33(localCoef): 32(ptr) Variable Function
|
||||
50(aa): 49(ptr) Variable Function
|
||||
55(globalCoef): 32(ptr) Variable Function
|
||||
16: 15(ptr) AccessChain 11(bufInst) 13
|
||||
Store 16 14
|
||||
Store 16 14
|
||||
20: 19(ptr) AccessChain 11(bufInst) 17
|
||||
Store 20 18
|
||||
28: 25(ivec3) Load 27(gl_GlobalInvocationID)
|
||||
Store 20 18
|
||||
28: 25(ivec3) Load 27(gl_GlobalInvocationID)
|
||||
30: 29(ivec2) VectorShuffle 28 28 0 1
|
||||
31: 21(ivec2) Bitcast 30
|
||||
Store 23(storePos) 31
|
||||
35: 25(ivec3) Load 34(gl_LocalInvocationID)
|
||||
Store 23(storePos) 31
|
||||
35: 25(ivec3) Load 34(gl_LocalInvocationID)
|
||||
36: 29(ivec2) VectorShuffle 35 35 0 1
|
||||
37: 21(ivec2) Bitcast 36
|
||||
39: 21(ivec2) CompositeConstruct 38 38
|
||||
@ -97,11 +98,11 @@ Linked compute stage:
|
||||
42: 41(fvec2) ConvertSToF 40
|
||||
44: 41(fvec2) CompositeConstruct 43 43
|
||||
45: 41(fvec2) FDiv 42 44
|
||||
46: 7(float) ExtInst 1(GLSL.std.450) 58(length) 45
|
||||
46: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 45
|
||||
47: 8(float) FConvert 46
|
||||
Store 33(localCoef) 47
|
||||
Store 50(aa) 54
|
||||
Store 55(globalCoef) 56
|
||||
Store 33(localCoef) 47
|
||||
Store 50(aa) 54
|
||||
Store 55(globalCoef) 56
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
130
Test/baseResults/spv.earlyReturnDiscard.frag.out
Normal file → Executable file
130
Test/baseResults/spv.earlyReturnDiscard.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 112
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 12 "BaseColor"
|
||||
@ -26,130 +28,130 @@ Linked fragment stage:
|
||||
Name 78 "b"
|
||||
Name 107 "gl_FragColor"
|
||||
Name 111 "threshhold3"
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 19(c) Smooth
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 19(c) Smooth
|
||||
Decorate 107(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 111(threshhold3) NoStaticUse
|
||||
Decorate 111(threshhold3) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
15: TypePointer UniformConstant 8(fvec4)
|
||||
16(otherColor): 15(ptr) Variable UniformConstant
|
||||
16(otherColor): 15(ptr) Variable UniformConstant
|
||||
18: TypePointer Input 7(float)
|
||||
19(c): 18(ptr) Variable Input
|
||||
19(c): 18(ptr) Variable Input
|
||||
21: TypePointer UniformConstant 7(float)
|
||||
22(d): 21(ptr) Variable UniformConstant
|
||||
22(d): 21(ptr) Variable UniformConstant
|
||||
24: TypeBool
|
||||
28(bigColor): 15(ptr) Variable UniformConstant
|
||||
33(smallColor): 15(ptr) Variable UniformConstant
|
||||
39(minimum): 21(ptr) Variable UniformConstant
|
||||
28(bigColor): 15(ptr) Variable UniformConstant
|
||||
33(smallColor): 15(ptr) Variable UniformConstant
|
||||
39(minimum): 21(ptr) Variable UniformConstant
|
||||
47: 7(float) Constant 1065353216
|
||||
53(threshhold): 21(ptr) Variable UniformConstant
|
||||
64(threshhold2): 21(ptr) Variable UniformConstant
|
||||
53(threshhold): 21(ptr) Variable UniformConstant
|
||||
64(threshhold2): 21(ptr) Variable UniformConstant
|
||||
77: TypePointer UniformConstant 24(bool)
|
||||
78(b): 77(ptr) Variable UniformConstant
|
||||
78(b): 77(ptr) Variable UniformConstant
|
||||
106: TypePointer Output 8(fvec4)
|
||||
107(gl_FragColor): 106(ptr) Variable Output
|
||||
111(threshhold3): 21(ptr) Variable UniformConstant
|
||||
107(gl_FragColor): 106(ptr) Variable Output
|
||||
111(threshhold3): 21(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(color): 9(ptr) Variable Function
|
||||
14(color2): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
17: 8(fvec4) Load 16(otherColor)
|
||||
Store 14(color2) 17
|
||||
20: 7(float) Load 19(c)
|
||||
23: 7(float) Load 22(d)
|
||||
10(color): 9(ptr) Variable Function
|
||||
14(color2): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
17: 8(fvec4) Load 16(otherColor)
|
||||
Store 14(color2) 17
|
||||
20: 7(float) Load 19(c)
|
||||
23: 7(float) Load 22(d)
|
||||
25: 24(bool) FOrdGreaterThan 20 23
|
||||
SelectionMerge 27 None
|
||||
BranchConditional 25 26 32
|
||||
BranchConditional 25 26 32
|
||||
26: Label
|
||||
29: 8(fvec4) Load 28(bigColor)
|
||||
30: 8(fvec4) Load 10(color)
|
||||
29: 8(fvec4) Load 28(bigColor)
|
||||
30: 8(fvec4) Load 10(color)
|
||||
31: 8(fvec4) FAdd 30 29
|
||||
Store 10(color) 31
|
||||
Store 10(color) 31
|
||||
Branch 27
|
||||
32: Label
|
||||
34: 8(fvec4) Load 33(smallColor)
|
||||
35: 8(fvec4) Load 10(color)
|
||||
34: 8(fvec4) Load 33(smallColor)
|
||||
35: 8(fvec4) Load 10(color)
|
||||
36: 8(fvec4) FAdd 35 34
|
||||
Store 10(color) 36
|
||||
Store 10(color) 36
|
||||
Branch 27
|
||||
27: Label
|
||||
37: 8(fvec4) Load 10(color)
|
||||
37: 8(fvec4) Load 10(color)
|
||||
38: 7(float) CompositeExtract 37 2
|
||||
40: 7(float) Load 39(minimum)
|
||||
40: 7(float) Load 39(minimum)
|
||||
41: 24(bool) FOrdLessThan 38 40
|
||||
SelectionMerge 43 None
|
||||
BranchConditional 41 42 43
|
||||
BranchConditional 41 42 43
|
||||
42: Label
|
||||
Branch 6
|
||||
43: Label
|
||||
45: 8(fvec4) Load 10(color)
|
||||
45: 8(fvec4) Load 10(color)
|
||||
46: 7(float) CompositeExtract 45 2
|
||||
48: 7(float) FAdd 46 47
|
||||
49: 8(fvec4) Load 10(color)
|
||||
49: 8(fvec4) Load 10(color)
|
||||
50: 8(fvec4) CompositeInsert 48 49 2
|
||||
Store 10(color) 50
|
||||
51: 8(fvec4) Load 10(color)
|
||||
Store 10(color) 50
|
||||
51: 8(fvec4) Load 10(color)
|
||||
52: 7(float) CompositeExtract 51 2
|
||||
54: 7(float) Load 53(threshhold)
|
||||
54: 7(float) Load 53(threshhold)
|
||||
55: 24(bool) FOrdGreaterThan 52 54
|
||||
SelectionMerge 57 None
|
||||
BranchConditional 55 56 57
|
||||
BranchConditional 55 56 57
|
||||
56: Label
|
||||
Kill
|
||||
57: Label
|
||||
59: 8(fvec4) Load 10(color)
|
||||
59: 8(fvec4) Load 10(color)
|
||||
60: 8(fvec4) CompositeConstruct 47 47 47 47
|
||||
61: 8(fvec4) FAdd 59 60
|
||||
Store 10(color) 61
|
||||
62: 8(fvec4) Load 10(color)
|
||||
Store 10(color) 61
|
||||
62: 8(fvec4) Load 10(color)
|
||||
63: 7(float) CompositeExtract 62 3
|
||||
65: 7(float) Load 64(threshhold2)
|
||||
65: 7(float) Load 64(threshhold2)
|
||||
66: 24(bool) FOrdGreaterThan 63 65
|
||||
SelectionMerge 68 None
|
||||
BranchConditional 66 67 99
|
||||
BranchConditional 66 67 99
|
||||
67: Label
|
||||
69: 8(fvec4) Load 10(color)
|
||||
69: 8(fvec4) Load 10(color)
|
||||
70: 7(float) CompositeExtract 69 2
|
||||
71: 7(float) Load 64(threshhold2)
|
||||
71: 7(float) Load 64(threshhold2)
|
||||
72: 24(bool) FOrdGreaterThan 70 71
|
||||
SelectionMerge 74 None
|
||||
BranchConditional 72 73 76
|
||||
BranchConditional 72 73 76
|
||||
73: Label
|
||||
Branch 6
|
||||
76: Label
|
||||
79: 24(bool) Load 78(b)
|
||||
79: 24(bool) Load 78(b)
|
||||
SelectionMerge 81 None
|
||||
BranchConditional 79 80 87
|
||||
BranchConditional 79 80 87
|
||||
80: Label
|
||||
82: 8(fvec4) Load 10(color)
|
||||
82: 8(fvec4) Load 10(color)
|
||||
83: 7(float) CompositeExtract 82 2
|
||||
84: 7(float) FAdd 83 47
|
||||
85: 8(fvec4) Load 10(color)
|
||||
85: 8(fvec4) Load 10(color)
|
||||
86: 8(fvec4) CompositeInsert 84 85 2
|
||||
Store 10(color) 86
|
||||
Store 10(color) 86
|
||||
Branch 81
|
||||
87: Label
|
||||
88: 8(fvec4) Load 10(color)
|
||||
88: 8(fvec4) Load 10(color)
|
||||
89: 7(float) CompositeExtract 88 0
|
||||
90: 7(float) Load 39(minimum)
|
||||
90: 7(float) Load 39(minimum)
|
||||
91: 24(bool) FOrdLessThan 89 90
|
||||
SelectionMerge 93 None
|
||||
BranchConditional 91 92 95
|
||||
BranchConditional 91 92 95
|
||||
92: Label
|
||||
Kill
|
||||
95: Label
|
||||
96: 8(fvec4) Load 10(color)
|
||||
96: 8(fvec4) Load 10(color)
|
||||
97: 8(fvec4) CompositeConstruct 47 47 47 47
|
||||
98: 8(fvec4) FAdd 96 97
|
||||
Store 10(color) 98
|
||||
Store 10(color) 98
|
||||
Branch 93
|
||||
93: Label
|
||||
Branch 81
|
||||
@ -158,9 +160,9 @@ Linked fragment stage:
|
||||
74: Label
|
||||
Branch 68
|
||||
99: Label
|
||||
100: 24(bool) Load 78(b)
|
||||
100: 24(bool) Load 78(b)
|
||||
SelectionMerge 102 None
|
||||
BranchConditional 100 101 104
|
||||
BranchConditional 100 101 104
|
||||
101: Label
|
||||
Kill
|
||||
104: Label
|
||||
@ -168,10 +170,10 @@ Linked fragment stage:
|
||||
102: Label
|
||||
Branch 68
|
||||
68: Label
|
||||
108: 8(fvec4) Load 10(color)
|
||||
109: 8(fvec4) Load 14(color2)
|
||||
108: 8(fvec4) Load 10(color)
|
||||
109: 8(fvec4) Load 14(color2)
|
||||
110: 8(fvec4) FMul 108 109
|
||||
Store 107(gl_FragColor) 110
|
||||
Store 107(gl_FragColor) 110
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
60
Test/baseResults/spv.flowControl.frag.out
Normal file → Executable file
60
Test/baseResults/spv.flowControl.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 42
|
||||
|
||||
Source GLSL 120
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 12 "BaseColor"
|
||||
@ -21,57 +23,57 @@ Linked fragment stage:
|
||||
Name 28 "bigColor"
|
||||
Name 33 "smallColor"
|
||||
Name 38 "gl_FragColor"
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 19(c) Smooth
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 19(c) Smooth
|
||||
Decorate 38(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
15: TypePointer UniformConstant 8(fvec4)
|
||||
16(otherColor): 15(ptr) Variable UniformConstant
|
||||
16(otherColor): 15(ptr) Variable UniformConstant
|
||||
18: TypePointer Input 7(float)
|
||||
19(c): 18(ptr) Variable Input
|
||||
19(c): 18(ptr) Variable Input
|
||||
21: TypePointer UniformConstant 7(float)
|
||||
22(d): 21(ptr) Variable UniformConstant
|
||||
22(d): 21(ptr) Variable UniformConstant
|
||||
24: TypeBool
|
||||
28(bigColor): 15(ptr) Variable UniformConstant
|
||||
33(smallColor): 15(ptr) Variable UniformConstant
|
||||
28(bigColor): 15(ptr) Variable UniformConstant
|
||||
33(smallColor): 15(ptr) Variable UniformConstant
|
||||
37: TypePointer Output 8(fvec4)
|
||||
38(gl_FragColor): 37(ptr) Variable Output
|
||||
38(gl_FragColor): 37(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(color): 9(ptr) Variable Function
|
||||
14(color2): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
17: 8(fvec4) Load 16(otherColor)
|
||||
Store 14(color2) 17
|
||||
20: 7(float) Load 19(c)
|
||||
23: 7(float) Load 22(d)
|
||||
10(color): 9(ptr) Variable Function
|
||||
14(color2): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
17: 8(fvec4) Load 16(otherColor)
|
||||
Store 14(color2) 17
|
||||
20: 7(float) Load 19(c)
|
||||
23: 7(float) Load 22(d)
|
||||
25: 24(bool) FOrdGreaterThan 20 23
|
||||
SelectionMerge 27 None
|
||||
BranchConditional 25 26 32
|
||||
BranchConditional 25 26 32
|
||||
26: Label
|
||||
29: 8(fvec4) Load 28(bigColor)
|
||||
30: 8(fvec4) Load 10(color)
|
||||
29: 8(fvec4) Load 28(bigColor)
|
||||
30: 8(fvec4) Load 10(color)
|
||||
31: 8(fvec4) FAdd 30 29
|
||||
Store 10(color) 31
|
||||
Store 10(color) 31
|
||||
Branch 27
|
||||
32: Label
|
||||
34: 8(fvec4) Load 33(smallColor)
|
||||
35: 8(fvec4) Load 10(color)
|
||||
34: 8(fvec4) Load 33(smallColor)
|
||||
35: 8(fvec4) Load 10(color)
|
||||
36: 8(fvec4) FAdd 35 34
|
||||
Store 10(color) 36
|
||||
Store 10(color) 36
|
||||
Branch 27
|
||||
27: Label
|
||||
39: 8(fvec4) Load 10(color)
|
||||
40: 8(fvec4) Load 14(color2)
|
||||
39: 8(fvec4) Load 10(color)
|
||||
40: 8(fvec4) Load 14(color2)
|
||||
41: 8(fvec4) FMul 39 40
|
||||
Store 38(gl_FragColor) 41
|
||||
Store 38(gl_FragColor) 41
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
75
Test/baseResults/spv.for-continue-break.vert.out
Normal file → Executable file
75
Test/baseResults/spv.for-continue-break.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 49
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 18 "A"
|
||||
@ -22,22 +23,12 @@ Linked vertex stage:
|
||||
Name 44 "G"
|
||||
Name 47 "gl_VertexID"
|
||||
Name 48 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionHigh
|
||||
Decorate 18(A) PrecisionHigh
|
||||
Decorate 26(B) PrecisionHigh
|
||||
Decorate 30(C) PrecisionHigh
|
||||
Decorate 37(D) PrecisionHigh
|
||||
Decorate 39(E) PrecisionHigh
|
||||
Decorate 40(F) PrecisionHigh
|
||||
Decorate 44(G) PrecisionHigh
|
||||
Decorate 47(gl_VertexID) PrecisionHigh
|
||||
Decorate 47(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 47(gl_VertexID) NoStaticUse
|
||||
Decorate 48(gl_InstanceID) PrecisionHigh
|
||||
Decorate 47(gl_VertexID) NoStaticUse
|
||||
Decorate 48(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 48(gl_InstanceID) NoStaticUse
|
||||
Decorate 48(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 0
|
||||
@ -49,61 +40,61 @@ Linked vertex stage:
|
||||
41: 7(int) Constant 12
|
||||
45: 7(int) Constant 99
|
||||
46: TypePointer Input 7(int)
|
||||
47(gl_VertexID): 46(ptr) Variable Input
|
||||
48(gl_InstanceID): 46(ptr) Variable Input
|
||||
47(gl_VertexID): 46(ptr) Variable Input
|
||||
48(gl_InstanceID): 46(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
18(A): 8(ptr) Variable Function
|
||||
26(B): 8(ptr) Variable Function
|
||||
30(C): 8(ptr) Variable Function
|
||||
37(D): 8(ptr) Variable Function
|
||||
39(E): 8(ptr) Variable Function
|
||||
40(F): 8(ptr) Variable Function
|
||||
44(G): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
18(A): 8(ptr) Variable Function
|
||||
26(B): 8(ptr) Variable Function
|
||||
30(C): 8(ptr) Variable Function
|
||||
37(D): 8(ptr) Variable Function
|
||||
39(E): 8(ptr) Variable Function
|
||||
40(F): 8(ptr) Variable Function
|
||||
44(G): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 7(int) Load 9(i)
|
||||
14: 7(int) Load 9(i)
|
||||
17: 16(bool) SLessThan 14 15
|
||||
LoopMerge 12 None
|
||||
BranchConditional 17 13 12
|
||||
BranchConditional 17 13 12
|
||||
13: Label
|
||||
Store 18(A) 19
|
||||
20: 7(int) Load 9(i)
|
||||
Store 18(A) 19
|
||||
20: 7(int) Load 9(i)
|
||||
22: 7(int) SMod 20 21
|
||||
23: 16(bool) IEqual 22 10
|
||||
SelectionMerge 25 None
|
||||
BranchConditional 23 24 25
|
||||
BranchConditional 23 24 25
|
||||
24: Label
|
||||
Store 26(B) 19
|
||||
27: 7(int) Load 9(i)
|
||||
Store 26(B) 19
|
||||
27: 7(int) Load 9(i)
|
||||
28: 7(int) IAdd 27 19
|
||||
Store 9(i) 28
|
||||
Store 9(i) 28
|
||||
Branch 11
|
||||
29: Label
|
||||
Store 30(C) 19
|
||||
Store 30(C) 19
|
||||
Branch 25
|
||||
25: Label
|
||||
31: 7(int) Load 9(i)
|
||||
31: 7(int) Load 9(i)
|
||||
33: 7(int) SMod 31 32
|
||||
34: 16(bool) IEqual 33 10
|
||||
SelectionMerge 36 None
|
||||
BranchConditional 34 35 36
|
||||
BranchConditional 34 35 36
|
||||
35: Label
|
||||
Store 37(D) 19
|
||||
Store 37(D) 19
|
||||
Branch 12
|
||||
38: Label
|
||||
Store 39(E) 19
|
||||
Store 39(E) 19
|
||||
Branch 36
|
||||
36: Label
|
||||
Store 40(F) 41
|
||||
42: 7(int) Load 9(i)
|
||||
Store 40(F) 41
|
||||
42: 7(int) Load 9(i)
|
||||
43: 7(int) IAdd 42 19
|
||||
Store 9(i) 43
|
||||
Store 9(i) 43
|
||||
Branch 11
|
||||
12: Label
|
||||
Store 44(G) 45
|
||||
Store 44(G) 45
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
33
Test/baseResults/spv.for-simple.vert.out
Normal file → Executable file
33
Test/baseResults/spv.for-simple.vert.out
Normal file → Executable file
@ -8,24 +8,21 @@ Linked vertex stage:
|
||||
// Id's are bound by 26
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 18 "j"
|
||||
Name 24 "gl_VertexID"
|
||||
Name 25 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionHigh
|
||||
Decorate 18(j) PrecisionHigh
|
||||
Decorate 24(gl_VertexID) PrecisionHigh
|
||||
Decorate 24(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 24(gl_VertexID) NoStaticUse
|
||||
Decorate 25(gl_InstanceID) PrecisionHigh
|
||||
Decorate 24(gl_VertexID) NoStaticUse
|
||||
Decorate 25(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 25(gl_InstanceID) NoStaticUse
|
||||
Decorate 25(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 0
|
||||
@ -34,24 +31,24 @@ Linked vertex stage:
|
||||
19: 7(int) Constant 12
|
||||
21: 7(int) Constant 1
|
||||
23: TypePointer Input 7(int)
|
||||
24(gl_VertexID): 23(ptr) Variable Input
|
||||
25(gl_InstanceID): 23(ptr) Variable Input
|
||||
24(gl_VertexID): 23(ptr) Variable Input
|
||||
25(gl_InstanceID): 23(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
18(j): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
18(j): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 7(int) Load 9(i)
|
||||
14: 7(int) Load 9(i)
|
||||
17: 16(bool) SLessThan 14 15
|
||||
LoopMerge 12 None
|
||||
BranchConditional 17 13 12
|
||||
BranchConditional 17 13 12
|
||||
13: Label
|
||||
Store 18(j) 19
|
||||
20: 7(int) Load 9(i)
|
||||
Store 18(j) 19
|
||||
20: 7(int) Load 9(i)
|
||||
22: 7(int) IAdd 20 21
|
||||
Store 9(i) 22
|
||||
Store 9(i) 22
|
||||
Branch 11
|
||||
12: Label
|
||||
Branch 6
|
||||
|
||||
162
Test/baseResults/spv.forLoop.frag.out
Normal file → Executable file
162
Test/baseResults/spv.forLoop.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 123
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 12 "BaseColor"
|
||||
@ -27,168 +29,168 @@ Linked fragment stage:
|
||||
Name 90 "i"
|
||||
Name 98 "f"
|
||||
Name 111 "i"
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 36(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 98(f) Smooth
|
||||
Decorate 98(f) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
14: TypeInt 32 1
|
||||
15: TypePointer Function 14(int)
|
||||
17: 14(int) Constant 0
|
||||
22: TypePointer UniformConstant 14(int)
|
||||
23(Count): 22(ptr) Variable UniformConstant
|
||||
23(Count): 22(ptr) Variable UniformConstant
|
||||
25: TypeBool
|
||||
27: TypePointer UniformConstant 8(fvec4)
|
||||
28(bigColor): 27(ptr) Variable UniformConstant
|
||||
28(bigColor): 27(ptr) Variable UniformConstant
|
||||
33: 14(int) Constant 1
|
||||
35: TypePointer Output 8(fvec4)
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
38: TypePointer Function 7(float)
|
||||
40: 7(float) Constant 0
|
||||
46: 14(int) Constant 4
|
||||
48: TypeInt 32 0
|
||||
49: TypeVector 48(int) 4
|
||||
50: TypePointer UniformConstant 49(ivec4)
|
||||
51(v4): 50(ptr) Variable UniformConstant
|
||||
51(v4): 50(ptr) Variable UniformConstant
|
||||
71: 48(int) Constant 4
|
||||
86: TypeVector 7(float) 3
|
||||
97: TypePointer Input 7(float)
|
||||
98(f): 97(ptr) Variable Input
|
||||
98(f): 97(ptr) Variable Input
|
||||
116: 14(int) Constant 16
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(color): 9(ptr) Variable Function
|
||||
16(i): 15(ptr) Variable Function
|
||||
39(sum): 38(ptr) Variable Function
|
||||
41(i): 15(ptr) Variable Function
|
||||
60(i): 15(ptr) Variable Function
|
||||
66(tv4): 9(ptr) Variable Function
|
||||
84(r): 9(ptr) Variable Function
|
||||
90(i): 15(ptr) Variable Function
|
||||
111(i): 15(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
Store 16(i) 17
|
||||
10(color): 9(ptr) Variable Function
|
||||
16(i): 15(ptr) Variable Function
|
||||
39(sum): 38(ptr) Variable Function
|
||||
41(i): 15(ptr) Variable Function
|
||||
60(i): 15(ptr) Variable Function
|
||||
66(tv4): 9(ptr) Variable Function
|
||||
84(r): 9(ptr) Variable Function
|
||||
90(i): 15(ptr) Variable Function
|
||||
111(i): 15(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
Store 16(i) 17
|
||||
Branch 18
|
||||
18: Label
|
||||
21: 14(int) Load 16(i)
|
||||
24: 14(int) Load 23(Count)
|
||||
21: 14(int) Load 16(i)
|
||||
24: 14(int) Load 23(Count)
|
||||
26: 25(bool) SLessThan 21 24
|
||||
LoopMerge 19 None
|
||||
BranchConditional 26 20 19
|
||||
BranchConditional 26 20 19
|
||||
20: Label
|
||||
29: 8(fvec4) Load 28(bigColor)
|
||||
30: 8(fvec4) Load 10(color)
|
||||
29: 8(fvec4) Load 28(bigColor)
|
||||
30: 8(fvec4) Load 10(color)
|
||||
31: 8(fvec4) FAdd 30 29
|
||||
Store 10(color) 31
|
||||
32: 14(int) Load 16(i)
|
||||
Store 10(color) 31
|
||||
32: 14(int) Load 16(i)
|
||||
34: 14(int) IAdd 32 33
|
||||
Store 16(i) 34
|
||||
Store 16(i) 34
|
||||
Branch 18
|
||||
19: Label
|
||||
37: 8(fvec4) Load 10(color)
|
||||
Store 36(gl_FragColor) 37
|
||||
Store 39(sum) 40
|
||||
Store 41(i) 17
|
||||
37: 8(fvec4) Load 10(color)
|
||||
Store 36(gl_FragColor) 37
|
||||
Store 39(sum) 40
|
||||
Store 41(i) 17
|
||||
Branch 42
|
||||
42: Label
|
||||
45: 14(int) Load 41(i)
|
||||
45: 14(int) Load 41(i)
|
||||
47: 25(bool) SLessThan 45 46
|
||||
LoopMerge 43 None
|
||||
BranchConditional 47 44 43
|
||||
BranchConditional 47 44 43
|
||||
44: Label
|
||||
52: 14(int) Load 41(i)
|
||||
53: 49(ivec4) Load 51(v4)
|
||||
52: 14(int) Load 41(i)
|
||||
53: 49(ivec4) Load 51(v4)
|
||||
54: 48(int) VectorExtractDynamic 53 52
|
||||
55: 7(float) ConvertUToF 54
|
||||
56: 7(float) Load 39(sum)
|
||||
56: 7(float) Load 39(sum)
|
||||
57: 7(float) FAdd 56 55
|
||||
Store 39(sum) 57
|
||||
58: 14(int) Load 41(i)
|
||||
Store 39(sum) 57
|
||||
58: 14(int) Load 41(i)
|
||||
59: 14(int) IAdd 58 33
|
||||
Store 41(i) 59
|
||||
Store 41(i) 59
|
||||
Branch 42
|
||||
43: Label
|
||||
Store 60(i) 17
|
||||
Store 60(i) 17
|
||||
Branch 61
|
||||
61: Label
|
||||
64: 14(int) Load 60(i)
|
||||
64: 14(int) Load 60(i)
|
||||
65: 25(bool) SLessThan 64 46
|
||||
LoopMerge 62 None
|
||||
BranchConditional 65 63 62
|
||||
BranchConditional 65 63 62
|
||||
63: Label
|
||||
67: 14(int) Load 60(i)
|
||||
68: 14(int) Load 60(i)
|
||||
69: 49(ivec4) Load 51(v4)
|
||||
67: 14(int) Load 60(i)
|
||||
68: 14(int) Load 60(i)
|
||||
69: 49(ivec4) Load 51(v4)
|
||||
70: 48(int) VectorExtractDynamic 69 68
|
||||
72: 48(int) IMul 70 71
|
||||
73: 7(float) ConvertUToF 72
|
||||
74: 8(fvec4) Load 66(tv4)
|
||||
74: 8(fvec4) Load 66(tv4)
|
||||
75: 8(fvec4) VectorInsertDynamic 74 73 67
|
||||
Store 66(tv4) 75
|
||||
76: 14(int) Load 60(i)
|
||||
Store 66(tv4) 75
|
||||
76: 14(int) Load 60(i)
|
||||
77: 14(int) IAdd 76 33
|
||||
Store 60(i) 77
|
||||
Store 60(i) 77
|
||||
Branch 61
|
||||
62: Label
|
||||
78: 7(float) Load 39(sum)
|
||||
78: 7(float) Load 39(sum)
|
||||
79: 8(fvec4) CompositeConstruct 78 78 78 78
|
||||
80: 8(fvec4) Load 66(tv4)
|
||||
80: 8(fvec4) Load 66(tv4)
|
||||
81: 8(fvec4) FAdd 79 80
|
||||
82: 8(fvec4) Load 36(gl_FragColor)
|
||||
82: 8(fvec4) Load 36(gl_FragColor)
|
||||
83: 8(fvec4) FAdd 82 81
|
||||
Store 36(gl_FragColor) 83
|
||||
85: 8(fvec4) Load 12(BaseColor)
|
||||
Store 36(gl_FragColor) 83
|
||||
85: 8(fvec4) Load 12(BaseColor)
|
||||
87: 86(fvec3) VectorShuffle 85 85 0 1 2
|
||||
88: 8(fvec4) Load 84(r)
|
||||
88: 8(fvec4) Load 84(r)
|
||||
89: 8(fvec4) VectorShuffle 88 87 4 5 6 3
|
||||
Store 84(r) 89
|
||||
Store 90(i) 17
|
||||
Store 84(r) 89
|
||||
Store 90(i) 17
|
||||
Branch 91
|
||||
91: Label
|
||||
94: 14(int) Load 90(i)
|
||||
95: 14(int) Load 23(Count)
|
||||
94: 14(int) Load 90(i)
|
||||
95: 14(int) Load 23(Count)
|
||||
96: 25(bool) SLessThan 94 95
|
||||
LoopMerge 92 None
|
||||
BranchConditional 96 93 92
|
||||
BranchConditional 96 93 92
|
||||
93: Label
|
||||
99: 7(float) Load 98(f)
|
||||
100: 8(fvec4) Load 84(r)
|
||||
99: 7(float) Load 98(f)
|
||||
100: 8(fvec4) Load 84(r)
|
||||
101: 8(fvec4) CompositeInsert 99 100 3
|
||||
Store 84(r) 101
|
||||
102: 14(int) Load 90(i)
|
||||
Store 84(r) 101
|
||||
102: 14(int) Load 90(i)
|
||||
103: 14(int) IAdd 102 33
|
||||
Store 90(i) 103
|
||||
Store 90(i) 103
|
||||
Branch 91
|
||||
92: Label
|
||||
104: 8(fvec4) Load 84(r)
|
||||
104: 8(fvec4) Load 84(r)
|
||||
105: 86(fvec3) VectorShuffle 104 104 0 1 2
|
||||
106: 8(fvec4) Load 36(gl_FragColor)
|
||||
106: 8(fvec4) Load 36(gl_FragColor)
|
||||
107: 86(fvec3) VectorShuffle 106 106 0 1 2
|
||||
108: 86(fvec3) FAdd 107 105
|
||||
109: 8(fvec4) Load 36(gl_FragColor)
|
||||
109: 8(fvec4) Load 36(gl_FragColor)
|
||||
110: 8(fvec4) VectorShuffle 109 108 4 5 6 3
|
||||
Store 36(gl_FragColor) 110
|
||||
Store 111(i) 17
|
||||
Store 36(gl_FragColor) 110
|
||||
Store 111(i) 17
|
||||
Branch 112
|
||||
112: Label
|
||||
115: 14(int) Load 111(i)
|
||||
115: 14(int) Load 111(i)
|
||||
117: 25(bool) SLessThan 115 116
|
||||
LoopMerge 113 None
|
||||
BranchConditional 117 114 113
|
||||
BranchConditional 117 114 113
|
||||
114: Label
|
||||
118: 7(float) Load 98(f)
|
||||
119: 8(fvec4) Load 36(gl_FragColor)
|
||||
118: 7(float) Load 98(f)
|
||||
119: 8(fvec4) Load 36(gl_FragColor)
|
||||
120: 8(fvec4) VectorTimesScalar 119 118
|
||||
Store 36(gl_FragColor) 120
|
||||
121: 14(int) Load 111(i)
|
||||
Store 36(gl_FragColor) 120
|
||||
121: 14(int) Load 111(i)
|
||||
122: 14(int) IAdd 121 46
|
||||
Store 111(i) 122
|
||||
Store 111(i) 122
|
||||
Branch 112
|
||||
113: Label
|
||||
Branch 6
|
||||
|
||||
70
Test/baseResults/spv.forwardFun.frag.out
Normal file → Executable file
70
Test/baseResults/spv.forwardFun.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 59
|
||||
|
||||
Source ESSL 100
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 7 "bar("
|
||||
Name 11 "unreachableReturn("
|
||||
@ -24,52 +26,52 @@ Linked fragment stage:
|
||||
Name 37 "d"
|
||||
Name 49 "dummyReturn"
|
||||
Name 58 "bigColor"
|
||||
Decorate 19(color) PrecisionMedium
|
||||
Decorate 21(BaseColor) PrecisionMedium
|
||||
Decorate 21(BaseColor) Smooth
|
||||
Decorate 28(f) PrecisionMedium
|
||||
Decorate 31(gl_FragColor) PrecisionMedium
|
||||
Decorate 19(color) RelaxedPrecision
|
||||
Decorate 21(BaseColor) RelaxedPrecision
|
||||
Decorate 21(BaseColor) Smooth
|
||||
Decorate 28(f) RelaxedPrecision
|
||||
Decorate 31(gl_FragColor) RelaxedPrecision
|
||||
Decorate 31(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 37(d) PrecisionMedium
|
||||
Decorate 58(bigColor) PrecisionMedium
|
||||
Decorate 58(bigColor) NoStaticUse
|
||||
Decorate 37(d) RelaxedPrecision
|
||||
Decorate 58(bigColor) RelaxedPrecision
|
||||
Decorate 58(bigColor) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
9: TypeFloat 32
|
||||
10: TypeFunction 9(float)
|
||||
10: TypeFunction 9(float)
|
||||
13: TypeVector 9(float) 4
|
||||
14: TypePointer Function 13(fvec4)
|
||||
15: TypeFunction 9(float) 14(ptr)
|
||||
20: TypePointer Input 13(fvec4)
|
||||
21(BaseColor): 20(ptr) Variable Input
|
||||
21(BaseColor): 20(ptr) Variable Input
|
||||
27: TypePointer Function 9(float)
|
||||
30: TypePointer Output 13(fvec4)
|
||||
31(gl_FragColor): 30(ptr) Variable Output
|
||||
31(gl_FragColor): 30(ptr) Variable Output
|
||||
36: TypePointer UniformConstant 9(float)
|
||||
37(d): 36(ptr) Variable UniformConstant
|
||||
37(d): 36(ptr) Variable UniformConstant
|
||||
39: 9(float) Constant 1082549862
|
||||
40: TypeBool
|
||||
44: 9(float) Constant 1067030938
|
||||
47: 9(float) Constant 1083179008
|
||||
57: TypePointer UniformConstant 13(fvec4)
|
||||
58(bigColor): 57(ptr) Variable UniformConstant
|
||||
58(bigColor): 57(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
19(color): 14(ptr) Variable Function
|
||||
22(param): 14(ptr) Variable Function
|
||||
28(f): 27(ptr) Variable Function
|
||||
23: 13(fvec4) Load 21(BaseColor)
|
||||
Store 22(param) 23
|
||||
19(color): 14(ptr) Variable Function
|
||||
22(param): 14(ptr) Variable Function
|
||||
28(f): 27(ptr) Variable Function
|
||||
23: 13(fvec4) Load 21(BaseColor)
|
||||
Store 22(param) 23
|
||||
24: 9(float) FunctionCall 17(foo(vf4;) 22(param)
|
||||
25: 13(fvec4) CompositeConstruct 24 24 24 24
|
||||
Store 19(color) 25
|
||||
26: 2 FunctionCall 7(bar()
|
||||
29: 9(float) FunctionCall 11(unreachableReturn()
|
||||
Store 28(f) 29
|
||||
32: 13(fvec4) Load 19(color)
|
||||
33: 9(float) Load 28(f)
|
||||
Store 19(color) 25
|
||||
26: 2 FunctionCall 7(bar()
|
||||
29: 9(float) FunctionCall 11(unreachableReturn()
|
||||
Store 28(f) 29
|
||||
32: 13(fvec4) Load 19(color)
|
||||
33: 9(float) Load 28(f)
|
||||
34: 13(fvec4) VectorTimesScalar 32 33
|
||||
Store 31(gl_FragColor) 34
|
||||
Store 31(gl_FragColor) 34
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
@ -80,26 +82,26 @@ Linked fragment stage:
|
||||
FunctionEnd
|
||||
11(unreachableReturn(): 9(float) Function None 10
|
||||
12: Label
|
||||
49(dummyReturn): 27(ptr) Variable Function
|
||||
35: 2 FunctionCall 7(bar()
|
||||
38: 9(float) Load 37(d)
|
||||
49(dummyReturn): 27(ptr) Variable Function
|
||||
35: 2 FunctionCall 7(bar()
|
||||
38: 9(float) Load 37(d)
|
||||
41: 40(bool) FOrdLessThan 38 39
|
||||
SelectionMerge 43 None
|
||||
BranchConditional 41 42 46
|
||||
BranchConditional 41 42 46
|
||||
42: Label
|
||||
ReturnValue 44
|
||||
46: Label
|
||||
ReturnValue 47
|
||||
43: Label
|
||||
50: 9(float) Load 49(dummyReturn)
|
||||
50: 9(float) Load 49(dummyReturn)
|
||||
ReturnValue 50
|
||||
FunctionEnd
|
||||
17(foo(vf4;): 9(float) Function None 15
|
||||
16(bar): 14(ptr) FunctionParameter
|
||||
18: Label
|
||||
51: 13(fvec4) Load 16(bar)
|
||||
51: 13(fvec4) Load 16(bar)
|
||||
52: 9(float) CompositeExtract 51 0
|
||||
53: 13(fvec4) Load 16(bar)
|
||||
53: 13(fvec4) Load 16(bar)
|
||||
54: 9(float) CompositeExtract 53 1
|
||||
55: 9(float) FAdd 52 54
|
||||
ReturnValue 55
|
||||
|
||||
80
Test/baseResults/spv.functionCall.frag.out
Normal file → Executable file
80
Test/baseResults/spv.functionCall.frag.out
Normal file → Executable file
@ -10,9 +10,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 76
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 12 "foo(vf4;"
|
||||
Name 11 "bar"
|
||||
@ -30,21 +32,21 @@ Linked fragment stage:
|
||||
Name 65 "g"
|
||||
Name 68 "gl_FragColor"
|
||||
Name 75 "bigColor"
|
||||
Decorate 57(BaseColor) Smooth
|
||||
Decorate 57(BaseColor) Smooth
|
||||
Decorate 68(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 75(bigColor) NoStaticUse
|
||||
Decorate 75(bigColor) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
10: TypeFunction 7(float) 9(ptr)
|
||||
16: TypeFunction 7(float)
|
||||
16: TypeFunction 7(float)
|
||||
21: TypePointer PrivateGlobal 7(float)
|
||||
22(h): 21(ptr) Variable PrivateGlobal
|
||||
22(h): 21(ptr) Variable PrivateGlobal
|
||||
23: 7(float) Constant 0
|
||||
30: TypePointer UniformConstant 7(float)
|
||||
31(d): 30(ptr) Variable UniformConstant
|
||||
31(d): 30(ptr) Variable UniformConstant
|
||||
33: 7(float) Constant 1082549862
|
||||
34: TypeBool
|
||||
38: 7(float) Constant 1067030938
|
||||
@ -52,34 +54,34 @@ Linked fragment stage:
|
||||
43: TypePointer Function 7(float)
|
||||
51: 7(float) Constant 1081711002
|
||||
56: TypePointer Input 8(fvec4)
|
||||
57(BaseColor): 56(ptr) Variable Input
|
||||
57(BaseColor): 56(ptr) Variable Input
|
||||
67: TypePointer Output 8(fvec4)
|
||||
68(gl_FragColor): 67(ptr) Variable Output
|
||||
68(gl_FragColor): 67(ptr) Variable Output
|
||||
74: TypePointer UniformConstant 8(fvec4)
|
||||
75(bigColor): 74(ptr) Variable UniformConstant
|
||||
75(bigColor): 74(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
55(color): 9(ptr) Variable Function
|
||||
58(param): 9(ptr) Variable Function
|
||||
63(f): 43(ptr) Variable Function
|
||||
65(g): 43(ptr) Variable Function
|
||||
Store 22(h) 23
|
||||
59: 8(fvec4) Load 57(BaseColor)
|
||||
Store 58(param) 59
|
||||
55(color): 9(ptr) Variable Function
|
||||
58(param): 9(ptr) Variable Function
|
||||
63(f): 43(ptr) Variable Function
|
||||
65(g): 43(ptr) Variable Function
|
||||
Store 22(h) 23
|
||||
59: 8(fvec4) Load 57(BaseColor)
|
||||
Store 58(param) 59
|
||||
60: 7(float) FunctionCall 12(foo(vf4;) 58(param)
|
||||
61: 8(fvec4) CompositeConstruct 60 60 60 60
|
||||
Store 55(color) 61
|
||||
62: 2 FunctionCall 14(bar()
|
||||
64: 7(float) FunctionCall 17(unreachableReturn()
|
||||
Store 63(f) 64
|
||||
66: 7(float) FunctionCall 19(missingReturn()
|
||||
Store 65(g) 66
|
||||
69: 8(fvec4) Load 55(color)
|
||||
70: 7(float) Load 63(f)
|
||||
Store 55(color) 61
|
||||
62: 2 FunctionCall 14(bar()
|
||||
64: 7(float) FunctionCall 17(unreachableReturn()
|
||||
Store 63(f) 64
|
||||
66: 7(float) FunctionCall 19(missingReturn()
|
||||
Store 65(g) 66
|
||||
69: 8(fvec4) Load 55(color)
|
||||
70: 7(float) Load 63(f)
|
||||
71: 8(fvec4) VectorTimesScalar 69 70
|
||||
72: 7(float) Load 22(h)
|
||||
72: 7(float) Load 22(h)
|
||||
73: 8(fvec4) VectorTimesScalar 71 72
|
||||
Store 68(gl_FragColor) 73
|
||||
Store 68(gl_FragColor) 73
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
@ -87,9 +89,9 @@ Linked fragment stage:
|
||||
12(foo(vf4;): 7(float) Function None 10
|
||||
11(bar): 9(ptr) FunctionParameter
|
||||
13: Label
|
||||
24: 8(fvec4) Load 11(bar)
|
||||
24: 8(fvec4) Load 11(bar)
|
||||
25: 7(float) CompositeExtract 24 0
|
||||
26: 8(fvec4) Load 11(bar)
|
||||
26: 8(fvec4) Load 11(bar)
|
||||
27: 7(float) CompositeExtract 26 1
|
||||
28: 7(float) FAdd 25 27
|
||||
ReturnValue 28
|
||||
@ -100,31 +102,31 @@ Linked fragment stage:
|
||||
FunctionEnd
|
||||
17(unreachableReturn(): 7(float) Function None 16
|
||||
18: Label
|
||||
44(dummyReturn): 43(ptr) Variable Function
|
||||
32: 7(float) Load 31(d)
|
||||
44(dummyReturn): 43(ptr) Variable Function
|
||||
32: 7(float) Load 31(d)
|
||||
35: 34(bool) FOrdLessThan 32 33
|
||||
SelectionMerge 37 None
|
||||
BranchConditional 35 36 40
|
||||
BranchConditional 35 36 40
|
||||
36: Label
|
||||
ReturnValue 38
|
||||
40: Label
|
||||
ReturnValue 41
|
||||
37: Label
|
||||
45: 7(float) Load 44(dummyReturn)
|
||||
45: 7(float) Load 44(dummyReturn)
|
||||
ReturnValue 45
|
||||
FunctionEnd
|
||||
19(missingReturn(): 7(float) Function None 16
|
||||
20: Label
|
||||
53(dummyReturn): 43(ptr) Variable Function
|
||||
46: 7(float) Load 31(d)
|
||||
53(dummyReturn): 43(ptr) Variable Function
|
||||
46: 7(float) Load 31(d)
|
||||
47: 34(bool) FOrdLessThan 46 41
|
||||
SelectionMerge 49 None
|
||||
BranchConditional 47 48 49
|
||||
BranchConditional 47 48 49
|
||||
48: Label
|
||||
50: 7(float) Load 31(d)
|
||||
Store 22(h) 50
|
||||
50: 7(float) Load 31(d)
|
||||
Store 22(h) 50
|
||||
ReturnValue 51
|
||||
49: Label
|
||||
54: 7(float) Load 53(dummyReturn)
|
||||
54: 7(float) Load 53(dummyReturn)
|
||||
ReturnValue 54
|
||||
FunctionEnd
|
||||
|
||||
164
Test/baseResults/spv.functionSemantics.frag.out
Normal file → Executable file
164
Test/baseResults/spv.functionSemantics.frag.out
Normal file → Executable file
@ -10,9 +10,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 159
|
||||
|
||||
Source GLSL 400
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 16 "foo(i1;i1;i1;i1;i1;i1;"
|
||||
Name 10 "a"
|
||||
@ -48,7 +50,7 @@ Linked fragment stage:
|
||||
Name 155 "gl_FragColor"
|
||||
Decorate 155(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
9: TypeFunction 7(int) 8(ptr) 7(int) 8(ptr) 7(int) 8(ptr) 8(ptr)
|
||||
@ -57,13 +59,13 @@ Linked fragment stage:
|
||||
20: TypeVector 18(float) 3
|
||||
21: TypePointer Function 20(fvec3)
|
||||
22: TypeFunction 7(int) 19(ptr) 21(ptr) 8(ptr)
|
||||
28: TypeFunction 7(int)
|
||||
28: TypeFunction 7(int)
|
||||
39: 7(int) Constant 64
|
||||
44: 7(int) Constant 1024
|
||||
62: 18(float) Constant 1077936128
|
||||
66: 18(float) Constant 1084227584
|
||||
72: TypePointer UniformConstant 18(float)
|
||||
73(u): 72(ptr) Variable UniformConstant
|
||||
73(u): 72(ptr) Variable UniformConstant
|
||||
75: 18(float) Constant 1078774989
|
||||
76: TypeBool
|
||||
81: 7(int) Constant 1000000
|
||||
@ -79,89 +81,89 @@ Linked fragment stage:
|
||||
102: 7(int) Constant 8
|
||||
117: 7(int) Constant 128
|
||||
127: TypePointer PrivateGlobal 7(int)
|
||||
128(tempReturn): 127(ptr) Variable PrivateGlobal
|
||||
128(tempReturn): 127(ptr) Variable PrivateGlobal
|
||||
129: 18(float) Constant 1082130432
|
||||
130: 18(float) Constant 1065353216
|
||||
131: 18(float) Constant 1073741824
|
||||
132: 20(fvec3) ConstantComposite 130 131 62
|
||||
153: TypeVector 18(float) 4
|
||||
154: TypePointer Output 153(fvec4)
|
||||
155(gl_FragColor): 154(ptr) Variable Output
|
||||
155(gl_FragColor): 154(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
85(t): 8(ptr) Variable Function
|
||||
90(f): 89(ptr) Variable Function
|
||||
97(color): 8(ptr) Variable Function
|
||||
103(e): 8(ptr) Variable Function
|
||||
104(param): 8(ptr) Variable Function
|
||||
105(param): 8(ptr) Variable Function
|
||||
106(param): 8(ptr) Variable Function
|
||||
107(param): 8(ptr) Variable Function
|
||||
126(ret): 19(ptr) Variable Function
|
||||
133(tempArg): 8(ptr) Variable Function
|
||||
134(param): 19(ptr) Variable Function
|
||||
135(param): 21(ptr) Variable Function
|
||||
136(param): 8(ptr) Variable Function
|
||||
139(arg): 19(ptr) Variable Function
|
||||
Store 85(t) 86
|
||||
85(t): 8(ptr) Variable Function
|
||||
90(f): 89(ptr) Variable Function
|
||||
97(color): 8(ptr) Variable Function
|
||||
103(e): 8(ptr) Variable Function
|
||||
104(param): 8(ptr) Variable Function
|
||||
105(param): 8(ptr) Variable Function
|
||||
106(param): 8(ptr) Variable Function
|
||||
107(param): 8(ptr) Variable Function
|
||||
126(ret): 19(ptr) Variable Function
|
||||
133(tempArg): 8(ptr) Variable Function
|
||||
134(param): 19(ptr) Variable Function
|
||||
135(param): 21(ptr) Variable Function
|
||||
136(param): 8(ptr) Variable Function
|
||||
139(arg): 19(ptr) Variable Function
|
||||
Store 85(t) 86
|
||||
94: 93(ptr) AccessChain 90(f) 91
|
||||
95: 87(ivec4) Load 94
|
||||
95: 87(ivec4) Load 94
|
||||
96: 87(ivec4) CompositeInsert 92 95 1
|
||||
Store 94 96
|
||||
99: 7(int) Load 85(t)
|
||||
100: 7(int) Load 85(t)
|
||||
Store 94 96
|
||||
99: 7(int) Load 85(t)
|
||||
100: 7(int) Load 85(t)
|
||||
101: 7(int) IAdd 99 100
|
||||
Store 104(param) 98
|
||||
Store 105(param) 101
|
||||
Store 104(param) 98
|
||||
Store 105(param) 101
|
||||
108: 93(ptr) AccessChain 90(f) 91
|
||||
109: 87(ivec4) Load 108
|
||||
109: 87(ivec4) Load 108
|
||||
110: 7(int) CompositeExtract 109 1
|
||||
Store 107(param) 110
|
||||
Store 107(param) 110
|
||||
111: 7(int) FunctionCall 16(foo(i1;i1;i1;i1;i1;i1;) 104(param) 86 105(param) 102 106(param) 107(param)
|
||||
112: 7(int) Load 106(param)
|
||||
Store 103(e) 112
|
||||
113: 7(int) Load 107(param)
|
||||
112: 7(int) Load 106(param)
|
||||
Store 103(e) 112
|
||||
113: 7(int) Load 107(param)
|
||||
114: 93(ptr) AccessChain 90(f) 91
|
||||
115: 87(ivec4) Load 114
|
||||
115: 87(ivec4) Load 114
|
||||
116: 87(ivec4) CompositeInsert 113 115 1
|
||||
Store 114 116
|
||||
Store 97(color) 111
|
||||
118: 7(int) Load 103(e)
|
||||
Store 114 116
|
||||
Store 97(color) 111
|
||||
118: 7(int) Load 103(e)
|
||||
119: 93(ptr) AccessChain 90(f) 91
|
||||
120: 87(ivec4) Load 119
|
||||
120: 87(ivec4) Load 119
|
||||
121: 7(int) CompositeExtract 120 1
|
||||
122: 7(int) IAdd 118 121
|
||||
123: 7(int) IMul 117 122
|
||||
124: 7(int) Load 97(color)
|
||||
124: 7(int) Load 97(color)
|
||||
125: 7(int) IAdd 124 123
|
||||
Store 97(color) 125
|
||||
Store 134(param) 129
|
||||
Store 135(param) 132
|
||||
Store 97(color) 125
|
||||
Store 134(param) 129
|
||||
Store 135(param) 132
|
||||
137: 7(int) FunctionCall 26(foo2(f1;vf3;i1;) 134(param) 135(param) 136(param)
|
||||
138: 7(int) Load 136(param)
|
||||
Store 133(tempArg) 138
|
||||
Store 128(tempReturn) 137
|
||||
140: 7(int) Load 133(tempArg)
|
||||
138: 7(int) Load 136(param)
|
||||
Store 133(tempArg) 138
|
||||
Store 128(tempReturn) 137
|
||||
140: 7(int) Load 133(tempArg)
|
||||
141: 18(float) ConvertSToF 140
|
||||
Store 139(arg) 141
|
||||
142: 7(int) Load 128(tempReturn)
|
||||
Store 139(arg) 141
|
||||
142: 7(int) Load 128(tempReturn)
|
||||
143: 18(float) ConvertSToF 142
|
||||
Store 126(ret) 143
|
||||
144: 18(float) Load 126(ret)
|
||||
145: 18(float) Load 139(arg)
|
||||
Store 126(ret) 143
|
||||
144: 18(float) Load 126(ret)
|
||||
145: 18(float) Load 139(arg)
|
||||
146: 18(float) FAdd 144 145
|
||||
147: 7(int) ConvertFToS 146
|
||||
148: 7(int) Load 97(color)
|
||||
148: 7(int) Load 97(color)
|
||||
149: 7(int) IAdd 148 147
|
||||
Store 97(color) 149
|
||||
150: 7(int) FunctionCall 29(foo3()
|
||||
151: 7(int) Load 97(color)
|
||||
Store 97(color) 149
|
||||
150: 7(int) FunctionCall 29(foo3()
|
||||
151: 7(int) Load 97(color)
|
||||
152: 7(int) IAdd 151 150
|
||||
Store 97(color) 152
|
||||
156: 7(int) Load 97(color)
|
||||
Store 97(color) 152
|
||||
156: 7(int) Load 97(color)
|
||||
157: 18(float) ConvertSToF 156
|
||||
158: 153(fvec4) CompositeConstruct 157 157 157 157
|
||||
Store 155(gl_FragColor) 158
|
||||
Store 155(gl_FragColor) 158
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
@ -174,40 +176,40 @@ Linked fragment stage:
|
||||
14(e): 8(ptr) FunctionParameter
|
||||
15(f): 8(ptr) FunctionParameter
|
||||
17: Label
|
||||
31(sum): 8(ptr) Variable Function
|
||||
32: 7(int) Load 10(a)
|
||||
31(sum): 8(ptr) Variable Function
|
||||
32: 7(int) Load 10(a)
|
||||
33: 7(int) IAdd 32 11(b)
|
||||
34: 7(int) Load 12(c)
|
||||
34: 7(int) Load 12(c)
|
||||
35: 7(int) IAdd 33 34
|
||||
36: 7(int) IAdd 35 13(d)
|
||||
37: 7(int) Load 15(f)
|
||||
37: 7(int) Load 15(f)
|
||||
38: 7(int) IAdd 36 37
|
||||
Store 31(sum) 38
|
||||
40: 7(int) Load 10(a)
|
||||
Store 31(sum) 38
|
||||
40: 7(int) Load 10(a)
|
||||
41: 7(int) IMul 40 39
|
||||
Store 10(a) 41
|
||||
42: 7(int) Load 12(c)
|
||||
Store 10(a) 41
|
||||
42: 7(int) Load 12(c)
|
||||
43: 7(int) IMul 42 39
|
||||
Store 12(c) 43
|
||||
Store 14(e) 44
|
||||
45: 7(int) Load 15(f)
|
||||
Store 12(c) 43
|
||||
Store 14(e) 44
|
||||
45: 7(int) Load 15(f)
|
||||
46: 7(int) IMul 45 39
|
||||
Store 15(f) 46
|
||||
47: 7(int) Load 10(a)
|
||||
Store 15(f) 46
|
||||
47: 7(int) Load 10(a)
|
||||
48: 7(int) IMul 39 11(b)
|
||||
49: 7(int) IAdd 47 48
|
||||
50: 7(int) Load 12(c)
|
||||
50: 7(int) Load 12(c)
|
||||
51: 7(int) IAdd 49 50
|
||||
52: 7(int) IMul 39 13(d)
|
||||
53: 7(int) IAdd 51 52
|
||||
54: 7(int) Load 14(e)
|
||||
54: 7(int) Load 14(e)
|
||||
55: 7(int) IAdd 53 54
|
||||
56: 7(int) Load 15(f)
|
||||
56: 7(int) Load 15(f)
|
||||
57: 7(int) IAdd 55 56
|
||||
58: 7(int) Load 31(sum)
|
||||
58: 7(int) Load 31(sum)
|
||||
59: 7(int) IAdd 58 57
|
||||
Store 31(sum) 59
|
||||
60: 7(int) Load 31(sum)
|
||||
Store 31(sum) 59
|
||||
60: 7(int) Load 31(sum)
|
||||
ReturnValue 60
|
||||
FunctionEnd
|
||||
26(foo2(f1;vf3;i1;): 7(int) Function None 22
|
||||
@ -215,11 +217,11 @@ Linked fragment stage:
|
||||
24(b): 21(ptr) FunctionParameter
|
||||
25(r): 8(ptr) FunctionParameter
|
||||
27: Label
|
||||
63: 18(float) Load 23(a)
|
||||
63: 18(float) Load 23(a)
|
||||
64: 18(float) FMul 62 63
|
||||
65: 7(int) ConvertFToS 64
|
||||
Store 25(r) 65
|
||||
67: 20(fvec3) Load 24(b)
|
||||
Store 25(r) 65
|
||||
67: 20(fvec3) Load 24(b)
|
||||
68: 18(float) CompositeExtract 67 1
|
||||
69: 18(float) FMul 66 68
|
||||
70: 7(int) ConvertFToS 69
|
||||
@ -227,10 +229,10 @@ Linked fragment stage:
|
||||
FunctionEnd
|
||||
29(foo3(): 7(int) Function None 28
|
||||
30: Label
|
||||
74: 18(float) Load 73(u)
|
||||
74: 18(float) Load 73(u)
|
||||
77: 76(bool) FOrdGreaterThan 74 75
|
||||
SelectionMerge 79 None
|
||||
BranchConditional 77 78 79
|
||||
BranchConditional 77 78 79
|
||||
78: Label
|
||||
Kill
|
||||
79: Label
|
||||
|
||||
26
Test/baseResults/spv.length.frag.out
Normal file → Executable file
26
Test/baseResults/spv.length.frag.out
Normal file → Executable file
@ -8,19 +8,21 @@ Linked fragment stage:
|
||||
// Id's are bound by 34
|
||||
|
||||
Source GLSL 120
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "t"
|
||||
Name 15 "v"
|
||||
Name 27 "gl_FragColor"
|
||||
Name 33 "u"
|
||||
Decorate 15(v) Smooth
|
||||
Decorate 15(v) Smooth
|
||||
Decorate 27(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 33(u) NoStaticUse
|
||||
Decorate 33(u) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 2
|
||||
9: TypePointer Function 8(fvec2)
|
||||
@ -28,30 +30,30 @@ Linked fragment stage:
|
||||
12: 11(int) Constant 2
|
||||
13: TypeArray 8(fvec2) 12
|
||||
14: TypePointer Input 13
|
||||
15(v): 14(ptr) Variable Input
|
||||
15(v): 14(ptr) Variable Input
|
||||
16: TypeInt 32 1
|
||||
17: 16(int) Constant 0
|
||||
18: TypePointer Input 8(fvec2)
|
||||
21: 16(int) Constant 1
|
||||
25: TypeVector 7(float) 4
|
||||
26: TypePointer Output 25(fvec4)
|
||||
27(gl_FragColor): 26(ptr) Variable Output
|
||||
27(gl_FragColor): 26(ptr) Variable Output
|
||||
28: 7(float) Constant 1106247680
|
||||
29: 25(fvec4) ConstantComposite 28 28 28 28
|
||||
30: 11(int) Constant 3
|
||||
31: TypeArray 25(fvec4) 30
|
||||
32: TypePointer UniformConstant 31
|
||||
33(u): 32(ptr) Variable UniformConstant
|
||||
33(u): 32(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(t): 9(ptr) Variable Function
|
||||
10(t): 9(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 15(v) 17
|
||||
20: 8(fvec2) Load 19
|
||||
20: 8(fvec2) Load 19
|
||||
22: 18(ptr) AccessChain 15(v) 21
|
||||
23: 8(fvec2) Load 22
|
||||
23: 8(fvec2) Load 22
|
||||
24: 8(fvec2) FAdd 20 23
|
||||
Store 10(t) 24
|
||||
Store 27(gl_FragColor) 29
|
||||
Store 10(t) 24
|
||||
Store 27(gl_FragColor) 29
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
165
Test/baseResults/spv.localAggregates.frag.out
Normal file → Executable file
165
Test/baseResults/spv.localAggregates.frag.out
Normal file → Executable file
@ -8,12 +8,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 134
|
||||
// Id's are bound by 135
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "s1"
|
||||
MemberName 9(s1) 0 "i"
|
||||
@ -40,18 +42,18 @@ Linked fragment stage:
|
||||
Name 87 "condition"
|
||||
Name 95 "color"
|
||||
Name 105 "gl_FragColor"
|
||||
Name 124 "sampler"
|
||||
Name 130 "foo"
|
||||
Name 131 "foo2"
|
||||
Name 133 "uFloatArray"
|
||||
Decorate 41(coord) Smooth
|
||||
Decorate 95(color) Smooth
|
||||
Name 125 "sampler"
|
||||
Name 131 "foo"
|
||||
Name 132 "foo2"
|
||||
Name 134 "uFloatArray"
|
||||
Decorate 41(coord) Smooth
|
||||
Decorate 95(color) Smooth
|
||||
Decorate 105(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 130(foo) NoStaticUse
|
||||
Decorate 131(foo2) NoStaticUse
|
||||
Decorate 133(uFloatArray) NoStaticUse
|
||||
Decorate 131(foo) NoStaticUse
|
||||
Decorate 132(foo2) NoStaticUse
|
||||
Decorate 134(uFloatArray) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypeFloat 32
|
||||
9(s1): TypeStruct 7(int) 8(float)
|
||||
@ -60,7 +62,7 @@ Linked fragment stage:
|
||||
12: TypePointer Function 11(s2)
|
||||
14(s3): TypeStruct 11(s2) 7(int) 8(float) 9(s1)
|
||||
15: TypePointer UniformConstant 14(s3)
|
||||
16(foo3): 15(ptr) Variable UniformConstant
|
||||
16(foo3): 15(ptr) Variable UniformConstant
|
||||
17: 7(int) Constant 0
|
||||
18: TypePointer UniformConstant 11(s2)
|
||||
21: TypePointer UniformConstant 7(int)
|
||||
@ -76,7 +78,7 @@ Linked fragment stage:
|
||||
38: 7(int) Constant 4
|
||||
39: TypeVector 8(float) 2
|
||||
40: TypePointer Input 39(fvec2)
|
||||
41(coord): 40(ptr) Variable Input
|
||||
41(coord): 40(ptr) Variable Input
|
||||
45: 33(int) Constant 8
|
||||
46: TypeArray 7(int) 45
|
||||
47: TypePointer Function 46
|
||||
@ -84,134 +86,135 @@ Linked fragment stage:
|
||||
68: 7(int) Constant 5
|
||||
79: 7(int) Constant 16
|
||||
83: 8(float) Constant 0
|
||||
87(condition): 21(ptr) Variable UniformConstant
|
||||
87(condition): 21(ptr) Variable UniformConstant
|
||||
93: 7(int) Constant 3
|
||||
94: TypePointer Input 10(fvec4)
|
||||
95(color): 94(ptr) Variable Input
|
||||
95(color): 94(ptr) Variable Input
|
||||
97: TypePointer Function 10(fvec4)
|
||||
104: TypePointer Output 10(fvec4)
|
||||
105(gl_FragColor): 104(ptr) Variable Output
|
||||
122: TypeSampler8(float) 2D filter+texture
|
||||
123: TypePointer UniformConstant 122
|
||||
124(sampler): 123(ptr) Variable UniformConstant
|
||||
129: TypePointer UniformConstant 9(s1)
|
||||
130(foo): 129(ptr) Variable UniformConstant
|
||||
131(foo2): 18(ptr) Variable UniformConstant
|
||||
132: TypePointer UniformConstant 35
|
||||
133(uFloatArray): 132(ptr) Variable UniformConstant
|
||||
105(gl_FragColor): 104(ptr) Variable Output
|
||||
122: TypeImage 8(float) 2D sampled format:Unknown
|
||||
123: TypeSampledImage 122
|
||||
124: TypePointer UniformConstant 123
|
||||
125(sampler): 124(ptr) Variable UniformConstant
|
||||
130: TypePointer UniformConstant 9(s1)
|
||||
131(foo): 130(ptr) Variable UniformConstant
|
||||
132(foo2): 18(ptr) Variable UniformConstant
|
||||
133: TypePointer UniformConstant 35
|
||||
134(uFloatArray): 133(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13(locals2): 12(ptr) Variable Function
|
||||
37(localFArray): 36(ptr) Variable Function
|
||||
48(localIArray): 47(ptr) Variable Function
|
||||
67(x): 51(ptr) Variable Function
|
||||
69(localArray): 36(ptr) Variable Function
|
||||
74(i): 51(ptr) Variable Function
|
||||
81(a): 36(ptr) Variable Function
|
||||
13(locals2): 12(ptr) Variable Function
|
||||
37(localFArray): 36(ptr) Variable Function
|
||||
48(localIArray): 47(ptr) Variable Function
|
||||
67(x): 51(ptr) Variable Function
|
||||
69(localArray): 36(ptr) Variable Function
|
||||
74(i): 51(ptr) Variable Function
|
||||
81(a): 36(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 16(foo3) 17
|
||||
20: 11(s2) Load 19
|
||||
Store 13(locals2) 20
|
||||
20: 11(s2) Load 19
|
||||
Store 13(locals2) 20
|
||||
22: 21(ptr) AccessChain 16(foo3) 17 17
|
||||
23: 7(int) Load 22
|
||||
23: 7(int) Load 22
|
||||
25: 24(bool) SGreaterThan 23 17
|
||||
SelectionMerge 27 None
|
||||
BranchConditional 25 26 53
|
||||
BranchConditional 25 26 53
|
||||
26: Label
|
||||
32: 31(ptr) AccessChain 13(locals2) 28 29
|
||||
Store 32 30
|
||||
42: 39(fvec2) Load 41(coord)
|
||||
Store 32 30
|
||||
42: 39(fvec2) Load 41(coord)
|
||||
43: 8(float) CompositeExtract 42 0
|
||||
44: 31(ptr) AccessChain 37(localFArray) 38
|
||||
Store 44 43
|
||||
Store 44 43
|
||||
49: 21(ptr) AccessChain 16(foo3) 17 17
|
||||
50: 7(int) Load 49
|
||||
50: 7(int) Load 49
|
||||
52: 51(ptr) AccessChain 48(localIArray) 28
|
||||
Store 52 50
|
||||
Store 52 50
|
||||
Branch 27
|
||||
53: Label
|
||||
54: 39(fvec2) Load 41(coord)
|
||||
54: 39(fvec2) Load 41(coord)
|
||||
55: 8(float) CompositeExtract 54 0
|
||||
56: 31(ptr) AccessChain 13(locals2) 28 29
|
||||
Store 56 55
|
||||
Store 56 55
|
||||
57: 31(ptr) AccessChain 37(localFArray) 38
|
||||
Store 57 30
|
||||
Store 57 30
|
||||
58: 51(ptr) AccessChain 48(localIArray) 28
|
||||
Store 58 17
|
||||
Store 58 17
|
||||
Branch 27
|
||||
27: Label
|
||||
59: 51(ptr) AccessChain 48(localIArray) 28
|
||||
60: 7(int) Load 59
|
||||
60: 7(int) Load 59
|
||||
61: 24(bool) IEqual 60 17
|
||||
SelectionMerge 63 None
|
||||
BranchConditional 61 62 63
|
||||
BranchConditional 61 62 63
|
||||
62: Label
|
||||
64: 31(ptr) AccessChain 37(localFArray) 38
|
||||
65: 8(float) Load 64
|
||||
65: 8(float) Load 64
|
||||
66: 8(float) FAdd 65 30
|
||||
Store 64 66
|
||||
Store 64 66
|
||||
Branch 63
|
||||
63: Label
|
||||
Store 67(x) 68
|
||||
70: 7(int) Load 67(x)
|
||||
71: 39(fvec2) Load 41(coord)
|
||||
Store 67(x) 68
|
||||
70: 7(int) Load 67(x)
|
||||
71: 39(fvec2) Load 41(coord)
|
||||
72: 8(float) CompositeExtract 71 0
|
||||
73: 31(ptr) AccessChain 69(localArray) 70
|
||||
Store 73 72
|
||||
Store 74(i) 17
|
||||
Store 73 72
|
||||
Store 74(i) 17
|
||||
Branch 75
|
||||
75: Label
|
||||
78: 7(int) Load 74(i)
|
||||
78: 7(int) Load 74(i)
|
||||
80: 24(bool) SLessThan 78 79
|
||||
LoopMerge 76 None
|
||||
BranchConditional 80 77 76
|
||||
BranchConditional 80 77 76
|
||||
77: Label
|
||||
82: 7(int) Load 74(i)
|
||||
82: 7(int) Load 74(i)
|
||||
84: 31(ptr) AccessChain 81(a) 82
|
||||
Store 84 83
|
||||
85: 7(int) Load 74(i)
|
||||
Store 84 83
|
||||
85: 7(int) Load 74(i)
|
||||
86: 7(int) IAdd 85 29
|
||||
Store 74(i) 86
|
||||
Store 74(i) 86
|
||||
Branch 75
|
||||
76: Label
|
||||
88: 7(int) Load 87(condition)
|
||||
88: 7(int) Load 87(condition)
|
||||
89: 24(bool) IEqual 88 29
|
||||
SelectionMerge 91 None
|
||||
BranchConditional 89 90 91
|
||||
BranchConditional 89 90 91
|
||||
90: Label
|
||||
92: 35 Load 69(localArray)
|
||||
Store 81(a) 92
|
||||
92: 35 Load 69(localArray)
|
||||
Store 81(a) 92
|
||||
Branch 91
|
||||
91: Label
|
||||
96: 10(fvec4) Load 95(color)
|
||||
96: 10(fvec4) Load 95(color)
|
||||
98: 97(ptr) AccessChain 13(locals2) 93
|
||||
Store 98 96
|
||||
99: 39(fvec2) Load 41(coord)
|
||||
Store 98 96
|
||||
99: 39(fvec2) Load 41(coord)
|
||||
100: 8(float) CompositeExtract 99 1
|
||||
101: 97(ptr) AccessChain 13(locals2) 93
|
||||
102: 10(fvec4) Load 101
|
||||
102: 10(fvec4) Load 101
|
||||
103: 10(fvec4) CompositeInsert 100 102 2
|
||||
Store 101 103
|
||||
Store 101 103
|
||||
106: 97(ptr) AccessChain 13(locals2) 93
|
||||
107: 10(fvec4) Load 106
|
||||
107: 10(fvec4) Load 106
|
||||
108: 31(ptr) AccessChain 37(localFArray) 38
|
||||
109: 8(float) Load 108
|
||||
109: 8(float) Load 108
|
||||
110: 31(ptr) AccessChain 13(locals2) 28 29
|
||||
111: 8(float) Load 110
|
||||
111: 8(float) Load 110
|
||||
112: 8(float) FAdd 109 111
|
||||
113: 7(int) Load 67(x)
|
||||
113: 7(int) Load 67(x)
|
||||
114: 31(ptr) AccessChain 69(localArray) 113
|
||||
115: 8(float) Load 114
|
||||
115: 8(float) Load 114
|
||||
116: 8(float) FAdd 112 115
|
||||
117: 7(int) Load 67(x)
|
||||
117: 7(int) Load 67(x)
|
||||
118: 31(ptr) AccessChain 81(a) 117
|
||||
119: 8(float) Load 118
|
||||
119: 8(float) Load 118
|
||||
120: 8(float) FAdd 116 119
|
||||
121: 10(fvec4) VectorTimesScalar 107 120
|
||||
125: 122 Load 124(sampler)
|
||||
126: 39(fvec2) Load 41(coord)
|
||||
127: 10(fvec4) TextureSample 125 126
|
||||
128: 10(fvec4) FMul 121 127
|
||||
Store 105(gl_FragColor) 128
|
||||
126: 123 Load 125(sampler)
|
||||
127: 39(fvec2) Load 41(coord)
|
||||
128: 10(fvec4) ImageSampleImplicitLod 126 127
|
||||
129: 10(fvec4) FMul 121 128
|
||||
Store 105(gl_FragColor) 129
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
864
Test/baseResults/spv.loops.frag.out
Normal file → Executable file
864
Test/baseResults/spv.loops.frag.out
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
336
Test/baseResults/spv.loopsArtificial.frag.out
Normal file → Executable file
336
Test/baseResults/spv.loopsArtificial.frag.out
Normal file → Executable file
@ -10,9 +10,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 196
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 12 "BaseColor"
|
||||
@ -63,120 +65,120 @@ Linked fragment stage:
|
||||
Name 191 "d33"
|
||||
Name 192 "d34"
|
||||
Name 195 "Count"
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 149(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 151(bigColor) NoStaticUse
|
||||
Decorate 152(bigColor1_1) NoStaticUse
|
||||
Decorate 153(bigColor1_2) NoStaticUse
|
||||
Decorate 154(bigColor1_3) NoStaticUse
|
||||
Decorate 155(bigColor2) NoStaticUse
|
||||
Decorate 156(bigColor3) NoStaticUse
|
||||
Decorate 157(bigColor5) NoStaticUse
|
||||
Decorate 158(bigColor6) NoStaticUse
|
||||
Decorate 159(bigColor7) NoStaticUse
|
||||
Decorate 160(bigColor8) NoStaticUse
|
||||
Decorate 161(d) NoStaticUse
|
||||
Decorate 162(d2) NoStaticUse
|
||||
Decorate 163(d3) NoStaticUse
|
||||
Decorate 164(d5) NoStaticUse
|
||||
Decorate 165(d6) NoStaticUse
|
||||
Decorate 166(d7) NoStaticUse
|
||||
Decorate 167(d8) NoStaticUse
|
||||
Decorate 168(d9) NoStaticUse
|
||||
Decorate 169(d10) NoStaticUse
|
||||
Decorate 170(d11) NoStaticUse
|
||||
Decorate 171(d12) NoStaticUse
|
||||
Decorate 172(d14) NoStaticUse
|
||||
Decorate 173(d15) NoStaticUse
|
||||
Decorate 174(d16) NoStaticUse
|
||||
Decorate 175(d17) NoStaticUse
|
||||
Decorate 176(d18) NoStaticUse
|
||||
Decorate 177(d19) NoStaticUse
|
||||
Decorate 178(d20) NoStaticUse
|
||||
Decorate 179(d21) NoStaticUse
|
||||
Decorate 180(d22) NoStaticUse
|
||||
Decorate 181(d23) NoStaticUse
|
||||
Decorate 182(d24) NoStaticUse
|
||||
Decorate 183(d25) NoStaticUse
|
||||
Decorate 184(d26) NoStaticUse
|
||||
Decorate 185(d27) NoStaticUse
|
||||
Decorate 186(d28) NoStaticUse
|
||||
Decorate 187(d29) NoStaticUse
|
||||
Decorate 188(d30) NoStaticUse
|
||||
Decorate 189(d31) NoStaticUse
|
||||
Decorate 190(d32) NoStaticUse
|
||||
Decorate 191(d33) NoStaticUse
|
||||
Decorate 192(d34) NoStaticUse
|
||||
Decorate 195(Count) NoStaticUse
|
||||
Decorate 151(bigColor) NoStaticUse
|
||||
Decorate 152(bigColor1_1) NoStaticUse
|
||||
Decorate 153(bigColor1_2) NoStaticUse
|
||||
Decorate 154(bigColor1_3) NoStaticUse
|
||||
Decorate 155(bigColor2) NoStaticUse
|
||||
Decorate 156(bigColor3) NoStaticUse
|
||||
Decorate 157(bigColor5) NoStaticUse
|
||||
Decorate 158(bigColor6) NoStaticUse
|
||||
Decorate 159(bigColor7) NoStaticUse
|
||||
Decorate 160(bigColor8) NoStaticUse
|
||||
Decorate 161(d) NoStaticUse
|
||||
Decorate 162(d2) NoStaticUse
|
||||
Decorate 163(d3) NoStaticUse
|
||||
Decorate 164(d5) NoStaticUse
|
||||
Decorate 165(d6) NoStaticUse
|
||||
Decorate 166(d7) NoStaticUse
|
||||
Decorate 167(d8) NoStaticUse
|
||||
Decorate 168(d9) NoStaticUse
|
||||
Decorate 169(d10) NoStaticUse
|
||||
Decorate 170(d11) NoStaticUse
|
||||
Decorate 171(d12) NoStaticUse
|
||||
Decorate 172(d14) NoStaticUse
|
||||
Decorate 173(d15) NoStaticUse
|
||||
Decorate 174(d16) NoStaticUse
|
||||
Decorate 175(d17) NoStaticUse
|
||||
Decorate 176(d18) NoStaticUse
|
||||
Decorate 177(d19) NoStaticUse
|
||||
Decorate 178(d20) NoStaticUse
|
||||
Decorate 179(d21) NoStaticUse
|
||||
Decorate 180(d22) NoStaticUse
|
||||
Decorate 181(d23) NoStaticUse
|
||||
Decorate 182(d24) NoStaticUse
|
||||
Decorate 183(d25) NoStaticUse
|
||||
Decorate 184(d26) NoStaticUse
|
||||
Decorate 185(d27) NoStaticUse
|
||||
Decorate 186(d28) NoStaticUse
|
||||
Decorate 187(d29) NoStaticUse
|
||||
Decorate 188(d30) NoStaticUse
|
||||
Decorate 189(d31) NoStaticUse
|
||||
Decorate 190(d32) NoStaticUse
|
||||
Decorate 191(d33) NoStaticUse
|
||||
Decorate 192(d34) NoStaticUse
|
||||
Decorate 195(Count) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
18: TypeBool
|
||||
19: 18(bool) ConstantTrue
|
||||
24: TypePointer UniformConstant 7(float)
|
||||
25(d4): 24(ptr) Variable UniformConstant
|
||||
25(d4): 24(ptr) Variable UniformConstant
|
||||
29: TypePointer UniformConstant 8(fvec4)
|
||||
30(bigColor4): 29(ptr) Variable UniformConstant
|
||||
30(bigColor4): 29(ptr) Variable UniformConstant
|
||||
40: 7(float) Constant 1073741824
|
||||
54: 7(float) Constant 1065353216
|
||||
58: 18(bool) ConstantFalse
|
||||
84(d13): 24(ptr) Variable UniformConstant
|
||||
84(d13): 24(ptr) Variable UniformConstant
|
||||
148: TypePointer Output 8(fvec4)
|
||||
149(gl_FragColor): 148(ptr) Variable Output
|
||||
151(bigColor): 29(ptr) Variable UniformConstant
|
||||
152(bigColor1_1): 29(ptr) Variable UniformConstant
|
||||
153(bigColor1_2): 29(ptr) Variable UniformConstant
|
||||
154(bigColor1_3): 29(ptr) Variable UniformConstant
|
||||
155(bigColor2): 29(ptr) Variable UniformConstant
|
||||
156(bigColor3): 29(ptr) Variable UniformConstant
|
||||
157(bigColor5): 29(ptr) Variable UniformConstant
|
||||
158(bigColor6): 29(ptr) Variable UniformConstant
|
||||
159(bigColor7): 29(ptr) Variable UniformConstant
|
||||
160(bigColor8): 29(ptr) Variable UniformConstant
|
||||
161(d): 24(ptr) Variable UniformConstant
|
||||
162(d2): 24(ptr) Variable UniformConstant
|
||||
163(d3): 24(ptr) Variable UniformConstant
|
||||
164(d5): 24(ptr) Variable UniformConstant
|
||||
165(d6): 24(ptr) Variable UniformConstant
|
||||
166(d7): 24(ptr) Variable UniformConstant
|
||||
167(d8): 24(ptr) Variable UniformConstant
|
||||
168(d9): 24(ptr) Variable UniformConstant
|
||||
169(d10): 24(ptr) Variable UniformConstant
|
||||
170(d11): 24(ptr) Variable UniformConstant
|
||||
171(d12): 24(ptr) Variable UniformConstant
|
||||
172(d14): 24(ptr) Variable UniformConstant
|
||||
173(d15): 24(ptr) Variable UniformConstant
|
||||
174(d16): 24(ptr) Variable UniformConstant
|
||||
175(d17): 24(ptr) Variable UniformConstant
|
||||
176(d18): 24(ptr) Variable UniformConstant
|
||||
177(d19): 24(ptr) Variable UniformConstant
|
||||
178(d20): 24(ptr) Variable UniformConstant
|
||||
179(d21): 24(ptr) Variable UniformConstant
|
||||
180(d22): 24(ptr) Variable UniformConstant
|
||||
181(d23): 24(ptr) Variable UniformConstant
|
||||
182(d24): 24(ptr) Variable UniformConstant
|
||||
183(d25): 24(ptr) Variable UniformConstant
|
||||
184(d26): 24(ptr) Variable UniformConstant
|
||||
185(d27): 24(ptr) Variable UniformConstant
|
||||
186(d28): 24(ptr) Variable UniformConstant
|
||||
187(d29): 24(ptr) Variable UniformConstant
|
||||
188(d30): 24(ptr) Variable UniformConstant
|
||||
189(d31): 24(ptr) Variable UniformConstant
|
||||
190(d32): 24(ptr) Variable UniformConstant
|
||||
191(d33): 24(ptr) Variable UniformConstant
|
||||
192(d34): 24(ptr) Variable UniformConstant
|
||||
149(gl_FragColor): 148(ptr) Variable Output
|
||||
151(bigColor): 29(ptr) Variable UniformConstant
|
||||
152(bigColor1_1): 29(ptr) Variable UniformConstant
|
||||
153(bigColor1_2): 29(ptr) Variable UniformConstant
|
||||
154(bigColor1_3): 29(ptr) Variable UniformConstant
|
||||
155(bigColor2): 29(ptr) Variable UniformConstant
|
||||
156(bigColor3): 29(ptr) Variable UniformConstant
|
||||
157(bigColor5): 29(ptr) Variable UniformConstant
|
||||
158(bigColor6): 29(ptr) Variable UniformConstant
|
||||
159(bigColor7): 29(ptr) Variable UniformConstant
|
||||
160(bigColor8): 29(ptr) Variable UniformConstant
|
||||
161(d): 24(ptr) Variable UniformConstant
|
||||
162(d2): 24(ptr) Variable UniformConstant
|
||||
163(d3): 24(ptr) Variable UniformConstant
|
||||
164(d5): 24(ptr) Variable UniformConstant
|
||||
165(d6): 24(ptr) Variable UniformConstant
|
||||
166(d7): 24(ptr) Variable UniformConstant
|
||||
167(d8): 24(ptr) Variable UniformConstant
|
||||
168(d9): 24(ptr) Variable UniformConstant
|
||||
169(d10): 24(ptr) Variable UniformConstant
|
||||
170(d11): 24(ptr) Variable UniformConstant
|
||||
171(d12): 24(ptr) Variable UniformConstant
|
||||
172(d14): 24(ptr) Variable UniformConstant
|
||||
173(d15): 24(ptr) Variable UniformConstant
|
||||
174(d16): 24(ptr) Variable UniformConstant
|
||||
175(d17): 24(ptr) Variable UniformConstant
|
||||
176(d18): 24(ptr) Variable UniformConstant
|
||||
177(d19): 24(ptr) Variable UniformConstant
|
||||
178(d20): 24(ptr) Variable UniformConstant
|
||||
179(d21): 24(ptr) Variable UniformConstant
|
||||
180(d22): 24(ptr) Variable UniformConstant
|
||||
181(d23): 24(ptr) Variable UniformConstant
|
||||
182(d24): 24(ptr) Variable UniformConstant
|
||||
183(d25): 24(ptr) Variable UniformConstant
|
||||
184(d26): 24(ptr) Variable UniformConstant
|
||||
185(d27): 24(ptr) Variable UniformConstant
|
||||
186(d28): 24(ptr) Variable UniformConstant
|
||||
187(d29): 24(ptr) Variable UniformConstant
|
||||
188(d30): 24(ptr) Variable UniformConstant
|
||||
189(d31): 24(ptr) Variable UniformConstant
|
||||
190(d32): 24(ptr) Variable UniformConstant
|
||||
191(d33): 24(ptr) Variable UniformConstant
|
||||
192(d34): 24(ptr) Variable UniformConstant
|
||||
193: TypeInt 32 1
|
||||
194: TypePointer UniformConstant 193(int)
|
||||
195(Count): 194(ptr) Variable UniformConstant
|
||||
195(Count): 194(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(color): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
10(color): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
Branch 14
|
||||
14: Label
|
||||
17: 18(bool) Phi 19 5 58 50 58 65
|
||||
@ -184,173 +186,173 @@ Linked fragment stage:
|
||||
Branch 20
|
||||
20: Label
|
||||
SelectionMerge 16 None
|
||||
BranchConditional 17 16 21
|
||||
BranchConditional 17 16 21
|
||||
21: Label
|
||||
22: 8(fvec4) Load 10(color)
|
||||
22: 8(fvec4) Load 10(color)
|
||||
23: 7(float) CompositeExtract 22 2
|
||||
26: 7(float) Load 25(d4)
|
||||
26: 7(float) Load 25(d4)
|
||||
27: 18(bool) FOrdLessThan 23 26
|
||||
SelectionMerge 28 None
|
||||
BranchConditional 27 28 15
|
||||
BranchConditional 27 28 15
|
||||
28: Label
|
||||
Branch 16
|
||||
16: Label
|
||||
31: 8(fvec4) Load 30(bigColor4)
|
||||
32: 8(fvec4) Load 10(color)
|
||||
31: 8(fvec4) Load 30(bigColor4)
|
||||
32: 8(fvec4) Load 10(color)
|
||||
33: 8(fvec4) FAdd 32 31
|
||||
Store 10(color) 33
|
||||
34: 8(fvec4) Load 10(color)
|
||||
Store 10(color) 33
|
||||
34: 8(fvec4) Load 10(color)
|
||||
35: 7(float) CompositeExtract 34 0
|
||||
36: 7(float) Load 25(d4)
|
||||
36: 7(float) Load 25(d4)
|
||||
37: 18(bool) FOrdLessThan 35 36
|
||||
SelectionMerge 39 None
|
||||
BranchConditional 37 38 39
|
||||
BranchConditional 37 38 39
|
||||
38: Label
|
||||
41: 8(fvec4) Load 10(color)
|
||||
41: 8(fvec4) Load 10(color)
|
||||
42: 7(float) CompositeExtract 41 2
|
||||
43: 7(float) FAdd 42 40
|
||||
44: 8(fvec4) Load 10(color)
|
||||
44: 8(fvec4) Load 10(color)
|
||||
45: 8(fvec4) CompositeInsert 43 44 2
|
||||
Store 10(color) 45
|
||||
46: 8(fvec4) Load 10(color)
|
||||
Store 10(color) 45
|
||||
46: 8(fvec4) Load 10(color)
|
||||
47: 7(float) CompositeExtract 46 2
|
||||
48: 7(float) Load 25(d4)
|
||||
48: 7(float) Load 25(d4)
|
||||
49: 18(bool) FOrdLessThan 47 48
|
||||
SelectionMerge 51 None
|
||||
BranchConditional 49 50 51
|
||||
BranchConditional 49 50 51
|
||||
50: Label
|
||||
52: 8(fvec4) Load 10(color)
|
||||
52: 8(fvec4) Load 10(color)
|
||||
53: 7(float) CompositeExtract 52 0
|
||||
55: 7(float) FAdd 53 54
|
||||
56: 8(fvec4) Load 10(color)
|
||||
56: 8(fvec4) Load 10(color)
|
||||
57: 8(fvec4) CompositeInsert 55 56 0
|
||||
Store 10(color) 57
|
||||
Store 10(color) 57
|
||||
Branch 14
|
||||
51: Label
|
||||
Branch 39
|
||||
39: Label
|
||||
60: 8(fvec4) Load 10(color)
|
||||
60: 8(fvec4) Load 10(color)
|
||||
61: 7(float) CompositeExtract 60 1
|
||||
62: 7(float) Load 25(d4)
|
||||
62: 7(float) Load 25(d4)
|
||||
63: 18(bool) FOrdLessThan 61 62
|
||||
SelectionMerge 65 None
|
||||
BranchConditional 63 64 72
|
||||
BranchConditional 63 64 72
|
||||
64: Label
|
||||
66: 7(float) Load 25(d4)
|
||||
67: 8(fvec4) Load 10(color)
|
||||
66: 7(float) Load 25(d4)
|
||||
67: 8(fvec4) Load 10(color)
|
||||
68: 7(float) CompositeExtract 67 1
|
||||
69: 7(float) FAdd 68 66
|
||||
70: 8(fvec4) Load 10(color)
|
||||
70: 8(fvec4) Load 10(color)
|
||||
71: 8(fvec4) CompositeInsert 69 70 1
|
||||
Store 10(color) 71
|
||||
Store 10(color) 71
|
||||
Branch 65
|
||||
72: Label
|
||||
73: 7(float) Load 25(d4)
|
||||
74: 8(fvec4) Load 10(color)
|
||||
73: 7(float) Load 25(d4)
|
||||
74: 8(fvec4) Load 10(color)
|
||||
75: 7(float) CompositeExtract 74 0
|
||||
76: 7(float) FAdd 75 73
|
||||
77: 8(fvec4) Load 10(color)
|
||||
77: 8(fvec4) Load 10(color)
|
||||
78: 8(fvec4) CompositeInsert 76 77 0
|
||||
Store 10(color) 78
|
||||
Store 10(color) 78
|
||||
Branch 65
|
||||
65: Label
|
||||
Branch 14
|
||||
15: Label
|
||||
Branch 79
|
||||
79: Label
|
||||
82: 8(fvec4) Load 10(color)
|
||||
82: 8(fvec4) Load 10(color)
|
||||
83: 7(float) CompositeExtract 82 3
|
||||
85: 7(float) Load 84(d13)
|
||||
85: 7(float) Load 84(d13)
|
||||
86: 18(bool) FOrdLessThan 83 85
|
||||
LoopMerge 80 None
|
||||
BranchConditional 86 81 80
|
||||
BranchConditional 86 81 80
|
||||
81: Label
|
||||
87: 8(fvec4) Load 10(color)
|
||||
87: 8(fvec4) Load 10(color)
|
||||
88: 7(float) CompositeExtract 87 2
|
||||
89: 7(float) Load 84(d13)
|
||||
89: 7(float) Load 84(d13)
|
||||
90: 18(bool) FOrdLessThan 88 89
|
||||
SelectionMerge 92 None
|
||||
BranchConditional 90 91 96
|
||||
BranchConditional 90 91 96
|
||||
91: Label
|
||||
93: 8(fvec4) Load 10(color)
|
||||
93: 8(fvec4) Load 10(color)
|
||||
94: 8(fvec4) CompositeConstruct 54 54 54 54
|
||||
95: 8(fvec4) FAdd 93 94
|
||||
Store 10(color) 95
|
||||
Store 10(color) 95
|
||||
Branch 92
|
||||
96: Label
|
||||
97: 8(fvec4) Load 10(color)
|
||||
97: 8(fvec4) Load 10(color)
|
||||
98: 8(fvec4) CompositeConstruct 54 54 54 54
|
||||
99: 8(fvec4) FSub 97 98
|
||||
Store 10(color) 99
|
||||
Store 10(color) 99
|
||||
Branch 92
|
||||
92: Label
|
||||
100: 8(fvec4) Load 30(bigColor4)
|
||||
101: 8(fvec4) Load 10(color)
|
||||
100: 8(fvec4) Load 30(bigColor4)
|
||||
101: 8(fvec4) Load 10(color)
|
||||
102: 8(fvec4) FAdd 101 100
|
||||
Store 10(color) 102
|
||||
103: 8(fvec4) Load 10(color)
|
||||
Store 10(color) 102
|
||||
103: 8(fvec4) Load 10(color)
|
||||
104: 7(float) CompositeExtract 103 0
|
||||
105: 7(float) Load 25(d4)
|
||||
105: 7(float) Load 25(d4)
|
||||
106: 18(bool) FOrdLessThan 104 105
|
||||
SelectionMerge 108 None
|
||||
BranchConditional 106 107 108
|
||||
BranchConditional 106 107 108
|
||||
107: Label
|
||||
109: 8(fvec4) Load 10(color)
|
||||
109: 8(fvec4) Load 10(color)
|
||||
110: 7(float) CompositeExtract 109 2
|
||||
111: 7(float) FAdd 110 40
|
||||
112: 8(fvec4) Load 10(color)
|
||||
112: 8(fvec4) Load 10(color)
|
||||
113: 8(fvec4) CompositeInsert 111 112 2
|
||||
Store 10(color) 113
|
||||
114: 8(fvec4) Load 10(color)
|
||||
Store 10(color) 113
|
||||
114: 8(fvec4) Load 10(color)
|
||||
115: 7(float) CompositeExtract 114 2
|
||||
116: 7(float) Load 25(d4)
|
||||
116: 7(float) Load 25(d4)
|
||||
117: 18(bool) FOrdLessThan 115 116
|
||||
SelectionMerge 119 None
|
||||
BranchConditional 117 118 119
|
||||
BranchConditional 117 118 119
|
||||
118: Label
|
||||
120: 8(fvec4) Load 10(color)
|
||||
120: 8(fvec4) Load 10(color)
|
||||
121: 7(float) CompositeExtract 120 0
|
||||
122: 7(float) FAdd 121 54
|
||||
123: 8(fvec4) Load 10(color)
|
||||
123: 8(fvec4) Load 10(color)
|
||||
124: 8(fvec4) CompositeInsert 122 123 0
|
||||
Store 10(color) 124
|
||||
Store 10(color) 124
|
||||
Branch 79
|
||||
119: Label
|
||||
Branch 108
|
||||
108: Label
|
||||
126: 8(fvec4) Load 10(color)
|
||||
126: 8(fvec4) Load 10(color)
|
||||
127: 7(float) CompositeExtract 126 1
|
||||
128: 7(float) Load 25(d4)
|
||||
128: 7(float) Load 25(d4)
|
||||
129: 18(bool) FOrdLessThan 127 128
|
||||
SelectionMerge 131 None
|
||||
BranchConditional 129 130 138
|
||||
BranchConditional 129 130 138
|
||||
130: Label
|
||||
132: 7(float) Load 25(d4)
|
||||
133: 8(fvec4) Load 10(color)
|
||||
132: 7(float) Load 25(d4)
|
||||
133: 8(fvec4) Load 10(color)
|
||||
134: 7(float) CompositeExtract 133 1
|
||||
135: 7(float) FAdd 134 132
|
||||
136: 8(fvec4) Load 10(color)
|
||||
136: 8(fvec4) Load 10(color)
|
||||
137: 8(fvec4) CompositeInsert 135 136 1
|
||||
Store 10(color) 137
|
||||
Store 10(color) 137
|
||||
Branch 131
|
||||
138: Label
|
||||
139: 7(float) Load 25(d4)
|
||||
140: 8(fvec4) Load 10(color)
|
||||
139: 7(float) Load 25(d4)
|
||||
140: 8(fvec4) Load 10(color)
|
||||
141: 7(float) CompositeExtract 140 0
|
||||
142: 7(float) FAdd 141 139
|
||||
143: 8(fvec4) Load 10(color)
|
||||
143: 8(fvec4) Load 10(color)
|
||||
144: 8(fvec4) CompositeInsert 142 143 0
|
||||
Store 10(color) 144
|
||||
Store 10(color) 144
|
||||
Branch 131
|
||||
131: Label
|
||||
Branch 79
|
||||
80: Label
|
||||
145: 8(fvec4) Load 10(color)
|
||||
145: 8(fvec4) Load 10(color)
|
||||
146: 8(fvec4) CompositeConstruct 54 54 54 54
|
||||
147: 8(fvec4) FAdd 145 146
|
||||
Store 10(color) 147
|
||||
150: 8(fvec4) Load 10(color)
|
||||
Store 149(gl_FragColor) 150
|
||||
Store 10(color) 147
|
||||
150: 8(fvec4) Load 10(color)
|
||||
Store 149(gl_FragColor) 150
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
61
Test/baseResults/spv.matFun.vert.out
Normal file → Executable file
61
Test/baseResults/spv.matFun.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 94
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 15 "xf(mf33;vf3;"
|
||||
Name 13 "m"
|
||||
@ -32,9 +33,9 @@ Linked vertex stage:
|
||||
Name 93 "gl_VertexID"
|
||||
Decorate 70(gl_Position) BuiltIn Position
|
||||
Decorate 93(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 93(gl_VertexID) NoStaticUse
|
||||
Decorate 93(gl_VertexID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 3
|
||||
9: TypeMatrix 8(fvec3) 3
|
||||
@ -54,37 +55,37 @@ Linked vertex stage:
|
||||
47: 7(float) Constant 1065353216
|
||||
48: 7(float) Constant 0
|
||||
69: TypePointer Output 17(fvec4)
|
||||
70(gl_Position): 69(ptr) Variable Output
|
||||
70(gl_Position): 69(ptr) Variable Output
|
||||
71: TypePointer UniformConstant 18
|
||||
72(m4): 71(ptr) Variable UniformConstant
|
||||
72(m4): 71(ptr) Variable UniformConstant
|
||||
73: TypePointer Input 8(fvec3)
|
||||
74(v3): 73(ptr) Variable Input
|
||||
74(v3): 73(ptr) Variable Input
|
||||
80: TypePointer UniformConstant 9
|
||||
81(m3): 80(ptr) Variable UniformConstant
|
||||
81(m3): 80(ptr) Variable UniformConstant
|
||||
92: TypePointer Input 33(int)
|
||||
93(gl_VertexID): 92(ptr) Variable Input
|
||||
93(gl_VertexID): 92(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
75(param): 19(ptr) Variable Function
|
||||
77(param): 11(ptr) Variable Function
|
||||
82(param): 10(ptr) Variable Function
|
||||
84(param): 11(ptr) Variable Function
|
||||
76: 18 Load 72(m4)
|
||||
Store 75(param) 76
|
||||
78: 8(fvec3) Load 74(v3)
|
||||
Store 77(param) 78
|
||||
75(param): 19(ptr) Variable Function
|
||||
77(param): 11(ptr) Variable Function
|
||||
82(param): 10(ptr) Variable Function
|
||||
84(param): 11(ptr) Variable Function
|
||||
76: 18 Load 72(m4)
|
||||
Store 75(param) 76
|
||||
78: 8(fvec3) Load 74(v3)
|
||||
Store 77(param) 78
|
||||
79: 8(fvec3) FunctionCall 27(mxv(mf44;vf3;) 75(param) 77(param)
|
||||
83: 9 Load 81(m3)
|
||||
Store 82(param) 83
|
||||
85: 8(fvec3) Load 74(v3)
|
||||
Store 84(param) 85
|
||||
83: 9 Load 81(m3)
|
||||
Store 82(param) 83
|
||||
85: 8(fvec3) Load 74(v3)
|
||||
Store 84(param) 85
|
||||
86: 8(fvec3) FunctionCall 15(xf(mf33;vf3;) 82(param) 84(param)
|
||||
87: 8(fvec3) FAdd 79 86
|
||||
88: 7(float) CompositeExtract 87 0
|
||||
89: 7(float) CompositeExtract 87 1
|
||||
90: 7(float) CompositeExtract 87 2
|
||||
91: 17(fvec4) CompositeConstruct 88 89 90 47
|
||||
Store 70(gl_Position) 91
|
||||
Store 70(gl_Position) 91
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
@ -93,8 +94,8 @@ Linked vertex stage:
|
||||
13(m): 10(ptr) FunctionParameter
|
||||
14(v): 11(ptr) FunctionParameter
|
||||
16: Label
|
||||
29: 8(fvec3) Load 14(v)
|
||||
30: 9 Load 13(m)
|
||||
29: 8(fvec3) Load 14(v)
|
||||
30: 9 Load 13(m)
|
||||
31: 8(fvec3) VectorTimesMatrix 29 30
|
||||
ReturnValue 31
|
||||
FunctionEnd
|
||||
@ -102,13 +103,13 @@ Linked vertex stage:
|
||||
21(m): 19(ptr) FunctionParameter
|
||||
23: Label
|
||||
36: 35(ptr) AccessChain 21(m) 34
|
||||
37: 17(fvec4) Load 36
|
||||
37: 17(fvec4) Load 36
|
||||
38: 8(fvec3) VectorShuffle 37 37 0 1 2
|
||||
40: 35(ptr) AccessChain 21(m) 39
|
||||
41: 17(fvec4) Load 40
|
||||
41: 17(fvec4) Load 40
|
||||
42: 8(fvec3) VectorShuffle 41 41 0 1 2
|
||||
44: 35(ptr) AccessChain 21(m) 43
|
||||
45: 17(fvec4) Load 44
|
||||
45: 17(fvec4) Load 44
|
||||
46: 8(fvec3) VectorShuffle 45 45 0 1 2
|
||||
49: 7(float) CompositeExtract 38 0
|
||||
50: 7(float) CompositeExtract 38 1
|
||||
@ -129,10 +130,10 @@ Linked vertex stage:
|
||||
25(m4): 19(ptr) FunctionParameter
|
||||
26(v): 11(ptr) FunctionParameter
|
||||
28: Label
|
||||
64(param): 19(ptr) Variable Function
|
||||
63: 8(fvec3) Load 26(v)
|
||||
65: 18 Load 25(m4)
|
||||
Store 64(param) 65
|
||||
64(param): 19(ptr) Variable Function
|
||||
63: 8(fvec3) Load 26(v)
|
||||
65: 18 Load 25(m4)
|
||||
Store 64(param) 65
|
||||
66: 9 FunctionCall 22(Mat3(mf44;) 64(param)
|
||||
67: 8(fvec3) VectorTimesMatrix 63 66
|
||||
ReturnValue 67
|
||||
|
||||
47
Test/baseResults/spv.nonSquare.vert.out
Normal file → Executable file
47
Test/baseResults/spv.nonSquare.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 91
|
||||
|
||||
Source GLSL 120
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 10 "a"
|
||||
Name 13 "v3"
|
||||
@ -20,25 +21,25 @@ Linked vertex stage:
|
||||
Name 29 "gl_Position"
|
||||
Name 56 "v4"
|
||||
Decorate 29(gl_Position) BuiltIn Position
|
||||
Decorate 75 NoStaticUse
|
||||
Decorate 79 NoStaticUse
|
||||
Decorate 90 NoStaticUse
|
||||
Decorate 75 NoStaticUse
|
||||
Decorate 79 NoStaticUse
|
||||
Decorate 90 NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 2
|
||||
9: TypePointer Function 8(fvec2)
|
||||
11: TypeVector 7(float) 3
|
||||
12: TypePointer Input 11(fvec3)
|
||||
13(v3): 12(ptr) Variable Input
|
||||
13(v3): 12(ptr) Variable Input
|
||||
15: TypeMatrix 11(fvec3) 2
|
||||
16: TypePointer Function 15
|
||||
21: TypeMatrix 8(fvec2) 3
|
||||
22: TypePointer UniformConstant 21
|
||||
23(m32): 22(ptr) Variable UniformConstant
|
||||
23(m32): 22(ptr) Variable UniformConstant
|
||||
27: TypeVector 7(float) 4
|
||||
28: TypePointer Output 27(fvec4)
|
||||
29(gl_Position): 28(ptr) Variable Output
|
||||
29(gl_Position): 28(ptr) Variable Output
|
||||
32: TypeMatrix 11(fvec3) 3
|
||||
36: 7(float) Constant 0
|
||||
41: TypeMatrix 27(fvec4) 4
|
||||
@ -56,7 +57,7 @@ Linked vertex stage:
|
||||
53: 27(fvec4) ConstantComposite 51 52 36 36
|
||||
54: 41 ConstantComposite 44 47 50 53
|
||||
55: TypePointer Input 27(fvec4)
|
||||
56(v4): 55(ptr) Variable Input
|
||||
56(v4): 55(ptr) Variable Input
|
||||
60: 7(float) Constant 1112014848
|
||||
61: 7(float) Constant 1121714176
|
||||
62: 7(float) Constant 1126825984
|
||||
@ -87,33 +88,33 @@ Linked vertex stage:
|
||||
90: 80 ConstantComposite 83 85 86 89
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(a): 9(ptr) Variable Function
|
||||
17(m23): 16(ptr) Variable Function
|
||||
20(b): 9(ptr) Variable Function
|
||||
14: 11(fvec3) Load 13(v3)
|
||||
18: 15 Load 17(m23)
|
||||
10(a): 9(ptr) Variable Function
|
||||
17(m23): 16(ptr) Variable Function
|
||||
20(b): 9(ptr) Variable Function
|
||||
14: 11(fvec3) Load 13(v3)
|
||||
18: 15 Load 17(m23)
|
||||
19: 8(fvec2) VectorTimesMatrix 14 18
|
||||
Store 10(a) 19
|
||||
24: 21 Load 23(m32)
|
||||
25: 11(fvec3) Load 13(v3)
|
||||
Store 10(a) 19
|
||||
24: 21 Load 23(m32)
|
||||
25: 11(fvec3) Load 13(v3)
|
||||
26: 8(fvec2) MatrixTimesVector 24 25
|
||||
Store 20(b) 26
|
||||
30: 15 Load 17(m23)
|
||||
31: 21 Load 23(m32)
|
||||
Store 20(b) 26
|
||||
30: 15 Load 17(m23)
|
||||
31: 21 Load 23(m32)
|
||||
33: 32 MatrixTimesMatrix 30 31
|
||||
34: 11(fvec3) Load 13(v3)
|
||||
34: 11(fvec3) Load 13(v3)
|
||||
35: 11(fvec3) MatrixTimesVector 33 34
|
||||
37: 7(float) CompositeExtract 35 0
|
||||
38: 7(float) CompositeExtract 35 1
|
||||
39: 7(float) CompositeExtract 35 2
|
||||
40: 27(fvec4) CompositeConstruct 37 38 39 36
|
||||
57: 27(fvec4) Load 56(v4)
|
||||
57: 27(fvec4) Load 56(v4)
|
||||
58: 27(fvec4) MatrixTimesVector 54 57
|
||||
59: 27(fvec4) FAdd 40 58
|
||||
65: 27(fvec4) FAdd 59 64
|
||||
69: 27(fvec4) FAdd 65 68
|
||||
74: 27(fvec4) FAdd 69 73
|
||||
Store 29(gl_Position) 74
|
||||
Store 29(gl_Position) 74
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
144
Test/baseResults/spv.precision.frag.out
Normal file → Executable file
144
Test/baseResults/spv.precision.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 111
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 13 "foo(vf3;"
|
||||
Name 12 "mv3"
|
||||
@ -31,24 +33,20 @@ Linked fragment stage:
|
||||
Name 72 "mediumfout"
|
||||
Name 101 "ub2"
|
||||
Name 102 "param"
|
||||
Decorate 24(highfin) PrecisionHigh
|
||||
Decorate 24(highfin) Smooth
|
||||
Decorate 37(sum) PrecisionLow
|
||||
Decorate 39(uniform_medium) PrecisionMedium
|
||||
Decorate 41(uniform_high) PrecisionHigh
|
||||
Decorate 47(uniform_low) PrecisionLow
|
||||
Decorate 52(arg1) PrecisionLow
|
||||
Decorate 54(arg2) PrecisionMedium
|
||||
Decorate 56(d) PrecisionLow
|
||||
Decorate 58(lowfin) PrecisionLow
|
||||
Decorate 58(lowfin) Smooth
|
||||
Decorate 60(mediumfin) PrecisionMedium
|
||||
Decorate 60(mediumfin) Smooth
|
||||
Decorate 64(global_highp) PrecisionHigh
|
||||
Decorate 68(local_highp) PrecisionHigh
|
||||
Decorate 72(mediumfout) PrecisionMedium
|
||||
Decorate 24(highfin) Smooth
|
||||
Decorate 37(sum) RelaxedPrecision
|
||||
Decorate 39(uniform_medium) RelaxedPrecision
|
||||
Decorate 47(uniform_low) RelaxedPrecision
|
||||
Decorate 52(arg1) RelaxedPrecision
|
||||
Decorate 54(arg2) RelaxedPrecision
|
||||
Decorate 56(d) RelaxedPrecision
|
||||
Decorate 58(lowfin) RelaxedPrecision
|
||||
Decorate 58(lowfin) Smooth
|
||||
Decorate 60(mediumfin) RelaxedPrecision
|
||||
Decorate 60(mediumfin) Smooth
|
||||
Decorate 72(mediumfout) RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 3
|
||||
9: TypePointer Function 8(fvec3)
|
||||
@ -60,102 +58,102 @@ Linked fragment stage:
|
||||
18: TypeFunction 15(bool) 17(ptr)
|
||||
22: TypeVector 7(float) 4
|
||||
23: TypePointer Input 22(fvec4)
|
||||
24(highfin): 23(ptr) Variable Input
|
||||
24(highfin): 23(ptr) Variable Input
|
||||
29: 15(bool) ConstantFalse
|
||||
30: 15(bool) ConstantTrue
|
||||
31: 16(bvec2) ConstantComposite 29 30
|
||||
35: TypeInt 32 1
|
||||
36: TypePointer Function 35(int)
|
||||
38: TypePointer UniformConstant 35(int)
|
||||
39(uniform_medium): 38(ptr) Variable UniformConstant
|
||||
41(uniform_high): 38(ptr) Variable UniformConstant
|
||||
47(uniform_low): 38(ptr) Variable UniformConstant
|
||||
39(uniform_medium): 38(ptr) Variable UniformConstant
|
||||
41(uniform_high): 38(ptr) Variable UniformConstant
|
||||
47(uniform_low): 38(ptr) Variable UniformConstant
|
||||
51: TypePointer Function 7(float)
|
||||
53: 7(float) Constant 1078774989
|
||||
55: 7(float) Constant 1232730691
|
||||
57: TypePointer Input 7(float)
|
||||
58(lowfin): 57(ptr) Variable Input
|
||||
60(mediumfin): 57(ptr) Variable Input
|
||||
58(lowfin): 57(ptr) Variable Input
|
||||
60(mediumfin): 57(ptr) Variable Input
|
||||
63: TypePointer PrivateGlobal 7(float)
|
||||
64(global_highp): 63(ptr) Variable PrivateGlobal
|
||||
64(global_highp): 63(ptr) Variable PrivateGlobal
|
||||
67: TypePointer Function 22(fvec4)
|
||||
71: TypePointer Output 22(fvec4)
|
||||
72(mediumfout): 71(ptr) Variable Output
|
||||
72(mediumfout): 71(ptr) Variable Output
|
||||
81: 35(int) Constant 4
|
||||
83: TypeVector 35(int) 2
|
||||
100: TypePointer UniformConstant 16(bvec2)
|
||||
101(ub2): 100(ptr) Variable UniformConstant
|
||||
101(ub2): 100(ptr) Variable UniformConstant
|
||||
108: 7(float) Constant 1065353216
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
37(sum): 36(ptr) Variable Function
|
||||
52(arg1): 51(ptr) Variable Function
|
||||
54(arg2): 51(ptr) Variable Function
|
||||
56(d): 51(ptr) Variable Function
|
||||
68(local_highp): 67(ptr) Variable Function
|
||||
102(param): 17(ptr) Variable Function
|
||||
40: 35(int) Load 39(uniform_medium)
|
||||
42: 35(int) Load 41(uniform_high)
|
||||
37(sum): 36(ptr) Variable Function
|
||||
52(arg1): 51(ptr) Variable Function
|
||||
54(arg2): 51(ptr) Variable Function
|
||||
56(d): 51(ptr) Variable Function
|
||||
68(local_highp): 67(ptr) Variable Function
|
||||
102(param): 17(ptr) Variable Function
|
||||
40: 35(int) Load 39(uniform_medium)
|
||||
42: 35(int) Load 41(uniform_high)
|
||||
43: 35(int) IAdd 40 42
|
||||
Store 37(sum) 43
|
||||
44: 35(int) Load 41(uniform_high)
|
||||
45: 35(int) Load 37(sum)
|
||||
Store 37(sum) 43
|
||||
44: 35(int) Load 41(uniform_high)
|
||||
45: 35(int) Load 37(sum)
|
||||
46: 35(int) IAdd 45 44
|
||||
Store 37(sum) 46
|
||||
48: 35(int) Load 47(uniform_low)
|
||||
49: 35(int) Load 37(sum)
|
||||
Store 37(sum) 46
|
||||
48: 35(int) Load 47(uniform_low)
|
||||
49: 35(int) Load 37(sum)
|
||||
50: 35(int) IAdd 49 48
|
||||
Store 37(sum) 50
|
||||
Store 52(arg1) 53
|
||||
Store 54(arg2) 55
|
||||
59: 7(float) Load 58(lowfin)
|
||||
61: 7(float) Load 60(mediumfin)
|
||||
62: 7(float) ExtInst 1(GLSL.std.450) 59(distance) 59 61
|
||||
Store 56(d) 62
|
||||
65: 22(fvec4) Load 24(highfin)
|
||||
66: 7(float) ExtInst 1(GLSL.std.450) 58(length) 65
|
||||
Store 64(global_highp) 66
|
||||
69: 7(float) Load 64(global_highp)
|
||||
Store 37(sum) 50
|
||||
Store 52(arg1) 53
|
||||
Store 54(arg2) 55
|
||||
59: 7(float) Load 58(lowfin)
|
||||
61: 7(float) Load 60(mediumfin)
|
||||
62: 7(float) ExtInst 1(GLSL.std.450) 66(Distance) 59 61
|
||||
Store 56(d) 62
|
||||
65: 22(fvec4) Load 24(highfin)
|
||||
66: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 65
|
||||
Store 64(global_highp) 66
|
||||
69: 7(float) Load 64(global_highp)
|
||||
70: 22(fvec4) CompositeConstruct 69 69 69 69
|
||||
Store 68(local_highp) 70
|
||||
73: 7(float) Load 56(d)
|
||||
74: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 73
|
||||
Store 68(local_highp) 70
|
||||
73: 7(float) Load 56(d)
|
||||
74: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 73
|
||||
75: 22(fvec4) CompositeConstruct 74 74 74 74
|
||||
76: 7(float) Load 54(arg2)
|
||||
76: 7(float) Load 54(arg2)
|
||||
77: 22(fvec4) CompositeConstruct 76 76 76 76
|
||||
78: 22(fvec4) FAdd 75 77
|
||||
79: 22(fvec4) Load 68(local_highp)
|
||||
79: 22(fvec4) Load 68(local_highp)
|
||||
80: 22(fvec4) FAdd 78 79
|
||||
Store 72(mediumfout) 80
|
||||
82: 35(int) Load 47(uniform_low)
|
||||
Store 72(mediumfout) 80
|
||||
82: 35(int) Load 47(uniform_low)
|
||||
84: 83(ivec2) CompositeConstruct 82 82
|
||||
85: 35(int) Load 41(uniform_high)
|
||||
85: 35(int) Load 41(uniform_high)
|
||||
86: 83(ivec2) CompositeConstruct 85 85
|
||||
87: 83(ivec2) IMul 84 86
|
||||
88: 35(int) Load 41(uniform_high)
|
||||
88: 35(int) Load 41(uniform_high)
|
||||
89: 83(ivec2) CompositeConstruct 88 88
|
||||
90: 83(ivec2) IAdd 87 89
|
||||
91: 35(int) CompositeExtract 90 0
|
||||
92: 35(int) IAdd 81 91
|
||||
93: 35(int) Load 37(sum)
|
||||
93: 35(int) Load 37(sum)
|
||||
94: 35(int) IAdd 93 92
|
||||
Store 37(sum) 94
|
||||
95: 35(int) Load 37(sum)
|
||||
Store 37(sum) 94
|
||||
95: 35(int) Load 37(sum)
|
||||
96: 7(float) ConvertSToF 95
|
||||
97: 22(fvec4) CompositeConstruct 96 96 96 96
|
||||
98: 22(fvec4) Load 72(mediumfout)
|
||||
98: 22(fvec4) Load 72(mediumfout)
|
||||
99: 22(fvec4) FAdd 98 97
|
||||
Store 72(mediumfout) 99
|
||||
103: 16(bvec2) Load 101(ub2)
|
||||
Store 102(param) 103
|
||||
Store 72(mediumfout) 99
|
||||
103: 16(bvec2) Load 101(ub2)
|
||||
Store 102(param) 103
|
||||
104: 15(bool) FunctionCall 20(boolfun(vb2;) 102(param)
|
||||
SelectionMerge 106 None
|
||||
BranchConditional 104 105 106
|
||||
BranchConditional 104 105 106
|
||||
105: Label
|
||||
107: 22(fvec4) Load 72(mediumfout)
|
||||
107: 22(fvec4) Load 72(mediumfout)
|
||||
109: 22(fvec4) CompositeConstruct 108 108 108 108
|
||||
110: 22(fvec4) FAdd 107 109
|
||||
Store 72(mediumfout) 110
|
||||
Store 72(mediumfout) 110
|
||||
Branch 106
|
||||
106: Label
|
||||
Branch 6
|
||||
@ -165,14 +163,14 @@ Linked fragment stage:
|
||||
13(foo(vf3;): 10(fvec2) Function None 11
|
||||
12(mv3): 9(ptr) FunctionParameter
|
||||
14: Label
|
||||
25: 22(fvec4) Load 24(highfin)
|
||||
25: 22(fvec4) Load 24(highfin)
|
||||
26: 10(fvec2) VectorShuffle 25 25 0 1
|
||||
ReturnValue 26
|
||||
FunctionEnd
|
||||
20(boolfun(vb2;): 15(bool) Function None 18
|
||||
19(bv2): 17(ptr) FunctionParameter
|
||||
21: Label
|
||||
28: 16(bvec2) Load 19(bv2)
|
||||
28: 16(bvec2) Load 19(bv2)
|
||||
32: 16(bvec2) IEqual 28 31
|
||||
33: 15(bool) All 32
|
||||
ReturnValue 33
|
||||
|
||||
130
Test/baseResults/spv.prepost.frag.out
Normal file → Executable file
130
Test/baseResults/spv.prepost.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 97
|
||||
|
||||
Source GLSL 140
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "index"
|
||||
Name 15 "s"
|
||||
@ -24,7 +26,7 @@ Linked fragment stage:
|
||||
Name 93 "gl_FragColor"
|
||||
Decorate 93(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 5
|
||||
@ -46,104 +48,104 @@ Linked fragment stage:
|
||||
76: 11(float) Constant 1082130432
|
||||
77: 72(fvec4) ConstantComposite 29 20 75 76
|
||||
92: TypePointer Output 72(fvec4)
|
||||
93(gl_FragColor): 92(ptr) Variable Output
|
||||
93(gl_FragColor): 92(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(index): 8(ptr) Variable Function
|
||||
17(str): 16(ptr) Variable Function
|
||||
23(t): 21(ptr) Variable Function
|
||||
51(x): 21(ptr) Variable Function
|
||||
62(y): 21(ptr) Variable Function
|
||||
67(z): 21(ptr) Variable Function
|
||||
74(v): 73(ptr) Variable Function
|
||||
Store 9(index) 10
|
||||
9(index): 8(ptr) Variable Function
|
||||
17(str): 16(ptr) Variable Function
|
||||
23(t): 21(ptr) Variable Function
|
||||
51(x): 21(ptr) Variable Function
|
||||
62(y): 21(ptr) Variable Function
|
||||
67(z): 21(ptr) Variable Function
|
||||
74(v): 73(ptr) Variable Function
|
||||
Store 9(index) 10
|
||||
22: 21(ptr) AccessChain 17(str) 18 19
|
||||
Store 22 20
|
||||
24: 7(int) Load 9(index)
|
||||
Store 22 20
|
||||
24: 7(int) Load 9(index)
|
||||
26: 7(int) ISub 24 25
|
||||
Store 9(index) 26
|
||||
Store 9(index) 26
|
||||
27: 21(ptr) AccessChain 17(str) 18 26
|
||||
28: 11(float) Load 27
|
||||
28: 11(float) Load 27
|
||||
30: 11(float) FAdd 28 29
|
||||
Store 27 30
|
||||
Store 23(t) 30
|
||||
31: 11(float) Load 23(t)
|
||||
Store 27 30
|
||||
Store 23(t) 30
|
||||
31: 11(float) Load 23(t)
|
||||
32: 21(ptr) AccessChain 17(str) 18 19
|
||||
33: 11(float) Load 32
|
||||
33: 11(float) Load 32
|
||||
34: 11(float) FAdd 33 31
|
||||
35: 21(ptr) AccessChain 17(str) 18 19
|
||||
Store 35 34
|
||||
Store 35 34
|
||||
36: 21(ptr) AccessChain 17(str) 18 19
|
||||
37: 11(float) Load 36
|
||||
37: 11(float) Load 36
|
||||
38: 11(float) FSub 37 29
|
||||
Store 36 38
|
||||
Store 23(t) 37
|
||||
39: 7(int) Load 9(index)
|
||||
Store 36 38
|
||||
Store 23(t) 37
|
||||
39: 7(int) Load 9(index)
|
||||
40: 7(int) IAdd 39 25
|
||||
Store 9(index) 40
|
||||
41: 11(float) Load 23(t)
|
||||
Store 9(index) 40
|
||||
41: 11(float) Load 23(t)
|
||||
42: 21(ptr) AccessChain 17(str) 18 39
|
||||
43: 11(float) Load 42
|
||||
43: 11(float) Load 42
|
||||
44: 11(float) FAdd 43 41
|
||||
45: 21(ptr) AccessChain 17(str) 18 39
|
||||
Store 45 44
|
||||
46: 7(int) Load 9(index)
|
||||
Store 45 44
|
||||
46: 7(int) Load 9(index)
|
||||
47: 7(int) ISub 46 25
|
||||
Store 9(index) 47
|
||||
Store 9(index) 47
|
||||
48: 21(ptr) AccessChain 17(str) 18 47
|
||||
49: 11(float) Load 48
|
||||
49: 11(float) Load 48
|
||||
50: 11(float) FSub 49 29
|
||||
Store 48 50
|
||||
Store 48 50
|
||||
52: 21(ptr) AccessChain 17(str) 18 19
|
||||
53: 11(float) Load 52
|
||||
Store 51(x) 53
|
||||
54: 11(float) Load 51(x)
|
||||
53: 11(float) Load 52
|
||||
Store 51(x) 53
|
||||
54: 11(float) Load 51(x)
|
||||
55: 11(float) FAdd 54 29
|
||||
Store 51(x) 55
|
||||
56: 11(float) Load 51(x)
|
||||
Store 51(x) 55
|
||||
56: 11(float) Load 51(x)
|
||||
57: 11(float) FSub 56 29
|
||||
Store 51(x) 57
|
||||
58: 11(float) Load 51(x)
|
||||
Store 51(x) 57
|
||||
58: 11(float) Load 51(x)
|
||||
59: 11(float) FAdd 58 29
|
||||
Store 51(x) 59
|
||||
60: 11(float) Load 51(x)
|
||||
Store 51(x) 59
|
||||
60: 11(float) Load 51(x)
|
||||
61: 11(float) FSub 60 29
|
||||
Store 51(x) 61
|
||||
63: 11(float) Load 51(x)
|
||||
64: 11(float) Load 51(x)
|
||||
Store 51(x) 61
|
||||
63: 11(float) Load 51(x)
|
||||
64: 11(float) Load 51(x)
|
||||
65: 11(float) FAdd 64 29
|
||||
Store 51(x) 65
|
||||
Store 51(x) 65
|
||||
66: 11(float) FMul 63 65
|
||||
Store 62(y) 66
|
||||
68: 11(float) Load 62(y)
|
||||
69: 11(float) Load 51(x)
|
||||
Store 62(y) 66
|
||||
68: 11(float) Load 62(y)
|
||||
69: 11(float) Load 51(x)
|
||||
70: 11(float) FSub 69 29
|
||||
Store 51(x) 70
|
||||
Store 51(x) 70
|
||||
71: 11(float) FMul 68 69
|
||||
Store 67(z) 71
|
||||
Store 74(v) 77
|
||||
78: 72(fvec4) Load 74(v)
|
||||
Store 67(z) 71
|
||||
Store 74(v) 77
|
||||
78: 72(fvec4) Load 74(v)
|
||||
79: 11(float) CompositeExtract 78 2
|
||||
80: 11(float) FSub 79 29
|
||||
81: 72(fvec4) Load 74(v)
|
||||
81: 72(fvec4) Load 74(v)
|
||||
82: 72(fvec4) CompositeInsert 80 81 2
|
||||
Store 74(v) 82
|
||||
83: 72(fvec4) Load 74(v)
|
||||
Store 74(v) 82
|
||||
83: 72(fvec4) Load 74(v)
|
||||
84: 72(fvec4) CompositeInsert 79 83 1
|
||||
Store 74(v) 84
|
||||
85: 72(fvec4) Load 74(v)
|
||||
Store 74(v) 84
|
||||
85: 72(fvec4) Load 74(v)
|
||||
86: 11(float) CompositeExtract 85 3
|
||||
87: 11(float) FSub 86 29
|
||||
88: 72(fvec4) Load 74(v)
|
||||
88: 72(fvec4) Load 74(v)
|
||||
89: 72(fvec4) CompositeInsert 87 88 3
|
||||
Store 74(v) 89
|
||||
90: 72(fvec4) Load 74(v)
|
||||
Store 74(v) 89
|
||||
90: 72(fvec4) Load 74(v)
|
||||
91: 72(fvec4) CompositeInsert 87 90 0
|
||||
Store 74(v) 91
|
||||
94: 11(float) Load 67(z)
|
||||
95: 72(fvec4) Load 74(v)
|
||||
Store 74(v) 91
|
||||
94: 11(float) Load 67(z)
|
||||
95: 72(fvec4) Load 74(v)
|
||||
96: 72(fvec4) VectorTimesScalar 95 94
|
||||
Store 93(gl_FragColor) 96
|
||||
Store 93(gl_FragColor) 96
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
55
Test/baseResults/spv.qualifiers.vert.out
Normal file → Executable file
55
Test/baseResults/spv.qualifiers.vert.out
Normal file → Executable file
@ -10,9 +10,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 26
|
||||
|
||||
Source GLSL 430
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 10 "outVc"
|
||||
Name 12 "inV"
|
||||
@ -22,43 +23,43 @@ Linked vertex stage:
|
||||
Name 20 "outVcn"
|
||||
Name 24 "gl_VertexID"
|
||||
Name 25 "gl_InstanceID"
|
||||
Decorate 10(outVc) Smooth
|
||||
Decorate 14(outVs) Smooth
|
||||
Decorate 16(outVf) Flat
|
||||
Decorate 18(outVn) Noperspective
|
||||
Decorate 20(outVcn) Noperspective
|
||||
Decorate 10(outVc) Smooth
|
||||
Decorate 14(outVs) Smooth
|
||||
Decorate 16(outVf) Flat
|
||||
Decorate 18(outVn) Noperspective
|
||||
Decorate 20(outVcn) Noperspective
|
||||
Decorate 24(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 24(gl_VertexID) NoStaticUse
|
||||
Decorate 24(gl_VertexID) NoStaticUse
|
||||
Decorate 25(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 25(gl_InstanceID) NoStaticUse
|
||||
Decorate 25(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Output 8(fvec4)
|
||||
10(outVc): 9(ptr) Variable Output
|
||||
10(outVc): 9(ptr) Variable Output
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(inV): 11(ptr) Variable Input
|
||||
14(outVs): 9(ptr) Variable Output
|
||||
16(outVf): 9(ptr) Variable Output
|
||||
18(outVn): 9(ptr) Variable Output
|
||||
20(outVcn): 9(ptr) Variable Output
|
||||
12(inV): 11(ptr) Variable Input
|
||||
14(outVs): 9(ptr) Variable Output
|
||||
16(outVf): 9(ptr) Variable Output
|
||||
18(outVn): 9(ptr) Variable Output
|
||||
20(outVcn): 9(ptr) Variable Output
|
||||
22: TypeInt 32 1
|
||||
23: TypePointer Input 22(int)
|
||||
24(gl_VertexID): 23(ptr) Variable Input
|
||||
25(gl_InstanceID): 23(ptr) Variable Input
|
||||
24(gl_VertexID): 23(ptr) Variable Input
|
||||
25(gl_InstanceID): 23(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
13: 8(fvec4) Load 12(inV)
|
||||
Store 10(outVc) 13
|
||||
15: 8(fvec4) Load 12(inV)
|
||||
Store 14(outVs) 15
|
||||
17: 8(fvec4) Load 12(inV)
|
||||
Store 16(outVf) 17
|
||||
19: 8(fvec4) Load 12(inV)
|
||||
Store 18(outVn) 19
|
||||
21: 8(fvec4) Load 12(inV)
|
||||
Store 20(outVcn) 21
|
||||
13: 8(fvec4) Load 12(inV)
|
||||
Store 10(outVc) 13
|
||||
15: 8(fvec4) Load 12(inV)
|
||||
Store 14(outVs) 15
|
||||
17: 8(fvec4) Load 12(inV)
|
||||
Store 16(outVf) 17
|
||||
19: 8(fvec4) Load 12(inV)
|
||||
Store 18(outVn) 19
|
||||
21: 8(fvec4) Load 12(inV)
|
||||
Store 20(outVcn) 21
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
54
Test/baseResults/spv.set.vert.out
Normal file → Executable file
54
Test/baseResults/spv.set.vert.out
Normal file → Executable file
@ -7,55 +7,57 @@ Linked vertex stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 25
|
||||
// Id's are bound by 26
|
||||
|
||||
Source GLSL 450
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 11 "setBuf"
|
||||
MemberName 11(setBuf) 0 "color"
|
||||
Name 13 "setBufInst"
|
||||
Name 21 "sampler"
|
||||
Name 23 "gl_VertexID"
|
||||
Name 24 "gl_InstanceID"
|
||||
Decorate 10(color) Smooth
|
||||
Decorate 11(setBuf) GLSLShared
|
||||
Decorate 11(setBuf) BufferBlock
|
||||
Name 22 "sampler"
|
||||
Name 24 "gl_VertexID"
|
||||
Name 25 "gl_InstanceID"
|
||||
Decorate 10(color) Smooth
|
||||
Decorate 11(setBuf) GLSLShared
|
||||
Decorate 11(setBuf) BufferBlock
|
||||
Decorate 13(setBufInst) DescriptorSet 0
|
||||
Decorate 13(setBufInst) Binding 8
|
||||
Decorate 21(sampler) DescriptorSet 4
|
||||
Decorate 21(sampler) Binding 7
|
||||
Decorate 21(sampler) NoStaticUse
|
||||
Decorate 23(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 23(gl_VertexID) NoStaticUse
|
||||
Decorate 24(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 24(gl_InstanceID) NoStaticUse
|
||||
Decorate 22(sampler) DescriptorSet 4
|
||||
Decorate 22(sampler) Binding 7
|
||||
Decorate 22(sampler) NoStaticUse
|
||||
Decorate 24(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 24(gl_VertexID) NoStaticUse
|
||||
Decorate 25(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 25(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Output 8(fvec4)
|
||||
10(color): 9(ptr) Variable Output
|
||||
10(color): 9(ptr) Variable Output
|
||||
11(setBuf): TypeStruct 8(fvec4)
|
||||
12: TypePointer Uniform 11(setBuf)
|
||||
13(setBufInst): 12(ptr) Variable Uniform
|
||||
13(setBufInst): 12(ptr) Variable Uniform
|
||||
14: TypeInt 32 1
|
||||
15: 14(int) Constant 0
|
||||
16: TypePointer Uniform 8(fvec4)
|
||||
19: TypeSampler7(float) 2D filter+texture
|
||||
20: TypePointer UniformConstant 19
|
||||
21(sampler): 20(ptr) Variable UniformConstant
|
||||
22: TypePointer Input 14(int)
|
||||
23(gl_VertexID): 22(ptr) Variable Input
|
||||
24(gl_InstanceID): 22(ptr) Variable Input
|
||||
19: TypeImage 7(float) 2D sampled format:Unknown
|
||||
20: TypeSampledImage 19
|
||||
21: TypePointer UniformConstant 20
|
||||
22(sampler): 21(ptr) Variable UniformConstant
|
||||
23: TypePointer Input 14(int)
|
||||
24(gl_VertexID): 23(ptr) Variable Input
|
||||
25(gl_InstanceID): 23(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
17: 16(ptr) AccessChain 13(setBufInst) 15
|
||||
18: 8(fvec4) Load 17
|
||||
Store 10(color) 18
|
||||
18: 8(fvec4) Load 17
|
||||
Store 10(color) 18
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
28
Test/baseResults/spv.simpleFunctionCall.frag.out
Normal file → Executable file
28
Test/baseResults/spv.simpleFunctionCall.frag.out
Normal file → Executable file
@ -10,42 +10,44 @@ Linked fragment stage:
|
||||
// Id's are bound by 23
|
||||
|
||||
Source GLSL 150
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "foo("
|
||||
Name 13 "BaseColor"
|
||||
Name 17 "gl_FragColor"
|
||||
Name 20 "bigColor"
|
||||
Name 22 "d"
|
||||
Decorate 13(BaseColor) Smooth
|
||||
Decorate 13(BaseColor) Smooth
|
||||
Decorate 17(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 20(bigColor) NoStaticUse
|
||||
Decorate 22(d) NoStaticUse
|
||||
Decorate 20(bigColor) NoStaticUse
|
||||
Decorate 22(d) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypeFunction 8(fvec4)
|
||||
9: TypeFunction 8(fvec4)
|
||||
12: TypePointer Input 8(fvec4)
|
||||
13(BaseColor): 12(ptr) Variable Input
|
||||
13(BaseColor): 12(ptr) Variable Input
|
||||
16: TypePointer Output 8(fvec4)
|
||||
17(gl_FragColor): 16(ptr) Variable Output
|
||||
17(gl_FragColor): 16(ptr) Variable Output
|
||||
19: TypePointer UniformConstant 8(fvec4)
|
||||
20(bigColor): 19(ptr) Variable UniformConstant
|
||||
20(bigColor): 19(ptr) Variable UniformConstant
|
||||
21: TypePointer UniformConstant 7(float)
|
||||
22(d): 21(ptr) Variable UniformConstant
|
||||
22(d): 21(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
18: 8(fvec4) FunctionCall 10(foo()
|
||||
Store 17(gl_FragColor) 18
|
||||
18: 8(fvec4) FunctionCall 10(foo()
|
||||
Store 17(gl_FragColor) 18
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
10(foo(): 8(fvec4) Function None 9
|
||||
11: Label
|
||||
14: 8(fvec4) Load 13(BaseColor)
|
||||
14: 8(fvec4) Load 13(BaseColor)
|
||||
ReturnValue 14
|
||||
FunctionEnd
|
||||
|
||||
41
Test/baseResults/spv.simpleMat.vert.out
Normal file → Executable file
41
Test/baseResults/spv.simpleMat.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 44
|
||||
|
||||
Source GLSL 330
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 10 "glPos"
|
||||
Name 13 "mvp"
|
||||
@ -20,29 +21,29 @@ Linked vertex stage:
|
||||
Name 35 "arraym"
|
||||
Name 42 "gl_VertexID"
|
||||
Name 43 "gl_InstanceID"
|
||||
Decorate 10(glPos) Smooth
|
||||
Decorate 20(f) Smooth
|
||||
Decorate 10(glPos) Smooth
|
||||
Decorate 20(f) Smooth
|
||||
Decorate 42(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 42(gl_VertexID) NoStaticUse
|
||||
Decorate 42(gl_VertexID) NoStaticUse
|
||||
Decorate 43(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 43(gl_InstanceID) NoStaticUse
|
||||
Decorate 43(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Output 8(fvec4)
|
||||
10(glPos): 9(ptr) Variable Output
|
||||
10(glPos): 9(ptr) Variable Output
|
||||
11: TypeMatrix 8(fvec4) 4
|
||||
12: TypePointer UniformConstant 11
|
||||
13(mvp): 12(ptr) Variable UniformConstant
|
||||
13(mvp): 12(ptr) Variable UniformConstant
|
||||
15: TypePointer Input 8(fvec4)
|
||||
16(v): 15(ptr) Variable Input
|
||||
16(v): 15(ptr) Variable Input
|
||||
19: TypePointer Output 7(float)
|
||||
20(f): 19(ptr) Variable Output
|
||||
20(f): 19(ptr) Variable Output
|
||||
21: TypeVector 7(float) 3
|
||||
22: TypeMatrix 21(fvec3) 3
|
||||
23: TypePointer Input 22
|
||||
24(am3): 23(ptr) Variable Input
|
||||
24(am3): 23(ptr) Variable Input
|
||||
25: TypeInt 32 1
|
||||
26: 25(int) Constant 2
|
||||
27: TypePointer Input 21(fvec3)
|
||||
@ -50,25 +51,25 @@ Linked vertex stage:
|
||||
32: 31(int) Constant 3
|
||||
33: TypeArray 11 32
|
||||
34: TypePointer Input 33
|
||||
35(arraym): 34(ptr) Variable Input
|
||||
35(arraym): 34(ptr) Variable Input
|
||||
36: 25(int) Constant 1
|
||||
41: TypePointer Input 25(int)
|
||||
42(gl_VertexID): 41(ptr) Variable Input
|
||||
43(gl_InstanceID): 41(ptr) Variable Input
|
||||
42(gl_VertexID): 41(ptr) Variable Input
|
||||
43(gl_InstanceID): 41(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
14: 11 Load 13(mvp)
|
||||
17: 8(fvec4) Load 16(v)
|
||||
14: 11 Load 13(mvp)
|
||||
17: 8(fvec4) Load 16(v)
|
||||
18: 8(fvec4) MatrixTimesVector 14 17
|
||||
Store 10(glPos) 18
|
||||
Store 10(glPos) 18
|
||||
28: 27(ptr) AccessChain 24(am3) 26
|
||||
29: 21(fvec3) Load 28
|
||||
29: 21(fvec3) Load 28
|
||||
30: 7(float) CompositeExtract 29 1
|
||||
37: 15(ptr) AccessChain 35(arraym) 36 26
|
||||
38: 8(fvec4) Load 37
|
||||
38: 8(fvec4) Load 37
|
||||
39: 7(float) CompositeExtract 38 3
|
||||
40: 7(float) FAdd 30 39
|
||||
Store 20(f) 40
|
||||
Store 20(f) 40
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
67
Test/baseResults/spv.structAssignment.frag.out
Normal file → Executable file
67
Test/baseResults/spv.structAssignment.frag.out
Normal file → Executable file
@ -7,12 +7,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 50
|
||||
// Id's are bound by 51
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "lunarStruct1"
|
||||
MemberName 9(lunarStruct1) 0 "i"
|
||||
@ -30,66 +32,67 @@ Linked fragment stage:
|
||||
Name 23 "locals2"
|
||||
Name 28 "foo2"
|
||||
Name 32 "gl_FragColor"
|
||||
Name 40 "sampler"
|
||||
Name 44 "coord"
|
||||
Name 49 "foo"
|
||||
Name 41 "sampler"
|
||||
Name 45 "coord"
|
||||
Name 50 "foo"
|
||||
Decorate 32(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 44(coord) Smooth
|
||||
Decorate 49(foo) NoStaticUse
|
||||
Decorate 45(coord) Smooth
|
||||
Decorate 50(foo) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypeFloat 32
|
||||
9(lunarStruct1): TypeStruct 7(int) 8(float)
|
||||
10(lunarStruct2): TypeStruct 7(int) 8(float) 9(lunarStruct1)
|
||||
11(lunarStruct3): TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1)
|
||||
12: TypePointer UniformConstant 11(lunarStruct3)
|
||||
13(foo3): 12(ptr) Variable UniformConstant
|
||||
13(foo3): 12(ptr) Variable UniformConstant
|
||||
14: 7(int) Constant 0
|
||||
15: TypePointer UniformConstant 7(int)
|
||||
18: TypeBool
|
||||
22: TypePointer Function 10(lunarStruct2)
|
||||
24: TypePointer UniformConstant 10(lunarStruct2)
|
||||
28(foo2): 24(ptr) Variable UniformConstant
|
||||
28(foo2): 24(ptr) Variable UniformConstant
|
||||
30: TypeVector 8(float) 4
|
||||
31: TypePointer Output 30(fvec4)
|
||||
32(gl_FragColor): 31(ptr) Variable Output
|
||||
32(gl_FragColor): 31(ptr) Variable Output
|
||||
33: 7(int) Constant 2
|
||||
34: 7(int) Constant 1
|
||||
35: TypePointer Function 8(float)
|
||||
38: TypeSampler8(float) 2D filter+texture
|
||||
39: TypePointer UniformConstant 38
|
||||
40(sampler): 39(ptr) Variable UniformConstant
|
||||
42: TypeVector 8(float) 2
|
||||
43: TypePointer Input 42(fvec2)
|
||||
44(coord): 43(ptr) Variable Input
|
||||
48: TypePointer UniformConstant 9(lunarStruct1)
|
||||
49(foo): 48(ptr) Variable UniformConstant
|
||||
38: TypeImage 8(float) 2D sampled format:Unknown
|
||||
39: TypeSampledImage 38
|
||||
40: TypePointer UniformConstant 39
|
||||
41(sampler): 40(ptr) Variable UniformConstant
|
||||
43: TypeVector 8(float) 2
|
||||
44: TypePointer Input 43(fvec2)
|
||||
45(coord): 44(ptr) Variable Input
|
||||
49: TypePointer UniformConstant 9(lunarStruct1)
|
||||
50(foo): 49(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
23(locals2): 22(ptr) Variable Function
|
||||
23(locals2): 22(ptr) Variable Function
|
||||
16: 15(ptr) AccessChain 13(foo3) 14 14
|
||||
17: 7(int) Load 16
|
||||
17: 7(int) Load 16
|
||||
19: 18(bool) SGreaterThan 17 14
|
||||
SelectionMerge 21 None
|
||||
BranchConditional 19 20 27
|
||||
BranchConditional 19 20 27
|
||||
20: Label
|
||||
25: 24(ptr) AccessChain 13(foo3) 14
|
||||
26:10(lunarStruct2) Load 25
|
||||
Store 23(locals2) 26
|
||||
26:10(lunarStruct2) Load 25
|
||||
Store 23(locals2) 26
|
||||
Branch 21
|
||||
27: Label
|
||||
29:10(lunarStruct2) Load 28(foo2)
|
||||
Store 23(locals2) 29
|
||||
29:10(lunarStruct2) Load 28(foo2)
|
||||
Store 23(locals2) 29
|
||||
Branch 21
|
||||
21: Label
|
||||
36: 35(ptr) AccessChain 23(locals2) 33 34
|
||||
37: 8(float) Load 36
|
||||
41: 38 Load 40(sampler)
|
||||
45: 42(fvec2) Load 44(coord)
|
||||
46: 30(fvec4) TextureSample 41 45
|
||||
47: 30(fvec4) VectorTimesScalar 46 37
|
||||
Store 32(gl_FragColor) 47
|
||||
37: 8(float) Load 36
|
||||
42: 39 Load 41(sampler)
|
||||
46: 43(fvec2) Load 45(coord)
|
||||
47: 30(fvec4) ImageSampleImplicitLod 42 46
|
||||
48: 30(fvec4) VectorTimesScalar 47 37
|
||||
Store 32(gl_FragColor) 48
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
117
Test/baseResults/spv.structDeref.frag.out
Normal file → Executable file
117
Test/baseResults/spv.structDeref.frag.out
Normal file → Executable file
@ -7,12 +7,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 120
|
||||
// Id's are bound by 121
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "s0"
|
||||
MemberName 9(s0) 0 "i"
|
||||
@ -42,13 +44,13 @@ Linked fragment stage:
|
||||
Name 69 "foo0"
|
||||
Name 84 "foo00"
|
||||
Name 97 "gl_FragColor"
|
||||
Name 113 "sampler"
|
||||
Name 119 "foo2"
|
||||
Decorate 62(coord) Smooth
|
||||
Name 114 "sampler"
|
||||
Name 120 "foo2"
|
||||
Decorate 62(coord) Smooth
|
||||
Decorate 97(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 119(foo2) NoStaticUse
|
||||
Decorate 120(foo2) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypeFloat 32
|
||||
9(s0): TypeStruct 7(int)
|
||||
@ -59,7 +61,7 @@ Linked fragment stage:
|
||||
14: TypeArray 11(s2) 13
|
||||
15(s3): TypeStruct 14 7(int) 8(float) 10(s1)
|
||||
16: TypePointer UniformConstant 15(s3)
|
||||
17(foo3): 16(ptr) Variable UniformConstant
|
||||
17(foo3): 16(ptr) Variable UniformConstant
|
||||
18: 7(int) Constant 0
|
||||
19: 7(int) Constant 9
|
||||
20: TypePointer UniformConstant 7(int)
|
||||
@ -82,109 +84,110 @@ Linked fragment stage:
|
||||
46: TypePointer Function 45
|
||||
48: 7(int) Constant 6
|
||||
49: TypePointer UniformConstant 10(s1)
|
||||
50(foo1): 49(ptr) Variable UniformConstant
|
||||
50(foo1): 49(ptr) Variable UniformConstant
|
||||
53: TypePointer Function 9(s0)
|
||||
55(s00): TypeStruct 9(s0)
|
||||
56: TypePointer Function 55(s00)
|
||||
58: 55(s00) ConstantComposite 34
|
||||
60: TypeVector 8(float) 2
|
||||
61: TypePointer Input 60(fvec2)
|
||||
62(coord): 61(ptr) Variable Input
|
||||
62(coord): 61(ptr) Variable Input
|
||||
68: TypePointer UniformConstant 9(s0)
|
||||
69(foo0): 68(ptr) Variable UniformConstant
|
||||
69(foo0): 68(ptr) Variable UniformConstant
|
||||
73: 8(float) Constant 1073741824
|
||||
74: 8(float) Constant 1077936128
|
||||
75: 8(float) Constant 1082130432
|
||||
76: 8(float) Constant 1084227584
|
||||
77: 39 ConstantComposite 42 30 73 74 75 76
|
||||
83: TypePointer UniformConstant 55(s00)
|
||||
84(foo00): 83(ptr) Variable UniformConstant
|
||||
84(foo00): 83(ptr) Variable UniformConstant
|
||||
86: TypePointer Function 7(int)
|
||||
89: 7(int) Constant 5
|
||||
95: TypeVector 8(float) 4
|
||||
96: TypePointer Output 95(fvec4)
|
||||
97(gl_FragColor): 96(ptr) Variable Output
|
||||
97(gl_FragColor): 96(ptr) Variable Output
|
||||
104: 7(int) Constant 3
|
||||
111: TypeSampler8(float) 2D filter+texture
|
||||
112: TypePointer UniformConstant 111
|
||||
113(sampler): 112(ptr) Variable UniformConstant
|
||||
118: TypePointer UniformConstant 11(s2)
|
||||
119(foo2): 118(ptr) Variable UniformConstant
|
||||
111: TypeImage 8(float) 2D sampled format:Unknown
|
||||
112: TypeSampledImage 111
|
||||
113: TypePointer UniformConstant 112
|
||||
114(sampler): 113(ptr) Variable UniformConstant
|
||||
119: TypePointer UniformConstant 11(s2)
|
||||
120(foo2): 119(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
28(locals2): 27(ptr) Variable Function
|
||||
41(fArray): 40(ptr) Variable Function
|
||||
47(locals1Array): 46(ptr) Variable Function
|
||||
54(locals0): 53(ptr) Variable Function
|
||||
57(locals00): 56(ptr) Variable Function
|
||||
28(locals2): 27(ptr) Variable Function
|
||||
41(fArray): 40(ptr) Variable Function
|
||||
47(locals1Array): 46(ptr) Variable Function
|
||||
54(locals0): 53(ptr) Variable Function
|
||||
57(locals00): 56(ptr) Variable Function
|
||||
21: 20(ptr) AccessChain 17(foo3) 18 19 18
|
||||
22: 7(int) Load 21
|
||||
22: 7(int) Load 21
|
||||
24: 23(bool) SGreaterThan 22 18
|
||||
SelectionMerge 26 None
|
||||
BranchConditional 24 25 59
|
||||
BranchConditional 24 25 59
|
||||
25: Label
|
||||
32: 31(ptr) AccessChain 28(locals2) 29
|
||||
Store 32 30
|
||||
Store 32 30
|
||||
37: 36(ptr) AccessChain 28(locals2) 33
|
||||
Store 37 35
|
||||
Store 41(fArray) 43
|
||||
51: 10(s1) Load 50(foo1)
|
||||
Store 37 35
|
||||
Store 41(fArray) 43
|
||||
51: 10(s1) Load 50(foo1)
|
||||
52: 36(ptr) AccessChain 47(locals1Array) 48
|
||||
Store 52 51
|
||||
Store 54(locals0) 34
|
||||
Store 57(locals00) 58
|
||||
Store 52 51
|
||||
Store 54(locals0) 34
|
||||
Store 57(locals00) 58
|
||||
Branch 26
|
||||
59: Label
|
||||
63: 60(fvec2) Load 62(coord)
|
||||
63: 60(fvec2) Load 62(coord)
|
||||
64: 8(float) CompositeExtract 63 0
|
||||
65: 31(ptr) AccessChain 28(locals2) 29
|
||||
Store 65 64
|
||||
66: 60(fvec2) Load 62(coord)
|
||||
Store 65 64
|
||||
66: 60(fvec2) Load 62(coord)
|
||||
67: 8(float) CompositeExtract 66 1
|
||||
70: 9(s0) Load 69(foo0)
|
||||
70: 9(s0) Load 69(foo0)
|
||||
71: 10(s1) CompositeConstruct 29 67 70
|
||||
72: 36(ptr) AccessChain 28(locals2) 33
|
||||
Store 72 71
|
||||
Store 41(fArray) 77
|
||||
Store 72 71
|
||||
Store 41(fArray) 77
|
||||
78: 36(ptr) AccessChain 28(locals2) 33
|
||||
79: 10(s1) Load 78
|
||||
79: 10(s1) Load 78
|
||||
80: 36(ptr) AccessChain 47(locals1Array) 48
|
||||
Store 80 79
|
||||
Store 80 79
|
||||
81: 68(ptr) AccessChain 50(foo1) 33
|
||||
82: 9(s0) Load 81
|
||||
Store 54(locals0) 82
|
||||
85: 55(s00) Load 84(foo00)
|
||||
Store 57(locals00) 85
|
||||
82: 9(s0) Load 81
|
||||
Store 54(locals0) 82
|
||||
85: 55(s00) Load 84(foo00)
|
||||
Store 57(locals00) 85
|
||||
Branch 26
|
||||
26: Label
|
||||
87: 86(ptr) AccessChain 54(locals0) 18
|
||||
88: 7(int) Load 87
|
||||
88: 7(int) Load 87
|
||||
90: 23(bool) SGreaterThan 88 89
|
||||
SelectionMerge 92 None
|
||||
BranchConditional 90 91 92
|
||||
BranchConditional 90 91 92
|
||||
91: Label
|
||||
93: 53(ptr) AccessChain 57(locals00) 18
|
||||
94: 9(s0) Load 93
|
||||
Store 54(locals0) 94
|
||||
94: 9(s0) Load 93
|
||||
Store 54(locals0) 94
|
||||
Branch 92
|
||||
92: Label
|
||||
98: 86(ptr) AccessChain 54(locals0) 18
|
||||
99: 7(int) Load 98
|
||||
99: 7(int) Load 98
|
||||
100: 8(float) ConvertSToF 99
|
||||
101: 31(ptr) AccessChain 47(locals1Array) 48 29
|
||||
102: 8(float) Load 101
|
||||
102: 8(float) Load 101
|
||||
103: 8(float) FAdd 100 102
|
||||
105: 31(ptr) AccessChain 41(fArray) 104
|
||||
106: 8(float) Load 105
|
||||
106: 8(float) Load 105
|
||||
107: 8(float) FAdd 103 106
|
||||
108: 31(ptr) AccessChain 28(locals2) 33 29
|
||||
109: 8(float) Load 108
|
||||
109: 8(float) Load 108
|
||||
110: 8(float) FAdd 107 109
|
||||
114: 111 Load 113(sampler)
|
||||
115: 60(fvec2) Load 62(coord)
|
||||
116: 95(fvec4) TextureSample 114 115
|
||||
117: 95(fvec4) VectorTimesScalar 116 110
|
||||
Store 97(gl_FragColor) 117
|
||||
115: 112 Load 114(sampler)
|
||||
116: 60(fvec2) Load 62(coord)
|
||||
117: 95(fvec4) ImageSampleImplicitLod 115 116
|
||||
118: 95(fvec4) VectorTimesScalar 117 110
|
||||
Store 97(gl_FragColor) 118
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
67
Test/baseResults/spv.structure.frag.out
Normal file → Executable file
67
Test/baseResults/spv.structure.frag.out
Normal file → Executable file
@ -7,12 +7,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 61
|
||||
// Id's are bound by 62
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "scale"
|
||||
Name 19 "lunarStruct1"
|
||||
@ -25,14 +27,14 @@ Linked fragment stage:
|
||||
MemberName 22(lunarStruct2) 2 "s1_1"
|
||||
Name 25 "foo2"
|
||||
Name 47 "gl_FragColor"
|
||||
Name 51 "sampler"
|
||||
Name 55 "coord"
|
||||
Name 60 "foo"
|
||||
Name 52 "sampler"
|
||||
Name 56 "coord"
|
||||
Name 61 "foo"
|
||||
Decorate 47(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 55(coord) Smooth
|
||||
Decorate 60(foo) NoStaticUse
|
||||
Decorate 56(coord) Smooth
|
||||
Decorate 61(foo) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypePointer Function 7(float)
|
||||
10: 7(float) Constant 0
|
||||
@ -50,7 +52,7 @@ Linked fragment stage:
|
||||
22(lunarStruct2): TypeStruct 14 7(float) 21
|
||||
23: TypeArray 22(lunarStruct2) 13
|
||||
24: TypePointer UniformConstant 23
|
||||
25(foo2): 24(ptr) Variable UniformConstant
|
||||
25(foo2): 24(ptr) Variable UniformConstant
|
||||
26: 11(int) Constant 3
|
||||
27: 11(int) Constant 0
|
||||
28: 11(int) Constant 4
|
||||
@ -61,42 +63,43 @@ Linked fragment stage:
|
||||
42: 11(int) Constant 1
|
||||
43: TypePointer UniformConstant 7(float)
|
||||
46: TypePointer Output 17(fvec4)
|
||||
47(gl_FragColor): 46(ptr) Variable Output
|
||||
49: TypeSampler7(float) 2D filter+texture
|
||||
50: TypePointer UniformConstant 49
|
||||
51(sampler): 50(ptr) Variable UniformConstant
|
||||
53: TypeVector 7(float) 2
|
||||
54: TypePointer Input 53(fvec2)
|
||||
55(coord): 54(ptr) Variable Input
|
||||
59: TypePointer UniformConstant 19(lunarStruct1)
|
||||
60(foo): 59(ptr) Variable UniformConstant
|
||||
47(gl_FragColor): 46(ptr) Variable Output
|
||||
49: TypeImage 7(float) 2D sampled format:Unknown
|
||||
50: TypeSampledImage 49
|
||||
51: TypePointer UniformConstant 50
|
||||
52(sampler): 51(ptr) Variable UniformConstant
|
||||
54: TypeVector 7(float) 2
|
||||
55: TypePointer Input 54(fvec2)
|
||||
56(coord): 55(ptr) Variable Input
|
||||
60: TypePointer UniformConstant 19(lunarStruct1)
|
||||
61(foo): 60(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(scale): 8(ptr) Variable Function
|
||||
Store 9(scale) 10
|
||||
9(scale): 8(ptr) Variable Function
|
||||
Store 9(scale) 10
|
||||
30: 29(ptr) AccessChain 25(foo2) 26 27 28
|
||||
31: 11(int) Load 30
|
||||
31: 11(int) Load 30
|
||||
33: 32(bool) SGreaterThan 31 27
|
||||
SelectionMerge 35 None
|
||||
BranchConditional 33 34 41
|
||||
BranchConditional 33 34 41
|
||||
34: Label
|
||||
38: 37(ptr) AccessChain 25(foo2) 26 36 36 36 26
|
||||
39: 17(fvec4) Load 38
|
||||
39: 17(fvec4) Load 38
|
||||
40: 7(float) CompositeExtract 39 0
|
||||
Store 9(scale) 40
|
||||
Store 9(scale) 40
|
||||
Branch 35
|
||||
41: Label
|
||||
44: 43(ptr) AccessChain 25(foo2) 26 36 36 42 26
|
||||
45: 7(float) Load 44
|
||||
Store 9(scale) 45
|
||||
45: 7(float) Load 44
|
||||
Store 9(scale) 45
|
||||
Branch 35
|
||||
35: Label
|
||||
48: 7(float) Load 9(scale)
|
||||
52: 49 Load 51(sampler)
|
||||
56: 53(fvec2) Load 55(coord)
|
||||
57: 17(fvec4) TextureSample 52 56
|
||||
58: 17(fvec4) VectorTimesScalar 57 48
|
||||
Store 47(gl_FragColor) 58
|
||||
48: 7(float) Load 9(scale)
|
||||
53: 50 Load 52(sampler)
|
||||
57: 54(fvec2) Load 56(coord)
|
||||
58: 17(fvec4) ImageSampleImplicitLod 53 57
|
||||
59: 17(fvec4) VectorTimesScalar 58 48
|
||||
Store 47(gl_FragColor) 59
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
298
Test/baseResults/spv.switch.frag.out
Normal file → Executable file
298
Test/baseResults/spv.switch.frag.out
Normal file → Executable file
@ -13,9 +13,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 261
|
||||
|
||||
Source ESSL 310
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 16 "foo1(vf4;vf4;i1;"
|
||||
Name 13 "v1"
|
||||
@ -40,18 +42,18 @@ Linked fragment stage:
|
||||
Name 239 "param"
|
||||
Name 241 "param"
|
||||
Name 243 "param"
|
||||
Decorate 59(local) PrecisionMedium
|
||||
Decorate 61(c) PrecisionMedium
|
||||
Decorate 72(f) PrecisionMedium
|
||||
Decorate 74(x) PrecisionMedium
|
||||
Decorate 74(x) Smooth
|
||||
Decorate 128(d) PrecisionMedium
|
||||
Decorate 154(i) PrecisionMedium
|
||||
Decorate 172(j) PrecisionMedium
|
||||
Decorate 222(color) PrecisionMedium
|
||||
Decorate 228(v) PrecisionMedium
|
||||
Decorate 59(local) RelaxedPrecision
|
||||
Decorate 61(c) RelaxedPrecision
|
||||
Decorate 72(f) RelaxedPrecision
|
||||
Decorate 74(x) RelaxedPrecision
|
||||
Decorate 74(x) Smooth
|
||||
Decorate 128(d) RelaxedPrecision
|
||||
Decorate 154(i) RelaxedPrecision
|
||||
Decorate 172(j) RelaxedPrecision
|
||||
Decorate 222(color) RelaxedPrecision
|
||||
Decorate 228(v) RelaxedPrecision
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
@ -63,12 +65,12 @@ Linked fragment stage:
|
||||
48: 7(float) Constant 1065353216
|
||||
49: 8(fvec4) ConstantComposite 48 48 48 48
|
||||
60: TypePointer UniformConstant 10(int)
|
||||
61(c): 60(ptr) Variable UniformConstant
|
||||
61(c): 60(ptr) Variable UniformConstant
|
||||
64: 10(int) Constant 1
|
||||
71: TypePointer Function 7(float)
|
||||
73: TypePointer Input 7(float)
|
||||
74(x): 73(ptr) Variable Input
|
||||
128(d): 60(ptr) Variable UniformConstant
|
||||
74(x): 73(ptr) Variable Input
|
||||
128(d): 60(ptr) Variable UniformConstant
|
||||
155: 10(int) Constant 0
|
||||
160: 10(int) Constant 10
|
||||
161: TypeBool
|
||||
@ -77,253 +79,253 @@ Linked fragment stage:
|
||||
183: 7(float) Constant 1120429670
|
||||
203: 7(float) Constant 1079739679
|
||||
221: TypePointer Output 7(float)
|
||||
222(color): 221(ptr) Variable Output
|
||||
222(color): 221(ptr) Variable Output
|
||||
227: TypePointer UniformConstant 8(fvec4)
|
||||
228(v): 227(ptr) Variable UniformConstant
|
||||
228(v): 227(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
59(local): 11(ptr) Variable Function
|
||||
72(f): 71(ptr) Variable Function
|
||||
154(i): 11(ptr) Variable Function
|
||||
172(j): 11(ptr) Variable Function
|
||||
229(param): 9(ptr) Variable Function
|
||||
231(param): 9(ptr) Variable Function
|
||||
233(param): 11(ptr) Variable Function
|
||||
239(param): 9(ptr) Variable Function
|
||||
241(param): 9(ptr) Variable Function
|
||||
243(param): 11(ptr) Variable Function
|
||||
62: 10(int) Load 61(c)
|
||||
Store 59(local) 62
|
||||
63: 10(int) Load 59(local)
|
||||
59(local): 11(ptr) Variable Function
|
||||
72(f): 71(ptr) Variable Function
|
||||
154(i): 11(ptr) Variable Function
|
||||
172(j): 11(ptr) Variable Function
|
||||
229(param): 9(ptr) Variable Function
|
||||
231(param): 9(ptr) Variable Function
|
||||
233(param): 11(ptr) Variable Function
|
||||
239(param): 9(ptr) Variable Function
|
||||
241(param): 9(ptr) Variable Function
|
||||
243(param): 11(ptr) Variable Function
|
||||
62: 10(int) Load 61(c)
|
||||
Store 59(local) 62
|
||||
63: 10(int) Load 59(local)
|
||||
65: 10(int) IAdd 63 64
|
||||
Store 59(local) 65
|
||||
66: 10(int) Load 61(c)
|
||||
Store 59(local) 65
|
||||
66: 10(int) Load 61(c)
|
||||
SelectionMerge 70 None
|
||||
Switch 66 69
|
||||
case 1: 67
|
||||
case 2: 68
|
||||
67: Label
|
||||
75: 7(float) Load 74(x)
|
||||
76: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 75
|
||||
Store 72(f) 76
|
||||
75: 7(float) Load 74(x)
|
||||
76: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 75
|
||||
Store 72(f) 76
|
||||
Branch 70
|
||||
68: Label
|
||||
78: 7(float) Load 74(x)
|
||||
79: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 78
|
||||
Store 72(f) 79
|
||||
78: 7(float) Load 74(x)
|
||||
79: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 78
|
||||
Store 72(f) 79
|
||||
Branch 70
|
||||
69: Label
|
||||
81: 7(float) Load 74(x)
|
||||
82: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 81
|
||||
Store 72(f) 82
|
||||
81: 7(float) Load 74(x)
|
||||
82: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 81
|
||||
Store 72(f) 82
|
||||
Branch 70
|
||||
70: Label
|
||||
84: 10(int) Load 61(c)
|
||||
84: 10(int) Load 61(c)
|
||||
SelectionMerge 88 None
|
||||
Switch 84 87
|
||||
case 1: 85
|
||||
case 2: 86
|
||||
85: Label
|
||||
89: 7(float) Load 74(x)
|
||||
90: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 89
|
||||
91: 7(float) Load 72(f)
|
||||
89: 7(float) Load 74(x)
|
||||
90: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 89
|
||||
91: 7(float) Load 72(f)
|
||||
92: 7(float) FAdd 91 90
|
||||
Store 72(f) 92
|
||||
Store 72(f) 92
|
||||
Branch 86
|
||||
86: Label
|
||||
93: 7(float) Load 74(x)
|
||||
94: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 93
|
||||
95: 7(float) Load 72(f)
|
||||
93: 7(float) Load 74(x)
|
||||
94: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 93
|
||||
95: 7(float) Load 72(f)
|
||||
96: 7(float) FAdd 95 94
|
||||
Store 72(f) 96
|
||||
Store 72(f) 96
|
||||
Branch 88
|
||||
87: Label
|
||||
98: 7(float) Load 74(x)
|
||||
99: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 98
|
||||
100: 7(float) Load 72(f)
|
||||
98: 7(float) Load 74(x)
|
||||
99: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 98
|
||||
100: 7(float) Load 72(f)
|
||||
101: 7(float) FAdd 100 99
|
||||
Store 72(f) 101
|
||||
Store 72(f) 101
|
||||
Branch 88
|
||||
88: Label
|
||||
103: 10(int) Load 61(c)
|
||||
103: 10(int) Load 61(c)
|
||||
SelectionMerge 106 None
|
||||
Switch 103 106
|
||||
case 1: 104
|
||||
case 2: 105
|
||||
104: Label
|
||||
107: 7(float) Load 74(x)
|
||||
108: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 107
|
||||
109: 7(float) Load 72(f)
|
||||
107: 7(float) Load 74(x)
|
||||
108: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 107
|
||||
109: 7(float) Load 72(f)
|
||||
110: 7(float) FAdd 109 108
|
||||
Store 72(f) 110
|
||||
Store 72(f) 110
|
||||
Branch 106
|
||||
105: Label
|
||||
112: 7(float) Load 74(x)
|
||||
113: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 112
|
||||
114: 7(float) Load 72(f)
|
||||
112: 7(float) Load 74(x)
|
||||
113: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 112
|
||||
114: 7(float) Load 72(f)
|
||||
115: 7(float) FAdd 114 113
|
||||
Store 72(f) 115
|
||||
Store 72(f) 115
|
||||
Branch 106
|
||||
106: Label
|
||||
118: 10(int) Load 61(c)
|
||||
118: 10(int) Load 61(c)
|
||||
SelectionMerge 122 None
|
||||
Switch 118 121
|
||||
case 1: 119
|
||||
case 2: 120
|
||||
119: Label
|
||||
123: 7(float) Load 74(x)
|
||||
124: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 123
|
||||
125: 7(float) Load 72(f)
|
||||
123: 7(float) Load 74(x)
|
||||
124: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 123
|
||||
125: 7(float) Load 72(f)
|
||||
126: 7(float) FAdd 125 124
|
||||
Store 72(f) 126
|
||||
Store 72(f) 126
|
||||
Branch 122
|
||||
120: Label
|
||||
129: 10(int) Load 128(d)
|
||||
129: 10(int) Load 128(d)
|
||||
SelectionMerge 132 None
|
||||
Switch 129 132
|
||||
case 1: 130
|
||||
case 2: 131
|
||||
130: Label
|
||||
133: 7(float) Load 74(x)
|
||||
134: 7(float) Load 74(x)
|
||||
133: 7(float) Load 74(x)
|
||||
134: 7(float) Load 74(x)
|
||||
135: 7(float) FMul 133 134
|
||||
136: 7(float) Load 74(x)
|
||||
136: 7(float) Load 74(x)
|
||||
137: 7(float) FMul 135 136
|
||||
138: 7(float) Load 72(f)
|
||||
138: 7(float) Load 72(f)
|
||||
139: 7(float) FAdd 138 137
|
||||
Store 72(f) 139
|
||||
Store 72(f) 139
|
||||
Branch 132
|
||||
131: Label
|
||||
141: 7(float) Load 74(x)
|
||||
142: 7(float) Load 74(x)
|
||||
141: 7(float) Load 74(x)
|
||||
142: 7(float) Load 74(x)
|
||||
143: 7(float) FMul 141 142
|
||||
144: 7(float) Load 72(f)
|
||||
144: 7(float) Load 72(f)
|
||||
145: 7(float) FAdd 144 143
|
||||
Store 72(f) 145
|
||||
Store 72(f) 145
|
||||
Branch 132
|
||||
132: Label
|
||||
Branch 122
|
||||
121: Label
|
||||
149: 7(float) Load 74(x)
|
||||
150: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 149
|
||||
151: 7(float) Load 72(f)
|
||||
149: 7(float) Load 74(x)
|
||||
150: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 149
|
||||
151: 7(float) Load 72(f)
|
||||
152: 7(float) FAdd 151 150
|
||||
Store 72(f) 152
|
||||
Store 72(f) 152
|
||||
Branch 122
|
||||
122: Label
|
||||
Store 154(i) 155
|
||||
Store 154(i) 155
|
||||
Branch 156
|
||||
156: Label
|
||||
159: 10(int) Load 154(i)
|
||||
159: 10(int) Load 154(i)
|
||||
162: 161(bool) SLessThan 159 160
|
||||
LoopMerge 157 None
|
||||
BranchConditional 162 158 157
|
||||
BranchConditional 162 158 157
|
||||
158: Label
|
||||
163: 10(int) Load 61(c)
|
||||
163: 10(int) Load 61(c)
|
||||
SelectionMerge 167 None
|
||||
Switch 163 166
|
||||
case 1: 164
|
||||
case 2: 165
|
||||
164: Label
|
||||
168: 7(float) Load 74(x)
|
||||
169: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 168
|
||||
170: 7(float) Load 72(f)
|
||||
168: 7(float) Load 74(x)
|
||||
169: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 168
|
||||
170: 7(float) Load 72(f)
|
||||
171: 7(float) FAdd 170 169
|
||||
Store 72(f) 171
|
||||
Store 172(j) 173
|
||||
Store 72(f) 171
|
||||
Store 172(j) 173
|
||||
Branch 174
|
||||
174: Label
|
||||
177: 10(int) Load 172(j)
|
||||
177: 10(int) Load 172(j)
|
||||
179: 161(bool) SLessThan 177 178
|
||||
LoopMerge 175 None
|
||||
BranchConditional 179 176 175
|
||||
BranchConditional 179 176 175
|
||||
176: Label
|
||||
180: 7(float) Load 72(f)
|
||||
180: 7(float) Load 72(f)
|
||||
181: 7(float) FAdd 180 48
|
||||
Store 72(f) 181
|
||||
182: 7(float) Load 72(f)
|
||||
Store 72(f) 181
|
||||
182: 7(float) Load 72(f)
|
||||
184: 161(bool) FOrdLessThan 182 183
|
||||
SelectionMerge 186 None
|
||||
BranchConditional 184 185 186
|
||||
BranchConditional 184 185 186
|
||||
185: Label
|
||||
Branch 175
|
||||
186: Label
|
||||
188: 10(int) Load 172(j)
|
||||
188: 10(int) Load 172(j)
|
||||
189: 10(int) IAdd 188 64
|
||||
Store 172(j) 189
|
||||
Store 172(j) 189
|
||||
Branch 174
|
||||
175: Label
|
||||
Branch 167
|
||||
165: Label
|
||||
191: 7(float) Load 74(x)
|
||||
192: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 191
|
||||
193: 7(float) Load 72(f)
|
||||
191: 7(float) Load 74(x)
|
||||
192: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 191
|
||||
193: 7(float) Load 72(f)
|
||||
194: 7(float) FAdd 193 192
|
||||
Store 72(f) 194
|
||||
Store 72(f) 194
|
||||
Branch 167
|
||||
166: Label
|
||||
197: 7(float) Load 74(x)
|
||||
198: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 197
|
||||
199: 7(float) Load 72(f)
|
||||
197: 7(float) Load 74(x)
|
||||
198: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 197
|
||||
199: 7(float) Load 72(f)
|
||||
200: 7(float) FAdd 199 198
|
||||
Store 72(f) 200
|
||||
Store 72(f) 200
|
||||
Branch 167
|
||||
167: Label
|
||||
202: 7(float) Load 72(f)
|
||||
202: 7(float) Load 72(f)
|
||||
204: 161(bool) FOrdLessThan 202 203
|
||||
SelectionMerge 206 None
|
||||
BranchConditional 204 205 206
|
||||
BranchConditional 204 205 206
|
||||
205: Label
|
||||
Branch 157
|
||||
206: Label
|
||||
208: 10(int) Load 154(i)
|
||||
208: 10(int) Load 154(i)
|
||||
209: 10(int) IAdd 208 64
|
||||
Store 154(i) 209
|
||||
Store 154(i) 209
|
||||
Branch 156
|
||||
157: Label
|
||||
210: 10(int) Load 61(c)
|
||||
210: 10(int) Load 61(c)
|
||||
SelectionMerge 213 None
|
||||
Switch 210 213
|
||||
case 1: 211
|
||||
case 2: 212
|
||||
211: Label
|
||||
214: 7(float) Load 74(x)
|
||||
215: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 214
|
||||
216: 7(float) Load 72(f)
|
||||
214: 7(float) Load 74(x)
|
||||
215: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 214
|
||||
216: 7(float) Load 72(f)
|
||||
217: 7(float) FAdd 216 215
|
||||
Store 72(f) 217
|
||||
Store 72(f) 217
|
||||
Branch 213
|
||||
212: Label
|
||||
Branch 213
|
||||
213: Label
|
||||
223: 7(float) Load 72(f)
|
||||
224: 10(int) Load 59(local)
|
||||
223: 7(float) Load 72(f)
|
||||
224: 10(int) Load 59(local)
|
||||
225: 7(float) ConvertSToF 224
|
||||
226: 7(float) FAdd 223 225
|
||||
Store 222(color) 226
|
||||
230: 8(fvec4) Load 228(v)
|
||||
Store 229(param) 230
|
||||
232: 8(fvec4) Load 228(v)
|
||||
Store 231(param) 232
|
||||
234: 10(int) Load 61(c)
|
||||
Store 233(param) 234
|
||||
Store 222(color) 226
|
||||
230: 8(fvec4) Load 228(v)
|
||||
Store 229(param) 230
|
||||
232: 8(fvec4) Load 228(v)
|
||||
Store 231(param) 232
|
||||
234: 10(int) Load 61(c)
|
||||
Store 233(param) 234
|
||||
235: 8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)
|
||||
236: 7(float) CompositeExtract 235 1
|
||||
237: 7(float) Load 222(color)
|
||||
237: 7(float) Load 222(color)
|
||||
238: 7(float) FAdd 237 236
|
||||
Store 222(color) 238
|
||||
240: 8(fvec4) Load 228(v)
|
||||
Store 239(param) 240
|
||||
242: 8(fvec4) Load 228(v)
|
||||
Store 241(param) 242
|
||||
244: 10(int) Load 61(c)
|
||||
Store 243(param) 244
|
||||
Store 222(color) 238
|
||||
240: 8(fvec4) Load 228(v)
|
||||
Store 239(param) 240
|
||||
242: 8(fvec4) Load 228(v)
|
||||
Store 241(param) 242
|
||||
244: 10(int) Load 61(c)
|
||||
Store 243(param) 244
|
||||
245: 8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)
|
||||
246: 7(float) CompositeExtract 245 2
|
||||
247: 7(float) Load 222(color)
|
||||
247: 7(float) Load 222(color)
|
||||
248: 7(float) FAdd 247 246
|
||||
Store 222(color) 248
|
||||
249: 10(int) Load 61(c)
|
||||
Store 222(color) 248
|
||||
249: 10(int) Load 61(c)
|
||||
SelectionMerge 252 None
|
||||
Switch 249 251
|
||||
case 0: 250
|
||||
@ -332,9 +334,9 @@ Linked fragment stage:
|
||||
251: Label
|
||||
Branch 252
|
||||
252: Label
|
||||
256: 10(int) Load 61(c)
|
||||
256: 10(int) Load 61(c)
|
||||
SelectionMerge 258 None
|
||||
Switch 256 257
|
||||
Switch 256 257
|
||||
257: Label
|
||||
Branch 258
|
||||
258: Label
|
||||
@ -347,7 +349,7 @@ Linked fragment stage:
|
||||
14(v2): 9(ptr) FunctionParameter
|
||||
15(i1): 11(ptr) FunctionParameter
|
||||
17: Label
|
||||
23: 10(int) Load 15(i1)
|
||||
23: 10(int) Load 15(i1)
|
||||
SelectionMerge 27 None
|
||||
Switch 23 27
|
||||
case 0: 24
|
||||
@ -355,14 +357,14 @@ Linked fragment stage:
|
||||
case 1: 25
|
||||
case 3: 26
|
||||
24: Label
|
||||
28: 8(fvec4) Load 13(v1)
|
||||
28: 8(fvec4) Load 13(v1)
|
||||
ReturnValue 28
|
||||
25: Label
|
||||
30: 8(fvec4) Load 14(v2)
|
||||
30: 8(fvec4) Load 14(v2)
|
||||
ReturnValue 30
|
||||
26: Label
|
||||
32: 8(fvec4) Load 13(v1)
|
||||
33: 8(fvec4) Load 14(v2)
|
||||
32: 8(fvec4) Load 13(v1)
|
||||
33: 8(fvec4) Load 14(v2)
|
||||
34: 8(fvec4) FMul 32 33
|
||||
ReturnValue 34
|
||||
27: Label
|
||||
@ -373,7 +375,7 @@ Linked fragment stage:
|
||||
19(v2): 9(ptr) FunctionParameter
|
||||
20(i1): 11(ptr) FunctionParameter
|
||||
22: Label
|
||||
40: 10(int) Load 20(i1)
|
||||
40: 10(int) Load 20(i1)
|
||||
SelectionMerge 45 None
|
||||
Switch 40 45
|
||||
case 0: 41
|
||||
@ -381,16 +383,16 @@ Linked fragment stage:
|
||||
case 1: 43
|
||||
case 3: 44
|
||||
41: Label
|
||||
46: 8(fvec4) Load 18(v1)
|
||||
46: 8(fvec4) Load 18(v1)
|
||||
ReturnValue 46
|
||||
42: Label
|
||||
ReturnValue 49
|
||||
43: Label
|
||||
51: 8(fvec4) Load 19(v2)
|
||||
51: 8(fvec4) Load 19(v2)
|
||||
ReturnValue 51
|
||||
44: Label
|
||||
53: 8(fvec4) Load 18(v1)
|
||||
54: 8(fvec4) Load 19(v2)
|
||||
53: 8(fvec4) Load 18(v1)
|
||||
54: 8(fvec4) Load 19(v2)
|
||||
55: 8(fvec4) FMul 53 54
|
||||
ReturnValue 55
|
||||
45: Label
|
||||
|
||||
168
Test/baseResults/spv.swizzle.frag.out
Normal file → Executable file
168
Test/baseResults/spv.swizzle.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 112
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "blendscale"
|
||||
Name 13 "w"
|
||||
@ -26,26 +28,26 @@ Linked fragment stage:
|
||||
Name 82 "c"
|
||||
Name 84 "rep"
|
||||
Name 111 "blend"
|
||||
Decorate 30(t) Smooth
|
||||
Decorate 30(t) Smooth
|
||||
Decorate 70(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 111(blend) NoStaticUse
|
||||
Decorate 111(blend) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypePointer Function 7(float)
|
||||
10: 7(float) Constant 1071971828
|
||||
11: TypeVector 7(float) 4
|
||||
12: TypePointer Function 11(fvec4)
|
||||
14: TypePointer UniformConstant 11(fvec4)
|
||||
15(u): 14(ptr) Variable UniformConstant
|
||||
15(u): 14(ptr) Variable UniformConstant
|
||||
28: TypeVector 7(float) 2
|
||||
29: TypePointer Input 28(fvec2)
|
||||
30(t): 29(ptr) Variable Input
|
||||
30(t): 29(ptr) Variable Input
|
||||
54: TypeBool
|
||||
55: TypePointer UniformConstant 54(bool)
|
||||
56(p): 55(ptr) Variable UniformConstant
|
||||
56(p): 55(ptr) Variable UniformConstant
|
||||
69: TypePointer Output 11(fvec4)
|
||||
70(gl_FragColor): 69(ptr) Variable Output
|
||||
70(gl_FragColor): 69(ptr) Variable Output
|
||||
81: TypePointer Function 28(fvec2)
|
||||
85: 7(float) Constant 0
|
||||
86: 7(float) Constant 1065353216
|
||||
@ -53,123 +55,123 @@ Linked fragment stage:
|
||||
93: 7(float) Constant 3212836864
|
||||
104: 7(float) Constant 1079613850
|
||||
110: TypePointer UniformConstant 7(float)
|
||||
111(blend): 110(ptr) Variable UniformConstant
|
||||
111(blend): 110(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(blendscale): 8(ptr) Variable Function
|
||||
13(w): 12(ptr) Variable Function
|
||||
17(w_dep): 12(ptr) Variable Function
|
||||
19(w_reorder): 12(ptr) Variable Function
|
||||
21(w2): 12(ptr) Variable Function
|
||||
23(w_flow): 12(ptr) Variable Function
|
||||
49(w_undef): 12(ptr) Variable Function
|
||||
82(c): 81(ptr) Variable Function
|
||||
84(rep): 12(ptr) Variable Function
|
||||
Store 9(blendscale) 10
|
||||
16: 11(fvec4) Load 15(u)
|
||||
Store 13(w) 16
|
||||
18: 11(fvec4) Load 15(u)
|
||||
Store 17(w_dep) 18
|
||||
20: 11(fvec4) Load 15(u)
|
||||
Store 19(w_reorder) 20
|
||||
22: 11(fvec4) Load 15(u)
|
||||
Store 21(w2) 22
|
||||
24: 11(fvec4) Load 15(u)
|
||||
Store 23(w_flow) 24
|
||||
25: 7(float) Load 9(blendscale)
|
||||
26: 11(fvec4) Load 19(w_reorder)
|
||||
9(blendscale): 8(ptr) Variable Function
|
||||
13(w): 12(ptr) Variable Function
|
||||
17(w_dep): 12(ptr) Variable Function
|
||||
19(w_reorder): 12(ptr) Variable Function
|
||||
21(w2): 12(ptr) Variable Function
|
||||
23(w_flow): 12(ptr) Variable Function
|
||||
49(w_undef): 12(ptr) Variable Function
|
||||
82(c): 81(ptr) Variable Function
|
||||
84(rep): 12(ptr) Variable Function
|
||||
Store 9(blendscale) 10
|
||||
16: 11(fvec4) Load 15(u)
|
||||
Store 13(w) 16
|
||||
18: 11(fvec4) Load 15(u)
|
||||
Store 17(w_dep) 18
|
||||
20: 11(fvec4) Load 15(u)
|
||||
Store 19(w_reorder) 20
|
||||
22: 11(fvec4) Load 15(u)
|
||||
Store 21(w2) 22
|
||||
24: 11(fvec4) Load 15(u)
|
||||
Store 23(w_flow) 24
|
||||
25: 7(float) Load 9(blendscale)
|
||||
26: 11(fvec4) Load 19(w_reorder)
|
||||
27: 11(fvec4) CompositeInsert 25 26 2
|
||||
Store 19(w_reorder) 27
|
||||
31: 28(fvec2) Load 30(t)
|
||||
32: 11(fvec4) Load 13(w)
|
||||
Store 19(w_reorder) 27
|
||||
31: 28(fvec2) Load 30(t)
|
||||
32: 11(fvec4) Load 13(w)
|
||||
33: 11(fvec4) VectorShuffle 32 31 0 5 2 4
|
||||
Store 13(w) 33
|
||||
34: 7(float) Load 9(blendscale)
|
||||
35: 11(fvec4) Load 19(w_reorder)
|
||||
Store 13(w) 33
|
||||
34: 7(float) Load 9(blendscale)
|
||||
35: 11(fvec4) Load 19(w_reorder)
|
||||
36: 11(fvec4) CompositeInsert 34 35 0
|
||||
Store 19(w_reorder) 36
|
||||
37: 11(fvec4) Load 15(u)
|
||||
Store 19(w_reorder) 36
|
||||
37: 11(fvec4) Load 15(u)
|
||||
38: 11(fvec4) VectorShuffle 37 37 2 3 0 1
|
||||
Store 21(w2) 38
|
||||
39: 7(float) Load 9(blendscale)
|
||||
40: 11(fvec4) Load 19(w_reorder)
|
||||
Store 21(w2) 38
|
||||
39: 7(float) Load 9(blendscale)
|
||||
40: 11(fvec4) Load 19(w_reorder)
|
||||
41: 11(fvec4) CompositeInsert 39 40 1
|
||||
Store 19(w_reorder) 41
|
||||
42: 11(fvec4) Load 21(w2)
|
||||
Store 19(w_reorder) 41
|
||||
42: 11(fvec4) Load 21(w2)
|
||||
43: 28(fvec2) VectorShuffle 42 42 0 2
|
||||
44: 11(fvec4) Load 17(w_dep)
|
||||
44: 11(fvec4) Load 17(w_dep)
|
||||
45: 11(fvec4) VectorShuffle 44 43 4 5 2 3
|
||||
Store 17(w_dep) 45
|
||||
46: 28(fvec2) Load 30(t)
|
||||
47: 11(fvec4) Load 17(w_dep)
|
||||
Store 17(w_dep) 45
|
||||
46: 28(fvec2) Load 30(t)
|
||||
47: 11(fvec4) Load 17(w_dep)
|
||||
48: 11(fvec4) VectorShuffle 47 46 0 1 4 5
|
||||
Store 17(w_dep) 48
|
||||
50: 11(fvec4) Load 15(u)
|
||||
Store 17(w_dep) 48
|
||||
50: 11(fvec4) Load 15(u)
|
||||
51: 28(fvec2) VectorShuffle 50 50 2 3
|
||||
52: 11(fvec4) Load 49(w_undef)
|
||||
52: 11(fvec4) Load 49(w_undef)
|
||||
53: 11(fvec4) VectorShuffle 52 51 4 5 2 3
|
||||
Store 49(w_undef) 53
|
||||
57: 54(bool) Load 56(p)
|
||||
Store 49(w_undef) 53
|
||||
57: 54(bool) Load 56(p)
|
||||
SelectionMerge 59 None
|
||||
BranchConditional 57 58 64
|
||||
BranchConditional 57 58 64
|
||||
58: Label
|
||||
60: 28(fvec2) Load 30(t)
|
||||
60: 28(fvec2) Load 30(t)
|
||||
61: 7(float) CompositeExtract 60 0
|
||||
62: 11(fvec4) Load 23(w_flow)
|
||||
62: 11(fvec4) Load 23(w_flow)
|
||||
63: 11(fvec4) CompositeInsert 61 62 0
|
||||
Store 23(w_flow) 63
|
||||
Store 23(w_flow) 63
|
||||
Branch 59
|
||||
64: Label
|
||||
65: 28(fvec2) Load 30(t)
|
||||
65: 28(fvec2) Load 30(t)
|
||||
66: 7(float) CompositeExtract 65 1
|
||||
67: 11(fvec4) Load 23(w_flow)
|
||||
67: 11(fvec4) Load 23(w_flow)
|
||||
68: 11(fvec4) CompositeInsert 66 67 0
|
||||
Store 23(w_flow) 68
|
||||
Store 23(w_flow) 68
|
||||
Branch 59
|
||||
59: Label
|
||||
71: 11(fvec4) Load 19(w_reorder)
|
||||
72: 11(fvec4) Load 49(w_undef)
|
||||
73: 11(fvec4) Load 13(w)
|
||||
74: 11(fvec4) Load 21(w2)
|
||||
71: 11(fvec4) Load 19(w_reorder)
|
||||
72: 11(fvec4) Load 49(w_undef)
|
||||
73: 11(fvec4) Load 13(w)
|
||||
74: 11(fvec4) Load 21(w2)
|
||||
75: 11(fvec4) FMul 73 74
|
||||
76: 11(fvec4) Load 17(w_dep)
|
||||
76: 11(fvec4) Load 17(w_dep)
|
||||
77: 11(fvec4) FMul 75 76
|
||||
78: 11(fvec4) Load 23(w_flow)
|
||||
78: 11(fvec4) Load 23(w_flow)
|
||||
79: 11(fvec4) FMul 77 78
|
||||
80: 11(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 71 72 79
|
||||
Store 70(gl_FragColor) 80
|
||||
83: 28(fvec2) Load 30(t)
|
||||
Store 82(c) 83
|
||||
Store 84(rep) 87
|
||||
88: 28(fvec2) Load 82(c)
|
||||
80: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 71 72 79
|
||||
Store 70(gl_FragColor) 80
|
||||
83: 28(fvec2) Load 30(t)
|
||||
Store 82(c) 83
|
||||
Store 84(rep) 87
|
||||
88: 28(fvec2) Load 82(c)
|
||||
89: 7(float) CompositeExtract 88 0
|
||||
90: 54(bool) FOrdLessThan 89 85
|
||||
SelectionMerge 92 None
|
||||
BranchConditional 90 91 92
|
||||
BranchConditional 90 91 92
|
||||
91: Label
|
||||
94: 28(fvec2) Load 82(c)
|
||||
94: 28(fvec2) Load 82(c)
|
||||
95: 7(float) CompositeExtract 94 0
|
||||
96: 7(float) FMul 95 93
|
||||
97: 28(fvec2) Load 82(c)
|
||||
97: 28(fvec2) Load 82(c)
|
||||
98: 28(fvec2) CompositeInsert 96 97 0
|
||||
Store 82(c) 98
|
||||
Store 82(c) 98
|
||||
Branch 92
|
||||
92: Label
|
||||
99: 28(fvec2) Load 82(c)
|
||||
99: 28(fvec2) Load 82(c)
|
||||
100: 7(float) CompositeExtract 99 0
|
||||
101: 54(bool) FOrdLessThanEqual 100 86
|
||||
SelectionMerge 103 None
|
||||
BranchConditional 101 102 103
|
||||
BranchConditional 101 102 103
|
||||
102: Label
|
||||
105: 11(fvec4) Load 84(rep)
|
||||
105: 11(fvec4) Load 84(rep)
|
||||
106: 11(fvec4) CompositeInsert 104 105 0
|
||||
Store 84(rep) 106
|
||||
Store 84(rep) 106
|
||||
Branch 103
|
||||
103: Label
|
||||
107: 11(fvec4) Load 84(rep)
|
||||
108: 11(fvec4) Load 70(gl_FragColor)
|
||||
107: 11(fvec4) Load 84(rep)
|
||||
108: 11(fvec4) Load 70(gl_FragColor)
|
||||
109: 11(fvec4) FAdd 108 107
|
||||
Store 70(gl_FragColor) 109
|
||||
Store 70(gl_FragColor) 109
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
126
Test/baseResults/spv.test.frag.out
Normal file → Executable file
126
Test/baseResults/spv.test.frag.out
Normal file → Executable file
@ -5,82 +5,86 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 54
|
||||
// Id's are bound by 56
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "blendscale"
|
||||
Name 13 "v"
|
||||
Name 16 "texSampler2D"
|
||||
Name 20 "t"
|
||||
Name 23 "scale"
|
||||
Name 30 "w"
|
||||
Name 33 "texSampler3D"
|
||||
Name 37 "coords"
|
||||
Name 43 "gl_FragColor"
|
||||
Name 46 "u"
|
||||
Name 49 "blend"
|
||||
Decorate 20(t) Smooth
|
||||
Decorate 37(coords) Smooth
|
||||
Decorate 43(gl_FragColor) BuiltIn FragColor
|
||||
Name 17 "texSampler2D"
|
||||
Name 21 "t"
|
||||
Name 24 "scale"
|
||||
Name 31 "w"
|
||||
Name 35 "texSampler3D"
|
||||
Name 39 "coords"
|
||||
Name 45 "gl_FragColor"
|
||||
Name 48 "u"
|
||||
Name 51 "blend"
|
||||
Decorate 21(t) Smooth
|
||||
Decorate 39(coords) Smooth
|
||||
Decorate 45(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypePointer Function 7(float)
|
||||
10: 7(float) Constant 1071971828
|
||||
11: TypeVector 7(float) 4
|
||||
12: TypePointer Function 11(fvec4)
|
||||
14: TypeSampler7(float) 2D filter+texture
|
||||
15: TypePointer UniformConstant 14
|
||||
16(texSampler2D): 15(ptr) Variable UniformConstant
|
||||
18: TypeVector 7(float) 2
|
||||
19: TypePointer Input 18(fvec2)
|
||||
20(t): 19(ptr) Variable Input
|
||||
22: TypePointer UniformConstant 18(fvec2)
|
||||
23(scale): 22(ptr) Variable UniformConstant
|
||||
31: TypeSampler7(float) 3D filter+texture
|
||||
32: TypePointer UniformConstant 31
|
||||
33(texSampler3D): 32(ptr) Variable UniformConstant
|
||||
35: TypeVector 7(float) 3
|
||||
36: TypePointer Input 35(fvec3)
|
||||
37(coords): 36(ptr) Variable Input
|
||||
42: TypePointer Output 11(fvec4)
|
||||
43(gl_FragColor): 42(ptr) Variable Output
|
||||
45: TypePointer UniformConstant 11(fvec4)
|
||||
46(u): 45(ptr) Variable UniformConstant
|
||||
48: TypePointer UniformConstant 7(float)
|
||||
49(blend): 48(ptr) Variable UniformConstant
|
||||
14: TypeImage 7(float) 2D sampled format:Unknown
|
||||
15: TypeSampledImage 14
|
||||
16: TypePointer UniformConstant 15
|
||||
17(texSampler2D): 16(ptr) Variable UniformConstant
|
||||
19: TypeVector 7(float) 2
|
||||
20: TypePointer Input 19(fvec2)
|
||||
21(t): 20(ptr) Variable Input
|
||||
23: TypePointer UniformConstant 19(fvec2)
|
||||
24(scale): 23(ptr) Variable UniformConstant
|
||||
32: TypeImage 7(float) 3D sampled format:Unknown
|
||||
33: TypeSampledImage 32
|
||||
34: TypePointer UniformConstant 33
|
||||
35(texSampler3D): 34(ptr) Variable UniformConstant
|
||||
37: TypeVector 7(float) 3
|
||||
38: TypePointer Input 37(fvec3)
|
||||
39(coords): 38(ptr) Variable Input
|
||||
44: TypePointer Output 11(fvec4)
|
||||
45(gl_FragColor): 44(ptr) Variable Output
|
||||
47: TypePointer UniformConstant 11(fvec4)
|
||||
48(u): 47(ptr) Variable UniformConstant
|
||||
50: TypePointer UniformConstant 7(float)
|
||||
51(blend): 50(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(blendscale): 8(ptr) Variable Function
|
||||
13(v): 12(ptr) Variable Function
|
||||
30(w): 12(ptr) Variable Function
|
||||
Store 9(blendscale) 10
|
||||
17: 14 Load 16(texSampler2D)
|
||||
21: 18(fvec2) Load 20(t)
|
||||
24: 18(fvec2) Load 23(scale)
|
||||
25: 18(fvec2) FAdd 21 24
|
||||
26: 18(fvec2) Load 23(scale)
|
||||
27: 18(fvec2) FDiv 25 26
|
||||
28: 11(fvec4) TextureSample 17 27
|
||||
29: 11(fvec4) VectorShuffle 28 28 3 2 1 0
|
||||
Store 13(v) 29
|
||||
34: 31 Load 33(texSampler3D)
|
||||
38: 35(fvec3) Load 37(coords)
|
||||
39: 11(fvec4) TextureSample 34 38
|
||||
40: 11(fvec4) Load 13(v)
|
||||
41: 11(fvec4) FAdd 39 40
|
||||
Store 30(w) 41
|
||||
44: 11(fvec4) Load 30(w)
|
||||
47: 11(fvec4) Load 46(u)
|
||||
50: 7(float) Load 49(blend)
|
||||
51: 7(float) Load 9(blendscale)
|
||||
52: 7(float) FMul 50 51
|
||||
53: 11(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 44 47 52
|
||||
Store 43(gl_FragColor) 53
|
||||
9(blendscale): 8(ptr) Variable Function
|
||||
13(v): 12(ptr) Variable Function
|
||||
31(w): 12(ptr) Variable Function
|
||||
Store 9(blendscale) 10
|
||||
18: 15 Load 17(texSampler2D)
|
||||
22: 19(fvec2) Load 21(t)
|
||||
25: 19(fvec2) Load 24(scale)
|
||||
26: 19(fvec2) FAdd 22 25
|
||||
27: 19(fvec2) Load 24(scale)
|
||||
28: 19(fvec2) FDiv 26 27
|
||||
29: 11(fvec4) ImageSampleImplicitLod 18 28
|
||||
30: 11(fvec4) VectorShuffle 29 29 3 2 1 0
|
||||
Store 13(v) 30
|
||||
36: 33 Load 35(texSampler3D)
|
||||
40: 37(fvec3) Load 39(coords)
|
||||
41: 11(fvec4) ImageSampleImplicitLod 36 40
|
||||
42: 11(fvec4) Load 13(v)
|
||||
43: 11(fvec4) FAdd 41 42
|
||||
Store 31(w) 43
|
||||
46: 11(fvec4) Load 31(w)
|
||||
49: 11(fvec4) Load 48(u)
|
||||
52: 7(float) Load 51(blend)
|
||||
53: 7(float) Load 9(blendscale)
|
||||
54: 7(float) FMul 52 53
|
||||
55: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 46 49 54
|
||||
Store 45(gl_FragColor) 55
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
299
Test/baseResults/spv.texture.vert.out
Normal file → Executable file
299
Test/baseResults/spv.texture.vert.out
Normal file → Executable file
@ -5,32 +5,33 @@ Linked vertex stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 132
|
||||
// Id's are bound by 142
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "lod"
|
||||
Name 11 "coords1D"
|
||||
Name 15 "coords3D"
|
||||
Name 21 "coords4D"
|
||||
Name 24 "color"
|
||||
Name 29 "texSampler1D"
|
||||
Name 39 "coords2D"
|
||||
Name 53 "texSampler2D"
|
||||
Name 74 "texSampler3D"
|
||||
Name 89 "texSamplerCube"
|
||||
Name 98 "shadowSampler1D"
|
||||
Name 107 "shadowSampler2D"
|
||||
Name 127 "gl_Position"
|
||||
Name 131 "gl_VertexID"
|
||||
Decorate 127(gl_Position) BuiltIn Position
|
||||
Decorate 131(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 131(gl_VertexID) NoStaticUse
|
||||
Name 30 "texSampler1D"
|
||||
Name 40 "coords2D"
|
||||
Name 55 "texSampler2D"
|
||||
Name 77 "texSampler3D"
|
||||
Name 93 "texSamplerCube"
|
||||
Name 103 "shadowSampler1D"
|
||||
Name 114 "shadowSampler2D"
|
||||
Name 137 "gl_Position"
|
||||
Name 141 "gl_VertexID"
|
||||
Decorate 137(gl_Position) BuiltIn Position
|
||||
Decorate 141(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 141(gl_VertexID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypePointer Function 7(float)
|
||||
10: 7(float) Constant 1077936128
|
||||
@ -46,137 +47,147 @@ Linked vertex stage:
|
||||
23: 19(fvec4) ConstantComposite 12 16 17 22
|
||||
25: 7(float) Constant 0
|
||||
26: 19(fvec4) ConstantComposite 25 25 25 25
|
||||
27: TypeSampler7(float) 1D filter+texture
|
||||
28: TypePointer UniformConstant 27
|
||||
29(texSampler1D): 28(ptr) Variable UniformConstant
|
||||
37: TypeVector 7(float) 2
|
||||
38: TypePointer Input 37(fvec2)
|
||||
39(coords2D): 38(ptr) Variable Input
|
||||
51: TypeSampler7(float) 2D filter+texture
|
||||
52: TypePointer UniformConstant 51
|
||||
53(texSampler2D): 52(ptr) Variable UniformConstant
|
||||
72: TypeSampler7(float) 3D filter+texture
|
||||
73: TypePointer UniformConstant 72
|
||||
74(texSampler3D): 73(ptr) Variable UniformConstant
|
||||
87: TypeSampler7(float) Cube filter+texture
|
||||
88: TypePointer UniformConstant 87
|
||||
89(texSamplerCube): 88(ptr) Variable UniformConstant
|
||||
96: TypeSampler7(float) 1D filter+texture depth
|
||||
97: TypePointer UniformConstant 96
|
||||
98(shadowSampler1D): 97(ptr) Variable UniformConstant
|
||||
105: TypeSampler7(float) 2D filter+texture depth
|
||||
106: TypePointer UniformConstant 105
|
||||
107(shadowSampler2D): 106(ptr) Variable UniformConstant
|
||||
126: TypePointer Output 19(fvec4)
|
||||
127(gl_Position): 126(ptr) Variable Output
|
||||
129: TypeInt 32 1
|
||||
130: TypePointer Input 129(int)
|
||||
131(gl_VertexID): 130(ptr) Variable Input
|
||||
27: TypeImage 7(float) 1D sampled format:Unknown
|
||||
28: TypeSampledImage 27
|
||||
29: TypePointer UniformConstant 28
|
||||
30(texSampler1D): 29(ptr) Variable UniformConstant
|
||||
38: TypeVector 7(float) 2
|
||||
39: TypePointer Input 38(fvec2)
|
||||
40(coords2D): 39(ptr) Variable Input
|
||||
52: TypeImage 7(float) 2D sampled format:Unknown
|
||||
53: TypeSampledImage 52
|
||||
54: TypePointer UniformConstant 53
|
||||
55(texSampler2D): 54(ptr) Variable UniformConstant
|
||||
74: TypeImage 7(float) 3D sampled format:Unknown
|
||||
75: TypeSampledImage 74
|
||||
76: TypePointer UniformConstant 75
|
||||
77(texSampler3D): 76(ptr) Variable UniformConstant
|
||||
90: TypeImage 7(float) Cube sampled format:Unknown
|
||||
91: TypeSampledImage 90
|
||||
92: TypePointer UniformConstant 91
|
||||
93(texSamplerCube): 92(ptr) Variable UniformConstant
|
||||
100: TypeImage 7(float) 1D depth sampled format:Unknown
|
||||
101: TypeSampledImage 100
|
||||
102: TypePointer UniformConstant 101
|
||||
103(shadowSampler1D): 102(ptr) Variable UniformConstant
|
||||
111: TypeImage 7(float) 2D depth sampled format:Unknown
|
||||
112: TypeSampledImage 111
|
||||
113: TypePointer UniformConstant 112
|
||||
114(shadowSampler2D): 113(ptr) Variable UniformConstant
|
||||
136: TypePointer Output 19(fvec4)
|
||||
137(gl_Position): 136(ptr) Variable Output
|
||||
139: TypeInt 32 1
|
||||
140: TypePointer Input 139(int)
|
||||
141(gl_VertexID): 140(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(lod): 8(ptr) Variable Function
|
||||
11(coords1D): 8(ptr) Variable Function
|
||||
15(coords3D): 14(ptr) Variable Function
|
||||
21(coords4D): 20(ptr) Variable Function
|
||||
24(color): 20(ptr) Variable Function
|
||||
Store 9(lod) 10
|
||||
Store 11(coords1D) 12
|
||||
Store 15(coords3D) 18
|
||||
Store 21(coords4D) 23
|
||||
Store 24(color) 26
|
||||
30: 27 Load 29(texSampler1D)
|
||||
31: 7(float) Load 11(coords1D)
|
||||
32: 7(float) Load 9(lod)
|
||||
33: 19(fvec4) TextureSampleLod 30 31 32
|
||||
34: 19(fvec4) Load 24(color)
|
||||
35: 19(fvec4) FAdd 34 33
|
||||
Store 24(color) 35
|
||||
36: 27 Load 29(texSampler1D)
|
||||
40: 37(fvec2) Load 39(coords2D)
|
||||
41: 7(float) Load 9(lod)
|
||||
42: 19(fvec4) TextureSampleProjLod 36 40 41
|
||||
43: 19(fvec4) Load 24(color)
|
||||
44: 19(fvec4) FAdd 43 42
|
||||
Store 24(color) 44
|
||||
45: 27 Load 29(texSampler1D)
|
||||
46: 19(fvec4) Load 21(coords4D)
|
||||
47: 7(float) Load 9(lod)
|
||||
48: 19(fvec4) TextureSampleProjLod 45 46 47
|
||||
49: 19(fvec4) Load 24(color)
|
||||
50: 19(fvec4) FAdd 49 48
|
||||
Store 24(color) 50
|
||||
54: 51 Load 53(texSampler2D)
|
||||
55: 37(fvec2) Load 39(coords2D)
|
||||
56: 7(float) Load 9(lod)
|
||||
57: 19(fvec4) TextureSampleLod 54 55 56
|
||||
58: 19(fvec4) Load 24(color)
|
||||
59: 19(fvec4) FAdd 58 57
|
||||
Store 24(color) 59
|
||||
60: 51 Load 53(texSampler2D)
|
||||
61: 13(fvec3) Load 15(coords3D)
|
||||
62: 7(float) Load 9(lod)
|
||||
63: 19(fvec4) TextureSampleProjLod 60 61 62
|
||||
64: 19(fvec4) Load 24(color)
|
||||
65: 19(fvec4) FAdd 64 63
|
||||
Store 24(color) 65
|
||||
66: 51 Load 53(texSampler2D)
|
||||
67: 19(fvec4) Load 21(coords4D)
|
||||
68: 7(float) Load 9(lod)
|
||||
69: 19(fvec4) TextureSampleProjLod 66 67 68
|
||||
70: 19(fvec4) Load 24(color)
|
||||
71: 19(fvec4) FAdd 70 69
|
||||
Store 24(color) 71
|
||||
75: 72 Load 74(texSampler3D)
|
||||
76: 13(fvec3) Load 15(coords3D)
|
||||
77: 7(float) Load 9(lod)
|
||||
78: 19(fvec4) TextureSampleLod 75 76 77
|
||||
79: 19(fvec4) Load 24(color)
|
||||
80: 19(fvec4) FAdd 79 78
|
||||
Store 24(color) 80
|
||||
81: 72 Load 74(texSampler3D)
|
||||
82: 19(fvec4) Load 21(coords4D)
|
||||
83: 7(float) Load 9(lod)
|
||||
84: 19(fvec4) TextureSampleProjLod 81 82 83
|
||||
85: 19(fvec4) Load 24(color)
|
||||
86: 19(fvec4) FAdd 85 84
|
||||
Store 24(color) 86
|
||||
90: 87 Load 89(texSamplerCube)
|
||||
91: 13(fvec3) Load 15(coords3D)
|
||||
92: 7(float) Load 9(lod)
|
||||
93: 19(fvec4) TextureSampleLod 90 91 92
|
||||
94: 19(fvec4) Load 24(color)
|
||||
95: 19(fvec4) FAdd 94 93
|
||||
Store 24(color) 95
|
||||
99: 96 Load 98(shadowSampler1D)
|
||||
100: 13(fvec3) Load 15(coords3D)
|
||||
101: 7(float) Load 9(lod)
|
||||
102: 19(fvec4) TextureSampleLod 99 100 101
|
||||
103: 19(fvec4) Load 24(color)
|
||||
104: 19(fvec4) FAdd 103 102
|
||||
Store 24(color) 104
|
||||
108: 105 Load 107(shadowSampler2D)
|
||||
109: 13(fvec3) Load 15(coords3D)
|
||||
110: 7(float) Load 9(lod)
|
||||
111: 19(fvec4) TextureSampleLod 108 109 110
|
||||
112: 19(fvec4) Load 24(color)
|
||||
113: 19(fvec4) FAdd 112 111
|
||||
Store 24(color) 113
|
||||
114: 96 Load 98(shadowSampler1D)
|
||||
115: 19(fvec4) Load 21(coords4D)
|
||||
116: 7(float) Load 9(lod)
|
||||
117: 19(fvec4) TextureSampleProjLod 114 115 116
|
||||
118: 19(fvec4) Load 24(color)
|
||||
119: 19(fvec4) FAdd 118 117
|
||||
Store 24(color) 119
|
||||
120: 105 Load 107(shadowSampler2D)
|
||||
121: 19(fvec4) Load 21(coords4D)
|
||||
122: 7(float) Load 9(lod)
|
||||
123: 19(fvec4) TextureSampleProjLod 120 121 122
|
||||
124: 19(fvec4) Load 24(color)
|
||||
125: 19(fvec4) FAdd 124 123
|
||||
Store 24(color) 125
|
||||
128: 19(fvec4) Load 24(color)
|
||||
Store 127(gl_Position) 128
|
||||
9(lod): 8(ptr) Variable Function
|
||||
11(coords1D): 8(ptr) Variable Function
|
||||
15(coords3D): 14(ptr) Variable Function
|
||||
21(coords4D): 20(ptr) Variable Function
|
||||
24(color): 20(ptr) Variable Function
|
||||
Store 9(lod) 10
|
||||
Store 11(coords1D) 12
|
||||
Store 15(coords3D) 18
|
||||
Store 21(coords4D) 23
|
||||
Store 24(color) 26
|
||||
31: 28 Load 30(texSampler1D)
|
||||
32: 7(float) Load 11(coords1D)
|
||||
33: 7(float) Load 9(lod)
|
||||
34: 19(fvec4) ImageSampleExplicitLod 31 32 33
|
||||
35: 19(fvec4) Load 24(color)
|
||||
36: 19(fvec4) FAdd 35 34
|
||||
Store 24(color) 36
|
||||
37: 28 Load 30(texSampler1D)
|
||||
41: 38(fvec2) Load 40(coords2D)
|
||||
42: 7(float) Load 9(lod)
|
||||
43: 19(fvec4) ImageSampleProjExplicitLod 37 41 42
|
||||
44: 19(fvec4) Load 24(color)
|
||||
45: 19(fvec4) FAdd 44 43
|
||||
Store 24(color) 45
|
||||
46: 28 Load 30(texSampler1D)
|
||||
47: 19(fvec4) Load 21(coords4D)
|
||||
48: 7(float) Load 9(lod)
|
||||
49: 19(fvec4) ImageSampleProjExplicitLod 46 47 48
|
||||
50: 19(fvec4) Load 24(color)
|
||||
51: 19(fvec4) FAdd 50 49
|
||||
Store 24(color) 51
|
||||
56: 53 Load 55(texSampler2D)
|
||||
57: 38(fvec2) Load 40(coords2D)
|
||||
58: 7(float) Load 9(lod)
|
||||
59: 19(fvec4) ImageSampleExplicitLod 56 57 58
|
||||
60: 19(fvec4) Load 24(color)
|
||||
61: 19(fvec4) FAdd 60 59
|
||||
Store 24(color) 61
|
||||
62: 53 Load 55(texSampler2D)
|
||||
63: 13(fvec3) Load 15(coords3D)
|
||||
64: 7(float) Load 9(lod)
|
||||
65: 19(fvec4) ImageSampleProjExplicitLod 62 63 64
|
||||
66: 19(fvec4) Load 24(color)
|
||||
67: 19(fvec4) FAdd 66 65
|
||||
Store 24(color) 67
|
||||
68: 53 Load 55(texSampler2D)
|
||||
69: 19(fvec4) Load 21(coords4D)
|
||||
70: 7(float) Load 9(lod)
|
||||
71: 19(fvec4) ImageSampleProjExplicitLod 68 69 70
|
||||
72: 19(fvec4) Load 24(color)
|
||||
73: 19(fvec4) FAdd 72 71
|
||||
Store 24(color) 73
|
||||
78: 75 Load 77(texSampler3D)
|
||||
79: 13(fvec3) Load 15(coords3D)
|
||||
80: 7(float) Load 9(lod)
|
||||
81: 19(fvec4) ImageSampleExplicitLod 78 79 80
|
||||
82: 19(fvec4) Load 24(color)
|
||||
83: 19(fvec4) FAdd 82 81
|
||||
Store 24(color) 83
|
||||
84: 75 Load 77(texSampler3D)
|
||||
85: 19(fvec4) Load 21(coords4D)
|
||||
86: 7(float) Load 9(lod)
|
||||
87: 19(fvec4) ImageSampleProjExplicitLod 84 85 86
|
||||
88: 19(fvec4) Load 24(color)
|
||||
89: 19(fvec4) FAdd 88 87
|
||||
Store 24(color) 89
|
||||
94: 91 Load 93(texSamplerCube)
|
||||
95: 13(fvec3) Load 15(coords3D)
|
||||
96: 7(float) Load 9(lod)
|
||||
97: 19(fvec4) ImageSampleExplicitLod 94 95 96
|
||||
98: 19(fvec4) Load 24(color)
|
||||
99: 19(fvec4) FAdd 98 97
|
||||
Store 24(color) 99
|
||||
104: 101 Load 103(shadowSampler1D)
|
||||
105: 13(fvec3) Load 15(coords3D)
|
||||
106: 7(float) Load 9(lod)
|
||||
107: 7(float) CompositeExtract 105 2
|
||||
108: 19(fvec4) ImageSampleDrefExplicitLod 104 105 107 106
|
||||
109: 19(fvec4) Load 24(color)
|
||||
110: 19(fvec4) FAdd 109 108
|
||||
Store 24(color) 110
|
||||
115: 112 Load 114(shadowSampler2D)
|
||||
116: 13(fvec3) Load 15(coords3D)
|
||||
117: 7(float) Load 9(lod)
|
||||
118: 7(float) CompositeExtract 116 2
|
||||
119: 19(fvec4) ImageSampleDrefExplicitLod 115 116 118 117
|
||||
120: 19(fvec4) Load 24(color)
|
||||
121: 19(fvec4) FAdd 120 119
|
||||
Store 24(color) 121
|
||||
122: 101 Load 103(shadowSampler1D)
|
||||
123: 19(fvec4) Load 21(coords4D)
|
||||
124: 7(float) Load 9(lod)
|
||||
125: 7(float) CompositeExtract 123 3
|
||||
126: 19(fvec4) ImageSampleProjDrefExplicitLod 122 123 125 124
|
||||
127: 19(fvec4) Load 24(color)
|
||||
128: 19(fvec4) FAdd 127 126
|
||||
Store 24(color) 128
|
||||
129: 112 Load 114(shadowSampler2D)
|
||||
130: 19(fvec4) Load 21(coords4D)
|
||||
131: 7(float) Load 9(lod)
|
||||
132: 7(float) CompositeExtract 130 3
|
||||
133: 19(fvec4) ImageSampleProjDrefExplicitLod 129 130 132 131
|
||||
134: 19(fvec4) Load 24(color)
|
||||
135: 19(fvec4) FAdd 134 133
|
||||
Store 24(color) 135
|
||||
138: 19(fvec4) Load 24(color)
|
||||
Store 137(gl_Position) 138
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
264
Test/baseResults/spv.types.frag.out
Normal file → Executable file
264
Test/baseResults/spv.types.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 264
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "b"
|
||||
Name 11 "u_b"
|
||||
@ -49,295 +51,295 @@ Linked fragment stage:
|
||||
Name 162 "u_f4"
|
||||
Name 165 "i_f4"
|
||||
Name 169 "gl_FragColor"
|
||||
Decorate 95(i_i) Flat
|
||||
Decorate 105(i_i2) Flat
|
||||
Decorate 115(i_i3) Flat
|
||||
Decorate 125(i_i4) Flat
|
||||
Decorate 135(i_f) Smooth
|
||||
Decorate 145(i_f2) Smooth
|
||||
Decorate 155(i_f3) Smooth
|
||||
Decorate 165(i_f4) Smooth
|
||||
Decorate 95(i_i) Flat
|
||||
Decorate 105(i_i2) Flat
|
||||
Decorate 115(i_i3) Flat
|
||||
Decorate 125(i_i4) Flat
|
||||
Decorate 135(i_f) Smooth
|
||||
Decorate 145(i_f2) Smooth
|
||||
Decorate 155(i_f3) Smooth
|
||||
Decorate 165(i_f4) Smooth
|
||||
Decorate 169(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeBool
|
||||
8: TypePointer Function 7(bool)
|
||||
10: TypePointer UniformConstant 7(bool)
|
||||
11(u_b): 10(ptr) Variable UniformConstant
|
||||
13(i_b): 10(ptr) Variable UniformConstant
|
||||
11(u_b): 10(ptr) Variable UniformConstant
|
||||
13(i_b): 10(ptr) Variable UniformConstant
|
||||
16: TypeVector 7(bool) 2
|
||||
17: TypePointer Function 16(bvec2)
|
||||
19: TypePointer UniformConstant 16(bvec2)
|
||||
20(u_b2): 19(ptr) Variable UniformConstant
|
||||
23(i_b2): 19(ptr) Variable UniformConstant
|
||||
20(u_b2): 19(ptr) Variable UniformConstant
|
||||
23(i_b2): 19(ptr) Variable UniformConstant
|
||||
34: TypeVector 7(bool) 3
|
||||
35: TypePointer Function 34(bvec3)
|
||||
37: TypePointer UniformConstant 34(bvec3)
|
||||
38(u_b3): 37(ptr) Variable UniformConstant
|
||||
41(i_b3): 37(ptr) Variable UniformConstant
|
||||
38(u_b3): 37(ptr) Variable UniformConstant
|
||||
41(i_b3): 37(ptr) Variable UniformConstant
|
||||
58: TypeVector 7(bool) 4
|
||||
59: TypePointer Function 58(bvec4)
|
||||
61: TypePointer UniformConstant 58(bvec4)
|
||||
62(u_b4): 61(ptr) Variable UniformConstant
|
||||
65(i_b4): 61(ptr) Variable UniformConstant
|
||||
62(u_b4): 61(ptr) Variable UniformConstant
|
||||
65(i_b4): 61(ptr) Variable UniformConstant
|
||||
88: TypeInt 32 1
|
||||
89: TypePointer Function 88(int)
|
||||
91: TypePointer UniformConstant 88(int)
|
||||
92(u_i): 91(ptr) Variable UniformConstant
|
||||
92(u_i): 91(ptr) Variable UniformConstant
|
||||
94: TypePointer Input 88(int)
|
||||
95(i_i): 94(ptr) Variable Input
|
||||
95(i_i): 94(ptr) Variable Input
|
||||
98: TypeVector 88(int) 2
|
||||
99: TypePointer Function 98(ivec2)
|
||||
101: TypePointer UniformConstant 98(ivec2)
|
||||
102(u_i2): 101(ptr) Variable UniformConstant
|
||||
102(u_i2): 101(ptr) Variable UniformConstant
|
||||
104: TypePointer Input 98(ivec2)
|
||||
105(i_i2): 104(ptr) Variable Input
|
||||
105(i_i2): 104(ptr) Variable Input
|
||||
108: TypeVector 88(int) 3
|
||||
109: TypePointer Function 108(ivec3)
|
||||
111: TypePointer UniformConstant 108(ivec3)
|
||||
112(u_i3): 111(ptr) Variable UniformConstant
|
||||
112(u_i3): 111(ptr) Variable UniformConstant
|
||||
114: TypePointer Input 108(ivec3)
|
||||
115(i_i3): 114(ptr) Variable Input
|
||||
115(i_i3): 114(ptr) Variable Input
|
||||
118: TypeVector 88(int) 4
|
||||
119: TypePointer Function 118(ivec4)
|
||||
121: TypePointer UniformConstant 118(ivec4)
|
||||
122(u_i4): 121(ptr) Variable UniformConstant
|
||||
122(u_i4): 121(ptr) Variable UniformConstant
|
||||
124: TypePointer Input 118(ivec4)
|
||||
125(i_i4): 124(ptr) Variable Input
|
||||
125(i_i4): 124(ptr) Variable Input
|
||||
128: TypeFloat 32
|
||||
129: TypePointer Function 128(float)
|
||||
131: TypePointer UniformConstant 128(float)
|
||||
132(u_f): 131(ptr) Variable UniformConstant
|
||||
132(u_f): 131(ptr) Variable UniformConstant
|
||||
134: TypePointer Input 128(float)
|
||||
135(i_f): 134(ptr) Variable Input
|
||||
135(i_f): 134(ptr) Variable Input
|
||||
138: TypeVector 128(float) 2
|
||||
139: TypePointer Function 138(fvec2)
|
||||
141: TypePointer UniformConstant 138(fvec2)
|
||||
142(u_f2): 141(ptr) Variable UniformConstant
|
||||
142(u_f2): 141(ptr) Variable UniformConstant
|
||||
144: TypePointer Input 138(fvec2)
|
||||
145(i_f2): 144(ptr) Variable Input
|
||||
145(i_f2): 144(ptr) Variable Input
|
||||
148: TypeVector 128(float) 3
|
||||
149: TypePointer Function 148(fvec3)
|
||||
151: TypePointer UniformConstant 148(fvec3)
|
||||
152(u_f3): 151(ptr) Variable UniformConstant
|
||||
152(u_f3): 151(ptr) Variable UniformConstant
|
||||
154: TypePointer Input 148(fvec3)
|
||||
155(i_f3): 154(ptr) Variable Input
|
||||
155(i_f3): 154(ptr) Variable Input
|
||||
158: TypeVector 128(float) 4
|
||||
159: TypePointer Function 158(fvec4)
|
||||
161: TypePointer UniformConstant 158(fvec4)
|
||||
162(u_f4): 161(ptr) Variable UniformConstant
|
||||
162(u_f4): 161(ptr) Variable UniformConstant
|
||||
164: TypePointer Input 158(fvec4)
|
||||
165(i_f4): 164(ptr) Variable Input
|
||||
165(i_f4): 164(ptr) Variable Input
|
||||
168: TypePointer Output 158(fvec4)
|
||||
169(gl_FragColor): 168(ptr) Variable Output
|
||||
169(gl_FragColor): 168(ptr) Variable Output
|
||||
261: 128(float) Constant 1065353216
|
||||
262: 158(fvec4) ConstantComposite 261 261 261 261
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(b): 8(ptr) Variable Function
|
||||
18(b2): 17(ptr) Variable Function
|
||||
36(b3): 35(ptr) Variable Function
|
||||
60(b4): 59(ptr) Variable Function
|
||||
90(i): 89(ptr) Variable Function
|
||||
100(i2): 99(ptr) Variable Function
|
||||
110(i3): 109(ptr) Variable Function
|
||||
120(i4): 119(ptr) Variable Function
|
||||
130(f): 129(ptr) Variable Function
|
||||
140(f2): 139(ptr) Variable Function
|
||||
150(f3): 149(ptr) Variable Function
|
||||
160(f4): 159(ptr) Variable Function
|
||||
170: 159(ptr) Variable Function
|
||||
12: 7(bool) Load 11(u_b)
|
||||
14: 7(bool) Load 13(i_b)
|
||||
9(b): 8(ptr) Variable Function
|
||||
18(b2): 17(ptr) Variable Function
|
||||
36(b3): 35(ptr) Variable Function
|
||||
60(b4): 59(ptr) Variable Function
|
||||
90(i): 89(ptr) Variable Function
|
||||
100(i2): 99(ptr) Variable Function
|
||||
110(i3): 109(ptr) Variable Function
|
||||
120(i4): 119(ptr) Variable Function
|
||||
130(f): 129(ptr) Variable Function
|
||||
140(f2): 139(ptr) Variable Function
|
||||
150(f3): 149(ptr) Variable Function
|
||||
160(f4): 159(ptr) Variable Function
|
||||
170: 159(ptr) Variable Function
|
||||
12: 7(bool) Load 11(u_b)
|
||||
14: 7(bool) Load 13(i_b)
|
||||
15: 7(bool) LogicalAnd 12 14
|
||||
Store 9(b) 15
|
||||
21: 16(bvec2) Load 20(u_b2)
|
||||
Store 9(b) 15
|
||||
21: 16(bvec2) Load 20(u_b2)
|
||||
22: 7(bool) CompositeExtract 21 0
|
||||
24: 16(bvec2) Load 23(i_b2)
|
||||
24: 16(bvec2) Load 23(i_b2)
|
||||
25: 7(bool) CompositeExtract 24 0
|
||||
26: 7(bool) LogicalAnd 22 25
|
||||
27: 16(bvec2) Load 20(u_b2)
|
||||
27: 16(bvec2) Load 20(u_b2)
|
||||
28: 7(bool) CompositeExtract 27 1
|
||||
29: 7(bool) LogicalAnd 26 28
|
||||
30: 16(bvec2) Load 23(i_b2)
|
||||
30: 16(bvec2) Load 23(i_b2)
|
||||
31: 7(bool) CompositeExtract 30 1
|
||||
32: 7(bool) LogicalAnd 29 31
|
||||
33: 16(bvec2) CompositeConstruct 32 32
|
||||
Store 18(b2) 33
|
||||
39: 34(bvec3) Load 38(u_b3)
|
||||
Store 18(b2) 33
|
||||
39: 34(bvec3) Load 38(u_b3)
|
||||
40: 7(bool) CompositeExtract 39 0
|
||||
42: 34(bvec3) Load 41(i_b3)
|
||||
42: 34(bvec3) Load 41(i_b3)
|
||||
43: 7(bool) CompositeExtract 42 0
|
||||
44: 7(bool) LogicalAnd 40 43
|
||||
45: 34(bvec3) Load 38(u_b3)
|
||||
45: 34(bvec3) Load 38(u_b3)
|
||||
46: 7(bool) CompositeExtract 45 1
|
||||
47: 7(bool) LogicalAnd 44 46
|
||||
48: 34(bvec3) Load 41(i_b3)
|
||||
48: 34(bvec3) Load 41(i_b3)
|
||||
49: 7(bool) CompositeExtract 48 1
|
||||
50: 7(bool) LogicalAnd 47 49
|
||||
51: 34(bvec3) Load 38(u_b3)
|
||||
51: 34(bvec3) Load 38(u_b3)
|
||||
52: 7(bool) CompositeExtract 51 2
|
||||
53: 7(bool) LogicalAnd 50 52
|
||||
54: 34(bvec3) Load 41(i_b3)
|
||||
54: 34(bvec3) Load 41(i_b3)
|
||||
55: 7(bool) CompositeExtract 54 2
|
||||
56: 7(bool) LogicalAnd 53 55
|
||||
57: 34(bvec3) CompositeConstruct 56 56 56
|
||||
Store 36(b3) 57
|
||||
63: 58(bvec4) Load 62(u_b4)
|
||||
Store 36(b3) 57
|
||||
63: 58(bvec4) Load 62(u_b4)
|
||||
64: 7(bool) CompositeExtract 63 0
|
||||
66: 58(bvec4) Load 65(i_b4)
|
||||
66: 58(bvec4) Load 65(i_b4)
|
||||
67: 7(bool) CompositeExtract 66 0
|
||||
68: 7(bool) LogicalAnd 64 67
|
||||
69: 58(bvec4) Load 62(u_b4)
|
||||
69: 58(bvec4) Load 62(u_b4)
|
||||
70: 7(bool) CompositeExtract 69 1
|
||||
71: 7(bool) LogicalAnd 68 70
|
||||
72: 58(bvec4) Load 65(i_b4)
|
||||
72: 58(bvec4) Load 65(i_b4)
|
||||
73: 7(bool) CompositeExtract 72 1
|
||||
74: 7(bool) LogicalAnd 71 73
|
||||
75: 58(bvec4) Load 62(u_b4)
|
||||
75: 58(bvec4) Load 62(u_b4)
|
||||
76: 7(bool) CompositeExtract 75 2
|
||||
77: 7(bool) LogicalAnd 74 76
|
||||
78: 58(bvec4) Load 65(i_b4)
|
||||
78: 58(bvec4) Load 65(i_b4)
|
||||
79: 7(bool) CompositeExtract 78 2
|
||||
80: 7(bool) LogicalAnd 77 79
|
||||
81: 58(bvec4) Load 62(u_b4)
|
||||
81: 58(bvec4) Load 62(u_b4)
|
||||
82: 7(bool) CompositeExtract 81 3
|
||||
83: 7(bool) LogicalAnd 80 82
|
||||
84: 58(bvec4) Load 65(i_b4)
|
||||
84: 58(bvec4) Load 65(i_b4)
|
||||
85: 7(bool) CompositeExtract 84 3
|
||||
86: 7(bool) LogicalAnd 83 85
|
||||
87: 58(bvec4) CompositeConstruct 86 86 86 86
|
||||
Store 60(b4) 87
|
||||
93: 88(int) Load 92(u_i)
|
||||
96: 88(int) Load 95(i_i)
|
||||
Store 60(b4) 87
|
||||
93: 88(int) Load 92(u_i)
|
||||
96: 88(int) Load 95(i_i)
|
||||
97: 88(int) IAdd 93 96
|
||||
Store 90(i) 97
|
||||
103: 98(ivec2) Load 102(u_i2)
|
||||
106: 98(ivec2) Load 105(i_i2)
|
||||
Store 90(i) 97
|
||||
103: 98(ivec2) Load 102(u_i2)
|
||||
106: 98(ivec2) Load 105(i_i2)
|
||||
107: 98(ivec2) IAdd 103 106
|
||||
Store 100(i2) 107
|
||||
113: 108(ivec3) Load 112(u_i3)
|
||||
116: 108(ivec3) Load 115(i_i3)
|
||||
Store 100(i2) 107
|
||||
113: 108(ivec3) Load 112(u_i3)
|
||||
116: 108(ivec3) Load 115(i_i3)
|
||||
117: 108(ivec3) IAdd 113 116
|
||||
Store 110(i3) 117
|
||||
123: 118(ivec4) Load 122(u_i4)
|
||||
126: 118(ivec4) Load 125(i_i4)
|
||||
Store 110(i3) 117
|
||||
123: 118(ivec4) Load 122(u_i4)
|
||||
126: 118(ivec4) Load 125(i_i4)
|
||||
127: 118(ivec4) IAdd 123 126
|
||||
Store 120(i4) 127
|
||||
133: 128(float) Load 132(u_f)
|
||||
136: 128(float) Load 135(i_f)
|
||||
Store 120(i4) 127
|
||||
133: 128(float) Load 132(u_f)
|
||||
136: 128(float) Load 135(i_f)
|
||||
137: 128(float) FAdd 133 136
|
||||
Store 130(f) 137
|
||||
143: 138(fvec2) Load 142(u_f2)
|
||||
146: 138(fvec2) Load 145(i_f2)
|
||||
Store 130(f) 137
|
||||
143: 138(fvec2) Load 142(u_f2)
|
||||
146: 138(fvec2) Load 145(i_f2)
|
||||
147: 138(fvec2) FAdd 143 146
|
||||
Store 140(f2) 147
|
||||
153: 148(fvec3) Load 152(u_f3)
|
||||
156: 148(fvec3) Load 155(i_f3)
|
||||
Store 140(f2) 147
|
||||
153: 148(fvec3) Load 152(u_f3)
|
||||
156: 148(fvec3) Load 155(i_f3)
|
||||
157: 148(fvec3) FAdd 153 156
|
||||
Store 150(f3) 157
|
||||
163: 158(fvec4) Load 162(u_f4)
|
||||
166: 158(fvec4) Load 165(i_f4)
|
||||
Store 150(f3) 157
|
||||
163: 158(fvec4) Load 162(u_f4)
|
||||
166: 158(fvec4) Load 165(i_f4)
|
||||
167: 158(fvec4) FAdd 163 166
|
||||
Store 160(f4) 167
|
||||
171: 7(bool) Load 9(b)
|
||||
172: 16(bvec2) Load 18(b2)
|
||||
Store 160(f4) 167
|
||||
171: 7(bool) Load 9(b)
|
||||
172: 16(bvec2) Load 18(b2)
|
||||
173: 7(bool) CompositeExtract 172 0
|
||||
174: 7(bool) LogicalOr 171 173
|
||||
175: 16(bvec2) Load 18(b2)
|
||||
175: 16(bvec2) Load 18(b2)
|
||||
176: 7(bool) CompositeExtract 175 1
|
||||
177: 7(bool) LogicalOr 174 176
|
||||
178: 34(bvec3) Load 36(b3)
|
||||
178: 34(bvec3) Load 36(b3)
|
||||
179: 7(bool) CompositeExtract 178 0
|
||||
180: 7(bool) LogicalOr 177 179
|
||||
181: 34(bvec3) Load 36(b3)
|
||||
181: 34(bvec3) Load 36(b3)
|
||||
182: 7(bool) CompositeExtract 181 1
|
||||
183: 7(bool) LogicalOr 180 182
|
||||
184: 34(bvec3) Load 36(b3)
|
||||
184: 34(bvec3) Load 36(b3)
|
||||
185: 7(bool) CompositeExtract 184 2
|
||||
186: 7(bool) LogicalOr 183 185
|
||||
187: 58(bvec4) Load 60(b4)
|
||||
187: 58(bvec4) Load 60(b4)
|
||||
188: 7(bool) CompositeExtract 187 0
|
||||
189: 7(bool) LogicalOr 186 188
|
||||
190: 58(bvec4) Load 60(b4)
|
||||
190: 58(bvec4) Load 60(b4)
|
||||
191: 7(bool) CompositeExtract 190 1
|
||||
192: 7(bool) LogicalOr 189 191
|
||||
193: 58(bvec4) Load 60(b4)
|
||||
193: 58(bvec4) Load 60(b4)
|
||||
194: 7(bool) CompositeExtract 193 2
|
||||
195: 7(bool) LogicalOr 192 194
|
||||
196: 58(bvec4) Load 60(b4)
|
||||
196: 58(bvec4) Load 60(b4)
|
||||
197: 7(bool) CompositeExtract 196 3
|
||||
198: 7(bool) LogicalOr 195 197
|
||||
SelectionMerge 200 None
|
||||
BranchConditional 198 199 260
|
||||
BranchConditional 198 199 260
|
||||
199: Label
|
||||
201: 88(int) Load 90(i)
|
||||
202: 98(ivec2) Load 100(i2)
|
||||
201: 88(int) Load 90(i)
|
||||
202: 98(ivec2) Load 100(i2)
|
||||
203: 88(int) CompositeExtract 202 0
|
||||
204: 88(int) IAdd 201 203
|
||||
205: 98(ivec2) Load 100(i2)
|
||||
205: 98(ivec2) Load 100(i2)
|
||||
206: 88(int) CompositeExtract 205 1
|
||||
207: 88(int) IAdd 204 206
|
||||
208: 108(ivec3) Load 110(i3)
|
||||
208: 108(ivec3) Load 110(i3)
|
||||
209: 88(int) CompositeExtract 208 0
|
||||
210: 88(int) IAdd 207 209
|
||||
211: 108(ivec3) Load 110(i3)
|
||||
211: 108(ivec3) Load 110(i3)
|
||||
212: 88(int) CompositeExtract 211 1
|
||||
213: 88(int) IAdd 210 212
|
||||
214: 108(ivec3) Load 110(i3)
|
||||
214: 108(ivec3) Load 110(i3)
|
||||
215: 88(int) CompositeExtract 214 2
|
||||
216: 88(int) IAdd 213 215
|
||||
217: 118(ivec4) Load 120(i4)
|
||||
217: 118(ivec4) Load 120(i4)
|
||||
218: 88(int) CompositeExtract 217 0
|
||||
219: 88(int) IAdd 216 218
|
||||
220: 118(ivec4) Load 120(i4)
|
||||
220: 118(ivec4) Load 120(i4)
|
||||
221: 88(int) CompositeExtract 220 1
|
||||
222: 88(int) IAdd 219 221
|
||||
223: 118(ivec4) Load 120(i4)
|
||||
223: 118(ivec4) Load 120(i4)
|
||||
224: 88(int) CompositeExtract 223 2
|
||||
225: 88(int) IAdd 222 224
|
||||
226: 118(ivec4) Load 120(i4)
|
||||
226: 118(ivec4) Load 120(i4)
|
||||
227: 88(int) CompositeExtract 226 3
|
||||
228: 88(int) IAdd 225 227
|
||||
229: 128(float) ConvertSToF 228
|
||||
230: 128(float) Load 130(f)
|
||||
230: 128(float) Load 130(f)
|
||||
231: 128(float) FAdd 229 230
|
||||
232: 138(fvec2) Load 140(f2)
|
||||
232: 138(fvec2) Load 140(f2)
|
||||
233: 128(float) CompositeExtract 232 0
|
||||
234: 128(float) FAdd 231 233
|
||||
235: 138(fvec2) Load 140(f2)
|
||||
235: 138(fvec2) Load 140(f2)
|
||||
236: 128(float) CompositeExtract 235 1
|
||||
237: 128(float) FAdd 234 236
|
||||
238: 148(fvec3) Load 150(f3)
|
||||
238: 148(fvec3) Load 150(f3)
|
||||
239: 128(float) CompositeExtract 238 0
|
||||
240: 128(float) FAdd 237 239
|
||||
241: 148(fvec3) Load 150(f3)
|
||||
241: 148(fvec3) Load 150(f3)
|
||||
242: 128(float) CompositeExtract 241 1
|
||||
243: 128(float) FAdd 240 242
|
||||
244: 148(fvec3) Load 150(f3)
|
||||
244: 148(fvec3) Load 150(f3)
|
||||
245: 128(float) CompositeExtract 244 2
|
||||
246: 128(float) FAdd 243 245
|
||||
247: 158(fvec4) Load 160(f4)
|
||||
247: 158(fvec4) Load 160(f4)
|
||||
248: 128(float) CompositeExtract 247 0
|
||||
249: 128(float) FAdd 246 248
|
||||
250: 158(fvec4) Load 160(f4)
|
||||
250: 158(fvec4) Load 160(f4)
|
||||
251: 128(float) CompositeExtract 250 1
|
||||
252: 128(float) FAdd 249 251
|
||||
253: 158(fvec4) Load 160(f4)
|
||||
253: 158(fvec4) Load 160(f4)
|
||||
254: 128(float) CompositeExtract 253 2
|
||||
255: 128(float) FAdd 252 254
|
||||
256: 158(fvec4) Load 160(f4)
|
||||
256: 158(fvec4) Load 160(f4)
|
||||
257: 128(float) CompositeExtract 256 3
|
||||
258: 128(float) FAdd 255 257
|
||||
259: 158(fvec4) CompositeConstruct 258 258 258 258
|
||||
Store 170 259
|
||||
Store 170 259
|
||||
Branch 200
|
||||
260: Label
|
||||
Store 170 262
|
||||
Store 170 262
|
||||
Branch 200
|
||||
200: Label
|
||||
263: 158(fvec4) Load 170
|
||||
Store 169(gl_FragColor) 263
|
||||
263: 158(fvec4) Load 170
|
||||
Store 169(gl_FragColor) 263
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
541
Test/baseResults/spv.uint.frag.out
Normal file → Executable file
541
Test/baseResults/spv.uint.frag.out
Normal file → Executable file
@ -5,12 +5,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 206
|
||||
// Id's are bound by 207
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "count"
|
||||
Name 13 "u"
|
||||
@ -20,47 +22,47 @@ Linked fragment stage:
|
||||
Name 58 "shiftediu"
|
||||
Name 59 "shifteduu"
|
||||
Name 67 "c"
|
||||
Name 70 "usampler"
|
||||
Name 75 "tc"
|
||||
Name 108 "af"
|
||||
Name 112 "ab"
|
||||
Name 116 "ai"
|
||||
Name 151 "mask1"
|
||||
Name 153 "mask2"
|
||||
Name 155 "mask3"
|
||||
Name 159 "mask4"
|
||||
Name 199 "f"
|
||||
Name 201 "v"
|
||||
Name 203 "i"
|
||||
Name 205 "b"
|
||||
Decorate 9(count) PrecisionMedium
|
||||
Decorate 13(u) PrecisionMedium
|
||||
Decorate 16(t) PrecisionMedium
|
||||
Decorate 16(t) Flat
|
||||
Decorate 54(shiftedii) PrecisionMedium
|
||||
Decorate 56(shiftedui) PrecisionMedium
|
||||
Decorate 58(shiftediu) PrecisionMedium
|
||||
Decorate 59(shifteduu) PrecisionMedium
|
||||
Decorate 67(c) PrecisionMedium
|
||||
Decorate 70(usampler) PrecisionMedium
|
||||
Decorate 75(tc) PrecisionMedium
|
||||
Decorate 75(tc) Smooth
|
||||
Decorate 108(af) PrecisionMedium
|
||||
Decorate 116(ai) PrecisionMedium
|
||||
Decorate 151(mask1) PrecisionMedium
|
||||
Decorate 153(mask2) PrecisionMedium
|
||||
Decorate 155(mask3) PrecisionMedium
|
||||
Decorate 159(mask4) PrecisionMedium
|
||||
Decorate 199(f) PrecisionMedium
|
||||
Decorate 199(f) Smooth
|
||||
Decorate 199(f) NoStaticUse
|
||||
Decorate 201(v) PrecisionMedium
|
||||
Decorate 201(v) NoStaticUse
|
||||
Decorate 203(i) PrecisionMedium
|
||||
Decorate 203(i) NoStaticUse
|
||||
Decorate 205(b) NoStaticUse
|
||||
Name 71 "usampler"
|
||||
Name 76 "tc"
|
||||
Name 109 "af"
|
||||
Name 113 "ab"
|
||||
Name 117 "ai"
|
||||
Name 152 "mask1"
|
||||
Name 154 "mask2"
|
||||
Name 156 "mask3"
|
||||
Name 160 "mask4"
|
||||
Name 200 "f"
|
||||
Name 202 "v"
|
||||
Name 204 "i"
|
||||
Name 206 "b"
|
||||
Decorate 9(count) RelaxedPrecision
|
||||
Decorate 13(u) RelaxedPrecision
|
||||
Decorate 16(t) RelaxedPrecision
|
||||
Decorate 16(t) Flat
|
||||
Decorate 54(shiftedii) RelaxedPrecision
|
||||
Decorate 56(shiftedui) RelaxedPrecision
|
||||
Decorate 58(shiftediu) RelaxedPrecision
|
||||
Decorate 59(shifteduu) RelaxedPrecision
|
||||
Decorate 67(c) RelaxedPrecision
|
||||
Decorate 71(usampler) RelaxedPrecision
|
||||
Decorate 76(tc) RelaxedPrecision
|
||||
Decorate 76(tc) Smooth
|
||||
Decorate 109(af) RelaxedPrecision
|
||||
Decorate 117(ai) RelaxedPrecision
|
||||
Decorate 152(mask1) RelaxedPrecision
|
||||
Decorate 154(mask2) RelaxedPrecision
|
||||
Decorate 156(mask3) RelaxedPrecision
|
||||
Decorate 160(mask4) RelaxedPrecision
|
||||
Decorate 200(f) RelaxedPrecision
|
||||
Decorate 200(f) Smooth
|
||||
Decorate 200(f) NoStaticUse
|
||||
Decorate 202(v) RelaxedPrecision
|
||||
Decorate 202(v) NoStaticUse
|
||||
Decorate 204(i) RelaxedPrecision
|
||||
Decorate 204(i) NoStaticUse
|
||||
Decorate 206(b) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 1
|
||||
@ -68,7 +70,7 @@ Linked fragment stage:
|
||||
12: TypePointer Function 11(int)
|
||||
14: TypeVector 11(int) 2
|
||||
15: TypePointer Input 14(ivec2)
|
||||
16(t): 15(ptr) Variable Input
|
||||
16(t): 15(ptr) Variable Input
|
||||
19: 11(int) Constant 3
|
||||
21: TypeBool
|
||||
22: 21(bool) ConstantTrue
|
||||
@ -83,271 +85,272 @@ Linked fragment stage:
|
||||
57: 11(int) Constant 4194303
|
||||
65: TypeVector 11(int) 4
|
||||
66: TypePointer Output 65(ivec4)
|
||||
67(c): 66(ptr) Variable Output
|
||||
68: TypeSampler11(int) 2D filter+texture
|
||||
69: TypePointer UniformConstant 68
|
||||
70(usampler): 69(ptr) Variable UniformConstant
|
||||
72: TypeFloat 32
|
||||
73: TypeVector 72(float) 2
|
||||
74: TypePointer Input 73(fvec2)
|
||||
75(tc): 74(ptr) Variable Input
|
||||
85: 72(float) Constant 1065353216
|
||||
97: 72(float) Constant 1073741824
|
||||
98: 73(fvec2) ConstantComposite 97 97
|
||||
103: 11(int) Constant 4
|
||||
107: TypePointer Function 72(float)
|
||||
111: TypePointer Function 21(bool)
|
||||
114: 11(int) Constant 0
|
||||
122: 11(int) Constant 1
|
||||
133: 7(int) Constant 17
|
||||
138: 7(int) Constant 19
|
||||
143: 7(int) Constant 23
|
||||
148: 7(int) Constant 27
|
||||
152: 11(int) Constant 161
|
||||
154: 11(int) Constant 2576
|
||||
157: 7(int) Constant 4
|
||||
160: 11(int) Constant 2737
|
||||
198: TypePointer Input 72(float)
|
||||
199(f): 198(ptr) Variable Input
|
||||
200: TypePointer UniformConstant 65(ivec4)
|
||||
201(v): 200(ptr) Variable UniformConstant
|
||||
202: TypePointer UniformConstant 7(int)
|
||||
203(i): 202(ptr) Variable UniformConstant
|
||||
204: TypePointer UniformConstant 21(bool)
|
||||
205(b): 204(ptr) Variable UniformConstant
|
||||
67(c): 66(ptr) Variable Output
|
||||
68: TypeImage 11(int) 2D sampled format:Unknown
|
||||
69: TypeSampledImage 68
|
||||
70: TypePointer UniformConstant 69
|
||||
71(usampler): 70(ptr) Variable UniformConstant
|
||||
73: TypeFloat 32
|
||||
74: TypeVector 73(float) 2
|
||||
75: TypePointer Input 74(fvec2)
|
||||
76(tc): 75(ptr) Variable Input
|
||||
86: 73(float) Constant 1065353216
|
||||
98: 73(float) Constant 1073741824
|
||||
99: 74(fvec2) ConstantComposite 98 98
|
||||
104: 11(int) Constant 4
|
||||
108: TypePointer Function 73(float)
|
||||
112: TypePointer Function 21(bool)
|
||||
115: 11(int) Constant 0
|
||||
123: 11(int) Constant 1
|
||||
134: 7(int) Constant 17
|
||||
139: 7(int) Constant 19
|
||||
144: 7(int) Constant 23
|
||||
149: 7(int) Constant 27
|
||||
153: 11(int) Constant 161
|
||||
155: 11(int) Constant 2576
|
||||
158: 7(int) Constant 4
|
||||
161: 11(int) Constant 2737
|
||||
199: TypePointer Input 73(float)
|
||||
200(f): 199(ptr) Variable Input
|
||||
201: TypePointer UniformConstant 65(ivec4)
|
||||
202(v): 201(ptr) Variable UniformConstant
|
||||
203: TypePointer UniformConstant 7(int)
|
||||
204(i): 203(ptr) Variable UniformConstant
|
||||
205: TypePointer UniformConstant 21(bool)
|
||||
206(b): 205(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(count): 8(ptr) Variable Function
|
||||
13(u): 12(ptr) Variable Function
|
||||
54(shiftedii): 8(ptr) Variable Function
|
||||
56(shiftedui): 12(ptr) Variable Function
|
||||
58(shiftediu): 8(ptr) Variable Function
|
||||
59(shifteduu): 12(ptr) Variable Function
|
||||
108(af): 107(ptr) Variable Function
|
||||
112(ab): 111(ptr) Variable Function
|
||||
116(ai): 8(ptr) Variable Function
|
||||
151(mask1): 12(ptr) Variable Function
|
||||
153(mask2): 12(ptr) Variable Function
|
||||
155(mask3): 12(ptr) Variable Function
|
||||
159(mask4): 12(ptr) Variable Function
|
||||
Store 9(count) 10
|
||||
17: 14(ivec2) Load 16(t)
|
||||
9(count): 8(ptr) Variable Function
|
||||
13(u): 12(ptr) Variable Function
|
||||
54(shiftedii): 8(ptr) Variable Function
|
||||
56(shiftedui): 12(ptr) Variable Function
|
||||
58(shiftediu): 8(ptr) Variable Function
|
||||
59(shifteduu): 12(ptr) Variable Function
|
||||
109(af): 108(ptr) Variable Function
|
||||
113(ab): 112(ptr) Variable Function
|
||||
117(ai): 8(ptr) Variable Function
|
||||
152(mask1): 12(ptr) Variable Function
|
||||
154(mask2): 12(ptr) Variable Function
|
||||
156(mask3): 12(ptr) Variable Function
|
||||
160(mask4): 12(ptr) Variable Function
|
||||
Store 9(count) 10
|
||||
17: 14(ivec2) Load 16(t)
|
||||
18: 11(int) CompositeExtract 17 1
|
||||
20: 11(int) IAdd 18 19
|
||||
Store 13(u) 20
|
||||
Store 13(u) 20
|
||||
SelectionMerge 24 None
|
||||
BranchConditional 22 23 24
|
||||
BranchConditional 22 23 24
|
||||
23: Label
|
||||
26: 7(int) Load 9(count)
|
||||
26: 7(int) Load 9(count)
|
||||
27: 7(int) IMul 26 25
|
||||
Store 9(count) 27
|
||||
Store 9(count) 27
|
||||
Branch 24
|
||||
24: Label
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 22 28 29
|
||||
BranchConditional 22 28 29
|
||||
28: Label
|
||||
31: 7(int) Load 9(count)
|
||||
31: 7(int) Load 9(count)
|
||||
32: 7(int) IMul 31 30
|
||||
Store 9(count) 32
|
||||
Store 9(count) 32
|
||||
Branch 29
|
||||
29: Label
|
||||
SelectionMerge 35 None
|
||||
BranchConditional 33 34 35
|
||||
BranchConditional 33 34 35
|
||||
34: Label
|
||||
37: 7(int) Load 9(count)
|
||||
37: 7(int) Load 9(count)
|
||||
38: 7(int) IMul 37 36
|
||||
Store 9(count) 38
|
||||
Store 9(count) 38
|
||||
Branch 35
|
||||
35: Label
|
||||
SelectionMerge 40 None
|
||||
BranchConditional 22 39 40
|
||||
BranchConditional 22 39 40
|
||||
39: Label
|
||||
42: 7(int) Load 9(count)
|
||||
42: 7(int) Load 9(count)
|
||||
43: 7(int) IMul 42 41
|
||||
Store 9(count) 43
|
||||
Store 9(count) 43
|
||||
Branch 40
|
||||
40: Label
|
||||
SelectionMerge 45 None
|
||||
BranchConditional 22 44 45
|
||||
BranchConditional 22 44 45
|
||||
44: Label
|
||||
47: 7(int) Load 9(count)
|
||||
47: 7(int) Load 9(count)
|
||||
48: 7(int) IMul 47 46
|
||||
Store 9(count) 48
|
||||
Store 9(count) 48
|
||||
Branch 45
|
||||
45: Label
|
||||
SelectionMerge 50 None
|
||||
BranchConditional 33 49 50
|
||||
BranchConditional 33 49 50
|
||||
49: Label
|
||||
52: 7(int) Load 9(count)
|
||||
52: 7(int) Load 9(count)
|
||||
53: 7(int) IMul 52 51
|
||||
Store 9(count) 53
|
||||
Store 9(count) 53
|
||||
Branch 50
|
||||
50: Label
|
||||
Store 54(shiftedii) 55
|
||||
Store 56(shiftedui) 57
|
||||
Store 58(shiftediu) 55
|
||||
Store 59(shifteduu) 57
|
||||
60: 7(int) Load 54(shiftedii)
|
||||
61: 7(int) Load 58(shiftediu)
|
||||
Store 54(shiftedii) 55
|
||||
Store 56(shiftedui) 57
|
||||
Store 58(shiftediu) 55
|
||||
Store 59(shifteduu) 57
|
||||
60: 7(int) Load 54(shiftedii)
|
||||
61: 7(int) Load 58(shiftediu)
|
||||
62: 21(bool) IEqual 60 61
|
||||
SelectionMerge 64 None
|
||||
BranchConditional 62 63 64
|
||||
BranchConditional 62 63 64
|
||||
63: Label
|
||||
71: 68 Load 70(usampler)
|
||||
76: 73(fvec2) Load 75(tc)
|
||||
77: 65(ivec4) TextureSample 71 76
|
||||
Store 67(c) 77
|
||||
72: 69 Load 71(usampler)
|
||||
77: 74(fvec2) Load 76(tc)
|
||||
78: 65(ivec4) ImageSampleImplicitLod 72 77
|
||||
Store 67(c) 78
|
||||
Branch 64
|
||||
64: Label
|
||||
78: 11(int) Load 56(shiftedui)
|
||||
79: 11(int) Load 59(shifteduu)
|
||||
80: 21(bool) IEqual 78 79
|
||||
SelectionMerge 82 None
|
||||
BranchConditional 80 81 82
|
||||
81: Label
|
||||
83: 68 Load 70(usampler)
|
||||
84: 73(fvec2) Load 75(tc)
|
||||
86: 73(fvec2) CompositeConstruct 85 85
|
||||
87: 73(fvec2) FAdd 84 86
|
||||
88: 65(ivec4) TextureSample 83 87
|
||||
Store 67(c) 88
|
||||
Branch 82
|
||||
82: Label
|
||||
89: 7(int) Load 54(shiftedii)
|
||||
90: 11(int) Load 56(shiftedui)
|
||||
91: 7(int) Bitcast 90
|
||||
92: 21(bool) IEqual 89 91
|
||||
SelectionMerge 94 None
|
||||
BranchConditional 92 93 94
|
||||
93: Label
|
||||
95: 68 Load 70(usampler)
|
||||
96: 73(fvec2) Load 75(tc)
|
||||
99: 73(fvec2) FSub 96 98
|
||||
100: 65(ivec4) TextureSample 95 99
|
||||
Store 67(c) 100
|
||||
Branch 94
|
||||
94: Label
|
||||
101: 14(ivec2) Load 16(t)
|
||||
102: 11(int) CompositeExtract 101 0
|
||||
104: 21(bool) UGreaterThan 102 103
|
||||
SelectionMerge 106 None
|
||||
BranchConditional 104 105 106
|
||||
105: Label
|
||||
109: 11(int) Load 13(u)
|
||||
110: 72(float) ConvertUToF 109
|
||||
Store 108(af) 110
|
||||
113: 11(int) Load 13(u)
|
||||
115: 21(bool) INotEqual 113 114
|
||||
Store 112(ab) 115
|
||||
117: 11(int) Load 13(u)
|
||||
118: 7(int) Bitcast 117
|
||||
Store 116(ai) 118
|
||||
119: 72(float) Load 108(af)
|
||||
120: 11(int) ConvertFToU 119
|
||||
121: 21(bool) Load 112(ab)
|
||||
123: 11(int) Select 121 122 114
|
||||
124: 7(int) Load 116(ai)
|
||||
125: 11(int) Bitcast 124
|
||||
126: 7(int) Load 9(count)
|
||||
127: 11(int) Bitcast 126
|
||||
128: 65(ivec4) CompositeConstruct 120 123 125 127
|
||||
129: 65(ivec4) Load 67(c)
|
||||
130: 65(ivec4) IAdd 129 128
|
||||
Store 67(c) 130
|
||||
Branch 106
|
||||
106: Label
|
||||
SelectionMerge 132 None
|
||||
BranchConditional 22 131 132
|
||||
131: Label
|
||||
134: 7(int) Load 9(count)
|
||||
135: 7(int) IMul 134 133
|
||||
Store 9(count) 135
|
||||
Branch 132
|
||||
132: Label
|
||||
SelectionMerge 137 None
|
||||
BranchConditional 33 136 137
|
||||
136: Label
|
||||
139: 7(int) Load 9(count)
|
||||
140: 7(int) IMul 139 138
|
||||
Store 9(count) 140
|
||||
Branch 137
|
||||
137: Label
|
||||
SelectionMerge 142 None
|
||||
BranchConditional 22 141 142
|
||||
141: Label
|
||||
144: 7(int) Load 9(count)
|
||||
145: 7(int) IMul 144 143
|
||||
Store 9(count) 145
|
||||
Branch 142
|
||||
142: Label
|
||||
SelectionMerge 147 None
|
||||
BranchConditional 22 146 147
|
||||
146: Label
|
||||
149: 7(int) Load 9(count)
|
||||
150: 7(int) IMul 149 148
|
||||
Store 9(count) 150
|
||||
Branch 147
|
||||
147: Label
|
||||
Store 151(mask1) 152
|
||||
Store 153(mask2) 154
|
||||
156: 11(int) Load 151(mask1)
|
||||
158: 11(int) ShiftLeftLogical 156 157
|
||||
Store 155(mask3) 158
|
||||
Store 159(mask4) 160
|
||||
161: 11(int) Load 155(mask3)
|
||||
162: 11(int) Load 153(mask2)
|
||||
163: 21(bool) IEqual 161 162
|
||||
SelectionMerge 165 None
|
||||
BranchConditional 163 164 165
|
||||
164: Label
|
||||
166: 7(int) Load 9(count)
|
||||
167: 7(int) IMul 166 25
|
||||
Store 9(count) 167
|
||||
Branch 165
|
||||
165: Label
|
||||
168: 11(int) Load 155(mask3)
|
||||
169: 11(int) Load 151(mask1)
|
||||
170: 11(int) BitwiseAnd 168 169
|
||||
171: 21(bool) INotEqual 170 114
|
||||
SelectionMerge 173 None
|
||||
BranchConditional 171 172 173
|
||||
172: Label
|
||||
174: 7(int) Load 9(count)
|
||||
175: 7(int) IMul 174 30
|
||||
Store 9(count) 175
|
||||
Branch 173
|
||||
173: Label
|
||||
176: 11(int) Load 151(mask1)
|
||||
177: 11(int) Load 155(mask3)
|
||||
178: 11(int) BitwiseOr 176 177
|
||||
179: 11(int) Load 159(mask4)
|
||||
180: 21(bool) IEqual 178 179
|
||||
SelectionMerge 182 None
|
||||
BranchConditional 180 181 182
|
||||
181: Label
|
||||
183: 7(int) Load 9(count)
|
||||
184: 7(int) IMul 183 36
|
||||
Store 9(count) 184
|
||||
Branch 182
|
||||
182: Label
|
||||
185: 11(int) Load 151(mask1)
|
||||
186: 11(int) Load 159(mask4)
|
||||
187: 11(int) BitwiseXor 185 186
|
||||
188: 21(bool) IEqual 187 154
|
||||
SelectionMerge 190 None
|
||||
BranchConditional 188 189 190
|
||||
189: Label
|
||||
191: 7(int) Load 9(count)
|
||||
192: 7(int) IMul 191 41
|
||||
Store 9(count) 192
|
||||
Branch 190
|
||||
190: Label
|
||||
193: 7(int) Load 9(count)
|
||||
194: 11(int) Bitcast 193
|
||||
195: 65(ivec4) CompositeConstruct 194 194 194 194
|
||||
196: 65(ivec4) Load 67(c)
|
||||
197: 65(ivec4) IAdd 196 195
|
||||
Store 67(c) 197
|
||||
79: 11(int) Load 56(shiftedui)
|
||||
80: 11(int) Load 59(shifteduu)
|
||||
81: 21(bool) IEqual 79 80
|
||||
SelectionMerge 83 None
|
||||
BranchConditional 81 82 83
|
||||
82: Label
|
||||
84: 69 Load 71(usampler)
|
||||
85: 74(fvec2) Load 76(tc)
|
||||
87: 74(fvec2) CompositeConstruct 86 86
|
||||
88: 74(fvec2) FAdd 85 87
|
||||
89: 65(ivec4) ImageSampleImplicitLod 84 88
|
||||
Store 67(c) 89
|
||||
Branch 83
|
||||
83: Label
|
||||
90: 7(int) Load 54(shiftedii)
|
||||
91: 11(int) Load 56(shiftedui)
|
||||
92: 7(int) Bitcast 91
|
||||
93: 21(bool) IEqual 90 92
|
||||
SelectionMerge 95 None
|
||||
BranchConditional 93 94 95
|
||||
94: Label
|
||||
96: 69 Load 71(usampler)
|
||||
97: 74(fvec2) Load 76(tc)
|
||||
100: 74(fvec2) FSub 97 99
|
||||
101: 65(ivec4) ImageSampleImplicitLod 96 100
|
||||
Store 67(c) 101
|
||||
Branch 95
|
||||
95: Label
|
||||
102: 14(ivec2) Load 16(t)
|
||||
103: 11(int) CompositeExtract 102 0
|
||||
105: 21(bool) UGreaterThan 103 104
|
||||
SelectionMerge 107 None
|
||||
BranchConditional 105 106 107
|
||||
106: Label
|
||||
110: 11(int) Load 13(u)
|
||||
111: 73(float) ConvertUToF 110
|
||||
Store 109(af) 111
|
||||
114: 11(int) Load 13(u)
|
||||
116: 21(bool) INotEqual 114 115
|
||||
Store 113(ab) 116
|
||||
118: 11(int) Load 13(u)
|
||||
119: 7(int) Bitcast 118
|
||||
Store 117(ai) 119
|
||||
120: 73(float) Load 109(af)
|
||||
121: 11(int) ConvertFToU 120
|
||||
122: 21(bool) Load 113(ab)
|
||||
124: 11(int) Select 122 123 115
|
||||
125: 7(int) Load 117(ai)
|
||||
126: 11(int) Bitcast 125
|
||||
127: 7(int) Load 9(count)
|
||||
128: 11(int) Bitcast 127
|
||||
129: 65(ivec4) CompositeConstruct 121 124 126 128
|
||||
130: 65(ivec4) Load 67(c)
|
||||
131: 65(ivec4) IAdd 130 129
|
||||
Store 67(c) 131
|
||||
Branch 107
|
||||
107: Label
|
||||
SelectionMerge 133 None
|
||||
BranchConditional 22 132 133
|
||||
132: Label
|
||||
135: 7(int) Load 9(count)
|
||||
136: 7(int) IMul 135 134
|
||||
Store 9(count) 136
|
||||
Branch 133
|
||||
133: Label
|
||||
SelectionMerge 138 None
|
||||
BranchConditional 33 137 138
|
||||
137: Label
|
||||
140: 7(int) Load 9(count)
|
||||
141: 7(int) IMul 140 139
|
||||
Store 9(count) 141
|
||||
Branch 138
|
||||
138: Label
|
||||
SelectionMerge 143 None
|
||||
BranchConditional 22 142 143
|
||||
142: Label
|
||||
145: 7(int) Load 9(count)
|
||||
146: 7(int) IMul 145 144
|
||||
Store 9(count) 146
|
||||
Branch 143
|
||||
143: Label
|
||||
SelectionMerge 148 None
|
||||
BranchConditional 22 147 148
|
||||
147: Label
|
||||
150: 7(int) Load 9(count)
|
||||
151: 7(int) IMul 150 149
|
||||
Store 9(count) 151
|
||||
Branch 148
|
||||
148: Label
|
||||
Store 152(mask1) 153
|
||||
Store 154(mask2) 155
|
||||
157: 11(int) Load 152(mask1)
|
||||
159: 11(int) ShiftLeftLogical 157 158
|
||||
Store 156(mask3) 159
|
||||
Store 160(mask4) 161
|
||||
162: 11(int) Load 156(mask3)
|
||||
163: 11(int) Load 154(mask2)
|
||||
164: 21(bool) IEqual 162 163
|
||||
SelectionMerge 166 None
|
||||
BranchConditional 164 165 166
|
||||
165: Label
|
||||
167: 7(int) Load 9(count)
|
||||
168: 7(int) IMul 167 25
|
||||
Store 9(count) 168
|
||||
Branch 166
|
||||
166: Label
|
||||
169: 11(int) Load 156(mask3)
|
||||
170: 11(int) Load 152(mask1)
|
||||
171: 11(int) BitwiseAnd 169 170
|
||||
172: 21(bool) INotEqual 171 115
|
||||
SelectionMerge 174 None
|
||||
BranchConditional 172 173 174
|
||||
173: Label
|
||||
175: 7(int) Load 9(count)
|
||||
176: 7(int) IMul 175 30
|
||||
Store 9(count) 176
|
||||
Branch 174
|
||||
174: Label
|
||||
177: 11(int) Load 152(mask1)
|
||||
178: 11(int) Load 156(mask3)
|
||||
179: 11(int) BitwiseOr 177 178
|
||||
180: 11(int) Load 160(mask4)
|
||||
181: 21(bool) IEqual 179 180
|
||||
SelectionMerge 183 None
|
||||
BranchConditional 181 182 183
|
||||
182: Label
|
||||
184: 7(int) Load 9(count)
|
||||
185: 7(int) IMul 184 36
|
||||
Store 9(count) 185
|
||||
Branch 183
|
||||
183: Label
|
||||
186: 11(int) Load 152(mask1)
|
||||
187: 11(int) Load 160(mask4)
|
||||
188: 11(int) BitwiseXor 186 187
|
||||
189: 21(bool) IEqual 188 155
|
||||
SelectionMerge 191 None
|
||||
BranchConditional 189 190 191
|
||||
190: Label
|
||||
192: 7(int) Load 9(count)
|
||||
193: 7(int) IMul 192 41
|
||||
Store 9(count) 193
|
||||
Branch 191
|
||||
191: Label
|
||||
194: 7(int) Load 9(count)
|
||||
195: 11(int) Bitcast 194
|
||||
196: 65(ivec4) CompositeConstruct 195 195 195 195
|
||||
197: 65(ivec4) Load 67(c)
|
||||
198: 65(ivec4) IAdd 197 196
|
||||
Store 67(c) 198
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
55
Test/baseResults/spv.uniformArray.frag.out
Normal file → Executable file
55
Test/baseResults/spv.uniformArray.frag.out
Normal file → Executable file
@ -5,23 +5,25 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 52
|
||||
// Id's are bound by 53
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "texColor"
|
||||
Name 15 "color"
|
||||
Name 26 "inColor"
|
||||
Name 36 "alpha"
|
||||
Name 47 "gl_FragColor"
|
||||
Name 51 "texSampler2D"
|
||||
Name 52 "texSampler2D"
|
||||
Decorate 47(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 51(texSampler2D) NoStaticUse
|
||||
Decorate 52(texSampler2D) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
@ -29,50 +31,51 @@ Linked fragment stage:
|
||||
12: 11(int) Constant 6
|
||||
13: TypeArray 8(fvec4) 12
|
||||
14: TypePointer UniformConstant 13
|
||||
15(color): 14(ptr) Variable UniformConstant
|
||||
15(color): 14(ptr) Variable UniformConstant
|
||||
16: TypeInt 32 1
|
||||
17: 16(int) Constant 1
|
||||
18: TypePointer UniformConstant 8(fvec4)
|
||||
24: TypeVector 7(float) 3
|
||||
25: TypePointer UniformConstant 24(fvec3)
|
||||
26(inColor): 25(ptr) Variable UniformConstant
|
||||
26(inColor): 25(ptr) Variable UniformConstant
|
||||
33: 11(int) Constant 16
|
||||
34: TypeArray 7(float) 33
|
||||
35: TypePointer UniformConstant 34
|
||||
36(alpha): 35(ptr) Variable UniformConstant
|
||||
36(alpha): 35(ptr) Variable UniformConstant
|
||||
37: 16(int) Constant 12
|
||||
38: TypePointer UniformConstant 7(float)
|
||||
46: TypePointer Output 8(fvec4)
|
||||
47(gl_FragColor): 46(ptr) Variable Output
|
||||
49: TypeSampler7(float) 2D filter+texture
|
||||
50: TypePointer UniformConstant 49
|
||||
51(texSampler2D): 50(ptr) Variable UniformConstant
|
||||
47(gl_FragColor): 46(ptr) Variable Output
|
||||
49: TypeImage 7(float) 2D sampled format:Unknown
|
||||
50: TypeSampledImage 49
|
||||
51: TypePointer UniformConstant 50
|
||||
52(texSampler2D): 51(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
19: 18(ptr) AccessChain 15(color) 17
|
||||
20: 8(fvec4) Load 19
|
||||
20: 8(fvec4) Load 19
|
||||
21: 18(ptr) AccessChain 15(color) 17
|
||||
22: 8(fvec4) Load 21
|
||||
22: 8(fvec4) Load 21
|
||||
23: 8(fvec4) FAdd 20 22
|
||||
Store 10(texColor) 23
|
||||
27: 24(fvec3) Load 26(inColor)
|
||||
28: 8(fvec4) Load 10(texColor)
|
||||
Store 10(texColor) 23
|
||||
27: 24(fvec3) Load 26(inColor)
|
||||
28: 8(fvec4) Load 10(texColor)
|
||||
29: 24(fvec3) VectorShuffle 28 28 0 1 2
|
||||
30: 24(fvec3) FAdd 29 27
|
||||
31: 8(fvec4) Load 10(texColor)
|
||||
31: 8(fvec4) Load 10(texColor)
|
||||
32: 8(fvec4) VectorShuffle 31 30 4 5 6 3
|
||||
Store 10(texColor) 32
|
||||
Store 10(texColor) 32
|
||||
39: 38(ptr) AccessChain 36(alpha) 37
|
||||
40: 7(float) Load 39
|
||||
41: 8(fvec4) Load 10(texColor)
|
||||
40: 7(float) Load 39
|
||||
41: 8(fvec4) Load 10(texColor)
|
||||
42: 7(float) CompositeExtract 41 3
|
||||
43: 7(float) FAdd 42 40
|
||||
44: 8(fvec4) Load 10(texColor)
|
||||
44: 8(fvec4) Load 10(texColor)
|
||||
45: 8(fvec4) CompositeInsert 43 44 3
|
||||
Store 10(texColor) 45
|
||||
48: 8(fvec4) Load 10(texColor)
|
||||
Store 47(gl_FragColor) 48
|
||||
Store 10(texColor) 45
|
||||
48: 8(fvec4) Load 10(texColor)
|
||||
Store 47(gl_FragColor) 48
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
135
Test/baseResults/spv.variableArrayIndex.frag.out
Normal file → Executable file
135
Test/baseResults/spv.variableArrayIndex.frag.out
Normal file → Executable file
@ -7,12 +7,14 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 93
|
||||
// Id's are bound by 94
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 9 "iLocal"
|
||||
Name 11 "Count"
|
||||
@ -33,17 +35,17 @@ Linked fragment stage:
|
||||
Name 35 "foo2"
|
||||
Name 37 "foo"
|
||||
Name 55 "gl_FragColor"
|
||||
Name 59 "sampler"
|
||||
Name 63 "coord"
|
||||
Name 69 "constructed"
|
||||
Name 60 "sampler"
|
||||
Name 64 "coord"
|
||||
Name 70 "constructed"
|
||||
Decorate 55(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 63(coord) Smooth
|
||||
Decorate 64(coord) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: TypePointer UniformConstant 7(int)
|
||||
11(Count): 10(ptr) Variable UniformConstant
|
||||
11(Count): 10(ptr) Variable UniformConstant
|
||||
13: TypeFloat 32
|
||||
14(lunarStruct1): TypeStruct 7(int) 13(float)
|
||||
15(lunarStruct2): TypeStruct 7(int) 13(float) 14(lunarStruct1)
|
||||
@ -52,7 +54,7 @@ Linked fragment stage:
|
||||
18: TypeArray 15(lunarStruct2) 17
|
||||
19(lunarStruct3): TypeStruct 18 7(int) 13(float) 14(lunarStruct1)
|
||||
20: TypePointer UniformConstant 19(lunarStruct3)
|
||||
21(foo3): 20(ptr) Variable UniformConstant
|
||||
21(foo3): 20(ptr) Variable UniformConstant
|
||||
22: 7(int) Constant 0
|
||||
23: 7(int) Constant 1
|
||||
26: TypeBool
|
||||
@ -60,85 +62,86 @@ Linked fragment stage:
|
||||
32: 16(int) Constant 5
|
||||
33: TypeArray 15(lunarStruct2) 32
|
||||
34: TypePointer UniformConstant 33
|
||||
35(foo2): 34(ptr) Variable UniformConstant
|
||||
35(foo2): 34(ptr) Variable UniformConstant
|
||||
36: TypePointer UniformConstant 14(lunarStruct1)
|
||||
37(foo): 36(ptr) Variable UniformConstant
|
||||
37(foo): 36(ptr) Variable UniformConstant
|
||||
42: 7(int) Constant 2
|
||||
47: TypePointer UniformConstant 13(float)
|
||||
53: TypeVector 13(float) 4
|
||||
54: TypePointer Output 53(fvec4)
|
||||
55(gl_FragColor): 54(ptr) Variable Output
|
||||
57: TypeSampler13(float) 2D filter+texture
|
||||
58: TypePointer UniformConstant 57
|
||||
59(sampler): 58(ptr) Variable UniformConstant
|
||||
61: TypeVector 13(float) 2
|
||||
62: TypePointer Input 61(fvec2)
|
||||
63(coord): 62(ptr) Variable Input
|
||||
67: TypeArray 61(fvec2) 17
|
||||
68: TypePointer Function 67
|
||||
73: 13(float) Constant 1065353216
|
||||
74: 13(float) Constant 1073741824
|
||||
75: 61(fvec2) ConstantComposite 73 74
|
||||
79: TypePointer Function 61(fvec2)
|
||||
55(gl_FragColor): 54(ptr) Variable Output
|
||||
57: TypeImage 13(float) 2D sampled format:Unknown
|
||||
58: TypeSampledImage 57
|
||||
59: TypePointer UniformConstant 58
|
||||
60(sampler): 59(ptr) Variable UniformConstant
|
||||
62: TypeVector 13(float) 2
|
||||
63: TypePointer Input 62(fvec2)
|
||||
64(coord): 63(ptr) Variable Input
|
||||
68: TypeArray 62(fvec2) 17
|
||||
69: TypePointer Function 68
|
||||
74: 13(float) Constant 1065353216
|
||||
75: 13(float) Constant 1073741824
|
||||
76: 62(fvec2) ConstantComposite 74 75
|
||||
80: TypePointer Function 62(fvec2)
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(iLocal): 8(ptr) Variable Function
|
||||
31(scale): 30(ptr) Variable Function
|
||||
69(constructed): 68(ptr) Variable Function
|
||||
12: 7(int) Load 11(Count)
|
||||
Store 9(iLocal) 12
|
||||
9(iLocal): 8(ptr) Variable Function
|
||||
31(scale): 30(ptr) Variable Function
|
||||
70(constructed): 69(ptr) Variable Function
|
||||
12: 7(int) Load 11(Count)
|
||||
Store 9(iLocal) 12
|
||||
24: 10(ptr) AccessChain 21(foo3) 22 23 22
|
||||
25: 7(int) Load 24
|
||||
25: 7(int) Load 24
|
||||
27: 26(bool) SGreaterThan 25 22
|
||||
SelectionMerge 29 None
|
||||
BranchConditional 27 28 50
|
||||
BranchConditional 27 28 50
|
||||
28: Label
|
||||
38: 10(ptr) AccessChain 37(foo) 22
|
||||
39: 7(int) Load 38
|
||||
39: 7(int) Load 38
|
||||
40: 10(ptr) AccessChain 21(foo3) 22 39 22
|
||||
41: 7(int) Load 40
|
||||
41: 7(int) Load 40
|
||||
43: 7(int) IAdd 41 42
|
||||
44: 7(int) Load 9(iLocal)
|
||||
44: 7(int) Load 9(iLocal)
|
||||
45: 7(int) IAdd 44 23
|
||||
Store 9(iLocal) 45
|
||||
Store 9(iLocal) 45
|
||||
46: 7(int) IAdd 43 45
|
||||
48: 47(ptr) AccessChain 35(foo2) 46 42 23
|
||||
49: 13(float) Load 48
|
||||
Store 31(scale) 49
|
||||
49: 13(float) Load 48
|
||||
Store 31(scale) 49
|
||||
Branch 29
|
||||
50: Label
|
||||
51: 47(ptr) AccessChain 21(foo3) 22 22 42 23
|
||||
52: 13(float) Load 51
|
||||
Store 31(scale) 52
|
||||
52: 13(float) Load 51
|
||||
Store 31(scale) 52
|
||||
Branch 29
|
||||
29: Label
|
||||
56: 13(float) Load 31(scale)
|
||||
60: 57 Load 59(sampler)
|
||||
64: 61(fvec2) Load 63(coord)
|
||||
65: 53(fvec4) TextureSample 60 64
|
||||
66: 53(fvec4) VectorTimesScalar 65 56
|
||||
Store 55(gl_FragColor) 66
|
||||
70: 61(fvec2) Load 63(coord)
|
||||
71: 13(float) Load 31(scale)
|
||||
72: 61(fvec2) CompositeConstruct 71 71
|
||||
76: 67 CompositeConstruct 70 72 75
|
||||
Store 69(constructed) 76
|
||||
77: 10(ptr) AccessChain 37(foo) 22
|
||||
78: 7(int) Load 77
|
||||
80: 79(ptr) AccessChain 69(constructed) 78
|
||||
81: 61(fvec2) Load 80
|
||||
82: 10(ptr) AccessChain 37(foo) 22
|
||||
83: 7(int) Load 82
|
||||
84: 79(ptr) AccessChain 69(constructed) 83
|
||||
85: 61(fvec2) Load 84
|
||||
86: 13(float) CompositeExtract 81 0
|
||||
87: 13(float) CompositeExtract 81 1
|
||||
88: 13(float) CompositeExtract 85 0
|
||||
89: 13(float) CompositeExtract 85 1
|
||||
90: 53(fvec4) CompositeConstruct 86 87 88 89
|
||||
91: 53(fvec4) Load 55(gl_FragColor)
|
||||
92: 53(fvec4) FAdd 91 90
|
||||
Store 55(gl_FragColor) 92
|
||||
56: 13(float) Load 31(scale)
|
||||
61: 58 Load 60(sampler)
|
||||
65: 62(fvec2) Load 64(coord)
|
||||
66: 53(fvec4) ImageSampleImplicitLod 61 65
|
||||
67: 53(fvec4) VectorTimesScalar 66 56
|
||||
Store 55(gl_FragColor) 67
|
||||
71: 62(fvec2) Load 64(coord)
|
||||
72: 13(float) Load 31(scale)
|
||||
73: 62(fvec2) CompositeConstruct 72 72
|
||||
77: 68 CompositeConstruct 71 73 76
|
||||
Store 70(constructed) 77
|
||||
78: 10(ptr) AccessChain 37(foo) 22
|
||||
79: 7(int) Load 78
|
||||
81: 80(ptr) AccessChain 70(constructed) 79
|
||||
82: 62(fvec2) Load 81
|
||||
83: 10(ptr) AccessChain 37(foo) 22
|
||||
84: 7(int) Load 83
|
||||
85: 80(ptr) AccessChain 70(constructed) 84
|
||||
86: 62(fvec2) Load 85
|
||||
87: 13(float) CompositeExtract 82 0
|
||||
88: 13(float) CompositeExtract 82 1
|
||||
89: 13(float) CompositeExtract 86 0
|
||||
90: 13(float) CompositeExtract 86 1
|
||||
91: 53(fvec4) CompositeConstruct 87 88 89 90
|
||||
92: 53(fvec4) Load 55(gl_FragColor)
|
||||
93: 53(fvec4) FAdd 92 91
|
||||
Store 55(gl_FragColor) 93
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
141
Test/baseResults/spv.varyingArray.frag.out
Normal file → Executable file
141
Test/baseResults/spv.varyingArray.frag.out
Normal file → Executable file
@ -10,87 +10,90 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 61
|
||||
// Id's are bound by 62
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "texColor"
|
||||
Name 13 "texSampler2D"
|
||||
Name 19 "gl_TexCoord"
|
||||
Name 34 "color"
|
||||
Name 39 "alpha"
|
||||
Name 44 "gl_FragColor"
|
||||
Name 48 "foo"
|
||||
Decorate 19(gl_TexCoord) Smooth
|
||||
Decorate 34(color) Smooth
|
||||
Decorate 39(alpha) Smooth
|
||||
Decorate 44(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 48(foo) Smooth
|
||||
Name 14 "texSampler2D"
|
||||
Name 20 "gl_TexCoord"
|
||||
Name 35 "color"
|
||||
Name 40 "alpha"
|
||||
Name 45 "gl_FragColor"
|
||||
Name 49 "foo"
|
||||
Decorate 20(gl_TexCoord) Smooth
|
||||
Decorate 35(color) Smooth
|
||||
Decorate 40(alpha) Smooth
|
||||
Decorate 45(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 49(foo) Smooth
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypeSampler7(float) 2D filter+texture
|
||||
12: TypePointer UniformConstant 11
|
||||
13(texSampler2D): 12(ptr) Variable UniformConstant
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 6
|
||||
17: TypeArray 8(fvec4) 16
|
||||
18: TypePointer Input 17
|
||||
19(gl_TexCoord): 18(ptr) Variable Input
|
||||
20: TypeInt 32 1
|
||||
21: 20(int) Constant 4
|
||||
22: TypePointer Input 8(fvec4)
|
||||
25: 20(int) Constant 5
|
||||
29: TypeVector 7(float) 2
|
||||
34(color): 22(ptr) Variable Input
|
||||
38: TypePointer Input 7(float)
|
||||
39(alpha): 38(ptr) Variable Input
|
||||
43: TypePointer Output 8(fvec4)
|
||||
44(gl_FragColor): 43(ptr) Variable Output
|
||||
45: 15(int) Constant 3
|
||||
46: TypeArray 8(fvec4) 45
|
||||
47: TypePointer Input 46
|
||||
48(foo): 47(ptr) Variable Input
|
||||
49: 20(int) Constant 1
|
||||
52: 20(int) Constant 0
|
||||
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||
12: TypeSampledImage 11
|
||||
13: TypePointer UniformConstant 12
|
||||
14(texSampler2D): 13(ptr) Variable UniformConstant
|
||||
16: TypeInt 32 0
|
||||
17: 16(int) Constant 6
|
||||
18: TypeArray 8(fvec4) 17
|
||||
19: TypePointer Input 18
|
||||
20(gl_TexCoord): 19(ptr) Variable Input
|
||||
21: TypeInt 32 1
|
||||
22: 21(int) Constant 4
|
||||
23: TypePointer Input 8(fvec4)
|
||||
26: 21(int) Constant 5
|
||||
30: TypeVector 7(float) 2
|
||||
35(color): 23(ptr) Variable Input
|
||||
39: TypePointer Input 7(float)
|
||||
40(alpha): 39(ptr) Variable Input
|
||||
44: TypePointer Output 8(fvec4)
|
||||
45(gl_FragColor): 44(ptr) Variable Output
|
||||
46: 16(int) Constant 3
|
||||
47: TypeArray 8(fvec4) 46
|
||||
48: TypePointer Input 47
|
||||
49(foo): 48(ptr) Variable Input
|
||||
50: 21(int) Constant 1
|
||||
53: 21(int) Constant 0
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
14: 11 Load 13(texSampler2D)
|
||||
23: 22(ptr) AccessChain 19(gl_TexCoord) 21
|
||||
24: 8(fvec4) Load 23
|
||||
26: 22(ptr) AccessChain 19(gl_TexCoord) 25
|
||||
27: 8(fvec4) Load 26
|
||||
28: 8(fvec4) FAdd 24 27
|
||||
30: 7(float) CompositeExtract 28 0
|
||||
31: 7(float) CompositeExtract 28 1
|
||||
32: 29(fvec2) CompositeConstruct 30 31
|
||||
33: 8(fvec4) TextureSample 14 32
|
||||
Store 10(texColor) 33
|
||||
35: 8(fvec4) Load 34(color)
|
||||
36: 8(fvec4) Load 10(texColor)
|
||||
37: 8(fvec4) FAdd 36 35
|
||||
Store 10(texColor) 37
|
||||
40: 7(float) Load 39(alpha)
|
||||
41: 8(fvec4) Load 10(texColor)
|
||||
42: 8(fvec4) CompositeInsert 40 41 3
|
||||
Store 10(texColor) 42
|
||||
50: 22(ptr) AccessChain 48(foo) 49
|
||||
51: 8(fvec4) Load 50
|
||||
53: 22(ptr) AccessChain 19(gl_TexCoord) 52
|
||||
54: 8(fvec4) Load 53
|
||||
55: 8(fvec4) FAdd 51 54
|
||||
56: 22(ptr) AccessChain 19(gl_TexCoord) 21
|
||||
57: 8(fvec4) Load 56
|
||||
58: 8(fvec4) FAdd 55 57
|
||||
59: 8(fvec4) Load 10(texColor)
|
||||
60: 8(fvec4) FAdd 58 59
|
||||
Store 44(gl_FragColor) 60
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
15: 12 Load 14(texSampler2D)
|
||||
24: 23(ptr) AccessChain 20(gl_TexCoord) 22
|
||||
25: 8(fvec4) Load 24
|
||||
27: 23(ptr) AccessChain 20(gl_TexCoord) 26
|
||||
28: 8(fvec4) Load 27
|
||||
29: 8(fvec4) FAdd 25 28
|
||||
31: 7(float) CompositeExtract 29 0
|
||||
32: 7(float) CompositeExtract 29 1
|
||||
33: 30(fvec2) CompositeConstruct 31 32
|
||||
34: 8(fvec4) ImageSampleImplicitLod 15 33
|
||||
Store 10(texColor) 34
|
||||
36: 8(fvec4) Load 35(color)
|
||||
37: 8(fvec4) Load 10(texColor)
|
||||
38: 8(fvec4) FAdd 37 36
|
||||
Store 10(texColor) 38
|
||||
41: 7(float) Load 40(alpha)
|
||||
42: 8(fvec4) Load 10(texColor)
|
||||
43: 8(fvec4) CompositeInsert 41 42 3
|
||||
Store 10(texColor) 43
|
||||
51: 23(ptr) AccessChain 49(foo) 50
|
||||
52: 8(fvec4) Load 51
|
||||
54: 23(ptr) AccessChain 20(gl_TexCoord) 53
|
||||
55: 8(fvec4) Load 54
|
||||
56: 8(fvec4) FAdd 52 55
|
||||
57: 23(ptr) AccessChain 20(gl_TexCoord) 22
|
||||
58: 8(fvec4) Load 57
|
||||
59: 8(fvec4) FAdd 56 58
|
||||
60: 8(fvec4) Load 10(texColor)
|
||||
61: 8(fvec4) FAdd 59 60
|
||||
Store 45(gl_FragColor) 61
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
161
Test/baseResults/spv.varyingArrayIndirect.frag.out
Normal file → Executable file
161
Test/baseResults/spv.varyingArrayIndirect.frag.out
Normal file → Executable file
@ -10,97 +10,100 @@ Linked fragment stage:
|
||||
|
||||
// Module Version 99
|
||||
// Generated by (magic number): 51a00bb
|
||||
// Id's are bound by 69
|
||||
// Id's are bound by 70
|
||||
|
||||
Source GLSL 130
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "texColor"
|
||||
Name 13 "texSampler2D"
|
||||
Name 19 "userIn"
|
||||
Name 22 "b"
|
||||
Name 30 "gl_TexCoord"
|
||||
Name 31 "a"
|
||||
Name 45 "color"
|
||||
Name 50 "alpha"
|
||||
Name 55 "gl_FragColor"
|
||||
Decorate 19(userIn) Smooth
|
||||
Decorate 30(gl_TexCoord) Smooth
|
||||
Decorate 45(color) Smooth
|
||||
Decorate 50(alpha) Smooth
|
||||
Decorate 55(gl_FragColor) BuiltIn FragColor
|
||||
Name 14 "texSampler2D"
|
||||
Name 20 "userIn"
|
||||
Name 23 "b"
|
||||
Name 31 "gl_TexCoord"
|
||||
Name 32 "a"
|
||||
Name 46 "color"
|
||||
Name 51 "alpha"
|
||||
Name 56 "gl_FragColor"
|
||||
Decorate 20(userIn) Smooth
|
||||
Decorate 31(gl_TexCoord) Smooth
|
||||
Decorate 46(color) Smooth
|
||||
Decorate 51(alpha) Smooth
|
||||
Decorate 56(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypeSampler7(float) 2D filter+texture
|
||||
12: TypePointer UniformConstant 11
|
||||
13(texSampler2D): 12(ptr) Variable UniformConstant
|
||||
15: TypeInt 32 0
|
||||
16: 15(int) Constant 2
|
||||
17: TypeArray 8(fvec4) 16
|
||||
18: TypePointer Input 17
|
||||
19(userIn): 18(ptr) Variable Input
|
||||
20: TypeInt 32 1
|
||||
21: TypePointer UniformConstant 20(int)
|
||||
22(b): 21(ptr) Variable UniformConstant
|
||||
24: TypePointer Input 8(fvec4)
|
||||
27: 15(int) Constant 6
|
||||
28: TypeArray 8(fvec4) 27
|
||||
29: TypePointer Input 28
|
||||
30(gl_TexCoord): 29(ptr) Variable Input
|
||||
31(a): 21(ptr) Variable UniformConstant
|
||||
36: 20(int) Constant 5
|
||||
40: TypeVector 7(float) 2
|
||||
45(color): 24(ptr) Variable Input
|
||||
49: TypePointer Input 7(float)
|
||||
50(alpha): 49(ptr) Variable Input
|
||||
54: TypePointer Output 8(fvec4)
|
||||
55(gl_FragColor): 54(ptr) Variable Output
|
||||
56: 20(int) Constant 0
|
||||
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||
12: TypeSampledImage 11
|
||||
13: TypePointer UniformConstant 12
|
||||
14(texSampler2D): 13(ptr) Variable UniformConstant
|
||||
16: TypeInt 32 0
|
||||
17: 16(int) Constant 2
|
||||
18: TypeArray 8(fvec4) 17
|
||||
19: TypePointer Input 18
|
||||
20(userIn): 19(ptr) Variable Input
|
||||
21: TypeInt 32 1
|
||||
22: TypePointer UniformConstant 21(int)
|
||||
23(b): 22(ptr) Variable UniformConstant
|
||||
25: TypePointer Input 8(fvec4)
|
||||
28: 16(int) Constant 6
|
||||
29: TypeArray 8(fvec4) 28
|
||||
30: TypePointer Input 29
|
||||
31(gl_TexCoord): 30(ptr) Variable Input
|
||||
32(a): 22(ptr) Variable UniformConstant
|
||||
37: 21(int) Constant 5
|
||||
41: TypeVector 7(float) 2
|
||||
46(color): 25(ptr) Variable Input
|
||||
50: TypePointer Input 7(float)
|
||||
51(alpha): 50(ptr) Variable Input
|
||||
55: TypePointer Output 8(fvec4)
|
||||
56(gl_FragColor): 55(ptr) Variable Output
|
||||
57: 21(int) Constant 0
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
14: 11 Load 13(texSampler2D)
|
||||
23: 20(int) Load 22(b)
|
||||
25: 24(ptr) AccessChain 19(userIn) 23
|
||||
26: 8(fvec4) Load 25
|
||||
32: 20(int) Load 31(a)
|
||||
33: 24(ptr) AccessChain 30(gl_TexCoord) 32
|
||||
34: 8(fvec4) Load 33
|
||||
35: 8(fvec4) FAdd 26 34
|
||||
37: 24(ptr) AccessChain 30(gl_TexCoord) 36
|
||||
38: 8(fvec4) Load 37
|
||||
39: 8(fvec4) FAdd 35 38
|
||||
41: 7(float) CompositeExtract 39 0
|
||||
42: 7(float) CompositeExtract 39 1
|
||||
43: 40(fvec2) CompositeConstruct 41 42
|
||||
44: 8(fvec4) TextureSample 14 43
|
||||
Store 10(texColor) 44
|
||||
46: 8(fvec4) Load 45(color)
|
||||
47: 8(fvec4) Load 10(texColor)
|
||||
48: 8(fvec4) FAdd 47 46
|
||||
Store 10(texColor) 48
|
||||
51: 7(float) Load 50(alpha)
|
||||
52: 8(fvec4) Load 10(texColor)
|
||||
53: 8(fvec4) CompositeInsert 51 52 3
|
||||
Store 10(texColor) 53
|
||||
57: 24(ptr) AccessChain 30(gl_TexCoord) 56
|
||||
58: 8(fvec4) Load 57
|
||||
59: 20(int) Load 22(b)
|
||||
60: 24(ptr) AccessChain 30(gl_TexCoord) 59
|
||||
61: 8(fvec4) Load 60
|
||||
62: 8(fvec4) FAdd 58 61
|
||||
63: 8(fvec4) Load 10(texColor)
|
||||
64: 8(fvec4) FAdd 62 63
|
||||
65: 20(int) Load 31(a)
|
||||
66: 24(ptr) AccessChain 19(userIn) 65
|
||||
67: 8(fvec4) Load 66
|
||||
68: 8(fvec4) FAdd 64 67
|
||||
Store 55(gl_FragColor) 68
|
||||
10(texColor): 9(ptr) Variable Function
|
||||
15: 12 Load 14(texSampler2D)
|
||||
24: 21(int) Load 23(b)
|
||||
26: 25(ptr) AccessChain 20(userIn) 24
|
||||
27: 8(fvec4) Load 26
|
||||
33: 21(int) Load 32(a)
|
||||
34: 25(ptr) AccessChain 31(gl_TexCoord) 33
|
||||
35: 8(fvec4) Load 34
|
||||
36: 8(fvec4) FAdd 27 35
|
||||
38: 25(ptr) AccessChain 31(gl_TexCoord) 37
|
||||
39: 8(fvec4) Load 38
|
||||
40: 8(fvec4) FAdd 36 39
|
||||
42: 7(float) CompositeExtract 40 0
|
||||
43: 7(float) CompositeExtract 40 1
|
||||
44: 41(fvec2) CompositeConstruct 42 43
|
||||
45: 8(fvec4) ImageSampleImplicitLod 15 44
|
||||
Store 10(texColor) 45
|
||||
47: 8(fvec4) Load 46(color)
|
||||
48: 8(fvec4) Load 10(texColor)
|
||||
49: 8(fvec4) FAdd 48 47
|
||||
Store 10(texColor) 49
|
||||
52: 7(float) Load 51(alpha)
|
||||
53: 8(fvec4) Load 10(texColor)
|
||||
54: 8(fvec4) CompositeInsert 52 53 3
|
||||
Store 10(texColor) 54
|
||||
58: 25(ptr) AccessChain 31(gl_TexCoord) 57
|
||||
59: 8(fvec4) Load 58
|
||||
60: 21(int) Load 23(b)
|
||||
61: 25(ptr) AccessChain 31(gl_TexCoord) 60
|
||||
62: 8(fvec4) Load 61
|
||||
63: 8(fvec4) FAdd 59 62
|
||||
64: 8(fvec4) Load 10(texColor)
|
||||
65: 8(fvec4) FAdd 63 64
|
||||
66: 21(int) Load 32(a)
|
||||
67: 25(ptr) AccessChain 20(userIn) 66
|
||||
68: 8(fvec4) Load 67
|
||||
69: 8(fvec4) FAdd 65 68
|
||||
Store 56(gl_FragColor) 69
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
54
Test/baseResults/spv.voidFunction.frag.out
Normal file → Executable file
54
Test/baseResults/spv.voidFunction.frag.out
Normal file → Executable file
@ -8,9 +8,11 @@ Linked fragment stage:
|
||||
// Id's are bound by 43
|
||||
|
||||
Source GLSL 120
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 7 "foo("
|
||||
Name 9 "foo2("
|
||||
@ -21,58 +23,58 @@ Linked fragment stage:
|
||||
Name 40 "BaseColor"
|
||||
Name 42 "d"
|
||||
Decorate 36(gl_FragColor) BuiltIn FragColor
|
||||
Decorate 40(BaseColor) Smooth
|
||||
Decorate 40(BaseColor) NoStaticUse
|
||||
Decorate 42(d) NoStaticUse
|
||||
Decorate 40(BaseColor) Smooth
|
||||
Decorate 40(BaseColor) NoStaticUse
|
||||
Decorate 42(d) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
11: TypeFloat 32
|
||||
12: TypePointer PrivateGlobal 11(float)
|
||||
13(bar): 12(ptr) Variable PrivateGlobal
|
||||
13(bar): 12(ptr) Variable PrivateGlobal
|
||||
14: 11(float) Constant 1073741824
|
||||
16: 11(float) Constant 1065353216
|
||||
21: TypeVector 11(float) 4
|
||||
22: TypePointer Function 21(fvec4)
|
||||
24: TypePointer UniformConstant 21(fvec4)
|
||||
25(bigColor): 24(ptr) Variable UniformConstant
|
||||
25(bigColor): 24(ptr) Variable UniformConstant
|
||||
35: TypePointer Output 21(fvec4)
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
36(gl_FragColor): 35(ptr) Variable Output
|
||||
39: TypePointer Input 21(fvec4)
|
||||
40(BaseColor): 39(ptr) Variable Input
|
||||
40(BaseColor): 39(ptr) Variable Input
|
||||
41: TypePointer UniformConstant 11(float)
|
||||
42(d): 41(ptr) Variable UniformConstant
|
||||
42(d): 41(ptr) Variable UniformConstant
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
23(outColor): 22(ptr) Variable Function
|
||||
Store 13(bar) 14
|
||||
26: 21(fvec4) Load 25(bigColor)
|
||||
Store 23(outColor) 26
|
||||
27: 2 FunctionCall 7(foo()
|
||||
28: 2 FunctionCall 9(foo2()
|
||||
29: 11(float) Load 13(bar)
|
||||
30: 21(fvec4) Load 23(outColor)
|
||||
23(outColor): 22(ptr) Variable Function
|
||||
Store 13(bar) 14
|
||||
26: 21(fvec4) Load 25(bigColor)
|
||||
Store 23(outColor) 26
|
||||
27: 2 FunctionCall 7(foo()
|
||||
28: 2 FunctionCall 9(foo2()
|
||||
29: 11(float) Load 13(bar)
|
||||
30: 21(fvec4) Load 23(outColor)
|
||||
31: 11(float) CompositeExtract 30 0
|
||||
32: 11(float) FAdd 31 29
|
||||
33: 21(fvec4) Load 23(outColor)
|
||||
33: 21(fvec4) Load 23(outColor)
|
||||
34: 21(fvec4) CompositeInsert 32 33 0
|
||||
Store 23(outColor) 34
|
||||
37: 21(fvec4) Load 23(outColor)
|
||||
Store 36(gl_FragColor) 37
|
||||
Store 23(outColor) 34
|
||||
37: 21(fvec4) Load 23(outColor)
|
||||
Store 36(gl_FragColor) 37
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
7(foo(): 2 Function None 3
|
||||
8: Label
|
||||
15: 11(float) Load 13(bar)
|
||||
15: 11(float) Load 13(bar)
|
||||
17: 11(float) FAdd 15 16
|
||||
Store 13(bar) 17
|
||||
Store 13(bar) 17
|
||||
Return
|
||||
FunctionEnd
|
||||
9(foo2(): 2 Function None 3
|
||||
10: Label
|
||||
19: 11(float) Load 13(bar)
|
||||
19: 11(float) Load 13(bar)
|
||||
20: 11(float) FAdd 19 16
|
||||
Store 13(bar) 20
|
||||
Store 13(bar) 20
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
60
Test/baseResults/spv.while-continue-break.vert.out
Normal file → Executable file
60
Test/baseResults/spv.while-continue-break.vert.out
Normal file → Executable file
@ -8,9 +8,10 @@ Linked vertex stage:
|
||||
// Id's are bound by 43
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 18 "A"
|
||||
@ -19,19 +20,12 @@ Linked vertex stage:
|
||||
Name 38 "D"
|
||||
Name 41 "gl_VertexID"
|
||||
Name 42 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionHigh
|
||||
Decorate 18(A) PrecisionHigh
|
||||
Decorate 26(B) PrecisionHigh
|
||||
Decorate 28(C) PrecisionHigh
|
||||
Decorate 38(D) PrecisionHigh
|
||||
Decorate 41(gl_VertexID) PrecisionHigh
|
||||
Decorate 41(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 41(gl_VertexID) NoStaticUse
|
||||
Decorate 42(gl_InstanceID) PrecisionHigh
|
||||
Decorate 41(gl_VertexID) NoStaticUse
|
||||
Decorate 42(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 42(gl_InstanceID) NoStaticUse
|
||||
Decorate 42(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 0
|
||||
@ -42,54 +36,54 @@ Linked vertex stage:
|
||||
30: 7(int) Constant 5
|
||||
39: 7(int) Constant 3
|
||||
40: TypePointer Input 7(int)
|
||||
41(gl_VertexID): 40(ptr) Variable Input
|
||||
42(gl_InstanceID): 40(ptr) Variable Input
|
||||
41(gl_VertexID): 40(ptr) Variable Input
|
||||
42(gl_InstanceID): 40(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
18(A): 8(ptr) Variable Function
|
||||
26(B): 8(ptr) Variable Function
|
||||
28(C): 8(ptr) Variable Function
|
||||
38(D): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
18(A): 8(ptr) Variable Function
|
||||
26(B): 8(ptr) Variable Function
|
||||
28(C): 8(ptr) Variable Function
|
||||
38(D): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 7(int) Load 9(i)
|
||||
14: 7(int) Load 9(i)
|
||||
17: 16(bool) SLessThan 14 15
|
||||
LoopMerge 12 None
|
||||
BranchConditional 17 13 12
|
||||
BranchConditional 17 13 12
|
||||
13: Label
|
||||
Store 18(A) 19
|
||||
20: 7(int) Load 9(i)
|
||||
Store 18(A) 19
|
||||
20: 7(int) Load 9(i)
|
||||
22: 7(int) SMod 20 21
|
||||
23: 16(bool) IEqual 22 10
|
||||
SelectionMerge 25 None
|
||||
BranchConditional 23 24 25
|
||||
BranchConditional 23 24 25
|
||||
24: Label
|
||||
Store 26(B) 21
|
||||
Store 26(B) 21
|
||||
Branch 11
|
||||
27: Label
|
||||
Store 28(C) 21
|
||||
Store 28(C) 21
|
||||
Branch 25
|
||||
25: Label
|
||||
29: 7(int) Load 9(i)
|
||||
29: 7(int) Load 9(i)
|
||||
31: 7(int) SMod 29 30
|
||||
32: 16(bool) IEqual 31 10
|
||||
SelectionMerge 34 None
|
||||
BranchConditional 32 33 34
|
||||
BranchConditional 32 33 34
|
||||
33: Label
|
||||
Store 26(B) 21
|
||||
Store 26(B) 21
|
||||
Branch 12
|
||||
35: Label
|
||||
Store 28(C) 21
|
||||
Store 28(C) 21
|
||||
Branch 34
|
||||
34: Label
|
||||
36: 7(int) Load 9(i)
|
||||
36: 7(int) Load 9(i)
|
||||
37: 7(int) IAdd 36 19
|
||||
Store 9(i) 37
|
||||
Store 9(i) 37
|
||||
Branch 11
|
||||
12: Label
|
||||
Store 38(D) 39
|
||||
Store 38(D) 39
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
28
Test/baseResults/spv.while-simple.vert.out
Normal file → Executable file
28
Test/baseResults/spv.while-simple.vert.out
Normal file → Executable file
@ -8,22 +8,20 @@ Linked vertex stage:
|
||||
// Id's are bound by 24
|
||||
|
||||
Source ESSL 300
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4
|
||||
EntryPoint Vertex 4 "main"
|
||||
Name 4 "main"
|
||||
Name 9 "i"
|
||||
Name 22 "gl_VertexID"
|
||||
Name 23 "gl_InstanceID"
|
||||
Decorate 9(i) PrecisionHigh
|
||||
Decorate 22(gl_VertexID) PrecisionHigh
|
||||
Decorate 22(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 22(gl_VertexID) NoStaticUse
|
||||
Decorate 23(gl_InstanceID) PrecisionHigh
|
||||
Decorate 22(gl_VertexID) NoStaticUse
|
||||
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
||||
Decorate 23(gl_InstanceID) NoStaticUse
|
||||
Decorate 23(gl_InstanceID) NoStaticUse
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeInt 32 1
|
||||
8: TypePointer Function 7(int)
|
||||
10: 7(int) Constant 0
|
||||
@ -31,22 +29,22 @@ Linked vertex stage:
|
||||
16: TypeBool
|
||||
19: 7(int) Constant 1
|
||||
21: TypePointer Input 7(int)
|
||||
22(gl_VertexID): 21(ptr) Variable Input
|
||||
23(gl_InstanceID): 21(ptr) Variable Input
|
||||
22(gl_VertexID): 21(ptr) Variable Input
|
||||
23(gl_InstanceID): 21(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
9(i): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
9(i): 8(ptr) Variable Function
|
||||
Store 9(i) 10
|
||||
Branch 11
|
||||
11: Label
|
||||
14: 7(int) Load 9(i)
|
||||
14: 7(int) Load 9(i)
|
||||
17: 16(bool) SLessThan 14 15
|
||||
LoopMerge 12 None
|
||||
BranchConditional 17 13 12
|
||||
BranchConditional 17 13 12
|
||||
13: Label
|
||||
18: 7(int) Load 9(i)
|
||||
18: 7(int) Load 9(i)
|
||||
20: 7(int) IAdd 18 19
|
||||
Store 9(i) 20
|
||||
Store 9(i) 20
|
||||
Branch 11
|
||||
12: Label
|
||||
Branch 6
|
||||
|
||||
38
Test/baseResults/spv.whileLoop.frag.out
Normal file → Executable file
38
Test/baseResults/spv.whileLoop.frag.out
Normal file → Executable file
@ -8,53 +8,55 @@ Linked fragment stage:
|
||||
// Id's are bound by 32
|
||||
|
||||
Source GLSL 110
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4
|
||||
EntryPoint Fragment 4 "main"
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Name 4 "main"
|
||||
Name 10 "color"
|
||||
Name 12 "BaseColor"
|
||||
Name 20 "d"
|
||||
Name 25 "bigColor"
|
||||
Name 30 "gl_FragColor"
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 12(BaseColor) Smooth
|
||||
Decorate 30(gl_FragColor) BuiltIn FragColor
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
3: TypeFunction 2
|
||||
7: TypeFloat 32
|
||||
8: TypeVector 7(float) 4
|
||||
9: TypePointer Function 8(fvec4)
|
||||
11: TypePointer Input 8(fvec4)
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
12(BaseColor): 11(ptr) Variable Input
|
||||
19: TypePointer UniformConstant 7(float)
|
||||
20(d): 19(ptr) Variable UniformConstant
|
||||
20(d): 19(ptr) Variable UniformConstant
|
||||
22: TypeBool
|
||||
24: TypePointer UniformConstant 8(fvec4)
|
||||
25(bigColor): 24(ptr) Variable UniformConstant
|
||||
25(bigColor): 24(ptr) Variable UniformConstant
|
||||
29: TypePointer Output 8(fvec4)
|
||||
30(gl_FragColor): 29(ptr) Variable Output
|
||||
30(gl_FragColor): 29(ptr) Variable Output
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(color): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
10(color): 9(ptr) Variable Function
|
||||
13: 8(fvec4) Load 12(BaseColor)
|
||||
Store 10(color) 13
|
||||
Branch 14
|
||||
14: Label
|
||||
17: 8(fvec4) Load 10(color)
|
||||
17: 8(fvec4) Load 10(color)
|
||||
18: 7(float) CompositeExtract 17 0
|
||||
21: 7(float) Load 20(d)
|
||||
21: 7(float) Load 20(d)
|
||||
23: 22(bool) FOrdLessThan 18 21
|
||||
LoopMerge 15 None
|
||||
BranchConditional 23 16 15
|
||||
BranchConditional 23 16 15
|
||||
16: Label
|
||||
26: 8(fvec4) Load 25(bigColor)
|
||||
27: 8(fvec4) Load 10(color)
|
||||
26: 8(fvec4) Load 25(bigColor)
|
||||
27: 8(fvec4) Load 10(color)
|
||||
28: 8(fvec4) FAdd 27 26
|
||||
Store 10(color) 28
|
||||
Store 10(color) 28
|
||||
Branch 14
|
||||
15: Label
|
||||
31: 8(fvec4) Load 10(color)
|
||||
Store 30(gl_FragColor) 31
|
||||
31: 8(fvec4) Load 10(color)
|
||||
Store 30(gl_FragColor) 31
|
||||
Branch 6
|
||||
6: Label
|
||||
Return
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
// For the version, it uses the latest git tag followed by the number of commits.
|
||||
// For the date, it uses the current date (when then script is run).
|
||||
|
||||
#define GLSLANG_REVISION "2.3.703"
|
||||
#define GLSLANG_REVISION "2.3.704"
|
||||
#define GLSLANG_DATE "06-Aug-2015"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user