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)
|
disassemble.cpp)
|
||||||
|
|
||||||
set(HEADERS
|
set(HEADERS
|
||||||
spirv.h
|
spirv.hpp
|
||||||
|
GLSL.std.450.h
|
||||||
GlslangToSpv.h
|
GlslangToSpv.h
|
||||||
SpvBuilder.h
|
SpvBuilder.h
|
||||||
SPVRemapper.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.
|
// translate them to SPIR-V.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "spirv.h"
|
#include "spirv.hpp"
|
||||||
#include "GlslangToSpv.h"
|
#include "GlslangToSpv.h"
|
||||||
#include "SpvBuilder.h"
|
#include "SpvBuilder.h"
|
||||||
#include "GLSL450Lib.h"
|
namespace spv {
|
||||||
|
#include "GLSL.std.450.h"
|
||||||
|
}
|
||||||
|
|
||||||
// Glslang includes
|
// Glslang includes
|
||||||
#include "../glslang/MachineIndependent/localintermediate.h"
|
#include "../glslang/MachineIndependent/localintermediate.h"
|
||||||
#include "../glslang/MachineIndependent/SymbolTable.h"
|
#include "../glslang/MachineIndependent/SymbolTable.h"
|
||||||
|
#include "../glslang/Include/Common.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -85,6 +88,7 @@ protected:
|
|||||||
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
spv::Id createSpvVariable(const glslang::TIntermSymbol*);
|
||||||
spv::Id getSampledType(const glslang::TSampler&);
|
spv::Id getSampledType(const glslang::TSampler&);
|
||||||
spv::Id convertGlslangToSpvType(const glslang::TType& type);
|
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);
|
bool isShaderEntrypoint(const glslang::TIntermAggregate* node);
|
||||||
void makeFunctions(const glslang::TIntermSequence&);
|
void makeFunctions(const glslang::TIntermSequence&);
|
||||||
@ -93,6 +97,7 @@ protected:
|
|||||||
void handleFunctionEntry(const glslang::TIntermAggregate* node);
|
void handleFunctionEntry(const glslang::TIntermAggregate* node);
|
||||||
void translateArguments(const glslang::TIntermSequence& glslangArguments, std::vector<spv::Id>& arguments);
|
void translateArguments(const glslang::TIntermSequence& glslangArguments, std::vector<spv::Id>& arguments);
|
||||||
spv::Id handleBuiltInFunctionCall(const glslang::TIntermAggregate*);
|
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 handleUserFunctionCall(const glslang::TIntermAggregate*);
|
||||||
|
|
||||||
spv::Id createBinaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, spv::Id left, spv::Id right, glslang::TBasicType typeProxy, bool reduceComparison = true);
|
spv::Id 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 createConversion(glslang::TOperator op, spv::Decoration precision, spv::Id destTypeId, spv::Id operand);
|
||||||
spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
|
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 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 createNoArgOperation(glslang::TOperator op);
|
||||||
spv::Id getSymbolId(const glslang::TIntermSymbol* node);
|
spv::Id getSymbolId(const glslang::TIntermSymbol* node);
|
||||||
void addDecoration(spv::Id id, spv::Decoration dec);
|
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)
|
spv::Decoration TranslatePrecisionDecoration(const glslang::TType& type)
|
||||||
{
|
{
|
||||||
switch (type.getQualifier().precision) {
|
switch (type.getQualifier().precision) {
|
||||||
case glslang::EpqLow: return spv::DecorationPrecisionLow;
|
case glslang::EpqLow: return spv::DecorationRelaxedPrecision; // TODO: Map instead to 16-bit types?
|
||||||
case glslang::EpqMedium: return spv::DecorationPrecisionMedium;
|
case glslang::EpqMedium: return spv::DecorationRelaxedPrecision;
|
||||||
case glslang::EpqHigh: return spv::DecorationPrecisionHigh;
|
case glslang::EpqHigh: return spv::NoPrecision;
|
||||||
default:
|
default:
|
||||||
return spv::NoPrecision;
|
return spv::NoPrecision;
|
||||||
}
|
}
|
||||||
@ -255,12 +260,9 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type)
|
|||||||
case glslang::EvqBuffer:
|
case glslang::EvqBuffer:
|
||||||
switch (type.getQualifier().layoutPacking) {
|
switch (type.getQualifier().layoutPacking) {
|
||||||
case glslang::ElpShared: return spv::DecorationGLSLShared;
|
case glslang::ElpShared: return spv::DecorationGLSLShared;
|
||||||
case glslang::ElpStd140: return spv::DecorationGLSLStd140;
|
|
||||||
case glslang::ElpStd430: return spv::DecorationGLSLStd430;
|
|
||||||
case glslang::ElpPacked: return spv::DecorationGLSLPacked;
|
case glslang::ElpPacked: return spv::DecorationGLSLPacked;
|
||||||
default:
|
default:
|
||||||
spv::MissingFunctionality("uniform block layout");
|
return (spv::Decoration)spv::BadValue;
|
||||||
return spv::DecorationGLSLShared;
|
|
||||||
}
|
}
|
||||||
case glslang::EvqVaryingIn:
|
case glslang::EvqVaryingIn:
|
||||||
case glslang::EvqVaryingOut:
|
case glslang::EvqVaryingOut:
|
||||||
@ -309,7 +311,6 @@ spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable builtIn)
|
|||||||
switch (builtIn) {
|
switch (builtIn) {
|
||||||
case glslang::EbvPosition: return spv::BuiltInPosition;
|
case glslang::EbvPosition: return spv::BuiltInPosition;
|
||||||
case glslang::EbvPointSize: return spv::BuiltInPointSize;
|
case glslang::EbvPointSize: return spv::BuiltInPointSize;
|
||||||
case glslang::EbvClipVertex: return spv::BuiltInClipVertex;
|
|
||||||
case glslang::EbvClipDistance: return spv::BuiltInClipDistance;
|
case glslang::EbvClipDistance: return spv::BuiltInClipDistance;
|
||||||
case glslang::EbvCullDistance: return spv::BuiltInCullDistance;
|
case glslang::EbvCullDistance: return spv::BuiltInCullDistance;
|
||||||
case glslang::EbvVertexId: return spv::BuiltInVertexId;
|
case glslang::EbvVertexId: return spv::BuiltInVertexId;
|
||||||
@ -359,7 +360,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
|||||||
stdBuiltins = builder.import("GLSL.std.450");
|
stdBuiltins = builder.import("GLSL.std.450");
|
||||||
builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450);
|
builder.setMemoryModel(spv::AddressingModelLogical, spv::MemoryModelGLSL450);
|
||||||
shaderEntry = builder.makeMain();
|
shaderEntry = builder.makeMain();
|
||||||
builder.addEntryPoint(executionModel, shaderEntry);
|
builder.addEntryPoint(executionModel, shaderEntry, "main");
|
||||||
|
|
||||||
// Add the source extensions
|
// Add the source extensions
|
||||||
const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions();
|
const auto& sourceExtensions = glslangIntermediate->getRequestedExtensions();
|
||||||
@ -374,13 +375,16 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
|||||||
unsigned int mode;
|
unsigned int mode;
|
||||||
switch (glslangIntermediate->getStage()) {
|
switch (glslangIntermediate->getStage()) {
|
||||||
case EShLangVertex:
|
case EShLangVertex:
|
||||||
|
builder.addCapability(spv::CapabilityShader);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangTessControl:
|
case EShLangTessControl:
|
||||||
|
builder.addCapability(spv::CapabilityTessellation);
|
||||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices());
|
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOutputVertices, glslangIntermediate->getVertices());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangTessEvaluation:
|
case EShLangTessEvaluation:
|
||||||
|
builder.addCapability(spv::CapabilityTessellation);
|
||||||
switch (glslangIntermediate->getInputPrimitive()) {
|
switch (glslangIntermediate->getInputPrimitive()) {
|
||||||
case glslang::ElgTriangles: mode = spv::ExecutionModeInputTriangles; break;
|
case glslang::ElgTriangles: mode = spv::ExecutionModeInputTriangles; break;
|
||||||
case glslang::ElgQuads: mode = spv::ExecutionModeInputQuads; break;
|
case glslang::ElgQuads: mode = spv::ExecutionModeInputQuads; break;
|
||||||
@ -397,6 +401,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangGeometry:
|
case EShLangGeometry:
|
||||||
|
builder.addCapability(spv::CapabilityGeometry);
|
||||||
switch (glslangIntermediate->getInputPrimitive()) {
|
switch (glslangIntermediate->getInputPrimitive()) {
|
||||||
case glslang::ElgPoints: mode = spv::ExecutionModeInputPoints; break;
|
case glslang::ElgPoints: mode = spv::ExecutionModeInputPoints; break;
|
||||||
case glslang::ElgLines: mode = spv::ExecutionModeInputLines; break;
|
case glslang::ElgLines: mode = spv::ExecutionModeInputLines; break;
|
||||||
@ -421,13 +426,17 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangFragment:
|
case EShLangFragment:
|
||||||
|
builder.addCapability(spv::CapabilityShader);
|
||||||
if (glslangIntermediate->getPixelCenterInteger())
|
if (glslangIntermediate->getPixelCenterInteger())
|
||||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModePixelCenterInteger);
|
builder.addExecutionMode(shaderEntry, spv::ExecutionModePixelCenterInteger);
|
||||||
if (glslangIntermediate->getOriginUpperLeft())
|
if (glslangIntermediate->getOriginUpperLeft())
|
||||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginUpperLeft);
|
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginUpperLeft);
|
||||||
|
else
|
||||||
|
builder.addExecutionMode(shaderEntry, spv::ExecutionModeOriginLowerLeft);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EShLangCompute:
|
case EShLangCompute:
|
||||||
|
builder.addCapability(spv::CapabilityShader);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
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);
|
result = createUnaryOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands.front(), node->getType().getBasicType() == glslang::EbtFloat || node->getType().getBasicType() == glslang::EbtDouble);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
result = createMiscOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands);
|
result = createMiscOperation(node->getOp(), precision, convertGlslangToSpvType(node->getType()), operands, node->getBasicType());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1311,9 +1320,11 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
case glslang::EbtSampler:
|
case glslang::EbtSampler:
|
||||||
{
|
{
|
||||||
const glslang::TSampler& sampler = type.getSampler();
|
const glslang::TSampler& sampler = type.getSampler();
|
||||||
spvType = builder.makeSampler(getSampledType(sampler), TranslateDimensionality(sampler),
|
spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), sampler.shadow, sampler.arrayed, sampler.ms,
|
||||||
sampler.image ? spv::Builder::samplerContentImage : spv::Builder::samplerContentTextureFilter,
|
sampler.image ? 2 : 1, spv::ImageFormatUnknown); // TODO: translate format, needed for GLSL image ops
|
||||||
sampler.arrayed, sampler.shadow, sampler.ms);
|
// OpenGL "textures" need to be combined with a sampler
|
||||||
|
if (! sampler.image)
|
||||||
|
spvType = builder.makeSampledImageType(spvType);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case glslang::EbtStruct:
|
case glslang::EbtStruct:
|
||||||
@ -1350,6 +1361,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
structMap[glslangStruct] = spvType;
|
structMap[glslangStruct] = spvType;
|
||||||
|
|
||||||
// Name and decorate the non-hidden members
|
// Name and decorate the non-hidden members
|
||||||
|
int offset = -1;
|
||||||
for (int i = 0; i < (int)glslangStruct->size(); i++) {
|
for (int i = 0; i < (int)glslangStruct->size(); i++) {
|
||||||
glslang::TType& glslangType = *(*glslangStruct)[i].type;
|
glslang::TType& glslangType = *(*glslangStruct)[i].type;
|
||||||
int member = i;
|
int member = i;
|
||||||
@ -1368,6 +1380,14 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent);
|
builder.addMemberDecoration(spvType, member, spv::DecorationComponent, glslangType.getQualifier().layoutComponent);
|
||||||
if (glslangType.getQualifier().hasXfbOffset())
|
if (glslangType.getQualifier().hasXfbOffset())
|
||||||
builder.addMemberDecoration(spvType, member, spv::DecorationOffset, glslangType.getQualifier().layoutXfbOffset);
|
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
|
// built-in variable decorations
|
||||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(glslangType.getQualifier().builtIn);
|
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);
|
builder.addDecoration(spvType, spv::DecorationStream, type.getQualifier().layoutStream);
|
||||||
if (glslangIntermediate->getXfbMode()) {
|
if (glslangIntermediate->getXfbMode()) {
|
||||||
if (type.getQualifier().hasXfbStride())
|
if (type.getQualifier().hasXfbStride())
|
||||||
builder.addDecoration(spvType, spv::DecorationStride, type.getQualifier().layoutXfbStride);
|
builder.addDecoration(spvType, spv::DecorationXfbStride, type.getQualifier().layoutXfbStride);
|
||||||
if (type.getQualifier().hasXfbBuffer())
|
if (type.getQualifier().hasXfbBuffer())
|
||||||
builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer);
|
builder.addDecoration(spvType, spv::DecorationXfbBuffer, type.getQualifier().layoutXfbBuffer);
|
||||||
}
|
}
|
||||||
@ -1415,6 +1435,49 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
|
|||||||
return spvType;
|
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)
|
bool TGlslangToSpvTraverser::isShaderEntrypoint(const glslang::TIntermAggregate* node)
|
||||||
{
|
{
|
||||||
return node->getName() == "main(";
|
return node->getName() == "main(";
|
||||||
@ -1519,11 +1582,6 @@ spv::Id TGlslangToSpvTraverser::handleBuiltInFunctionCall(const glslang::TInterm
|
|||||||
{
|
{
|
||||||
std::vector<spv::Id> arguments;
|
std::vector<spv::Id> arguments;
|
||||||
translateArguments(node->getSequence(), 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());
|
spv::Decoration precision = TranslatePrecisionDecoration(node->getType());
|
||||||
|
|
||||||
if (node->getName() == "ftransform(") {
|
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 (node->getName().find("textureSize", 0) != std::string::npos) {
|
||||||
if (arguments.size() > 1) {
|
if (arguments.size() > 1) {
|
||||||
params.lod = arguments[1];
|
params.lod = arguments[1];
|
||||||
return builder.createTextureQueryCall(spv::OpTextureQuerySizeLod, params);
|
return builder.createTextureQueryCall(spv::OpImageQuerySizeLod, params);
|
||||||
} else
|
} else
|
||||||
return builder.createTextureQueryCall(spv::OpTextureQuerySize, params);
|
return builder.createTextureQueryCall(spv::OpImageQuerySize, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
// special case the number of samples query
|
// special case the number of samples query
|
||||||
if (node->getName().find("textureSamples", 0) != std::string::npos)
|
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
|
// special case the other queries
|
||||||
if (node->getName().find("Query", 0) != std::string::npos) {
|
if (node->getName().find("Query", 0) != std::string::npos) {
|
||||||
if (node->getName().find("Levels", 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) {
|
else if (node->getName().find("Lod", 0) != std::string::npos) {
|
||||||
params.coords = arguments[1];
|
params.coords = arguments[1];
|
||||||
return builder.createTextureQueryCall(spv::OpTextureQueryLod, params);
|
return builder.createTextureQueryCall(spv::OpImageQueryLod, params);
|
||||||
} else
|
} else
|
||||||
spv::MissingFunctionality("glslang texture query");
|
spv::MissingFunctionality("glslang texture query");
|
||||||
}
|
}
|
||||||
@ -1599,6 +1657,16 @@ spv::Id TGlslangToSpvTraverser::handleBuiltInFunctionCall(const glslang::TInterm
|
|||||||
int extraArgs = 0;
|
int extraArgs = 0;
|
||||||
if (cubeCompare)
|
if (cubeCompare)
|
||||||
params.Dref = arguments[2];
|
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) {
|
if (lod) {
|
||||||
params.lod = arguments[2];
|
params.lod = arguments[2];
|
||||||
++extraArgs;
|
++extraArgs;
|
||||||
@ -1835,7 +1903,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
|
|||||||
break;
|
break;
|
||||||
case glslang::EOpLogicalXor:
|
case glslang::EOpLogicalXor:
|
||||||
needMatchingVectors = false;
|
needMatchingVectors = false;
|
||||||
binOp = spv::OpLogicalXor;
|
binOp = spv::OpLogicalNotEqual;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpLessThan:
|
case glslang::EOpLessThan:
|
||||||
@ -1974,107 +2042,109 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
|||||||
|
|
||||||
case glslang::EOpLogicalNot:
|
case glslang::EOpLogicalNot:
|
||||||
case glslang::EOpVectorLogicalNot:
|
case glslang::EOpVectorLogicalNot:
|
||||||
|
unaryOp = spv::OpLogicalNot;
|
||||||
|
break;
|
||||||
case glslang::EOpBitwiseNot:
|
case glslang::EOpBitwiseNot:
|
||||||
unaryOp = spv::OpNot;
|
unaryOp = spv::OpNot;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpDeterminant:
|
case glslang::EOpDeterminant:
|
||||||
libCall = GLSL_STD_450::Determinant;
|
libCall = spv::GLSLstd450Determinant;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpMatrixInverse:
|
case glslang::EOpMatrixInverse:
|
||||||
libCall = GLSL_STD_450::MatrixInverse;
|
libCall = spv::GLSLstd450MatrixInverse;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpTranspose:
|
case glslang::EOpTranspose:
|
||||||
unaryOp = spv::OpTranspose;
|
unaryOp = spv::OpTranspose;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpRadians:
|
case glslang::EOpRadians:
|
||||||
libCall = GLSL_STD_450::Radians;
|
libCall = spv::GLSLstd450Radians;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpDegrees:
|
case glslang::EOpDegrees:
|
||||||
libCall = GLSL_STD_450::Degrees;
|
libCall = spv::GLSLstd450Degrees;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpSin:
|
case glslang::EOpSin:
|
||||||
libCall = GLSL_STD_450::Sin;
|
libCall = spv::GLSLstd450Sin;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpCos:
|
case glslang::EOpCos:
|
||||||
libCall = GLSL_STD_450::Cos;
|
libCall = spv::GLSLstd450Cos;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpTan:
|
case glslang::EOpTan:
|
||||||
libCall = GLSL_STD_450::Tan;
|
libCall = spv::GLSLstd450Tan;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAcos:
|
case glslang::EOpAcos:
|
||||||
libCall = GLSL_STD_450::Acos;
|
libCall = spv::GLSLstd450Acos;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAsin:
|
case glslang::EOpAsin:
|
||||||
libCall = GLSL_STD_450::Asin;
|
libCall = spv::GLSLstd450Asin;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAtan:
|
case glslang::EOpAtan:
|
||||||
libCall = GLSL_STD_450::Atan;
|
libCall = spv::GLSLstd450Atan;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpAcosh:
|
case glslang::EOpAcosh:
|
||||||
libCall = GLSL_STD_450::Acosh;
|
libCall = spv::GLSLstd450Acosh;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAsinh:
|
case glslang::EOpAsinh:
|
||||||
libCall = GLSL_STD_450::Asinh;
|
libCall = spv::GLSLstd450Asinh;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAtanh:
|
case glslang::EOpAtanh:
|
||||||
libCall = GLSL_STD_450::Atanh;
|
libCall = spv::GLSLstd450Atanh;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpTanh:
|
case glslang::EOpTanh:
|
||||||
libCall = GLSL_STD_450::Tanh;
|
libCall = spv::GLSLstd450Tanh;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpCosh:
|
case glslang::EOpCosh:
|
||||||
libCall = GLSL_STD_450::Cosh;
|
libCall = spv::GLSLstd450Cosh;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpSinh:
|
case glslang::EOpSinh:
|
||||||
libCall = GLSL_STD_450::Sinh;
|
libCall = spv::GLSLstd450Sinh;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpLength:
|
case glslang::EOpLength:
|
||||||
libCall = GLSL_STD_450::Length;
|
libCall = spv::GLSLstd450Length;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpNormalize:
|
case glslang::EOpNormalize:
|
||||||
libCall = GLSL_STD_450::Normalize;
|
libCall = spv::GLSLstd450Normalize;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpExp:
|
case glslang::EOpExp:
|
||||||
libCall = GLSL_STD_450::Exp;
|
libCall = spv::GLSLstd450Exp;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpLog:
|
case glslang::EOpLog:
|
||||||
libCall = GLSL_STD_450::Log;
|
libCall = spv::GLSLstd450Log;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpExp2:
|
case glslang::EOpExp2:
|
||||||
libCall = GLSL_STD_450::Exp2;
|
libCall = spv::GLSLstd450Exp2;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpLog2:
|
case glslang::EOpLog2:
|
||||||
libCall = GLSL_STD_450::Log2;
|
libCall = spv::GLSLstd450Log2;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpSqrt:
|
case glslang::EOpSqrt:
|
||||||
libCall = GLSL_STD_450::Sqrt;
|
libCall = spv::GLSLstd450Sqrt;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpInverseSqrt:
|
case glslang::EOpInverseSqrt:
|
||||||
libCall = GLSL_STD_450::InverseSqrt;
|
libCall = spv::GLSLstd450InverseSqrt;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpFloor:
|
case glslang::EOpFloor:
|
||||||
libCall = GLSL_STD_450::Floor;
|
libCall = spv::GLSLstd450Floor;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpTrunc:
|
case glslang::EOpTrunc:
|
||||||
libCall = GLSL_STD_450::Trunc;
|
libCall = spv::GLSLstd450Trunc;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpRound:
|
case glslang::EOpRound:
|
||||||
libCall = GLSL_STD_450::Round;
|
libCall = spv::GLSLstd450Round;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpRoundEven:
|
case glslang::EOpRoundEven:
|
||||||
libCall = GLSL_STD_450::RoundEven;
|
libCall = spv::GLSLstd450RoundEven;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpCeil:
|
case glslang::EOpCeil:
|
||||||
libCall = GLSL_STD_450::Ceil;
|
libCall = spv::GLSLstd450Ceil;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpFract:
|
case glslang::EOpFract:
|
||||||
libCall = GLSL_STD_450::Fract;
|
libCall = spv::GLSLstd450Fract;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpIsNan:
|
case glslang::EOpIsNan:
|
||||||
@ -2084,35 +2154,23 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
|||||||
unaryOp = spv::OpIsInf;
|
unaryOp = spv::OpIsInf;
|
||||||
break;
|
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:
|
case glslang::EOpPackSnorm2x16:
|
||||||
libCall = GLSL_STD_450::PackSnorm2x16;
|
libCall = spv::GLSLstd450PackSnorm2x16;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpUnpackSnorm2x16:
|
case glslang::EOpUnpackSnorm2x16:
|
||||||
libCall = GLSL_STD_450::UnpackSnorm2x16;
|
libCall = spv::GLSLstd450UnpackSnorm2x16;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpPackUnorm2x16:
|
case glslang::EOpPackUnorm2x16:
|
||||||
libCall = GLSL_STD_450::PackUnorm2x16;
|
libCall = spv::GLSLstd450PackUnorm2x16;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpUnpackUnorm2x16:
|
case glslang::EOpUnpackUnorm2x16:
|
||||||
libCall = GLSL_STD_450::UnpackUnorm2x16;
|
libCall = spv::GLSLstd450UnpackUnorm2x16;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpPackHalf2x16:
|
case glslang::EOpPackHalf2x16:
|
||||||
libCall = GLSL_STD_450::PackHalf2x16;
|
libCall = spv::GLSLstd450PackHalf2x16;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpUnpackHalf2x16:
|
case glslang::EOpUnpackHalf2x16:
|
||||||
libCall = GLSL_STD_450::UnpackHalf2x16;
|
libCall = spv::GLSLstd450UnpackHalf2x16;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpDPdx:
|
case glslang::EOpDPdx:
|
||||||
@ -2151,10 +2209,16 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpAbs:
|
case glslang::EOpAbs:
|
||||||
libCall = GLSL_STD_450::Abs;
|
if (isFloat)
|
||||||
|
libCall = spv::GLSLstd450FAbs;
|
||||||
|
else
|
||||||
|
libCall = spv::GLSLstd450SAbs;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpSign:
|
case glslang::EOpSign:
|
||||||
libCall = GLSL_STD_450::Sign;
|
if (isFloat)
|
||||||
|
libCall = spv::GLSLstd450FSign;
|
||||||
|
else
|
||||||
|
libCall = spv::GLSLstd450SSign;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -2291,10 +2355,10 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
|||||||
opCode = spv::OpAtomicIAdd;
|
opCode = spv::OpAtomicIAdd;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAtomicMin:
|
case glslang::EOpAtomicMin:
|
||||||
opCode = spv::OpAtomicIMin;
|
opCode = spv::OpAtomicSMin;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAtomicMax:
|
case glslang::EOpAtomicMax:
|
||||||
opCode = spv::OpAtomicIMax;
|
opCode = spv::OpAtomicSMax;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAtomicAnd:
|
case glslang::EOpAtomicAnd:
|
||||||
opCode = spv::OpAtomicAnd;
|
opCode = spv::OpAtomicAnd;
|
||||||
@ -2331,8 +2395,8 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv
|
|||||||
std::vector<spv::Id> spvAtomicOperands; // hold the spv operands
|
std::vector<spv::Id> spvAtomicOperands; // hold the spv operands
|
||||||
auto opIt = operands.begin(); // walk the glslang operands
|
auto opIt = operands.begin(); // walk the glslang operands
|
||||||
spvAtomicOperands.push_back(*(opIt++));
|
spvAtomicOperands.push_back(*(opIt++));
|
||||||
spvAtomicOperands.push_back(spv::ExecutionScopeDevice); // TBD: what is the correct scope?
|
spvAtomicOperands.push_back(builder.makeUintConstant(spv::ScopeDevice)); // TBD: what is the correct scope?
|
||||||
spvAtomicOperands.push_back( spv::MemorySemanticsMaskNone); // TBD: what are the correct memory semantics?
|
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.
|
// 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.
|
// 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);
|
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;
|
spv::Op opCode = spv::OpNop;
|
||||||
int libCall = -1;
|
int libCall = -1;
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case glslang::EOpMin:
|
case glslang::EOpMin:
|
||||||
libCall = GLSL_STD_450::Min;
|
if (isFloat)
|
||||||
|
libCall = spv::GLSLstd450FMin;
|
||||||
|
else if (isUnsigned)
|
||||||
|
libCall = spv::GLSLstd450UMin;
|
||||||
|
else
|
||||||
|
libCall = spv::GLSLstd450SMin;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpModf:
|
case glslang::EOpModf:
|
||||||
libCall = GLSL_STD_450::Modf;
|
libCall = spv::GLSLstd450Modf;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpMax:
|
case glslang::EOpMax:
|
||||||
libCall = GLSL_STD_450::Max;
|
if (isFloat)
|
||||||
|
libCall = spv::GLSLstd450FMax;
|
||||||
|
else if (isUnsigned)
|
||||||
|
libCall = spv::GLSLstd450UMax;
|
||||||
|
else
|
||||||
|
libCall = spv::GLSLstd450SMax;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpPow:
|
case glslang::EOpPow:
|
||||||
libCall = GLSL_STD_450::Pow;
|
libCall = spv::GLSLstd450Pow;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpDot:
|
case glslang::EOpDot:
|
||||||
opCode = spv::OpDot;
|
opCode = spv::OpDot;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpAtan:
|
case glslang::EOpAtan:
|
||||||
libCall = GLSL_STD_450::Atan2;
|
libCall = spv::GLSLstd450Atan2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpClamp:
|
case glslang::EOpClamp:
|
||||||
libCall = GLSL_STD_450::Clamp;
|
if (isFloat)
|
||||||
|
libCall = spv::GLSLstd450FClamp;
|
||||||
|
else if (isUnsigned)
|
||||||
|
libCall = spv::GLSLstd450UClamp;
|
||||||
|
else
|
||||||
|
libCall = spv::GLSLstd450SClamp;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpMix:
|
case glslang::EOpMix:
|
||||||
libCall = GLSL_STD_450::Mix;
|
libCall = spv::GLSLstd450Mix;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpStep:
|
case glslang::EOpStep:
|
||||||
libCall = GLSL_STD_450::Step;
|
libCall = spv::GLSLstd450Step;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpSmoothStep:
|
case glslang::EOpSmoothStep:
|
||||||
libCall = GLSL_STD_450::SmoothStep;
|
libCall = spv::GLSLstd450SmoothStep;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case glslang::EOpDistance:
|
case glslang::EOpDistance:
|
||||||
libCall = GLSL_STD_450::Distance;
|
libCall = spv::GLSLstd450Distance;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpCross:
|
case glslang::EOpCross:
|
||||||
libCall = GLSL_STD_450::Cross;
|
libCall = spv::GLSLstd450Cross;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpFaceForward:
|
case glslang::EOpFaceForward:
|
||||||
libCall = GLSL_STD_450::FaceForward;
|
libCall = spv::GLSLstd450FaceForward;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpReflect:
|
case glslang::EOpReflect:
|
||||||
libCall = GLSL_STD_450::Reflect;
|
libCall = spv::GLSLstd450Reflect;
|
||||||
break;
|
break;
|
||||||
case glslang::EOpRefract:
|
case glslang::EOpRefract:
|
||||||
libCall = GLSL_STD_450::Refract;
|
libCall = spv::GLSLstd450Refract;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -2444,26 +2526,26 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op)
|
|||||||
builder.createNoResultOp(spv::OpEndPrimitive);
|
builder.createNoResultOp(spv::OpEndPrimitive);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpBarrier:
|
case glslang::EOpBarrier:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsAllMemory);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||||
builder.createControlBarrier(spv::ExecutionScopeDevice);
|
builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrier:
|
case glslang::EOpMemoryBarrier:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsAllMemory);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierAtomicCounter:
|
case glslang::EOpMemoryBarrierAtomicCounter:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAtomicCounterMemoryMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierBuffer:
|
case glslang::EOpMemoryBarrierBuffer:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsUniformMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsUniformMemoryMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierImage:
|
case glslang::EOpMemoryBarrierImage:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsImageMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsImageMemoryMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpMemoryBarrierShared:
|
case glslang::EOpMemoryBarrierShared:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsWorkgroupLocalMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupLocalMemoryMask);
|
||||||
return 0;
|
return 0;
|
||||||
case glslang::EOpGroupMemoryBarrier:
|
case glslang::EOpGroupMemoryBarrier:
|
||||||
builder.createMemoryBarrier(spv::ExecutionScopeDevice, spv::MemorySemanticsWorkgroupGlobalMemoryMask);
|
builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsWorkgroupGlobalMemoryMask);
|
||||||
return 0;
|
return 0;
|
||||||
default:
|
default:
|
||||||
spv::MissingFunctionality("operation with no arguments");
|
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);
|
builder.addDecoration(id, spv::DecorationComponent, symbol->getQualifier().layoutComponent);
|
||||||
if (glslangIntermediate->getXfbMode()) {
|
if (glslangIntermediate->getXfbMode()) {
|
||||||
if (symbol->getQualifier().hasXfbStride())
|
if (symbol->getQualifier().hasXfbStride())
|
||||||
builder.addDecoration(id, spv::DecorationStride, symbol->getQualifier().layoutXfbStride);
|
builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride);
|
||||||
if (symbol->getQualifier().hasXfbBuffer())
|
if (symbol->getQualifier().hasXfbBuffer())
|
||||||
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
||||||
if (symbol->getQualifier().hasXfbOffset())
|
if (symbol->getQualifier().hasXfbOffset())
|
||||||
@ -2512,14 +2594,14 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||||||
builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding);
|
builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding);
|
||||||
if (glslangIntermediate->getXfbMode()) {
|
if (glslangIntermediate->getXfbMode()) {
|
||||||
if (symbol->getQualifier().hasXfbStride())
|
if (symbol->getQualifier().hasXfbStride())
|
||||||
builder.addDecoration(id, spv::DecorationStride, symbol->getQualifier().layoutXfbStride);
|
builder.addDecoration(id, spv::DecorationXfbStride, symbol->getQualifier().layoutXfbStride);
|
||||||
if (symbol->getQualifier().hasXfbBuffer())
|
if (symbol->getQualifier().hasXfbBuffer())
|
||||||
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
builder.addDecoration(id, spv::DecorationXfbBuffer, symbol->getQualifier().layoutXfbBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// built-in variable decorations
|
// built-in variable decorations
|
||||||
spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn);
|
spv::BuiltIn builtIn = TranslateBuiltInDecoration(symbol->getQualifier().builtIn);
|
||||||
if ((unsigned int)builtIn != spv::BadValue)
|
if (builtIn != spv::BadValue)
|
||||||
builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn);
|
builder.addDecoration(id, spv::DecorationBuiltIn, (int)builtIn);
|
||||||
|
|
||||||
if (linkageOnly)
|
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::OpTypeFloat: // fall through...
|
||||||
case spv::OpTypePointer: return range_t(2, 3);
|
case spv::OpTypePointer: return range_t(2, 3);
|
||||||
case spv::OpTypeInt: return range_t(2, 4);
|
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::OpTypeSampler: return range_t(3, 8);
|
||||||
case spv::OpTypeVector: // fall through
|
case spv::OpTypeVector: // fall through
|
||||||
case spv::OpTypeMatrix: // ...
|
case spv::OpTypeMatrix: // ...
|
||||||
@ -164,8 +166,8 @@ namespace spv {
|
|||||||
case spv::OpTypeFloat:
|
case spv::OpTypeFloat:
|
||||||
case spv::OpTypeVector:
|
case spv::OpTypeVector:
|
||||||
case spv::OpTypeMatrix:
|
case spv::OpTypeMatrix:
|
||||||
|
case spv::OpTypeImage:
|
||||||
case spv::OpTypeSampler:
|
case spv::OpTypeSampler:
|
||||||
case spv::OpTypeFilter:
|
|
||||||
case spv::OpTypeArray:
|
case spv::OpTypeArray:
|
||||||
case spv::OpTypeRuntimeArray:
|
case spv::OpTypeRuntimeArray:
|
||||||
case spv::OpTypeStruct:
|
case spv::OpTypeStruct:
|
||||||
@ -184,12 +186,11 @@ namespace spv {
|
|||||||
bool spirvbin_t::isConstOp(spv::Op opCode) const
|
bool spirvbin_t::isConstOp(spv::Op opCode) const
|
||||||
{
|
{
|
||||||
switch (opCode) {
|
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::OpConstantSampler: error("unimplemented constant type");
|
||||||
|
|
||||||
case spv::OpConstantTrue:
|
case spv::OpConstantTrue:
|
||||||
case spv::OpConstantFalse:
|
case spv::OpConstantFalse:
|
||||||
case spv::OpConstantNullPointer:
|
|
||||||
case spv::OpConstantComposite:
|
case spv::OpConstantComposite:
|
||||||
case spv::OpConstant: return true;
|
case spv::OpConstant: return true;
|
||||||
default: return false;
|
default: return false;
|
||||||
@ -486,7 +487,7 @@ namespace spv {
|
|||||||
case spv::OperandFunction:
|
case spv::OperandFunction:
|
||||||
case spv::OperandMemorySemantics:
|
case spv::OperandMemorySemantics:
|
||||||
case spv::OperandMemoryAccess:
|
case spv::OperandMemoryAccess:
|
||||||
case spv::OperandExecutionScope:
|
case spv::OperandScope:
|
||||||
case spv::OperandGroupOperation:
|
case spv::OperandGroupOperation:
|
||||||
case spv::OperandKernelEnqueueFlags:
|
case spv::OperandKernelEnqueueFlags:
|
||||||
case spv::OperandKernelProfilingInfo:
|
case spv::OperandKernelProfilingInfo:
|
||||||
@ -610,19 +611,14 @@ namespace spv {
|
|||||||
fnId = asId(start + 2);
|
fnId = asId(start + 2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case spv::OpTextureSample:
|
case spv::OpImageSampleImplicitLod:
|
||||||
case spv::OpTextureSampleDref:
|
case spv::OpImageSampleExplicitLod:
|
||||||
case spv::OpTextureSampleLod:
|
case spv::OpImageSampleDrefImplicitLod:
|
||||||
case spv::OpTextureSampleProj:
|
case spv::OpImageSampleDrefExplicitLod:
|
||||||
case spv::OpTextureSampleGrad:
|
case spv::OpImageSampleProjImplicitLod:
|
||||||
case spv::OpTextureSampleOffset:
|
case spv::OpImageSampleProjExplicitLod:
|
||||||
case spv::OpTextureSampleProjLod:
|
case spv::OpImageSampleProjDrefImplicitLod:
|
||||||
case spv::OpTextureSampleProjGrad:
|
case spv::OpImageSampleProjDrefExplicitLod:
|
||||||
case spv::OpTextureSampleLodOffset:
|
|
||||||
case spv::OpTextureSampleProjOffset:
|
|
||||||
case spv::OpTextureSampleGradOffset:
|
|
||||||
case spv::OpTextureSampleProjLodOffset:
|
|
||||||
case spv::OpTextureSampleProjGradOffset:
|
|
||||||
case spv::OpDot:
|
case spv::OpDot:
|
||||||
case spv::OpCompositeExtract:
|
case spv::OpCompositeExtract:
|
||||||
case spv::OpCompositeInsert:
|
case spv::OpCompositeInsert:
|
||||||
@ -668,7 +664,7 @@ namespace spv {
|
|||||||
process(
|
process(
|
||||||
[&](spv::Op opCode, unsigned start) {
|
[&](spv::Op opCode, unsigned start) {
|
||||||
// Add inputs and uniforms to the map
|
// 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::StorageClassUniform ||
|
||||||
spv[start+3] == spv::StorageClassUniformConstant ||
|
spv[start+3] == spv::StorageClassUniformConstant ||
|
||||||
spv[start+3] == spv::StorageClassInput))
|
spv[start+3] == spv::StorageClassInput))
|
||||||
@ -695,7 +691,7 @@ namespace spv {
|
|||||||
process(
|
process(
|
||||||
[&](spv::Op opCode, unsigned start) {
|
[&](spv::Op opCode, unsigned start) {
|
||||||
// Add inputs and uniforms to the map
|
// 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))
|
(spv[start+3] == spv::StorageClassOutput))
|
||||||
fnLocalVars.insert(asId(start+2));
|
fnLocalVars.insert(asId(start+2));
|
||||||
|
|
||||||
@ -729,8 +725,7 @@ namespace spv {
|
|||||||
const int wordCount = asWordCount(start);
|
const int wordCount = asWordCount(start);
|
||||||
|
|
||||||
// Add local variables to the map
|
// Add local variables to the map
|
||||||
if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4) ||
|
if ((opCode == spv::OpVariable && spv[start+3] == spv::StorageClassFunction && asWordCount(start) == 4))
|
||||||
(opCode == spv::OpVariableArray && spv[start+3] == spv::StorageClassFunction))
|
|
||||||
fnLocalVars.insert(asId(start+2));
|
fnLocalVars.insert(asId(start+2));
|
||||||
|
|
||||||
// Ignore process vars referenced via access chain
|
// Ignore process vars referenced via access chain
|
||||||
@ -1008,14 +1003,14 @@ namespace spv {
|
|||||||
return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
|
return 6 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
|
||||||
case spv::OpTypeMatrix:
|
case spv::OpTypeMatrix:
|
||||||
return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
|
return 30 + hashType(typePos(spv[typeStart+2])) * (spv[typeStart+3] - 1);
|
||||||
case spv::OpTypeSampler:
|
case spv::OpTypeImage:
|
||||||
return 120 + hashType(typePos(spv[typeStart+2])) +
|
return 120 + hashType(typePos(spv[typeStart+2])) +
|
||||||
spv[typeStart+3] + // dimensionality
|
spv[typeStart+3] + // dimensionality
|
||||||
spv[typeStart+4] * 8 * 16 + // content
|
spv[typeStart+4] * 8 * 16 + // depth
|
||||||
spv[typeStart+5] * 4 * 16 + // arrayed
|
spv[typeStart+5] * 4 * 16 + // arrayed
|
||||||
spv[typeStart+6] * 2 * 16 + // compare
|
spv[typeStart+6] * 2 * 16 + // multisampled
|
||||||
spv[typeStart+7] * 1 * 16; // multisampled
|
spv[typeStart+7] * 1 * 16; // format
|
||||||
case spv::OpTypeFilter:
|
case spv::OpTypeSampler:
|
||||||
return 500;
|
return 500;
|
||||||
case spv::OpTypeArray:
|
case spv::OpTypeArray:
|
||||||
return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3];
|
return 501 + hashType(typePos(spv[typeStart+2])) * spv[typeStart+3];
|
||||||
@ -1045,12 +1040,11 @@ namespace spv {
|
|||||||
case spv::OpTypeQueue: return 300003;
|
case spv::OpTypeQueue: return 300003;
|
||||||
case spv::OpTypePipe: return 300004;
|
case spv::OpTypePipe: return 300004;
|
||||||
|
|
||||||
case spv::OpConstantNullObject: return 300005;
|
case spv::OpConstantNull: return 300005;
|
||||||
case spv::OpConstantSampler: return 300006;
|
case spv::OpConstantSampler: return 300006;
|
||||||
|
|
||||||
case spv::OpConstantTrue: return 300007;
|
case spv::OpConstantTrue: return 300007;
|
||||||
case spv::OpConstantFalse: return 300008;
|
case spv::OpConstantFalse: return 300008;
|
||||||
case spv::OpConstantNullPointer: return 300009;
|
|
||||||
case spv::OpConstantComposite:
|
case spv::OpConstantComposite:
|
||||||
{
|
{
|
||||||
std::uint32_t hash = 300011 + hashType(typePos(spv[typeStart+1]));
|
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 <set>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
#include "spirv.h"
|
#include "spirv.hpp"
|
||||||
#include "spvIR.h"
|
#include "spvIR.h"
|
||||||
|
|
||||||
namespace spv {
|
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();
|
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
|
// try to find it
|
||||||
Instruction* type;
|
Instruction* type;
|
||||||
for (int t = 0; t < (int)groupedTypes[OpTypeSampler].size(); ++t) {
|
for (int t = 0; t < (int)groupedTypes[OpTypeImage].size(); ++t) {
|
||||||
type = groupedTypes[OpTypeSampler][t];
|
type = groupedTypes[OpTypeImage][t];
|
||||||
if (type->getIdOperand(0) == sampledType &&
|
if (type->getIdOperand(0) == sampledType &&
|
||||||
type->getImmediateOperand(1) == (unsigned int)dim &&
|
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(3) == (arrayed ? 1u : 0u) &&
|
||||||
type->getImmediateOperand(4) == ( shadow ? 1u : 0u) &&
|
type->getImmediateOperand(4) == ( ms ? 1u : 0u) &&
|
||||||
type->getImmediateOperand(5) == ( ms ? 1u : 0u))
|
type->getImmediateOperand(5) == sampled &&
|
||||||
|
type->getImmediateOperand(6) == (unsigned int)format)
|
||||||
return type->getResultId();
|
return type->getResultId();
|
||||||
}
|
}
|
||||||
|
|
||||||
// not found, make it
|
// not found, make it
|
||||||
type = new Instruction(getUniqueId(), NoType, OpTypeSampler);
|
type = new Instruction(getUniqueId(), NoType, OpTypeImage);
|
||||||
type->addIdOperand(sampledType);
|
type->addIdOperand(sampledType);
|
||||||
type->addImmediateOperand( dim);
|
type->addImmediateOperand( dim);
|
||||||
type->addImmediateOperand(content);
|
type->addImmediateOperand( depth ? 1 : 0);
|
||||||
type->addImmediateOperand(arrayed ? 1 : 0);
|
type->addImmediateOperand(arrayed ? 1 : 0);
|
||||||
type->addImmediateOperand( shadow ? 1 : 0);
|
|
||||||
type->addImmediateOperand( ms ? 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);
|
constantsTypesGlobals.push_back(type);
|
||||||
module.mapInstruction(type);
|
module.mapInstruction(type);
|
||||||
|
|
||||||
@ -606,11 +629,12 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector<Id>& members)
|
|||||||
return c->getResultId();
|
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);
|
Instruction* entryPoint = new Instruction(OpEntryPoint);
|
||||||
entryPoint->addImmediateOperand(model);
|
entryPoint->addImmediateOperand(model);
|
||||||
entryPoint->addIdOperand(function->getId());
|
entryPoint->addIdOperand(function->getId());
|
||||||
|
entryPoint->addStringOperand(name);
|
||||||
|
|
||||||
entryPoints.push_back(entryPoint);
|
entryPoints.push_back(entryPoint);
|
||||||
}
|
}
|
||||||
@ -945,18 +969,20 @@ void Builder::createNoResultOp(Op opCode, Id operand)
|
|||||||
buildPoint->addInstruction(op);
|
buildPoint->addInstruction(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Builder::createControlBarrier(unsigned executionScope)
|
void Builder::createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask semantics)
|
||||||
{
|
{
|
||||||
Instruction* op = new Instruction(OpControlBarrier);
|
Instruction* op = new Instruction(OpControlBarrier);
|
||||||
op->addImmediateOperand(executionScope);
|
op->addImmediateOperand(makeUintConstant(execution));
|
||||||
|
op->addImmediateOperand(makeUintConstant(memory));
|
||||||
|
op->addImmediateOperand(makeUintConstant(semantics));
|
||||||
buildPoint->addInstruction(op);
|
buildPoint->addInstruction(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemantics)
|
void Builder::createMemoryBarrier(unsigned executionScope, unsigned memorySemantics)
|
||||||
{
|
{
|
||||||
Instruction* op = new Instruction(OpMemoryBarrier);
|
Instruction* op = new Instruction(OpMemoryBarrier);
|
||||||
op->addImmediateOperand(executionScope);
|
op->addImmediateOperand(makeUintConstant(executionScope));
|
||||||
op->addImmediateOperand(memorySemantics);
|
op->addImmediateOperand(makeUintConstant(memorySemantics));
|
||||||
buildPoint->addInstruction(op);
|
buildPoint->addInstruction(op);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -991,7 +1017,7 @@ Id Builder::createTriOp(Op opCode, Id typeId, Id op1, Id op2, Id op3)
|
|||||||
return op->getResultId();
|
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);
|
Instruction* op = new Instruction(getUniqueId(), typeId, opCode);
|
||||||
for (auto operand : operands)
|
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.
|
// Create the correct instruction based on the inputs, and make the call.
|
||||||
Id Builder::createTextureCall(Decoration precision, Id resultType, bool proj, const TextureParameters& parameters)
|
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] = {};
|
Id texArgs[maxTextureArgs] = {};
|
||||||
|
|
||||||
//
|
//
|
||||||
// Set up the arguments
|
// Set up the fixed arguments
|
||||||
//
|
//
|
||||||
|
|
||||||
int numArgs = 0;
|
int numArgs = 0;
|
||||||
|
bool xplicit = false;
|
||||||
texArgs[numArgs++] = parameters.sampler;
|
texArgs[numArgs++] = parameters.sampler;
|
||||||
texArgs[numArgs++] = parameters.coords;
|
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)
|
if (parameters.Dref)
|
||||||
texArgs[numArgs++] = 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
|
// Set up the instruction
|
||||||
//
|
//
|
||||||
|
|
||||||
Op opCode;
|
Op opCode;
|
||||||
if (proj && parameters.gradX && parameters.offset)
|
opCode = OpImageSampleImplicitLod;
|
||||||
opCode = OpTextureSampleProjGradOffset;
|
if (xplicit) {
|
||||||
else if (proj && parameters.lod && parameters.offset)
|
if (parameters.Dref) {
|
||||||
opCode = OpTextureSampleProjLodOffset;
|
if (proj)
|
||||||
else if (parameters.gradX && parameters.offset)
|
opCode = OpImageSampleProjDrefExplicitLod;
|
||||||
opCode = OpTextureSampleGradOffset;
|
else
|
||||||
else if (proj && parameters.offset)
|
opCode = OpImageSampleDrefExplicitLod;
|
||||||
opCode = OpTextureSampleProjOffset;
|
} else {
|
||||||
else if (parameters.lod && parameters.offset)
|
if (proj)
|
||||||
opCode = OpTextureSampleLodOffset;
|
opCode = OpImageSampleProjExplicitLod;
|
||||||
else if (proj && parameters.gradX)
|
else
|
||||||
opCode = OpTextureSampleProjGrad;
|
opCode = OpImageSampleExplicitLod;
|
||||||
else if (proj && parameters.lod)
|
}
|
||||||
opCode = OpTextureSampleProjLod;
|
} else {
|
||||||
else if (parameters.offset)
|
if (parameters.Dref) {
|
||||||
opCode = OpTextureSampleOffset;
|
if (proj)
|
||||||
else if (parameters.gradX)
|
opCode = OpImageSampleProjDrefImplicitLod;
|
||||||
opCode = OpTextureSampleGrad;
|
else
|
||||||
else if (proj)
|
opCode = OpImageSampleDrefImplicitLod;
|
||||||
opCode = OpTextureSampleProj;
|
} else {
|
||||||
else if (parameters.lod)
|
if (proj)
|
||||||
opCode = OpTextureSampleLod;
|
opCode = OpImageSampleProjImplicitLod;
|
||||||
else if (parameters.Dref)
|
else
|
||||||
opCode = OpTextureSampleDref;
|
opCode = OpImageSampleImplicitLod;
|
||||||
else
|
}
|
||||||
opCode = OpTextureSample;
|
}
|
||||||
|
|
||||||
Instruction* textureInst = new Instruction(getUniqueId(), resultType, opCode);
|
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]);
|
textureInst->addIdOperand(texArgs[op]);
|
||||||
setPrecision(textureInst->getResultId(), precision);
|
setPrecision(textureInst->getResultId(), precision);
|
||||||
buildPoint->addInstruction(textureInst);
|
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)
|
Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameters)
|
||||||
{
|
{
|
||||||
// Figure out the result type
|
// Figure out the result type
|
||||||
Id resultType = NoType;
|
Id resultType = 0;
|
||||||
switch (opCode) {
|
switch (opCode) {
|
||||||
case OpTextureQuerySize:
|
case OpImageQuerySize:
|
||||||
case OpTextureQuerySizeLod:
|
case OpImageQuerySizeLod:
|
||||||
{
|
{
|
||||||
int numComponents;
|
int numComponents;
|
||||||
switch (getDimensionality(parameters.sampler)) {
|
switch (getTypeDimensionality(getImageType(parameters.sampler))) {
|
||||||
case Dim1D:
|
case Dim1D:
|
||||||
case DimBuffer:
|
case DimBuffer:
|
||||||
numComponents = 1;
|
numComponents = 1;
|
||||||
@ -1199,7 +1256,7 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
|
|||||||
MissingFunctionality("texture query dimensionality");
|
MissingFunctionality("texture query dimensionality");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (isArrayedSampler(parameters.sampler))
|
if (isArrayedImageType(getImageType(parameters.sampler)))
|
||||||
++numComponents;
|
++numComponents;
|
||||||
if (numComponents == 1)
|
if (numComponents == 1)
|
||||||
resultType = makeIntType(32);
|
resultType = makeIntType(32);
|
||||||
@ -1208,11 +1265,11 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OpTextureQueryLod:
|
case OpImageQueryLod:
|
||||||
resultType = makeVectorType(makeFloatType(32), 2);
|
resultType = makeVectorType(makeFloatType(32), 2);
|
||||||
break;
|
break;
|
||||||
case OpTextureQueryLevels:
|
case OpImageQueryLevels:
|
||||||
case OpTextureQuerySamples:
|
case OpImageQuerySamples:
|
||||||
resultType = makeIntType(32);
|
resultType = makeIntType(32);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2040,7 +2097,16 @@ void Builder::dump(std::vector<unsigned int>& out) const
|
|||||||
extInst.addStringOperand(extensions[e]);
|
extInst.addStringOperand(extensions[e]);
|
||||||
extInst.dump(out);
|
extInst.dump(out);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TBD: OpExtension ...
|
// TBD: OpExtension ...
|
||||||
|
|
||||||
|
// Capabilities
|
||||||
|
for (auto cap : capabilities) {
|
||||||
|
Instruction capInst(0, 0, OpCapability);
|
||||||
|
capInst.addImmediateOperand(cap);
|
||||||
|
capInst.dump(out);
|
||||||
|
}
|
||||||
|
|
||||||
dumpInstructions(out, imports);
|
dumpInstructions(out, imports);
|
||||||
Instruction memInst(0, 0, OpMemoryModel);
|
Instruction memInst(0, 0, OpMemoryModel);
|
||||||
memInst.addImmediateOperand(addressModel);
|
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
|
#ifndef SpvBuilder_H
|
||||||
#define SpvBuilder_H
|
#define SpvBuilder_H
|
||||||
|
|
||||||
#include "spirv.h"
|
#include "spirv.hpp"
|
||||||
#include "spvIR.h"
|
#include "spvIR.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@ -77,6 +77,8 @@ public:
|
|||||||
memoryModel = mem;
|
memoryModel = mem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addCapability(spv::Capability cap) { capabilities.push_back(cap); }
|
||||||
|
|
||||||
// To get a new <id> for anything needing a new one.
|
// To get a new <id> for anything needing a new one.
|
||||||
Id getUniqueId() { return ++uniqueId; }
|
Id getUniqueId() { return ++uniqueId; }
|
||||||
|
|
||||||
@ -101,12 +103,8 @@ public:
|
|||||||
Id makeMatrixType(Id component, int cols, int rows);
|
Id makeMatrixType(Id component, int cols, int rows);
|
||||||
Id makeArrayType(Id element, unsigned size);
|
Id makeArrayType(Id element, unsigned size);
|
||||||
Id makeFunctionType(Id returnType, std::vector<Id>& paramTypes);
|
Id makeFunctionType(Id returnType, std::vector<Id>& paramTypes);
|
||||||
enum samplerContent {
|
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format);
|
||||||
samplerContentTexture,
|
Id makeSampledImageType(Id imageType);
|
||||||
samplerContentImage,
|
|
||||||
samplerContentTextureFilter
|
|
||||||
};
|
|
||||||
Id makeSampler(Id sampledType, Dim, samplerContent, bool arrayed, bool shadow, bool ms);
|
|
||||||
|
|
||||||
// For querying about types.
|
// For querying about types.
|
||||||
Id getTypeId(Id resultId) const { return module.getTypeId(resultId); }
|
Id getTypeId(Id resultId) const { return module.getTypeId(resultId); }
|
||||||
@ -133,7 +131,9 @@ public:
|
|||||||
bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; }
|
bool isStructType(Id typeId) const { return getTypeClass(typeId) == OpTypeStruct; }
|
||||||
bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; }
|
bool isArrayType(Id typeId) const { return getTypeClass(typeId) == OpTypeArray; }
|
||||||
bool isAggregateType(Id typeId) const { return isArrayType(typeId) || isStructType(typeId); }
|
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 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; }
|
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
|
||||||
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
|
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)); }
|
int getNumRows(Id resultId) const { return getTypeNumRows(getTypeId(resultId)); }
|
||||||
|
|
||||||
Dim getDimensionality(Id resultId) const
|
Dim getTypeDimensionality(Id typeId) const
|
||||||
{
|
{
|
||||||
assert(isSamplerType(getTypeId(resultId)));
|
assert(isImageType(typeId));
|
||||||
return (Dim)module.getInstruction(getTypeId(resultId))->getImmediateOperand(1);
|
return (Dim)module.getInstruction(typeId)->getImmediateOperand(1);
|
||||||
}
|
}
|
||||||
bool isArrayedSampler(Id resultId) const
|
Id getImageType(Id resultId) const
|
||||||
{
|
{
|
||||||
assert(isSamplerType(getTypeId(resultId)));
|
assert(isSampledImageType(getTypeId(resultId)));
|
||||||
return module.getInstruction(getTypeId(resultId))->getImmediateOperand(3) != 0;
|
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).
|
// 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);
|
Id makeCompositeConstant(Id type, std::vector<Id>& comps);
|
||||||
|
|
||||||
// Methods for adding information outside the CFG.
|
// 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 addExecutionMode(Function*, ExecutionMode mode, int value = -1);
|
||||||
void addName(Id, const char* name);
|
void addName(Id, const char* name);
|
||||||
void addMemberName(Id, int member, const char* name);
|
void addMemberName(Id, int member, const char* name);
|
||||||
@ -233,12 +238,12 @@ public:
|
|||||||
|
|
||||||
void createNoResultOp(Op);
|
void createNoResultOp(Op);
|
||||||
void createNoResultOp(Op, Id operand);
|
void createNoResultOp(Op, Id operand);
|
||||||
void createControlBarrier(unsigned executionScope);
|
void createControlBarrier(Scope execution, Scope memory, MemorySemanticsMask);
|
||||||
void createMemoryBarrier(unsigned executionScope, unsigned memorySemantics);
|
void createMemoryBarrier(unsigned executionScope, unsigned memorySemantics);
|
||||||
Id createUnaryOp(Op, Id typeId, Id operand);
|
Id createUnaryOp(Op, Id typeId, Id operand);
|
||||||
Id createBinOp(Op, Id typeId, Id operand1, Id operand2);
|
Id createBinOp(Op, Id typeId, Id operand1, Id operand2);
|
||||||
Id createTriOp(Op, Id typeId, Id operand1, Id operand2, Id operand3);
|
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>&);
|
Id createFunctionCall(spv::Function*, std::vector<spv::Id>&);
|
||||||
|
|
||||||
// Take an rvalue (source) and a set of channels to extract from it to
|
// Take an rvalue (source) and a set of channels to extract from it to
|
||||||
@ -283,8 +288,10 @@ public:
|
|||||||
Id lod;
|
Id lod;
|
||||||
Id Dref;
|
Id Dref;
|
||||||
Id offset;
|
Id offset;
|
||||||
|
Id offsets;
|
||||||
Id gradX;
|
Id gradX;
|
||||||
Id gradY;
|
Id gradY;
|
||||||
|
Id sample;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Select the correct texture operation based on all inputs, and emit the correct instruction
|
// Select the correct texture operation based on all inputs, and emit the correct instruction
|
||||||
@ -497,6 +504,7 @@ protected:
|
|||||||
std::vector<const char*> extensions;
|
std::vector<const char*> extensions;
|
||||||
AddressingModel addressModel;
|
AddressingModel addressModel;
|
||||||
MemoryModel memoryModel;
|
MemoryModel memoryModel;
|
||||||
|
std::vector<spv::Capability> capabilities;
|
||||||
int builderNumber;
|
int builderNumber;
|
||||||
Module module;
|
Module module;
|
||||||
Block* buildPoint;
|
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.
|
//All rights reserved.
|
||||||
//
|
//
|
||||||
@ -21,16 +21,16 @@
|
|||||||
//
|
//
|
||||||
//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
//"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
|
//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
//CAUSED AND ON ANY THEORY OF LIAstreamITY, WHETHER IN CONTRACT, STRICT
|
//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
//LIAstreamITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
//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
|
// Author: John Kessenich, LunarG
|
||||||
@ -41,25 +41,34 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <cstring>
|
||||||
#include "GLSL450Lib.h"
|
|
||||||
extern const char* GlslStd450DebugNames[GLSL_STD_450::Count];
|
|
||||||
|
|
||||||
#include "disassemble.h"
|
#include "disassemble.h"
|
||||||
#include "doc.h"
|
#include "doc.h"
|
||||||
|
|
||||||
namespace spv {
|
namespace spv {
|
||||||
|
|
||||||
|
#include "GLSL.std.450.h"
|
||||||
|
|
||||||
|
const char* GlslStd450DebugNames[spv::GLSLstd450Count];
|
||||||
|
|
||||||
void Kill(std::ostream& out, const char* message)
|
void Kill(std::ostream& out, const char* message)
|
||||||
{
|
{
|
||||||
out << std::endl << "Disassembly failed: " << message << std::endl;
|
out << std::endl << "Disassembly failed: " << message << std::endl;
|
||||||
exit(1);
|
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.
|
// Container class for a single instance of a SPIR-V stream, with methods for disassembly.
|
||||||
class SpirvStream {
|
class SpirvStream {
|
||||||
public:
|
public:
|
||||||
@ -70,9 +79,8 @@ public:
|
|||||||
void processInstructions();
|
void processInstructions();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
SpirvStream(SpirvStream&);
|
SpirvStream(const SpirvStream&);
|
||||||
SpirvStream& operator=(SpirvStream&);
|
SpirvStream& operator=(const SpirvStream&);
|
||||||
|
|
||||||
Op getOpCode(int id) const { return idInstruction[id] ? (Op)(stream[idInstruction[id]] & OpCodeMask) : OpNop; }
|
Op getOpCode(int id) const { return idInstruction[id] ? (Op)(stream[idInstruction[id]] & OpCodeMask) : OpNop; }
|
||||||
|
|
||||||
// Output methods
|
// Output methods
|
||||||
@ -81,6 +89,7 @@ protected:
|
|||||||
void outputResultId(Id id);
|
void outputResultId(Id id);
|
||||||
void outputTypeId(Id id);
|
void outputTypeId(Id id);
|
||||||
void outputId(Id id);
|
void outputId(Id id);
|
||||||
|
void outputMask(OperandClass operandClass, unsigned mask);
|
||||||
void disassembleImmediates(int numOperands);
|
void disassembleImmediates(int numOperands);
|
||||||
void disassembleIds(int numOperands);
|
void disassembleIds(int numOperands);
|
||||||
void disassembleString();
|
void disassembleString();
|
||||||
@ -241,6 +250,18 @@ void SpirvStream::outputId(Id id)
|
|||||||
out << "(" << idDescriptor[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)
|
void SpirvStream::disassembleImmediates(int numOperands)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < numOperands; ++i) {
|
for (int i = 0; i < numOperands; ++i) {
|
||||||
@ -294,8 +315,9 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||||||
nestedControl.push(nextNestedControl);
|
nestedControl.push(nextNestedControl);
|
||||||
nextNestedControl = 0;
|
nextNestedControl = 0;
|
||||||
}
|
}
|
||||||
} else if (opCode == OpExtInstImport)
|
} else if (opCode == OpExtInstImport) {
|
||||||
idDescriptor[resultId] = (char*)(&stream[word]);
|
idDescriptor[resultId] = (char*)(&stream[word]);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
if (idDescriptor[resultId].size() == 0) {
|
if (idDescriptor[resultId].size() == 0) {
|
||||||
switch (opCode) {
|
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
|
// Process the operands. Note, a new context-dependent set could be
|
||||||
// swapped in mid-traversal.
|
// swapped in mid-traversal.
|
||||||
|
|
||||||
// Handle textures specially, so can put out helpful strings.
|
// Handle images specially, so can put out helpful strings.
|
||||||
if (opCode == OpTypeSampler) {
|
if (opCode == OpTypeImage) {
|
||||||
|
out << " ";
|
||||||
disassembleIds(1);
|
disassembleIds(1);
|
||||||
out << " " << DimensionString((Dim)stream[word++]);
|
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 ? " depth" : "");
|
||||||
|
out << (stream[word++] != 0 ? " array" : "");
|
||||||
out << (stream[word++] != 0 ? " multi-sampled" : "");
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle all the parameterized operands
|
// 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 << " ";
|
out << " ";
|
||||||
OperandClass operandClass = InstructionDesc[opCode].operands.getClass(op);
|
OperandClass operandClass = InstructionDesc[opCode].operands.getClass(op);
|
||||||
switch (operandClass) {
|
switch (operandClass) {
|
||||||
case OperandId:
|
case OperandId:
|
||||||
|
case OperandScope:
|
||||||
|
case OperandMemorySemantics:
|
||||||
disassembleIds(1);
|
disassembleIds(1);
|
||||||
// Get names for printing "(XXX)" for readability, *after* this id
|
// Get names for printing "(XXX)" for readability, *after* this id
|
||||||
if (opCode == OpName)
|
if (opCode == OpName)
|
||||||
@ -367,15 +397,34 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||||||
case OperandVariableIds:
|
case OperandVariableIds:
|
||||||
disassembleIds(numOperands);
|
disassembleIds(numOperands);
|
||||||
return;
|
return;
|
||||||
|
case OperandOptionalImage:
|
||||||
|
outputMask(operandClass, stream[word++]);
|
||||||
|
--numOperands;
|
||||||
|
disassembleIds(numOperands);
|
||||||
|
return;
|
||||||
|
case OperandOptionalLiteral:
|
||||||
case OperandVariableLiterals:
|
case OperandVariableLiterals:
|
||||||
if ((opCode == OpDecorate && stream[word - 1] == DecorationBuiltIn) ||
|
if (opCode == OpDecorate && stream[word - 1] == DecorationBuiltIn ||
|
||||||
(opCode == OpMemberDecorate && stream[word - 1] == DecorationBuiltIn)) {
|
opCode == OpMemberDecorate && stream[word - 1] == DecorationBuiltIn) {
|
||||||
out << BuiltInString(stream[word++]);
|
out << BuiltInString(stream[word++]);
|
||||||
--numOperands;
|
--numOperands;
|
||||||
++op;
|
++op;
|
||||||
}
|
}
|
||||||
disassembleImmediates(numOperands);
|
disassembleImmediates(numOperands);
|
||||||
return;
|
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:
|
case OperandVariableLiteralId:
|
||||||
while (numOperands > 0) {
|
while (numOperands > 0) {
|
||||||
out << std::endl;
|
out << std::endl;
|
||||||
@ -392,9 +441,16 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||||||
case OperandLiteralNumber:
|
case OperandLiteralNumber:
|
||||||
disassembleImmediates(1);
|
disassembleImmediates(1);
|
||||||
if (opCode == OpExtInst) {
|
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];
|
unsigned entrypoint = stream[word - 1];
|
||||||
if (entrypoint < GLSL_STD_450::Count)
|
if (extInstSet == GLSL450Inst) {
|
||||||
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
|
if (entrypoint < spv::GLSLstd450Count) {
|
||||||
|
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OperandLiteralString:
|
case OperandLiteralString:
|
||||||
@ -403,18 +459,9 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||||||
default:
|
default:
|
||||||
assert(operandClass >= OperandSource && operandClass < OperandOpcode);
|
assert(operandClass >= OperandSource && operandClass < OperandOpcode);
|
||||||
|
|
||||||
if (OperandClassParams[operandClass].bitmask) {
|
if (OperandClassParams[operandClass].bitmask)
|
||||||
unsigned int mask = stream[word++];
|
outputMask(operandClass, stream[word++]);
|
||||||
if (mask == 0)
|
else
|
||||||
out << "None";
|
|
||||||
else {
|
|
||||||
for (int m = 0; m < OperandClassParams[operandClass].ceiling; ++m) {
|
|
||||||
if (mask & (1 << m))
|
|
||||||
out << OperandClassParams[operandClass].getName(m) << " ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
} else
|
|
||||||
out << OperandClassParams[operandClass].getName(stream[word++]);
|
out << OperandClassParams[operandClass].getName(stream[word++]);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -425,9 +472,97 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
|
|||||||
return;
|
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)
|
void Disassemble(std::ostream& out, const std::vector<unsigned int>& stream)
|
||||||
{
|
{
|
||||||
SpirvStream SpirvStream(out, stream);
|
SpirvStream SpirvStream(out, stream);
|
||||||
|
GLSLstd450GetDebugNames(GlslStd450DebugNames);
|
||||||
SpirvStream.validate();
|
SpirvStream.validate();
|
||||||
SpirvStream.processInstructions();
|
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.
|
//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.
|
//All rights reserved.
|
||||||
//
|
//
|
||||||
@ -40,7 +40,7 @@
|
|||||||
// Parameterize the SPIR-V enumerants.
|
// Parameterize the SPIR-V enumerants.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "spirv.h"
|
#include "spirv.hpp"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@ -64,6 +64,10 @@ const char* LoopControlString(int);
|
|||||||
const char* FunctionControlString(int);
|
const char* FunctionControlString(int);
|
||||||
const char* SamplerAddressingModeString(int);
|
const char* SamplerAddressingModeString(int);
|
||||||
const char* SamplerFilterModeString(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* FPFastMathString(int);
|
||||||
const char* FPRoundingModeString(int);
|
const char* FPRoundingModeString(int);
|
||||||
const char* LinkageTypeString(int);
|
const char* LinkageTypeString(int);
|
||||||
@ -75,11 +79,12 @@ const char* ExecutionScopeString(int);
|
|||||||
const char* GroupOperationString(int);
|
const char* GroupOperationString(int);
|
||||||
const char* KernelEnqueueFlagsString(int);
|
const char* KernelEnqueueFlagsString(int);
|
||||||
const char* KernelProfilingInfoString(int);
|
const char* KernelProfilingInfoString(int);
|
||||||
|
const char* CapabilityString(int);
|
||||||
const char* OpcodeString(int);
|
const char* OpcodeString(int);
|
||||||
|
|
||||||
// For grouping opcodes into subsections
|
// For grouping opcodes into subsections
|
||||||
enum OpcodeClass {
|
enum OpcodeClass {
|
||||||
OpClassMisc, // default, until opcode is classified
|
OpClassMisc,
|
||||||
OpClassDebug,
|
OpClassDebug,
|
||||||
OpClassAnnotate,
|
OpClassAnnotate,
|
||||||
OpClassExtension,
|
OpClassExtension,
|
||||||
@ -88,10 +93,11 @@ enum OpcodeClass {
|
|||||||
OpClassConstant,
|
OpClassConstant,
|
||||||
OpClassMemory,
|
OpClassMemory,
|
||||||
OpClassFunction,
|
OpClassFunction,
|
||||||
OpClassTexture,
|
OpClassImage,
|
||||||
OpClassConvert,
|
OpClassConvert,
|
||||||
OpClassComposite,
|
OpClassComposite,
|
||||||
OpClassArithmetic,
|
OpClassArithmetic,
|
||||||
|
OpClassBit,
|
||||||
OpClassRelationalLogical,
|
OpClassRelationalLogical,
|
||||||
OpClassDerivative,
|
OpClassDerivative,
|
||||||
OpClassFlowControl,
|
OpClassFlowControl,
|
||||||
@ -102,7 +108,8 @@ enum OpcodeClass {
|
|||||||
OpClassDeviceSideEnqueue,
|
OpClassDeviceSideEnqueue,
|
||||||
OpClassPipe,
|
OpClassPipe,
|
||||||
|
|
||||||
OpClassCount
|
OpClassCount,
|
||||||
|
OpClassMissing // all instructions start out as missing
|
||||||
};
|
};
|
||||||
|
|
||||||
// For parameterizing operands.
|
// For parameterizing operands.
|
||||||
@ -110,8 +117,11 @@ enum OperandClass {
|
|||||||
OperandNone,
|
OperandNone,
|
||||||
OperandId,
|
OperandId,
|
||||||
OperandOptionalId,
|
OperandOptionalId,
|
||||||
|
OperandOptionalImage,
|
||||||
OperandVariableIds,
|
OperandVariableIds,
|
||||||
|
OperandOptionalLiteral,
|
||||||
OperandVariableLiterals,
|
OperandVariableLiterals,
|
||||||
|
OperandVariableIdLiteral,
|
||||||
OperandVariableLiteralId,
|
OperandVariableLiteralId,
|
||||||
OperandLiteralNumber,
|
OperandLiteralNumber,
|
||||||
OperandLiteralString,
|
OperandLiteralString,
|
||||||
@ -124,6 +134,10 @@ enum OperandClass {
|
|||||||
OperandDimensionality,
|
OperandDimensionality,
|
||||||
OperandSamplerAddressingMode,
|
OperandSamplerAddressingMode,
|
||||||
OperandSamplerFilterMode,
|
OperandSamplerFilterMode,
|
||||||
|
OperandSamplerImageFormat,
|
||||||
|
OperandImageChannelOrder,
|
||||||
|
OperandImageChannelDataType,
|
||||||
|
OperandImageOperands,
|
||||||
OperandFPFastMath,
|
OperandFPFastMath,
|
||||||
OperandFPRoundingMode,
|
OperandFPRoundingMode,
|
||||||
OperandLinkageType,
|
OperandLinkageType,
|
||||||
@ -136,29 +150,17 @@ enum OperandClass {
|
|||||||
OperandFunction,
|
OperandFunction,
|
||||||
OperandMemorySemantics,
|
OperandMemorySemantics,
|
||||||
OperandMemoryAccess,
|
OperandMemoryAccess,
|
||||||
OperandExecutionScope,
|
OperandScope,
|
||||||
OperandGroupOperation,
|
OperandGroupOperation,
|
||||||
OperandKernelEnqueueFlags,
|
OperandKernelEnqueueFlags,
|
||||||
OperandKernelProfilingInfo,
|
OperandKernelProfilingInfo,
|
||||||
|
OperandCapability,
|
||||||
|
|
||||||
OperandOpcode,
|
OperandOpcode,
|
||||||
|
|
||||||
OperandCount
|
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:
|
// Any specific enum can have a set of capabilities that allow it:
|
||||||
typedef std::vector<Capability> EnumCaps;
|
typedef std::vector<Capability> EnumCaps;
|
||||||
|
|
||||||
@ -213,8 +215,8 @@ public:
|
|||||||
class InstructionParameters {
|
class InstructionParameters {
|
||||||
public:
|
public:
|
||||||
InstructionParameters() :
|
InstructionParameters() :
|
||||||
opDesc(0),
|
opDesc("TBD"),
|
||||||
opClass(OpClassMisc),
|
opClass(OpClassMissing),
|
||||||
typePresent(true), // most normal, only exceptions have to be spelled out
|
typePresent(true), // most normal, only exceptions have to be spelled out
|
||||||
resultPresent(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;
|
int resultPresent : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
const int OpcodeCeiling = 267;
|
const int OpcodeCeiling = 305;
|
||||||
|
|
||||||
// The set of objects that hold all the instruction/operand
|
// The set of objects that hold all the instruction/operand
|
||||||
// parameterization information.
|
// 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
|
#ifndef spvIR_H
|
||||||
#define spvIR_H
|
#define spvIR_H
|
||||||
|
|
||||||
#include "spirv.h"
|
#include "spirv.hpp"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <iostream>
|
#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/Include/revision.h"
|
||||||
#include "./../glslang/Public/ShaderLang.h"
|
#include "./../glslang/Public/ShaderLang.h"
|
||||||
#include "../SPIRV/GlslangToSpv.h"
|
#include "../SPIRV/GlslangToSpv.h"
|
||||||
#include "../SPIRV/GLSL450Lib.h"
|
#include "../SPIRV/GLSL.std.450.h"
|
||||||
#include "../SPIRV/doc.h"
|
#include "../SPIRV/doc.h"
|
||||||
#include "../SPIRV/disassemble.h"
|
#include "../SPIRV/disassemble.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -644,8 +644,6 @@ CompileShaders(void*)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GlslStd450DebugNames[GLSL_STD_450::Count];
|
|
||||||
|
|
||||||
// Outputs the given string, but only if it is non-null and non-empty.
|
// Outputs the given string, but only if it is non-null and non-empty.
|
||||||
// This prevents erroneous newlines from appearing.
|
// This prevents erroneous newlines from appearing.
|
||||||
void PutsIfNonEmpty(const char* str)
|
void PutsIfNonEmpty(const char* str)
|
||||||
@ -754,7 +752,6 @@ void CompileAndLinkShaders()
|
|||||||
glslang::OutputSpv(spirv, GetBinaryName((EShLanguage)stage));
|
glslang::OutputSpv(spirv, GetBinaryName((EShLanguage)stage));
|
||||||
if (Options & EOptionHumanReadableSpv) {
|
if (Options & EOptionHumanReadableSpv) {
|
||||||
spv::Parameterize();
|
spv::Parameterize();
|
||||||
GLSL_STD_450::GetDebugNames(GlslStd450DebugNames);
|
|
||||||
spv::Disassemble(std::cout, spirv);
|
spv::Disassemble(std::cout, spirv);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -790,7 +787,7 @@ int C_DECL main(int argc, char* argv[])
|
|||||||
std::string spirvVersion;
|
std::string spirvVersion;
|
||||||
glslang::GetSpirvVersion(spirvVersion);
|
glslang::GetSpirvVersion(spirvVersion);
|
||||||
printf("SPIR-V Version %s\n", spirvVersion.c_str());
|
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())
|
if (Worklist.empty())
|
||||||
return ESuccess;
|
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
|
// Id's are bound by 48
|
||||||
|
|
||||||
Source ESSL 100
|
Source ESSL 100
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "foo("
|
Name 9 "foo("
|
||||||
Name 12 "face1"
|
Name 12 "face1"
|
||||||
@ -19,68 +21,68 @@ Linked fragment stage:
|
|||||||
Name 22 "low"
|
Name 22 "low"
|
||||||
Name 27 "high"
|
Name 27 "high"
|
||||||
Name 37 "gl_FragColor"
|
Name 37 "gl_FragColor"
|
||||||
Decorate 12(face1) PrecisionLow
|
Decorate 12(face1) RelaxedPrecision
|
||||||
Decorate 14(face2) PrecisionLow
|
Decorate 14(face2) RelaxedPrecision
|
||||||
Decorate 18(z) PrecisionMedium
|
Decorate 18(z) RelaxedPrecision
|
||||||
Decorate 22(low) PrecisionMedium
|
Decorate 22(low) RelaxedPrecision
|
||||||
Decorate 27(high) PrecisionMedium
|
Decorate 27(high) RelaxedPrecision
|
||||||
Decorate 37(gl_FragColor) PrecisionMedium
|
Decorate 37(gl_FragColor) RelaxedPrecision
|
||||||
Decorate 37(gl_FragColor) BuiltIn FragColor
|
Decorate 37(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeFunction 7(float)
|
8: TypeFunction 7(float)
|
||||||
11: TypePointer PrivateGlobal 7(float)
|
11: TypePointer PrivateGlobal 7(float)
|
||||||
12(face1): 11(ptr) Variable PrivateGlobal
|
12(face1): 11(ptr) Variable PrivateGlobal
|
||||||
13: 7(float) Constant 1093664768
|
13: 7(float) Constant 1093664768
|
||||||
14(face2): 11(ptr) Variable PrivateGlobal
|
14(face2): 11(ptr) Variable PrivateGlobal
|
||||||
15: 7(float) Constant 3221225472
|
15: 7(float) Constant 3221225472
|
||||||
16: TypeInt 32 1
|
16: TypeInt 32 1
|
||||||
17: TypePointer Function 16(int)
|
17: TypePointer Function 16(int)
|
||||||
19: 16(int) Constant 3
|
19: 16(int) Constant 3
|
||||||
20: 16(int) Constant 2
|
20: 16(int) Constant 2
|
||||||
21: TypePointer UniformConstant 16(int)
|
21: TypePointer UniformConstant 16(int)
|
||||||
22(low): 21(ptr) Variable UniformConstant
|
22(low): 21(ptr) Variable UniformConstant
|
||||||
25: 16(int) Constant 1
|
25: 16(int) Constant 1
|
||||||
27(high): 21(ptr) Variable UniformConstant
|
27(high): 21(ptr) Variable UniformConstant
|
||||||
29: TypeBool
|
29: TypeBool
|
||||||
35: TypeVector 7(float) 4
|
35: TypeVector 7(float) 4
|
||||||
36: TypePointer Output 35(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
18(z): 17(ptr) Variable Function
|
18(z): 17(ptr) Variable Function
|
||||||
Store 12(face1) 13
|
Store 12(face1) 13
|
||||||
Store 14(face2) 15
|
Store 14(face2) 15
|
||||||
Store 18(z) 19
|
Store 18(z) 19
|
||||||
23: 16(int) Load 22(low)
|
23: 16(int) Load 22(low)
|
||||||
24: 16(int) IMul 20 23
|
24: 16(int) IMul 20 23
|
||||||
26: 16(int) IAdd 24 25
|
26: 16(int) IAdd 24 25
|
||||||
28: 16(int) Load 27(high)
|
28: 16(int) Load 27(high)
|
||||||
30: 29(bool) SLessThan 26 28
|
30: 29(bool) SLessThan 26 28
|
||||||
SelectionMerge 32 None
|
SelectionMerge 32 None
|
||||||
BranchConditional 30 31 32
|
BranchConditional 30 31 32
|
||||||
31: Label
|
31: Label
|
||||||
33: 16(int) Load 18(z)
|
33: 16(int) Load 18(z)
|
||||||
34: 16(int) IAdd 33 25
|
34: 16(int) IAdd 33 25
|
||||||
Store 18(z) 34
|
Store 18(z) 34
|
||||||
Branch 32
|
Branch 32
|
||||||
32: Label
|
32: Label
|
||||||
38: 7(float) Load 12(face1)
|
38: 7(float) Load 12(face1)
|
||||||
39: 16(int) Load 18(z)
|
39: 16(int) Load 18(z)
|
||||||
40: 7(float) ConvertSToF 39
|
40: 7(float) ConvertSToF 39
|
||||||
41: 35(fvec4) CompositeConstruct 40 40 40 40
|
41: 35(fvec4) CompositeConstruct 40 40 40 40
|
||||||
42: 35(fvec4) VectorTimesScalar 41 38
|
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
|
44: 35(fvec4) CompositeConstruct 43 43 43 43
|
||||||
45: 35(fvec4) FAdd 42 44
|
45: 35(fvec4) FAdd 42 44
|
||||||
Store 37(gl_FragColor) 45
|
Store 37(gl_FragColor) 45
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
9(foo(): 7(float) Function None 8
|
9(foo(): 7(float) Function None 8
|
||||||
10: Label
|
10: Label
|
||||||
46: 7(float) Load 14(face2)
|
46: 7(float) Load 14(face2)
|
||||||
ReturnValue 46
|
ReturnValue 46
|
||||||
FunctionEnd
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 90
|
// Id's are bound by 93
|
||||||
|
|
||||||
Source GLSL 140
|
Source GLSL 140
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "foo("
|
Name 9 "foo("
|
||||||
Name 12 "i1"
|
Name 12 "i1"
|
||||||
@ -19,130 +21,137 @@ Linked fragment stage:
|
|||||||
Name 29 "o"
|
Name 29 "o"
|
||||||
Name 34 "gl_ClipDistance"
|
Name 34 "gl_ClipDistance"
|
||||||
Name 43 "k"
|
Name 43 "k"
|
||||||
Name 54 "sampR"
|
Name 55 "sampR"
|
||||||
Name 60 "sampB"
|
Name 62 "sampB"
|
||||||
Name 83 "samp2Da"
|
Name 86 "samp2Da"
|
||||||
Name 87 "bn"
|
Name 90 "bn"
|
||||||
MemberName 87(bn) 0 "matra"
|
MemberName 90(bn) 0 "matra"
|
||||||
MemberName 87(bn) 1 "matca"
|
MemberName 90(bn) 1 "matca"
|
||||||
MemberName 87(bn) 2 "matr"
|
MemberName 90(bn) 2 "matr"
|
||||||
MemberName 87(bn) 3 "matc"
|
MemberName 90(bn) 3 "matc"
|
||||||
MemberName 87(bn) 4 "matrdef"
|
MemberName 90(bn) 4 "matrdef"
|
||||||
Name 89 ""
|
Name 92 ""
|
||||||
Decorate 17(gl_FrontFacing) BuiltIn FrontFacing
|
Decorate 17(gl_FrontFacing) BuiltIn FrontFacing
|
||||||
Decorate 34(gl_ClipDistance) Smooth
|
Decorate 34(gl_ClipDistance) Smooth
|
||||||
Decorate 34(gl_ClipDistance) BuiltIn ClipDistance
|
Decorate 34(gl_ClipDistance) BuiltIn ClipDistance
|
||||||
Decorate 43(k) Smooth
|
Decorate 43(k) Smooth
|
||||||
Decorate 83(samp2Da) NoStaticUse
|
Decorate 86(samp2Da) NoStaticUse
|
||||||
MemberDecorate 87(bn) 0 RowMajor
|
MemberDecorate 90(bn) 0 RowMajor
|
||||||
MemberDecorate 87(bn) 1 ColMajor
|
MemberDecorate 90(bn) 0 Offset 0
|
||||||
MemberDecorate 87(bn) 2 RowMajor
|
MemberDecorate 90(bn) 1 ColMajor
|
||||||
MemberDecorate 87(bn) 3 ColMajor
|
MemberDecorate 90(bn) 1 Offset 256
|
||||||
MemberDecorate 87(bn) 4 RowMajor
|
MemberDecorate 90(bn) 2 RowMajor
|
||||||
Decorate 87(bn) GLSLStd140
|
MemberDecorate 90(bn) 2 Offset 512
|
||||||
Decorate 87(bn) Block
|
MemberDecorate 90(bn) 3 ColMajor
|
||||||
Decorate 89 NoStaticUse
|
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
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeFunction 7(float)
|
8: TypeFunction 7(float)
|
||||||
11: TypePointer PrivateGlobal 7(float)
|
11: TypePointer PrivateGlobal 7(float)
|
||||||
12(i1): 11(ptr) Variable PrivateGlobal
|
12(i1): 11(ptr) Variable PrivateGlobal
|
||||||
13: TypePointer Function 7(float)
|
13: TypePointer Function 7(float)
|
||||||
15: TypeBool
|
15: TypeBool
|
||||||
16: TypePointer Input 15(bool)
|
16: TypePointer Input 15(bool)
|
||||||
17(gl_FrontFacing): 16(ptr) Variable Input
|
17(gl_FrontFacing): 16(ptr) Variable Input
|
||||||
21: 7(float) Constant 3221225472
|
21: 7(float) Constant 3221225472
|
||||||
23: 7(float) Constant 1073741824
|
23: 7(float) Constant 1073741824
|
||||||
25(i2): 11(ptr) Variable PrivateGlobal
|
25(i2): 11(ptr) Variable PrivateGlobal
|
||||||
26: 7(float) Constant 1120665600
|
26: 7(float) Constant 1120665600
|
||||||
27: TypeVector 7(float) 4
|
27: TypeVector 7(float) 4
|
||||||
28: TypePointer Output 27(fvec4)
|
28: TypePointer Output 27(fvec4)
|
||||||
29(o): 28(ptr) Variable Output
|
29(o): 28(ptr) Variable Output
|
||||||
30: TypeInt 32 0
|
30: TypeInt 32 0
|
||||||
31: 30(int) Constant 5
|
31: 30(int) Constant 5
|
||||||
32: TypeArray 7(float) 31
|
32: TypeArray 7(float) 31
|
||||||
33: TypePointer Input 32
|
33: TypePointer Input 32
|
||||||
34(gl_ClipDistance): 33(ptr) Variable Input
|
34(gl_ClipDistance): 33(ptr) Variable Input
|
||||||
35: TypeInt 32 1
|
35: TypeInt 32 1
|
||||||
36: 35(int) Constant 2
|
36: 35(int) Constant 2
|
||||||
37: TypePointer Input 7(float)
|
37: TypePointer Input 7(float)
|
||||||
42: TypePointer Input 27(fvec4)
|
42: TypePointer Input 27(fvec4)
|
||||||
43(k): 42(ptr) Variable Input
|
43(k): 42(ptr) Variable Input
|
||||||
45: TypeVector 35(int) 4
|
45: TypeVector 35(int) 4
|
||||||
52: TypeSampler7(float) Rect filter+texture
|
52: TypeImage 7(float) Rect sampled format:Unknown
|
||||||
53: TypePointer UniformConstant 52
|
53: TypeSampledImage 52
|
||||||
54(sampR): 53(ptr) Variable UniformConstant
|
54: TypePointer UniformConstant 53
|
||||||
56: TypeVector 35(int) 2
|
55(sampR): 54(ptr) Variable UniformConstant
|
||||||
58: TypeSampler35(int) Buffer filter+texture
|
57: TypeVector 35(int) 2
|
||||||
59: TypePointer UniformConstant 58
|
59: TypeImage 35(int) Buffer sampled format:Unknown
|
||||||
60(sampB): 59(ptr) Variable UniformConstant
|
60: TypeSampledImage 59
|
||||||
65: TypeVector 7(float) 2
|
61: TypePointer UniformConstant 60
|
||||||
68: 7(float) Constant 1120403456
|
62(sampB): 61(ptr) Variable UniformConstant
|
||||||
79: TypeSampler7(float) 2D filter+texture
|
67: TypeVector 7(float) 2
|
||||||
80: 30(int) Constant 3
|
70: 7(float) Constant 1120403456
|
||||||
81: TypeArray 79 80
|
81: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
82: TypePointer UniformConstant 81
|
82: TypeSampledImage 81
|
||||||
83(samp2Da): 82(ptr) Variable UniformConstant
|
83: 30(int) Constant 3
|
||||||
84: TypeMatrix 27(fvec4) 4
|
84: TypeArray 82 83
|
||||||
85: 30(int) Constant 4
|
85: TypePointer UniformConstant 84
|
||||||
86: TypeArray 84 85
|
86(samp2Da): 85(ptr) Variable UniformConstant
|
||||||
87(bn): TypeStruct 86 86 84 84 84
|
87: TypeMatrix 27(fvec4) 4
|
||||||
88: TypePointer Uniform 87(bn)
|
88: 30(int) Constant 4
|
||||||
89: 88(ptr) Variable Uniform
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
14: 13(ptr) Variable Function
|
14: 13(ptr) Variable Function
|
||||||
18: 15(bool) Load 17(gl_FrontFacing)
|
18: 15(bool) Load 17(gl_FrontFacing)
|
||||||
SelectionMerge 20 None
|
SelectionMerge 20 None
|
||||||
BranchConditional 18 19 22
|
BranchConditional 18 19 22
|
||||||
19: Label
|
19: Label
|
||||||
Store 14 21
|
Store 14 21
|
||||||
Branch 20
|
Branch 20
|
||||||
22: Label
|
22: Label
|
||||||
Store 14 23
|
Store 14 23
|
||||||
Branch 20
|
Branch 20
|
||||||
20: Label
|
20: Label
|
||||||
24: 7(float) Load 14
|
24: 7(float) Load 14
|
||||||
Store 12(i1) 24
|
Store 12(i1) 24
|
||||||
Store 25(i2) 26
|
Store 25(i2) 26
|
||||||
38: 37(ptr) AccessChain 34(gl_ClipDistance) 36
|
38: 37(ptr) AccessChain 34(gl_ClipDistance) 36
|
||||||
39: 7(float) Load 38
|
39: 7(float) Load 38
|
||||||
40: 27(fvec4) Load 29(o)
|
40: 27(fvec4) Load 29(o)
|
||||||
41: 27(fvec4) CompositeInsert 39 40 1
|
41: 27(fvec4) CompositeInsert 39 40 1
|
||||||
Store 29(o) 41
|
Store 29(o) 41
|
||||||
44: 27(fvec4) Load 43(k)
|
44: 27(fvec4) Load 43(k)
|
||||||
46: 45(ivec4) ConvertFToS 44
|
46: 45(ivec4) ConvertFToS 44
|
||||||
47: 35(int) CompositeExtract 46 0
|
47: 35(int) CompositeExtract 46 0
|
||||||
48: 37(ptr) AccessChain 34(gl_ClipDistance) 47
|
48: 37(ptr) AccessChain 34(gl_ClipDistance) 47
|
||||||
49: 7(float) Load 48
|
49: 7(float) Load 48
|
||||||
50: 27(fvec4) Load 29(o)
|
50: 27(fvec4) Load 29(o)
|
||||||
51: 27(fvec4) CompositeInsert 49 50 2
|
51: 27(fvec4) CompositeInsert 49 50 2
|
||||||
Store 29(o) 51
|
Store 29(o) 51
|
||||||
55: 52 Load 54(sampR)
|
56: 53 Load 55(sampR)
|
||||||
57: 56(ivec2) TextureQuerySize 55
|
58: 57(ivec2) ImageQuerySize 56
|
||||||
61: 58 Load 60(sampB)
|
63: 60 Load 62(sampB)
|
||||||
62: 35(int) TextureQuerySize 61
|
64: 35(int) ImageQuerySize 63
|
||||||
63: 56(ivec2) CompositeConstruct 62 62
|
65: 57(ivec2) CompositeConstruct 64 64
|
||||||
64: 56(ivec2) IAdd 57 63
|
66: 57(ivec2) IAdd 58 65
|
||||||
66: 65(fvec2) ConvertSToF 64
|
68: 67(fvec2) ConvertSToF 66
|
||||||
67: 7(float) CompositeExtract 66 0
|
69: 7(float) CompositeExtract 68 0
|
||||||
69: 7(float) FDiv 67 68
|
71: 7(float) FDiv 69 70
|
||||||
70: 27(fvec4) Load 29(o)
|
72: 27(fvec4) Load 29(o)
|
||||||
71: 27(fvec4) CompositeInsert 69 70 3
|
73: 27(fvec4) CompositeInsert 71 72 3
|
||||||
Store 29(o) 71
|
Store 29(o) 73
|
||||||
72: 7(float) FunctionCall 9(foo()
|
74: 7(float) FunctionCall 9(foo()
|
||||||
73: 27(fvec4) Load 29(o)
|
75: 27(fvec4) Load 29(o)
|
||||||
74: 27(fvec4) CompositeInsert 72 73 2
|
76: 27(fvec4) CompositeInsert 74 75 2
|
||||||
Store 29(o) 74
|
Store 29(o) 76
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
9(foo(): 7(float) Function None 8
|
9(foo(): 7(float) Function None 8
|
||||||
10: Label
|
10: Label
|
||||||
75: 7(float) Load 12(i1)
|
77: 7(float) Load 12(i1)
|
||||||
76: 7(float) Load 25(i2)
|
78: 7(float) Load 25(i2)
|
||||||
77: 7(float) FAdd 75 76
|
79: 7(float) FAdd 77 78
|
||||||
ReturnValue 77
|
ReturnValue 79
|
||||||
FunctionEnd
|
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
|
// Id's are bound by 72
|
||||||
|
|
||||||
Source GLSL 150
|
Source GLSL 150
|
||||||
|
Capability Geometry
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Geometry 4
|
EntryPoint Geometry 4 "main"
|
||||||
ExecutionMode 4 InputTrianglesAdjacency
|
ExecutionMode 4 InputTrianglesAdjacency
|
||||||
ExecutionMode 4 Invocations 0
|
ExecutionMode 4 Invocations 0
|
||||||
ExecutionMode 4 OutputTriangleStrip
|
ExecutionMode 4 OutputTriangleStrip
|
||||||
ExecutionMode 4 OutputVertices 30
|
ExecutionMode 4 OutputVertices 30
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "fromVertex"
|
Name 9 "fromVertex"
|
||||||
@ -38,36 +39,36 @@ Linked geometry stage:
|
|||||||
Name 69 "toFragment"
|
Name 69 "toFragment"
|
||||||
MemberName 69(toFragment) 0 "color"
|
MemberName 69(toFragment) 0 "color"
|
||||||
Name 71 "toF"
|
Name 71 "toF"
|
||||||
Decorate 9(fromVertex) Block
|
Decorate 9(fromVertex) Block
|
||||||
Decorate 9(fromVertex) Stream 3
|
Decorate 9(fromVertex) Stream 3
|
||||||
Decorate 11 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) 0 BuiltIn Position
|
||||||
MemberDecorate 28(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 28(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 28(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 28(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
Decorate 28(gl_PerVertex) Block
|
Decorate 28(gl_PerVertex) Block
|
||||||
Decorate 28(gl_PerVertex) Stream 0
|
Decorate 28(gl_PerVertex) Stream 0
|
||||||
Decorate 30 Stream 0
|
Decorate 30 Stream 0
|
||||||
MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position
|
MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position
|
||||||
MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance
|
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) Stream 0
|
||||||
Decorate 48(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 48(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
Decorate 50(gl_PrimitiveIDIn) BuiltIn PrimitiveId
|
Decorate 50(gl_PrimitiveIDIn) BuiltIn PrimitiveId
|
||||||
Decorate 52(gl_Layer) Stream 0
|
Decorate 52(gl_Layer) Stream 0
|
||||||
Decorate 52(gl_Layer) BuiltIn Layer
|
Decorate 52(gl_Layer) BuiltIn Layer
|
||||||
Decorate 69(toFragment) Block
|
Decorate 69(toFragment) Block
|
||||||
Decorate 69(toFragment) Stream 3
|
Decorate 69(toFragment) Stream 3
|
||||||
Decorate 71(toF) Stream 3
|
Decorate 71(toF) Stream 3
|
||||||
Decorate 71(toF) NoStaticUse
|
Decorate 71(toF) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 3
|
8: TypeVector 7(float) 3
|
||||||
9(fromVertex): TypeStruct 8(fvec3)
|
9(fromVertex): TypeStruct 8(fvec3)
|
||||||
10: TypePointer Output 9(fromVertex)
|
10: TypePointer Output 9(fromVertex)
|
||||||
11: 10(ptr) Variable Output
|
11: 10(ptr) Variable Output
|
||||||
12: TypeInt 32 1
|
12: TypeInt 32 1
|
||||||
13: 12(int) Constant 0
|
13: 12(int) Constant 0
|
||||||
14(fromVertex): TypeStruct 8(fvec3)
|
14(fromVertex): TypeStruct 8(fvec3)
|
||||||
@ -75,7 +76,7 @@ Linked geometry stage:
|
|||||||
16: 15(int) Constant 6
|
16: 15(int) Constant 6
|
||||||
17: TypeArray 14(fromVertex) 16
|
17: TypeArray 14(fromVertex) 16
|
||||||
18: TypePointer Input 17
|
18: TypePointer Input 17
|
||||||
19(fromV): 18(ptr) Variable Input
|
19(fromV): 18(ptr) Variable Input
|
||||||
20: TypePointer Input 8(fvec3)
|
20: TypePointer Input 8(fvec3)
|
||||||
23: TypePointer Output 8(fvec3)
|
23: TypePointer Output 8(fvec3)
|
||||||
25: TypeVector 7(float) 4
|
25: TypeVector 7(float) 4
|
||||||
@ -83,11 +84,11 @@ Linked geometry stage:
|
|||||||
27: TypeArray 7(float) 26
|
27: TypeArray 7(float) 26
|
||||||
28(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
|
28(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
|
||||||
29: TypePointer Output 28(gl_PerVertex)
|
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
|
31(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
|
||||||
32: TypeArray 31(gl_PerVertex) 16
|
32: TypeArray 31(gl_PerVertex) 16
|
||||||
33: TypePointer Input 32
|
33: TypePointer Input 32
|
||||||
34(gl_in): 33(ptr) Variable Input
|
34(gl_in): 33(ptr) Variable Input
|
||||||
35: TypePointer Input 25(fvec4)
|
35: TypePointer Input 25(fvec4)
|
||||||
38: TypePointer Output 25(fvec4)
|
38: TypePointer Output 25(fvec4)
|
||||||
40: 12(int) Constant 1
|
40: 12(int) Constant 1
|
||||||
@ -95,52 +96,52 @@ Linked geometry stage:
|
|||||||
42: TypePointer Input 7(float)
|
42: TypePointer Input 7(float)
|
||||||
45: TypePointer Output 7(float)
|
45: TypePointer Output 7(float)
|
||||||
47: TypePointer Output 12(int)
|
47: TypePointer Output 12(int)
|
||||||
48(gl_PrimitiveID): 47(ptr) Variable Output
|
48(gl_PrimitiveID): 47(ptr) Variable Output
|
||||||
49: TypePointer Input 12(int)
|
49: TypePointer Input 12(int)
|
||||||
50(gl_PrimitiveIDIn): 49(ptr) Variable Input
|
50(gl_PrimitiveIDIn): 49(ptr) Variable Input
|
||||||
52(gl_Layer): 47(ptr) Variable Output
|
52(gl_Layer): 47(ptr) Variable Output
|
||||||
53: 12(int) Constant 2
|
53: 12(int) Constant 2
|
||||||
54: 7(float) Constant 1073741824
|
54: 7(float) Constant 1073741824
|
||||||
69(toFragment): TypeStruct 8(fvec3)
|
69(toFragment): TypeStruct 8(fvec3)
|
||||||
70: TypePointer Output 69(toFragment)
|
70: TypePointer Output 69(toFragment)
|
||||||
71(toF): 70(ptr) Variable Output
|
71(toF): 70(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
21: 20(ptr) AccessChain 19(fromV) 13 13
|
21: 20(ptr) AccessChain 19(fromV) 13 13
|
||||||
22: 8(fvec3) Load 21
|
22: 8(fvec3) Load 21
|
||||||
24: 23(ptr) AccessChain 11 13
|
24: 23(ptr) AccessChain 11 13
|
||||||
Store 24 22
|
Store 24 22
|
||||||
36: 35(ptr) AccessChain 34(gl_in) 13 13
|
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
|
39: 38(ptr) AccessChain 30 13
|
||||||
Store 39 37
|
Store 39 37
|
||||||
43: 42(ptr) AccessChain 34(gl_in) 41 40
|
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
|
46: 45(ptr) AccessChain 30 40
|
||||||
Store 46 44
|
Store 46 44
|
||||||
51: 12(int) Load 50(gl_PrimitiveIDIn)
|
51: 12(int) Load 50(gl_PrimitiveIDIn)
|
||||||
Store 48(gl_PrimitiveID) 51
|
Store 48(gl_PrimitiveID) 51
|
||||||
Store 52(gl_Layer) 53
|
Store 52(gl_Layer) 53
|
||||||
EmitVertex
|
EmitVertex
|
||||||
55: 20(ptr) AccessChain 19(fromV) 13 13
|
55: 20(ptr) AccessChain 19(fromV) 13 13
|
||||||
56: 8(fvec3) Load 55
|
56: 8(fvec3) Load 55
|
||||||
57: 8(fvec3) VectorTimesScalar 56 54
|
57: 8(fvec3) VectorTimesScalar 56 54
|
||||||
58: 23(ptr) AccessChain 11 13
|
58: 23(ptr) AccessChain 11 13
|
||||||
Store 58 57
|
Store 58 57
|
||||||
59: 35(ptr) AccessChain 34(gl_in) 13 13
|
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
|
61: 25(fvec4) VectorTimesScalar 60 54
|
||||||
62: 38(ptr) AccessChain 30 13
|
62: 38(ptr) AccessChain 30 13
|
||||||
Store 62 61
|
Store 62 61
|
||||||
63: 42(ptr) AccessChain 34(gl_in) 41 40
|
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
|
65: 7(float) FMul 54 64
|
||||||
66: 45(ptr) AccessChain 30 40
|
66: 45(ptr) AccessChain 30 40
|
||||||
Store 66 65
|
Store 66 65
|
||||||
67: 12(int) Load 50(gl_PrimitiveIDIn)
|
67: 12(int) Load 50(gl_PrimitiveIDIn)
|
||||||
68: 12(int) IAdd 67 40
|
68: 12(int) IAdd 67 40
|
||||||
Store 48(gl_PrimitiveID) 68
|
Store 48(gl_PrimitiveID) 68
|
||||||
Store 52(gl_Layer) 41
|
Store 52(gl_Layer) 41
|
||||||
EmitVertex
|
EmitVertex
|
||||||
EndPrimitive
|
EndPrimitive
|
||||||
Branch 6
|
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
|
// Id's are bound by 53
|
||||||
|
|
||||||
Source GLSL 150
|
Source GLSL 150
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 14 "gl_PerVertex"
|
Name 14 "gl_PerVertex"
|
||||||
MemberName 14(gl_PerVertex) 0 "gl_Position"
|
MemberName 14(gl_PerVertex) 0 "gl_Position"
|
||||||
@ -38,19 +39,18 @@ Linked vertex stage:
|
|||||||
Name 49 "ui"
|
Name 49 "ui"
|
||||||
Name 51 "gl_VertexID"
|
Name 51 "gl_VertexID"
|
||||||
Name 52 "gl_InstanceID"
|
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) 0 BuiltIn Position
|
||||||
MemberDecorate 14(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 14(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 14(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 14(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
MemberDecorate 14(gl_PerVertex) 3 BuiltIn ClipVertex
|
Decorate 14(gl_PerVertex) Block
|
||||||
Decorate 14(gl_PerVertex) Block
|
Decorate 49(ui) NoStaticUse
|
||||||
Decorate 49(ui) NoStaticUse
|
|
||||||
Decorate 51(gl_VertexID) BuiltIn VertexId
|
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) BuiltIn InstanceId
|
||||||
Decorate 52(gl_InstanceID) NoStaticUse
|
Decorate 52(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypeInt 32 0
|
9: TypeInt 32 0
|
||||||
@ -60,15 +60,15 @@ Linked vertex stage:
|
|||||||
13: TypeArray 8(fvec4) 12
|
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)
|
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)
|
15: TypePointer Output 14(gl_PerVertex)
|
||||||
16: 15(ptr) Variable Output
|
16: 15(ptr) Variable Output
|
||||||
17: TypeInt 32 1
|
17: TypeInt 32 1
|
||||||
18: 17(int) Constant 0
|
18: 17(int) Constant 0
|
||||||
19: TypePointer Input 8(fvec4)
|
19: TypePointer Input 8(fvec4)
|
||||||
20(iv4): 19(ptr) Variable Input
|
20(iv4): 19(ptr) Variable Input
|
||||||
22: TypePointer Output 8(fvec4)
|
22: TypePointer Output 8(fvec4)
|
||||||
24: 17(int) Constant 1
|
24: 17(int) Constant 1
|
||||||
25: TypePointer UniformConstant 7(float)
|
25: TypePointer UniformConstant 7(float)
|
||||||
26(ps): 25(ptr) Variable UniformConstant
|
26(ps): 25(ptr) Variable UniformConstant
|
||||||
28: TypePointer Output 7(float)
|
28: TypePointer Output 7(float)
|
||||||
30: 17(int) Constant 2
|
30: 17(int) Constant 2
|
||||||
34: 9(int) Constant 3
|
34: 9(int) Constant 3
|
||||||
@ -77,32 +77,32 @@ Linked vertex stage:
|
|||||||
37: TypeArray 36(s1) 10
|
37: TypeArray 36(s1) 10
|
||||||
38(s2): TypeStruct 17(int) 37
|
38(s2): TypeStruct 17(int) 37
|
||||||
39: TypePointer Output 38(s2)
|
39: TypePointer Output 38(s2)
|
||||||
40(s2out): 39(ptr) Variable Output
|
40(s2out): 39(ptr) Variable Output
|
||||||
41: TypePointer Function 17(int)
|
41: TypePointer Function 17(int)
|
||||||
48: TypePointer UniformConstant 17(int)
|
48: TypePointer UniformConstant 17(int)
|
||||||
49(ui): 48(ptr) Variable UniformConstant
|
49(ui): 48(ptr) Variable UniformConstant
|
||||||
50: TypePointer Input 17(int)
|
50: TypePointer Input 17(int)
|
||||||
51(gl_VertexID): 50(ptr) Variable Input
|
51(gl_VertexID): 50(ptr) Variable Input
|
||||||
52(gl_InstanceID): 50(ptr) Variable Input
|
52(gl_InstanceID): 50(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
42(i): 41(ptr) Variable Function
|
42(i): 41(ptr) Variable Function
|
||||||
21: 8(fvec4) Load 20(iv4)
|
21: 8(fvec4) Load 20(iv4)
|
||||||
23: 22(ptr) AccessChain 16 18
|
23: 22(ptr) AccessChain 16 18
|
||||||
Store 23 21
|
Store 23 21
|
||||||
27: 7(float) Load 26(ps)
|
27: 7(float) Load 26(ps)
|
||||||
29: 28(ptr) AccessChain 16 24
|
29: 28(ptr) AccessChain 16 24
|
||||||
Store 29 27
|
Store 29 27
|
||||||
31: 8(fvec4) Load 20(iv4)
|
31: 8(fvec4) Load 20(iv4)
|
||||||
32: 7(float) CompositeExtract 31 0
|
32: 7(float) CompositeExtract 31 0
|
||||||
33: 28(ptr) AccessChain 16 30 30
|
33: 28(ptr) AccessChain 16 30 30
|
||||||
Store 33 32
|
Store 33 32
|
||||||
43: 17(int) Load 42(i)
|
43: 17(int) Load 42(i)
|
||||||
44: 7(float) Load 26(ps)
|
44: 7(float) Load 26(ps)
|
||||||
45: 22(ptr) AccessChain 40(s2out) 24 43 30 30
|
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
|
47: 8(fvec4) CompositeInsert 44 46 3
|
||||||
Store 45 47
|
Store 45 47
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 41
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 12 "gl_VertexID"
|
Name 12 "gl_VertexID"
|
||||||
@ -19,63 +20,59 @@ Linked vertex stage:
|
|||||||
Name 26 "ps"
|
Name 26 "ps"
|
||||||
Name 34 "gl_PointSize"
|
Name 34 "gl_PointSize"
|
||||||
Name 40 "gl_InstanceID"
|
Name 40 "gl_InstanceID"
|
||||||
Decorate 9(i) PrecisionMedium
|
Decorate 9(i) RelaxedPrecision
|
||||||
Decorate 12(gl_VertexID) PrecisionHigh
|
|
||||||
Decorate 12(gl_VertexID) BuiltIn VertexId
|
Decorate 12(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 17(j) PrecisionMedium
|
Decorate 17(j) RelaxedPrecision
|
||||||
Decorate 24(gl_Position) PrecisionHigh
|
Decorate 24(gl_Position) Invariant
|
||||||
Decorate 24(gl_Position) Invariant
|
|
||||||
Decorate 24(gl_Position) BuiltIn Position
|
Decorate 24(gl_Position) BuiltIn Position
|
||||||
Decorate 26(ps) PrecisionMedium
|
Decorate 26(ps) RelaxedPrecision
|
||||||
Decorate 34(gl_PointSize) PrecisionHigh
|
|
||||||
Decorate 34(gl_PointSize) BuiltIn PointSize
|
Decorate 34(gl_PointSize) BuiltIn PointSize
|
||||||
Decorate 40(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 40(gl_InstanceID) BuiltIn InstanceId
|
Decorate 40(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 40(gl_InstanceID) NoStaticUse
|
Decorate 40(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 4
|
10: 7(int) Constant 4
|
||||||
11: TypePointer Input 7(int)
|
11: TypePointer Input 7(int)
|
||||||
12(gl_VertexID): 11(ptr) Variable Input
|
12(gl_VertexID): 11(ptr) Variable Input
|
||||||
15: 7(int) Constant 10
|
15: 7(int) Constant 10
|
||||||
21: TypeFloat 32
|
21: TypeFloat 32
|
||||||
22: TypeVector 21(float) 4
|
22: TypeVector 21(float) 4
|
||||||
23: TypePointer Output 22(fvec4)
|
23: TypePointer Output 22(fvec4)
|
||||||
24(gl_Position): 23(ptr) Variable Output
|
24(gl_Position): 23(ptr) Variable Output
|
||||||
25: TypePointer Input 21(float)
|
25: TypePointer Input 21(float)
|
||||||
26(ps): 25(ptr) Variable Input
|
26(ps): 25(ptr) Variable Input
|
||||||
33: TypePointer Output 21(float)
|
33: TypePointer Output 21(float)
|
||||||
34(gl_PointSize): 33(ptr) Variable Output
|
34(gl_PointSize): 33(ptr) Variable Output
|
||||||
40(gl_InstanceID): 11(ptr) Variable Input
|
40(gl_InstanceID): 11(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
17(j): 8(ptr) Variable Function
|
17(j): 8(ptr) Variable Function
|
||||||
13: 7(int) Load 12(gl_VertexID)
|
13: 7(int) Load 12(gl_VertexID)
|
||||||
14: 7(int) IMul 10 13
|
14: 7(int) IMul 10 13
|
||||||
16: 7(int) ISub 14 15
|
16: 7(int) ISub 14 15
|
||||||
Store 9(i) 16
|
Store 9(i) 16
|
||||||
18: 7(int) Load 12(gl_VertexID)
|
18: 7(int) Load 12(gl_VertexID)
|
||||||
19: 7(int) IMul 10 18
|
19: 7(int) IMul 10 18
|
||||||
20: 7(int) ISub 19 15
|
20: 7(int) ISub 19 15
|
||||||
Store 17(j) 20
|
Store 17(j) 20
|
||||||
27: 21(float) Load 26(ps)
|
27: 21(float) Load 26(ps)
|
||||||
28: 22(fvec4) CompositeConstruct 27 27 27 27
|
28: 22(fvec4) CompositeConstruct 27 27 27 27
|
||||||
Store 24(gl_Position) 28
|
Store 24(gl_Position) 28
|
||||||
29: 7(int) Load 9(i)
|
29: 7(int) Load 9(i)
|
||||||
30: 21(float) ConvertSToF 29
|
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
|
32: 22(fvec4) VectorTimesScalar 31 30
|
||||||
Store 24(gl_Position) 32
|
Store 24(gl_Position) 32
|
||||||
35: 21(float) Load 26(ps)
|
35: 21(float) Load 26(ps)
|
||||||
Store 34(gl_PointSize) 35
|
Store 34(gl_PointSize) 35
|
||||||
36: 7(int) Load 17(j)
|
36: 7(int) Load 17(j)
|
||||||
37: 21(float) ConvertSToF 36
|
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
|
39: 21(float) FMul 38 37
|
||||||
Store 34(gl_PointSize) 39
|
Store 34(gl_PointSize) 39
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 38
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "c"
|
Name 10 "c"
|
||||||
Name 12 "color"
|
Name 12 "color"
|
||||||
@ -20,27 +22,27 @@ Linked fragment stage:
|
|||||||
Name 16 "s"
|
Name 16 "s"
|
||||||
Name 27 "p"
|
Name 27 "p"
|
||||||
Name 30 "pos"
|
Name 30 "pos"
|
||||||
Decorate 10(c) PrecisionMedium
|
Decorate 10(c) RelaxedPrecision
|
||||||
Decorate 10(c) Location 7
|
Decorate 10(c) Location 7
|
||||||
Decorate 12(color) PrecisionMedium
|
Decorate 12(color) RelaxedPrecision
|
||||||
Decorate 12(color) Smooth
|
Decorate 12(color) Smooth
|
||||||
MemberDecorate 14(S) 0 PrecisionMedium
|
MemberDecorate 14(S) 0 RelaxedPrecision
|
||||||
MemberDecorate 14(S) 1 PrecisionMedium
|
MemberDecorate 14(S) 1 RelaxedPrecision
|
||||||
Decorate 27(p) PrecisionMedium
|
Decorate 27(p) RelaxedPrecision
|
||||||
Decorate 27(p) Location 3
|
Decorate 27(p) Location 3
|
||||||
Decorate 30(pos) PrecisionMedium
|
Decorate 30(pos) RelaxedPrecision
|
||||||
Decorate 30(pos) Smooth
|
Decorate 30(pos) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 3
|
8: TypeVector 7(float) 3
|
||||||
9: TypePointer Output 8(fvec3)
|
9: TypePointer Output 8(fvec3)
|
||||||
10(c): 9(ptr) Variable Output
|
10(c): 9(ptr) Variable Output
|
||||||
11: TypePointer Input 8(fvec3)
|
11: TypePointer Input 8(fvec3)
|
||||||
12(color): 11(ptr) Variable Input
|
12(color): 11(ptr) Variable Input
|
||||||
14(S): TypeStruct 8(fvec3) 7(float)
|
14(S): TypeStruct 8(fvec3) 7(float)
|
||||||
15: TypePointer Input 14(S)
|
15: TypePointer Input 14(S)
|
||||||
16(s): 15(ptr) Variable Input
|
16(s): 15(ptr) Variable Input
|
||||||
17: TypeInt 32 1
|
17: TypeInt 32 1
|
||||||
18: 17(int) Constant 0
|
18: 17(int) Constant 0
|
||||||
22: TypeVector 7(float) 4
|
22: TypeVector 7(float) 4
|
||||||
@ -48,25 +50,25 @@ Linked fragment stage:
|
|||||||
24: 23(int) Constant 2
|
24: 23(int) Constant 2
|
||||||
25: TypeArray 22(fvec4) 24
|
25: TypeArray 22(fvec4) 24
|
||||||
26: TypePointer Output 25
|
26: TypePointer Output 25
|
||||||
27(p): 26(ptr) Variable Output
|
27(p): 26(ptr) Variable Output
|
||||||
28: 17(int) Constant 1
|
28: 17(int) Constant 1
|
||||||
29: TypePointer Input 22(fvec4)
|
29: TypePointer Input 22(fvec4)
|
||||||
30(pos): 29(ptr) Variable Input
|
30(pos): 29(ptr) Variable Input
|
||||||
32: TypePointer Input 7(float)
|
32: TypePointer Input 7(float)
|
||||||
36: TypePointer Output 22(fvec4)
|
36: TypePointer Output 22(fvec4)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
13: 8(fvec3) Load 12(color)
|
13: 8(fvec3) Load 12(color)
|
||||||
19: 11(ptr) AccessChain 16(s) 18
|
19: 11(ptr) AccessChain 16(s) 18
|
||||||
20: 8(fvec3) Load 19
|
20: 8(fvec3) Load 19
|
||||||
21: 8(fvec3) FAdd 13 20
|
21: 8(fvec3) FAdd 13 20
|
||||||
Store 10(c) 21
|
Store 10(c) 21
|
||||||
31: 22(fvec4) Load 30(pos)
|
31: 22(fvec4) Load 30(pos)
|
||||||
33: 32(ptr) AccessChain 16(s) 28
|
33: 32(ptr) AccessChain 16(s) 28
|
||||||
34: 7(float) Load 33
|
34: 7(float) Load 33
|
||||||
35: 22(fvec4) VectorTimesScalar 31 34
|
35: 22(fvec4) VectorTimesScalar 31 34
|
||||||
37: 36(ptr) AccessChain 27(p) 28
|
37: 36(ptr) AccessChain 27(p) 28
|
||||||
Store 37 35
|
Store 37 35
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 112
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "pos"
|
Name 10 "pos"
|
||||||
Name 12 "p"
|
Name 12 "p"
|
||||||
@ -41,64 +42,47 @@ Linked vertex stage:
|
|||||||
Name 80 "s"
|
Name 80 "s"
|
||||||
Name 110 "gl_VertexID"
|
Name 110 "gl_VertexID"
|
||||||
Name 111 "gl_InstanceID"
|
Name 111 "gl_InstanceID"
|
||||||
Decorate 10(pos) PrecisionHigh
|
Decorate 10(pos) Smooth
|
||||||
Decorate 10(pos) Smooth
|
|
||||||
Decorate 12(p) PrecisionHigh
|
|
||||||
Decorate 12(p) Location 3
|
Decorate 12(p) Location 3
|
||||||
MemberDecorate 18(Transform) 0 RowMajor
|
MemberDecorate 18(Transform) 0 RowMajor
|
||||||
MemberDecorate 18(Transform) 0 PrecisionHigh
|
MemberDecorate 18(Transform) 0 Offset 0
|
||||||
MemberDecorate 18(Transform) 1 ColMajor
|
MemberDecorate 18(Transform) 1 ColMajor
|
||||||
MemberDecorate 18(Transform) 1 PrecisionHigh
|
MemberDecorate 18(Transform) 1 Offset 64
|
||||||
MemberDecorate 18(Transform) 2 RowMajor
|
MemberDecorate 18(Transform) 2 RowMajor
|
||||||
MemberDecorate 18(Transform) 2 PrecisionHigh
|
MemberDecorate 18(Transform) 2 Offset 128
|
||||||
MemberDecorate 18(Transform) 3 PrecisionHigh
|
MemberDecorate 18(Transform) 3 Offset 176
|
||||||
Decorate 18(Transform) GLSLStd140
|
Decorate 18(Transform) Block
|
||||||
Decorate 18(Transform) Block
|
MemberDecorate 34(T3) 0 ColMajor
|
||||||
MemberDecorate 34(T3) 0 ColMajor
|
MemberDecorate 34(T3) 1 RowMajor
|
||||||
MemberDecorate 34(T3) 0 PrecisionHigh
|
MemberDecorate 34(T3) 2 ColMajor
|
||||||
MemberDecorate 34(T3) 1 RowMajor
|
Decorate 34(T3) GLSLShared
|
||||||
MemberDecorate 34(T3) 1 PrecisionHigh
|
Decorate 34(T3) Block
|
||||||
MemberDecorate 34(T3) 2 ColMajor
|
MemberDecorate 44(T2) 1 RowMajor
|
||||||
MemberDecorate 34(T3) 2 PrecisionHigh
|
Decorate 44(T2) GLSLShared
|
||||||
MemberDecorate 34(T3) 3 PrecisionHigh
|
Decorate 44(T2) Block
|
||||||
Decorate 34(T3) GLSLShared
|
Decorate 52(color) Smooth
|
||||||
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
|
|
||||||
Decorate 54(c) Location 7
|
Decorate 54(c) Location 7
|
||||||
Decorate 62(iout) PrecisionHigh
|
Decorate 62(iout) Flat
|
||||||
Decorate 62(iout) Flat
|
|
||||||
Decorate 68(uiuin) PrecisionHigh
|
|
||||||
Decorate 74(aiv2) PrecisionHigh
|
|
||||||
Decorate 74(aiv2) Location 9
|
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) BuiltIn VertexId
|
||||||
Decorate 110(gl_VertexID) NoStaticUse
|
Decorate 110(gl_VertexID) NoStaticUse
|
||||||
Decorate 111(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 111(gl_InstanceID) BuiltIn InstanceId
|
Decorate 111(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 111(gl_InstanceID) NoStaticUse
|
Decorate 111(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Output 8(fvec4)
|
9: TypePointer Output 8(fvec4)
|
||||||
10(pos): 9(ptr) Variable Output
|
10(pos): 9(ptr) Variable Output
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(p): 11(ptr) Variable Input
|
12(p): 11(ptr) Variable Input
|
||||||
14: TypeMatrix 8(fvec4) 4
|
14: TypeMatrix 8(fvec4) 4
|
||||||
15: TypeVector 7(float) 3
|
15: TypeVector 7(float) 3
|
||||||
16: TypeMatrix 15(fvec3) 3
|
16: TypeMatrix 15(fvec3) 3
|
||||||
17: TypeInt 32 1
|
17: TypeInt 32 1
|
||||||
18(Transform): TypeStruct 14 14 16 17(int)
|
18(Transform): TypeStruct 14 14 16 17(int)
|
||||||
19: TypePointer Uniform 18(Transform)
|
19: TypePointer Uniform 18(Transform)
|
||||||
20(tblock): 19(ptr) Variable Uniform
|
20(tblock): 19(ptr) Variable Uniform
|
||||||
21: 17(int) Constant 0
|
21: 17(int) Constant 0
|
||||||
22: TypePointer Uniform 14
|
22: TypePointer Uniform 14
|
||||||
25: 17(int) Constant 1
|
25: 17(int) Constant 1
|
||||||
@ -109,29 +93,29 @@ Linked vertex stage:
|
|||||||
33: TypeArray 31(ivec3) 32
|
33: TypeArray 31(ivec3) 32
|
||||||
34(T3): TypeStruct 14 14 29 33
|
34(T3): TypeStruct 14 14 29 33
|
||||||
35: TypePointer Uniform 34(T3)
|
35: TypePointer Uniform 34(T3)
|
||||||
36: 35(ptr) Variable Uniform
|
36: 35(ptr) Variable Uniform
|
||||||
43: TypeBool
|
43: TypeBool
|
||||||
44(T2): TypeStruct 43(bool) 14
|
44(T2): TypeStruct 43(bool) 14
|
||||||
45: TypePointer Uniform 44(T2)
|
45: TypePointer Uniform 44(T2)
|
||||||
46: 45(ptr) Variable Uniform
|
46: 45(ptr) Variable Uniform
|
||||||
51: TypePointer Output 15(fvec3)
|
51: TypePointer Output 15(fvec3)
|
||||||
52(color): 51(ptr) Variable Output
|
52(color): 51(ptr) Variable Output
|
||||||
53: TypePointer Input 15(fvec3)
|
53: TypePointer Input 15(fvec3)
|
||||||
54(c): 53(ptr) Variable Input
|
54(c): 53(ptr) Variable Input
|
||||||
56: 17(int) Constant 2
|
56: 17(int) Constant 2
|
||||||
57: TypePointer Uniform 16
|
57: TypePointer Uniform 16
|
||||||
61: TypePointer Output 17(int)
|
61: TypePointer Output 17(int)
|
||||||
62(iout): 61(ptr) Variable Output
|
62(iout): 61(ptr) Variable Output
|
||||||
63: 17(int) Constant 3
|
63: 17(int) Constant 3
|
||||||
64: TypePointer Uniform 17(int)
|
64: TypePointer Uniform 17(int)
|
||||||
67: TypePointer UniformConstant 30(int)
|
67: TypePointer UniformConstant 30(int)
|
||||||
68(uiuin): 67(ptr) Variable UniformConstant
|
68(uiuin): 67(ptr) Variable UniformConstant
|
||||||
72: TypeVector 17(int) 2
|
72: TypeVector 17(int) 2
|
||||||
73: TypePointer Input 72(ivec2)
|
73: TypePointer Input 72(ivec2)
|
||||||
74(aiv2): 73(ptr) Variable Input
|
74(aiv2): 73(ptr) Variable Input
|
||||||
78(S): TypeStruct 15(fvec3) 7(float)
|
78(S): TypeStruct 15(fvec3) 7(float)
|
||||||
79: TypePointer Output 78(S)
|
79: TypePointer Output 78(S)
|
||||||
80(s): 79(ptr) Variable Output
|
80(s): 79(ptr) Variable Output
|
||||||
85: TypePointer Output 7(float)
|
85: TypePointer Output 7(float)
|
||||||
87: TypePointer Uniform 15(fvec3)
|
87: TypePointer Uniform 15(fvec3)
|
||||||
90: 7(float) Constant 1065353216
|
90: 7(float) Constant 1065353216
|
||||||
@ -141,65 +125,65 @@ Linked vertex stage:
|
|||||||
98: 30(int) Constant 5
|
98: 30(int) Constant 5
|
||||||
99: 31(ivec3) ConstantComposite 98 98 98
|
99: 31(ivec3) ConstantComposite 98 98 98
|
||||||
109: TypePointer Input 17(int)
|
109: TypePointer Input 17(int)
|
||||||
110(gl_VertexID): 109(ptr) Variable Input
|
110(gl_VertexID): 109(ptr) Variable Input
|
||||||
111(gl_InstanceID): 109(ptr) Variable Input
|
111(gl_InstanceID): 109(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
13: 8(fvec4) Load 12(p)
|
13: 8(fvec4) Load 12(p)
|
||||||
23: 22(ptr) AccessChain 20(tblock) 21
|
23: 22(ptr) AccessChain 20(tblock) 21
|
||||||
24: 14 Load 23
|
24: 14 Load 23
|
||||||
26: 22(ptr) AccessChain 20(tblock) 25
|
26: 22(ptr) AccessChain 20(tblock) 25
|
||||||
27: 14 Load 26
|
27: 14 Load 26
|
||||||
28: 14 MatrixTimesMatrix 24 27
|
28: 14 MatrixTimesMatrix 24 27
|
||||||
37: 22(ptr) AccessChain 36 25
|
37: 22(ptr) AccessChain 36 25
|
||||||
38: 14 Load 37
|
38: 14 Load 37
|
||||||
39: 14 MatrixTimesMatrix 28 38
|
39: 14 MatrixTimesMatrix 28 38
|
||||||
40: 22(ptr) AccessChain 36 21
|
40: 22(ptr) AccessChain 36 21
|
||||||
41: 14 Load 40
|
41: 14 Load 40
|
||||||
42: 14 MatrixTimesMatrix 39 41
|
42: 14 MatrixTimesMatrix 39 41
|
||||||
47: 22(ptr) AccessChain 46 25
|
47: 22(ptr) AccessChain 46 25
|
||||||
48: 14 Load 47
|
48: 14 Load 47
|
||||||
49: 14 MatrixTimesMatrix 42 48
|
49: 14 MatrixTimesMatrix 42 48
|
||||||
50: 8(fvec4) VectorTimesMatrix 13 49
|
50: 8(fvec4) VectorTimesMatrix 13 49
|
||||||
Store 10(pos) 50
|
Store 10(pos) 50
|
||||||
55: 15(fvec3) Load 54(c)
|
55: 15(fvec3) Load 54(c)
|
||||||
58: 57(ptr) AccessChain 20(tblock) 56
|
58: 57(ptr) AccessChain 20(tblock) 56
|
||||||
59: 16 Load 58
|
59: 16 Load 58
|
||||||
60: 15(fvec3) VectorTimesMatrix 55 59
|
60: 15(fvec3) VectorTimesMatrix 55 59
|
||||||
Store 52(color) 60
|
Store 52(color) 60
|
||||||
65: 64(ptr) AccessChain 20(tblock) 63
|
65: 64(ptr) AccessChain 20(tblock) 63
|
||||||
66: 17(int) Load 65
|
66: 17(int) Load 65
|
||||||
69: 30(int) Load 68(uiuin)
|
69: 30(int) Load 68(uiuin)
|
||||||
70: 17(int) Bitcast 69
|
70: 17(int) Bitcast 69
|
||||||
71: 17(int) IAdd 66 70
|
71: 17(int) IAdd 66 70
|
||||||
75: 72(ivec2) Load 74(aiv2)
|
75: 72(ivec2) Load 74(aiv2)
|
||||||
76: 17(int) CompositeExtract 75 1
|
76: 17(int) CompositeExtract 75 1
|
||||||
77: 17(int) IAdd 71 76
|
77: 17(int) IAdd 71 76
|
||||||
Store 62(iout) 77
|
Store 62(iout) 77
|
||||||
81: 15(fvec3) Load 54(c)
|
81: 15(fvec3) Load 54(c)
|
||||||
82: 51(ptr) AccessChain 80(s) 21
|
82: 51(ptr) AccessChain 80(s) 21
|
||||||
Store 82 81
|
Store 82 81
|
||||||
83: 8(fvec4) Load 12(p)
|
83: 8(fvec4) Load 12(p)
|
||||||
84: 7(float) CompositeExtract 83 0
|
84: 7(float) CompositeExtract 83 0
|
||||||
86: 85(ptr) AccessChain 80(s) 25
|
86: 85(ptr) AccessChain 80(s) 25
|
||||||
Store 86 84
|
Store 86 84
|
||||||
88: 87(ptr) AccessChain 36 56 25
|
88: 87(ptr) AccessChain 36 56 25
|
||||||
89: 15(fvec3) Load 88
|
89: 15(fvec3) Load 88
|
||||||
93: 92(bvec3) FOrdNotEqual 89 91
|
93: 92(bvec3) FOrdNotEqual 89 91
|
||||||
94: 43(bool) Any 93
|
94: 43(bool) Any 93
|
||||||
96: 95(ptr) AccessChain 36 63 56
|
96: 95(ptr) AccessChain 36 63 56
|
||||||
97: 31(ivec3) Load 96
|
97: 31(ivec3) Load 96
|
||||||
100: 92(bvec3) INotEqual 97 99
|
100: 92(bvec3) INotEqual 97 99
|
||||||
101: 43(bool) Any 100
|
101: 43(bool) Any 100
|
||||||
102: 43(bool) LogicalOr 94 101
|
102: 43(bool) LogicalOr 94 101
|
||||||
SelectionMerge 104 None
|
SelectionMerge 104 None
|
||||||
BranchConditional 102 103 104
|
BranchConditional 102 103 104
|
||||||
103: Label
|
103: Label
|
||||||
105: 51(ptr) AccessChain 80(s) 21
|
105: 51(ptr) AccessChain 80(s) 21
|
||||||
106: 15(fvec3) Load 105
|
106: 15(fvec3) Load 105
|
||||||
107: 15(fvec3) CompositeConstruct 90 90 90
|
107: 15(fvec3) CompositeConstruct 90 90 90
|
||||||
108: 15(fvec3) FAdd 106 107
|
108: 15(fvec3) FAdd 106 107
|
||||||
Store 105 108
|
Store 105 108
|
||||||
Branch 104
|
Branch 104
|
||||||
104: Label
|
104: Label
|
||||||
Branch 6
|
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
|
Source GLSL 330
|
||||||
SourceExtension "GL_ARB_separate_shader_objects"
|
SourceExtension "GL_ARB_separate_shader_objects"
|
||||||
|
Capability Geometry
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Geometry 4
|
EntryPoint Geometry 4 "main"
|
||||||
ExecutionMode 4 InputTriangles
|
ExecutionMode 4 InputTriangles
|
||||||
ExecutionMode 4 Invocations 0
|
ExecutionMode 4 Invocations 0
|
||||||
ExecutionMode 4 OutputTriangleStrip
|
ExecutionMode 4 OutputTriangleStrip
|
||||||
ExecutionMode 4 OutputVertices 3
|
ExecutionMode 4 OutputVertices 3
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 12 "gl_PerVertex"
|
Name 12 "gl_PerVertex"
|
||||||
@ -27,14 +28,14 @@ Linked geometry stage:
|
|||||||
Name 21 "gl_in"
|
Name 21 "gl_in"
|
||||||
MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position
|
MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position
|
||||||
MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance
|
MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance
|
||||||
Decorate 12(gl_PerVertex) Block
|
Decorate 12(gl_PerVertex) Block
|
||||||
Decorate 12(gl_PerVertex) Stream 0
|
Decorate 12(gl_PerVertex) Stream 0
|
||||||
Decorate 14 Stream 0
|
Decorate 14 Stream 0
|
||||||
MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
|
MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position
|
||||||
MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance
|
MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance
|
||||||
Decorate 17(gl_PerVertex) Block
|
Decorate 17(gl_PerVertex) Block
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypeInt 32 0
|
9: TypeInt 32 0
|
||||||
@ -42,14 +43,14 @@ Linked geometry stage:
|
|||||||
11: TypeArray 7(float) 10
|
11: TypeArray 7(float) 10
|
||||||
12(gl_PerVertex): TypeStruct 8(fvec4) 11
|
12(gl_PerVertex): TypeStruct 8(fvec4) 11
|
||||||
13: TypePointer Output 12(gl_PerVertex)
|
13: TypePointer Output 12(gl_PerVertex)
|
||||||
14: 13(ptr) Variable Output
|
14: 13(ptr) Variable Output
|
||||||
15: TypeInt 32 1
|
15: TypeInt 32 1
|
||||||
16: 15(int) Constant 0
|
16: 15(int) Constant 0
|
||||||
17(gl_PerVertex): TypeStruct 8(fvec4) 11
|
17(gl_PerVertex): TypeStruct 8(fvec4) 11
|
||||||
18: 9(int) Constant 3
|
18: 9(int) Constant 3
|
||||||
19: TypeArray 17(gl_PerVertex) 18
|
19: TypeArray 17(gl_PerVertex) 18
|
||||||
20: TypePointer Input 19
|
20: TypePointer Input 19
|
||||||
21(gl_in): 20(ptr) Variable Input
|
21(gl_in): 20(ptr) Variable Input
|
||||||
22: 15(int) Constant 1
|
22: 15(int) Constant 1
|
||||||
23: TypePointer Input 8(fvec4)
|
23: TypePointer Input 8(fvec4)
|
||||||
26: TypePointer Output 8(fvec4)
|
26: TypePointer Output 8(fvec4)
|
||||||
@ -58,13 +59,13 @@ Linked geometry stage:
|
|||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
24: 23(ptr) AccessChain 21(gl_in) 22 16
|
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
|
27: 26(ptr) AccessChain 14 16
|
||||||
Store 27 25
|
Store 27 25
|
||||||
29: 28(ptr) AccessChain 21(gl_in) 22 22 16
|
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
|
32: 31(ptr) AccessChain 14 22 16
|
||||||
Store 32 30
|
Store 32 30
|
||||||
EmitVertex
|
EmitVertex
|
||||||
EndPrimitive
|
EndPrimitive
|
||||||
Branch 6
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 89
|
// Id's are bound by 91
|
||||||
|
|
||||||
Source GLSL 400
|
Source GLSL 400
|
||||||
SourceExtension "GL_ARB_separate_shader_objects"
|
SourceExtension "GL_ARB_separate_shader_objects"
|
||||||
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationControl 4
|
EntryPoint TessellationControl 4 "main"
|
||||||
ExecutionMode 4 OutputVertices 4
|
ExecutionMode 4 OutputVertices 4
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "a"
|
Name 13 "a"
|
||||||
Name 14 "p"
|
Name 18 "p"
|
||||||
Name 18 "gl_PerVertex"
|
Name 20 "gl_PerVertex"
|
||||||
MemberName 18(gl_PerVertex) 0 "gl_Position"
|
MemberName 20(gl_PerVertex) 0 "gl_Position"
|
||||||
MemberName 18(gl_PerVertex) 1 "gl_PointSize"
|
MemberName 20(gl_PerVertex) 1 "gl_PointSize"
|
||||||
MemberName 18(gl_PerVertex) 2 "gl_ClipDistance"
|
MemberName 20(gl_PerVertex) 2 "gl_ClipDistance"
|
||||||
Name 22 "gl_in"
|
Name 24 "gl_in"
|
||||||
Name 29 "ps"
|
Name 31 "ps"
|
||||||
Name 33 "cd"
|
Name 35 "cd"
|
||||||
Name 37 "pvi"
|
Name 39 "pvi"
|
||||||
Name 39 "gl_PatchVerticesIn"
|
Name 41 "gl_PatchVerticesIn"
|
||||||
Name 41 "pid"
|
Name 43 "pid"
|
||||||
Name 42 "gl_PrimitiveID"
|
Name 44 "gl_PrimitiveID"
|
||||||
Name 44 "iid"
|
Name 46 "iid"
|
||||||
Name 45 "gl_InvocationID"
|
Name 47 "gl_InvocationID"
|
||||||
Name 47 "gl_PerVertex"
|
Name 49 "gl_PerVertex"
|
||||||
MemberName 47(gl_PerVertex) 0 "gl_Position"
|
MemberName 49(gl_PerVertex) 0 "gl_Position"
|
||||||
MemberName 47(gl_PerVertex) 1 "gl_PointSize"
|
MemberName 49(gl_PerVertex) 1 "gl_PointSize"
|
||||||
MemberName 47(gl_PerVertex) 2 "gl_ClipDistance"
|
MemberName 49(gl_PerVertex) 2 "gl_ClipDistance"
|
||||||
Name 51 "gl_out"
|
Name 53 "gl_out"
|
||||||
Name 62 "gl_TessLevelOuter"
|
Name 64 "gl_TessLevelOuter"
|
||||||
Name 69 "gl_TessLevelInner"
|
Name 71 "gl_TessLevelInner"
|
||||||
Name 74 "outa"
|
Name 76 "outa"
|
||||||
Name 75 "patchOut"
|
Name 77 "patchOut"
|
||||||
Name 79 "inb"
|
Name 81 "inb"
|
||||||
Name 80 "ind"
|
Name 82 "ind"
|
||||||
Name 83 "ivla"
|
Name 85 "ivla"
|
||||||
Name 84 "ivlb"
|
Name 86 "ivlb"
|
||||||
Name 87 "ovla"
|
Name 89 "ovla"
|
||||||
Name 88 "ovlb"
|
Name 90 "ovlb"
|
||||||
Decorate 18(gl_PerVertex) Block
|
Decorate 20(gl_PerVertex) Block
|
||||||
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
|
Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||||
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
Decorate 45(gl_InvocationID) BuiltIn InvocationId
|
Decorate 47(gl_InvocationID) BuiltIn InvocationId
|
||||||
MemberDecorate 47(gl_PerVertex) 0 BuiltIn Position
|
MemberDecorate 49(gl_PerVertex) 0 BuiltIn Position
|
||||||
MemberDecorate 47(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 49(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 47(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 49(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
Decorate 47(gl_PerVertex) Block
|
Decorate 49(gl_PerVertex) Block
|
||||||
Decorate 62(gl_TessLevelOuter) Patch
|
Decorate 64(gl_TessLevelOuter) Patch
|
||||||
Decorate 62(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
Decorate 64(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||||
Decorate 69(gl_TessLevelInner) Patch
|
Decorate 71(gl_TessLevelInner) Patch
|
||||||
Decorate 69(gl_TessLevelInner) BuiltIn TessLevelInner
|
Decorate 71(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||||
Decorate 74(outa) NoStaticUse
|
Decorate 76(outa) NoStaticUse
|
||||||
Decorate 75(patchOut) Patch
|
Decorate 77(patchOut) Patch
|
||||||
Decorate 75(patchOut) NoStaticUse
|
Decorate 77(patchOut) NoStaticUse
|
||||||
Decorate 79(inb) NoStaticUse
|
Decorate 81(inb) NoStaticUse
|
||||||
Decorate 80(ind) NoStaticUse
|
Decorate 82(ind) NoStaticUse
|
||||||
Decorate 83(ivla) Location 3
|
Decorate 85(ivla) Location 3
|
||||||
Decorate 83(ivla) NoStaticUse
|
Decorate 85(ivla) NoStaticUse
|
||||||
Decorate 84(ivlb) Location 4
|
Decorate 86(ivlb) Location 4
|
||||||
Decorate 84(ivlb) NoStaticUse
|
Decorate 86(ivlb) NoStaticUse
|
||||||
Decorate 87(ovla) Location 3
|
Decorate 89(ovla) Location 3
|
||||||
Decorate 87(ovla) NoStaticUse
|
Decorate 89(ovla) NoStaticUse
|
||||||
Decorate 88(ovlb) Location 4
|
Decorate 90(ovlb) Location 4
|
||||||
Decorate 88(ovlb) NoStaticUse
|
Decorate 90(ovlb) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 0
|
||||||
8: TypePointer Function 7(int)
|
8: 7(int) Constant 1
|
||||||
10: 7(int) Constant 5392
|
9: 7(int) Constant 1023
|
||||||
11: TypeFloat 32
|
10: 7(int) Constant 0
|
||||||
12: TypeVector 11(float) 4
|
11: TypeInt 32 1
|
||||||
13: TypePointer Function 12(fvec4)
|
12: TypePointer Function 11(int)
|
||||||
15: TypeInt 32 0
|
14: 11(int) Constant 5392
|
||||||
16: 15(int) Constant 1
|
15: TypeFloat 32
|
||||||
17: TypeArray 11(float) 16
|
16: TypeVector 15(float) 4
|
||||||
18(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
|
17: TypePointer Function 16(fvec4)
|
||||||
19: 15(int) Constant 32
|
19: TypeArray 15(float) 8
|
||||||
20: TypeArray 18(gl_PerVertex) 19
|
20(gl_PerVertex): TypeStruct 16(fvec4) 15(float) 19
|
||||||
21: TypePointer Input 20
|
21: 7(int) Constant 32
|
||||||
22(gl_in): 21(ptr) Variable Input
|
22: TypeArray 20(gl_PerVertex) 21
|
||||||
23: 7(int) Constant 1
|
23: TypePointer Input 22
|
||||||
24: 7(int) Constant 0
|
24(gl_in): 23(ptr) Variable Input
|
||||||
25: TypePointer Input 12(fvec4)
|
25: 11(int) Constant 1
|
||||||
28: TypePointer Function 11(float)
|
26: 11(int) Constant 0
|
||||||
30: TypePointer Input 11(float)
|
27: TypePointer Input 16(fvec4)
|
||||||
34: 7(int) Constant 2
|
30: TypePointer Function 15(float)
|
||||||
38: TypePointer Input 7(int)
|
32: TypePointer Input 15(float)
|
||||||
39(gl_PatchVerticesIn): 38(ptr) Variable Input
|
36: 11(int) Constant 2
|
||||||
42(gl_PrimitiveID): 38(ptr) Variable Input
|
40: TypePointer Input 11(int)
|
||||||
45(gl_InvocationID): 38(ptr) Variable Input
|
41(gl_PatchVerticesIn): 40(ptr) Variable Input
|
||||||
47(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
|
44(gl_PrimitiveID): 40(ptr) Variable Input
|
||||||
48: 15(int) Constant 4
|
47(gl_InvocationID): 40(ptr) Variable Input
|
||||||
49: TypeArray 47(gl_PerVertex) 48
|
49(gl_PerVertex): TypeStruct 16(fvec4) 15(float) 19
|
||||||
50: TypePointer Output 49
|
50: 7(int) Constant 4
|
||||||
51(gl_out): 50(ptr) Variable Output
|
51: TypeArray 49(gl_PerVertex) 50
|
||||||
53: TypePointer Output 12(fvec4)
|
52: TypePointer Output 51
|
||||||
56: TypePointer Output 11(float)
|
53(gl_out): 52(ptr) Variable Output
|
||||||
60: TypeArray 11(float) 48
|
55: TypePointer Output 16(fvec4)
|
||||||
61: TypePointer Output 60
|
58: TypePointer Output 15(float)
|
||||||
62(gl_TessLevelOuter): 61(ptr) Variable Output
|
62: TypeArray 15(float) 50
|
||||||
63: 7(int) Constant 3
|
63: TypePointer Output 62
|
||||||
64: 11(float) Constant 1078774989
|
64(gl_TessLevelOuter): 63(ptr) Variable Output
|
||||||
66: 15(int) Constant 2
|
65: 11(int) Constant 3
|
||||||
67: TypeArray 11(float) 66
|
66: 15(float) Constant 1078774989
|
||||||
68: TypePointer Output 67
|
68: 7(int) Constant 2
|
||||||
69(gl_TessLevelInner): 68(ptr) Variable Output
|
69: TypeArray 15(float) 68
|
||||||
70: 11(float) Constant 1067869798
|
70: TypePointer Output 69
|
||||||
72: TypeArray 7(int) 48
|
71(gl_TessLevelInner): 70(ptr) Variable Output
|
||||||
73: TypePointer PrivateGlobal 72
|
72: 15(float) Constant 1067869798
|
||||||
74(outa): 73(ptr) Variable PrivateGlobal
|
74: TypeArray 11(int) 50
|
||||||
75(patchOut): 53(ptr) Variable Output
|
75: TypePointer PrivateGlobal 74
|
||||||
76: TypeVector 11(float) 2
|
76(outa): 75(ptr) Variable PrivateGlobal
|
||||||
77: TypeArray 76(fvec2) 19
|
77(patchOut): 55(ptr) Variable Output
|
||||||
78: TypePointer Input 77
|
78: TypeVector 15(float) 2
|
||||||
79(inb): 78(ptr) Variable Input
|
79: TypeArray 78(fvec2) 21
|
||||||
80(ind): 78(ptr) Variable Input
|
80: TypePointer Input 79
|
||||||
81: TypeArray 12(fvec4) 19
|
81(inb): 80(ptr) Variable Input
|
||||||
82: TypePointer Input 81
|
82(ind): 80(ptr) Variable Input
|
||||||
83(ivla): 82(ptr) Variable Input
|
83: TypeArray 16(fvec4) 21
|
||||||
84(ivlb): 82(ptr) Variable Input
|
84: TypePointer Input 83
|
||||||
85: TypeArray 12(fvec4) 48
|
85(ivla): 84(ptr) Variable Input
|
||||||
86: TypePointer Output 85
|
86(ivlb): 84(ptr) Variable Input
|
||||||
87(ovla): 86(ptr) Variable Output
|
87: TypeArray 16(fvec4) 50
|
||||||
88(ovlb): 86(ptr) Variable Output
|
88: TypePointer Output 87
|
||||||
|
89(ovla): 88(ptr) Variable Output
|
||||||
|
90(ovlb): 88(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(a): 8(ptr) Variable Function
|
13(a): 12(ptr) Variable Function
|
||||||
14(p): 13(ptr) Variable Function
|
18(p): 17(ptr) Variable Function
|
||||||
29(ps): 28(ptr) Variable Function
|
31(ps): 30(ptr) Variable Function
|
||||||
33(cd): 28(ptr) Variable Function
|
35(cd): 30(ptr) Variable Function
|
||||||
37(pvi): 8(ptr) Variable Function
|
39(pvi): 12(ptr) Variable Function
|
||||||
41(pid): 8(ptr) Variable Function
|
43(pid): 12(ptr) Variable Function
|
||||||
44(iid): 8(ptr) Variable Function
|
46(iid): 12(ptr) Variable Function
|
||||||
MemoryBarrier Device Relaxed SequentiallyConsistent Acquire Release UniformMemory SubgroupMemory WorkgroupLocalMemory WorkgroupGlobalMemory AtomicCounterMemory ImageMemory
|
MemoryBarrier 8 9
|
||||||
ControlBarrier Device
|
ControlBarrier 8 8 10
|
||||||
Store 9(a) 10
|
Store 13(a) 14
|
||||||
26: 25(ptr) AccessChain 22(gl_in) 23 24
|
28: 27(ptr) AccessChain 24(gl_in) 25 26
|
||||||
27: 12(fvec4) Load 26
|
29: 16(fvec4) Load 28
|
||||||
Store 14(p) 27
|
Store 18(p) 29
|
||||||
31: 30(ptr) AccessChain 22(gl_in) 23 23
|
33: 32(ptr) AccessChain 24(gl_in) 25 25
|
||||||
32: 11(float) Load 31
|
34: 15(float) Load 33
|
||||||
Store 29(ps) 32
|
Store 31(ps) 34
|
||||||
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
|
37: 32(ptr) AccessChain 24(gl_in) 25 36 36
|
||||||
36: 11(float) Load 35
|
38: 15(float) Load 37
|
||||||
Store 33(cd) 36
|
Store 35(cd) 38
|
||||||
40: 7(int) Load 39(gl_PatchVerticesIn)
|
42: 11(int) Load 41(gl_PatchVerticesIn)
|
||||||
Store 37(pvi) 40
|
Store 39(pvi) 42
|
||||||
43: 7(int) Load 42(gl_PrimitiveID)
|
45: 11(int) Load 44(gl_PrimitiveID)
|
||||||
Store 41(pid) 43
|
Store 43(pid) 45
|
||||||
46: 7(int) Load 45(gl_InvocationID)
|
48: 11(int) Load 47(gl_InvocationID)
|
||||||
Store 44(iid) 46
|
Store 46(iid) 48
|
||||||
52: 12(fvec4) Load 14(p)
|
54: 16(fvec4) Load 18(p)
|
||||||
54: 53(ptr) AccessChain 51(gl_out) 23 24
|
56: 55(ptr) AccessChain 53(gl_out) 25 26
|
||||||
Store 54 52
|
Store 56 54
|
||||||
55: 11(float) Load 29(ps)
|
57: 15(float) Load 31(ps)
|
||||||
57: 56(ptr) AccessChain 51(gl_out) 23 23
|
59: 58(ptr) AccessChain 53(gl_out) 25 25
|
||||||
Store 57 55
|
Store 59 57
|
||||||
58: 11(float) Load 33(cd)
|
60: 15(float) Load 35(cd)
|
||||||
59: 56(ptr) AccessChain 51(gl_out) 23 34 23
|
61: 58(ptr) AccessChain 53(gl_out) 25 36 25
|
||||||
Store 59 58
|
Store 61 60
|
||||||
65: 56(ptr) AccessChain 62(gl_TessLevelOuter) 63
|
67: 58(ptr) AccessChain 64(gl_TessLevelOuter) 65
|
||||||
Store 65 64
|
Store 67 66
|
||||||
71: 56(ptr) AccessChain 69(gl_TessLevelInner) 23
|
73: 58(ptr) AccessChain 71(gl_TessLevelInner) 25
|
||||||
Store 71 70
|
Store 73 72
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
Source GLSL 400
|
||||||
SourceExtension "GL_ARB_separate_shader_objects"
|
SourceExtension "GL_ARB_separate_shader_objects"
|
||||||
|
Capability Tessellation
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint TessellationEvaluation 4
|
EntryPoint TessellationEvaluation 4 "main"
|
||||||
ExecutionMode 4 InputTriangles
|
ExecutionMode 4 InputTriangles
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "a"
|
Name 9 "a"
|
||||||
Name 14 "p"
|
Name 14 "p"
|
||||||
@ -52,34 +53,34 @@ Linked tessellation evaluation stage:
|
|||||||
Name 94 "ivla"
|
Name 94 "ivla"
|
||||||
Name 95 "ivlb"
|
Name 95 "ivlb"
|
||||||
Name 98 "ovla"
|
Name 98 "ovla"
|
||||||
Decorate 18(gl_PerVertex) Block
|
Decorate 18(gl_PerVertex) Block
|
||||||
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
|
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
|
||||||
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
|
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
|
||||||
Decorate 48(gl_TessCoord) BuiltIn TessCoord
|
Decorate 48(gl_TessCoord) BuiltIn TessCoord
|
||||||
Decorate 54(gl_TessLevelOuter) Patch
|
Decorate 54(gl_TessLevelOuter) Patch
|
||||||
Decorate 54(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
Decorate 54(gl_TessLevelOuter) BuiltIn TessLevelOuter
|
||||||
Decorate 62(gl_TessLevelInner) Patch
|
Decorate 62(gl_TessLevelInner) Patch
|
||||||
Decorate 62(gl_TessLevelInner) BuiltIn TessLevelInner
|
Decorate 62(gl_TessLevelInner) BuiltIn TessLevelInner
|
||||||
MemberDecorate 67(gl_PerVertex) 0 BuiltIn Position
|
MemberDecorate 67(gl_PerVertex) 0 BuiltIn Position
|
||||||
MemberDecorate 67(gl_PerVertex) 1 BuiltIn PointSize
|
MemberDecorate 67(gl_PerVertex) 1 BuiltIn PointSize
|
||||||
MemberDecorate 67(gl_PerVertex) 2 BuiltIn ClipDistance
|
MemberDecorate 67(gl_PerVertex) 2 BuiltIn ClipDistance
|
||||||
Decorate 67(gl_PerVertex) Block
|
Decorate 67(gl_PerVertex) Block
|
||||||
Decorate 78(patchIn) Patch
|
Decorate 78(patchIn) Patch
|
||||||
Decorate 78(patchIn) NoStaticUse
|
Decorate 78(patchIn) NoStaticUse
|
||||||
Decorate 82(inb) NoStaticUse
|
Decorate 82(inb) NoStaticUse
|
||||||
Decorate 83(ind) NoStaticUse
|
Decorate 83(ind) NoStaticUse
|
||||||
Decorate 84(testblb) Block
|
Decorate 84(testblb) Block
|
||||||
Decorate 87(blb) NoStaticUse
|
Decorate 87(blb) NoStaticUse
|
||||||
Decorate 88(testbld) Block
|
Decorate 88(testbld) Block
|
||||||
Decorate 91(bld) NoStaticUse
|
Decorate 91(bld) NoStaticUse
|
||||||
Decorate 94(ivla) Location 23
|
Decorate 94(ivla) Location 23
|
||||||
Decorate 94(ivla) NoStaticUse
|
Decorate 94(ivla) NoStaticUse
|
||||||
Decorate 95(ivlb) Location 24
|
Decorate 95(ivlb) Location 24
|
||||||
Decorate 95(ivlb) NoStaticUse
|
Decorate 95(ivlb) NoStaticUse
|
||||||
Decorate 98(ovla) Location 23
|
Decorate 98(ovla) Location 23
|
||||||
Decorate 98(ovla) NoStaticUse
|
Decorate 98(ovla) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 1512
|
10: 7(int) Constant 1512
|
||||||
@ -93,7 +94,7 @@ Linked tessellation evaluation stage:
|
|||||||
19: 15(int) Constant 32
|
19: 15(int) Constant 32
|
||||||
20: TypeArray 18(gl_PerVertex) 19
|
20: TypeArray 18(gl_PerVertex) 19
|
||||||
21: TypePointer Input 20
|
21: TypePointer Input 20
|
||||||
22(gl_in): 21(ptr) Variable Input
|
22(gl_in): 21(ptr) Variable Input
|
||||||
23: 7(int) Constant 1
|
23: 7(int) Constant 1
|
||||||
24: 7(int) Constant 0
|
24: 7(int) Constant 0
|
||||||
25: TypePointer Input 12(fvec4)
|
25: TypePointer Input 12(fvec4)
|
||||||
@ -101,91 +102,91 @@ Linked tessellation evaluation stage:
|
|||||||
30: TypePointer Input 11(float)
|
30: TypePointer Input 11(float)
|
||||||
34: 7(int) Constant 2
|
34: 7(int) Constant 2
|
||||||
38: TypePointer Input 7(int)
|
38: TypePointer Input 7(int)
|
||||||
39(gl_PatchVerticesIn): 38(ptr) Variable Input
|
39(gl_PatchVerticesIn): 38(ptr) Variable Input
|
||||||
42(gl_PrimitiveID): 38(ptr) Variable Input
|
42(gl_PrimitiveID): 38(ptr) Variable Input
|
||||||
44: TypeVector 11(float) 3
|
44: TypeVector 11(float) 3
|
||||||
45: TypePointer Function 44(fvec3)
|
45: TypePointer Function 44(fvec3)
|
||||||
47: TypePointer Input 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
|
51: 15(int) Constant 4
|
||||||
52: TypeArray 11(float) 51
|
52: TypeArray 11(float) 51
|
||||||
53: TypePointer Input 52
|
53: TypePointer Input 52
|
||||||
54(gl_TessLevelOuter): 53(ptr) Variable Input
|
54(gl_TessLevelOuter): 53(ptr) Variable Input
|
||||||
55: 7(int) Constant 3
|
55: 7(int) Constant 3
|
||||||
59: 15(int) Constant 2
|
59: 15(int) Constant 2
|
||||||
60: TypeArray 11(float) 59
|
60: TypeArray 11(float) 59
|
||||||
61: TypePointer Input 60
|
61: TypePointer Input 60
|
||||||
62(gl_TessLevelInner): 61(ptr) Variable Input
|
62(gl_TessLevelInner): 61(ptr) Variable Input
|
||||||
65: 15(int) Constant 3
|
65: 15(int) Constant 3
|
||||||
66: TypeArray 11(float) 65
|
66: TypeArray 11(float) 65
|
||||||
67(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 66
|
67(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 66
|
||||||
68: TypePointer Output 67(gl_PerVertex)
|
68: TypePointer Output 67(gl_PerVertex)
|
||||||
69: 68(ptr) Variable Output
|
69: 68(ptr) Variable Output
|
||||||
71: TypePointer Output 12(fvec4)
|
71: TypePointer Output 12(fvec4)
|
||||||
74: TypePointer Output 11(float)
|
74: TypePointer Output 11(float)
|
||||||
78(patchIn): 25(ptr) Variable Input
|
78(patchIn): 25(ptr) Variable Input
|
||||||
79: TypeVector 11(float) 2
|
79: TypeVector 11(float) 2
|
||||||
80: TypeArray 79(fvec2) 19
|
80: TypeArray 79(fvec2) 19
|
||||||
81: TypePointer Input 80
|
81: TypePointer Input 80
|
||||||
82(inb): 81(ptr) Variable Input
|
82(inb): 81(ptr) Variable Input
|
||||||
83(ind): 81(ptr) Variable Input
|
83(ind): 81(ptr) Variable Input
|
||||||
84(testblb): TypeStruct 7(int)
|
84(testblb): TypeStruct 7(int)
|
||||||
85: TypeArray 84(testblb) 19
|
85: TypeArray 84(testblb) 19
|
||||||
86: TypePointer Input 85
|
86: TypePointer Input 85
|
||||||
87(blb): 86(ptr) Variable Input
|
87(blb): 86(ptr) Variable Input
|
||||||
88(testbld): TypeStruct 7(int)
|
88(testbld): TypeStruct 7(int)
|
||||||
89: TypeArray 88(testbld) 19
|
89: TypeArray 88(testbld) 19
|
||||||
90: TypePointer Input 89
|
90: TypePointer Input 89
|
||||||
91(bld): 90(ptr) Variable Input
|
91(bld): 90(ptr) Variable Input
|
||||||
92: TypeArray 12(fvec4) 19
|
92: TypeArray 12(fvec4) 19
|
||||||
93: TypePointer Input 92
|
93: TypePointer Input 92
|
||||||
94(ivla): 93(ptr) Variable Input
|
94(ivla): 93(ptr) Variable Input
|
||||||
95(ivlb): 93(ptr) Variable Input
|
95(ivlb): 93(ptr) Variable Input
|
||||||
96: TypeArray 12(fvec4) 59
|
96: TypeArray 12(fvec4) 59
|
||||||
97: TypePointer Output 96
|
97: TypePointer Output 96
|
||||||
98(ovla): 97(ptr) Variable Output
|
98(ovla): 97(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(a): 8(ptr) Variable Function
|
9(a): 8(ptr) Variable Function
|
||||||
14(p): 13(ptr) Variable Function
|
14(p): 13(ptr) Variable Function
|
||||||
29(ps): 28(ptr) Variable Function
|
29(ps): 28(ptr) Variable Function
|
||||||
33(cd): 28(ptr) Variable Function
|
33(cd): 28(ptr) Variable Function
|
||||||
37(pvi): 8(ptr) Variable Function
|
37(pvi): 8(ptr) Variable Function
|
||||||
41(pid): 8(ptr) Variable Function
|
41(pid): 8(ptr) Variable Function
|
||||||
46(tc): 45(ptr) Variable Function
|
46(tc): 45(ptr) Variable Function
|
||||||
50(tlo): 28(ptr) Variable Function
|
50(tlo): 28(ptr) Variable Function
|
||||||
58(tli): 28(ptr) Variable Function
|
58(tli): 28(ptr) Variable Function
|
||||||
Store 9(a) 10
|
Store 9(a) 10
|
||||||
26: 25(ptr) AccessChain 22(gl_in) 23 24
|
26: 25(ptr) AccessChain 22(gl_in) 23 24
|
||||||
27: 12(fvec4) Load 26
|
27: 12(fvec4) Load 26
|
||||||
Store 14(p) 27
|
Store 14(p) 27
|
||||||
31: 30(ptr) AccessChain 22(gl_in) 23 23
|
31: 30(ptr) AccessChain 22(gl_in) 23 23
|
||||||
32: 11(float) Load 31
|
32: 11(float) Load 31
|
||||||
Store 29(ps) 32
|
Store 29(ps) 32
|
||||||
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
|
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
|
||||||
36: 11(float) Load 35
|
36: 11(float) Load 35
|
||||||
Store 33(cd) 36
|
Store 33(cd) 36
|
||||||
40: 7(int) Load 39(gl_PatchVerticesIn)
|
40: 7(int) Load 39(gl_PatchVerticesIn)
|
||||||
Store 37(pvi) 40
|
Store 37(pvi) 40
|
||||||
43: 7(int) Load 42(gl_PrimitiveID)
|
43: 7(int) Load 42(gl_PrimitiveID)
|
||||||
Store 41(pid) 43
|
Store 41(pid) 43
|
||||||
49: 44(fvec3) Load 48(gl_TessCoord)
|
49: 44(fvec3) Load 48(gl_TessCoord)
|
||||||
Store 46(tc) 49
|
Store 46(tc) 49
|
||||||
56: 30(ptr) AccessChain 54(gl_TessLevelOuter) 55
|
56: 30(ptr) AccessChain 54(gl_TessLevelOuter) 55
|
||||||
57: 11(float) Load 56
|
57: 11(float) Load 56
|
||||||
Store 50(tlo) 57
|
Store 50(tlo) 57
|
||||||
63: 30(ptr) AccessChain 62(gl_TessLevelInner) 23
|
63: 30(ptr) AccessChain 62(gl_TessLevelInner) 23
|
||||||
64: 11(float) Load 63
|
64: 11(float) Load 63
|
||||||
Store 58(tli) 64
|
Store 58(tli) 64
|
||||||
70: 12(fvec4) Load 14(p)
|
70: 12(fvec4) Load 14(p)
|
||||||
72: 71(ptr) AccessChain 69 24
|
72: 71(ptr) AccessChain 69 24
|
||||||
Store 72 70
|
Store 72 70
|
||||||
73: 11(float) Load 29(ps)
|
73: 11(float) Load 29(ps)
|
||||||
75: 74(ptr) AccessChain 69 23
|
75: 74(ptr) AccessChain 69 23
|
||||||
Store 75 73
|
Store 75 73
|
||||||
76: 11(float) Load 33(cd)
|
76: 11(float) Load 33(cd)
|
||||||
77: 74(ptr) AccessChain 69 34 34
|
77: 74(ptr) AccessChain 69 34 34
|
||||||
Store 77 76
|
Store 77 76
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 62
|
// Id's are bound by 63
|
||||||
|
|
||||||
Source GLSL 430
|
Source GLSL 430
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 11 "gl_PerVertex"
|
Name 11 "gl_PerVertex"
|
||||||
MemberName 11(gl_PerVertex) 0 "gl_ClipDistance"
|
MemberName 11(gl_PerVertex) 0 "gl_ClipDistance"
|
||||||
@ -29,49 +30,49 @@ Linked vertex stage:
|
|||||||
Name 49 "anonblock"
|
Name 49 "anonblock"
|
||||||
MemberName 49(anonblock) 0 "aoeu"
|
MemberName 49(anonblock) 0 "aoeu"
|
||||||
Name 51 ""
|
Name 51 ""
|
||||||
Name 54 "sampb1"
|
Name 55 "sampb1"
|
||||||
Name 57 "sampb2"
|
Name 58 "sampb2"
|
||||||
Name 58 "sampb4"
|
Name 59 "sampb4"
|
||||||
Name 60 "gl_VertexID"
|
Name 61 "gl_VertexID"
|
||||||
Name 61 "gl_InstanceID"
|
Name 62 "gl_InstanceID"
|
||||||
MemberDecorate 11(gl_PerVertex) 0 BuiltIn ClipDistance
|
MemberDecorate 11(gl_PerVertex) 0 BuiltIn ClipDistance
|
||||||
Decorate 11(gl_PerVertex) Block
|
Decorate 11(gl_PerVertex) Block
|
||||||
Decorate 35(badorder3) Flat
|
Decorate 35(badorder3) Flat
|
||||||
Decorate 43(uv4) Location 4
|
Decorate 43(uv4) Location 4
|
||||||
Decorate 43(uv4) NoStaticUse
|
Decorate 43(uv4) NoStaticUse
|
||||||
Decorate 29 NoStaticUse
|
Decorate 29 NoStaticUse
|
||||||
Decorate 29 NoStaticUse
|
Decorate 29 NoStaticUse
|
||||||
Decorate 44(badorder) NoStaticUse
|
Decorate 44(badorder) NoStaticUse
|
||||||
Decorate 45(badorder2) Smooth
|
Decorate 45(badorder2) Smooth
|
||||||
Decorate 45(badorder2) Invariant
|
Decorate 45(badorder2) Invariant
|
||||||
Decorate 45(badorder2) NoStaticUse
|
Decorate 45(badorder2) NoStaticUse
|
||||||
Decorate 46(boundblock) GLSLShared
|
Decorate 46(boundblock) GLSLShared
|
||||||
Decorate 46(boundblock) Block
|
Decorate 46(boundblock) Block
|
||||||
Decorate 48(boundInst) Binding 3
|
Decorate 48(boundInst) Binding 3
|
||||||
Decorate 48(boundInst) NoStaticUse
|
Decorate 48(boundInst) NoStaticUse
|
||||||
Decorate 49(anonblock) GLSLShared
|
Decorate 49(anonblock) GLSLShared
|
||||||
Decorate 49(anonblock) Block
|
Decorate 49(anonblock) Block
|
||||||
Decorate 51 Binding 7
|
Decorate 51 Binding 7
|
||||||
Decorate 51 NoStaticUse
|
Decorate 51 NoStaticUse
|
||||||
Decorate 54(sampb1) Binding 4
|
Decorate 55(sampb1) Binding 4
|
||||||
Decorate 54(sampb1) NoStaticUse
|
Decorate 55(sampb1) NoStaticUse
|
||||||
Decorate 57(sampb2) Binding 5
|
Decorate 58(sampb2) Binding 5
|
||||||
Decorate 57(sampb2) NoStaticUse
|
Decorate 58(sampb2) NoStaticUse
|
||||||
Decorate 58(sampb4) Binding 31
|
Decorate 59(sampb4) Binding 31
|
||||||
Decorate 58(sampb4) NoStaticUse
|
Decorate 59(sampb4) NoStaticUse
|
||||||
Decorate 60(gl_VertexID) BuiltIn VertexId
|
Decorate 61(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 60(gl_VertexID) NoStaticUse
|
Decorate 61(gl_VertexID) NoStaticUse
|
||||||
Decorate 61(gl_InstanceID) BuiltIn InstanceId
|
Decorate 62(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 61(gl_InstanceID) NoStaticUse
|
Decorate 62(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeInt 32 0
|
8: TypeInt 32 0
|
||||||
9: 8(int) Constant 3
|
9: 8(int) Constant 3
|
||||||
10: TypeArray 7(float) 9
|
10: TypeArray 7(float) 9
|
||||||
11(gl_PerVertex): TypeStruct 10
|
11(gl_PerVertex): TypeStruct 10
|
||||||
12: TypePointer Output 11(gl_PerVertex)
|
12: TypePointer Output 11(gl_PerVertex)
|
||||||
13: 12(ptr) Variable Output
|
13: 12(ptr) Variable Output
|
||||||
14: TypeInt 32 1
|
14: TypeInt 32 1
|
||||||
15: 14(int) Constant 0
|
15: 14(int) Constant 0
|
||||||
16: 14(int) Constant 2
|
16: 14(int) Constant 2
|
||||||
@ -81,53 +82,54 @@ Linked vertex stage:
|
|||||||
21: 8(int) Constant 10
|
21: 8(int) Constant 10
|
||||||
22: TypeArray 20(fvec4) 21
|
22: TypeArray 20(fvec4) 21
|
||||||
23: TypePointer Input 22
|
23: TypePointer Input 22
|
||||||
24(bad): 23(ptr) Variable Input
|
24(bad): 23(ptr) Variable Input
|
||||||
25: TypePointer Input 20(fvec4)
|
25: TypePointer Input 20(fvec4)
|
||||||
29: 7(float) Constant 1082549862
|
29: 7(float) Constant 1082549862
|
||||||
30: TypeBool
|
30: TypeBool
|
||||||
34: TypePointer Output 20(fvec4)
|
34: TypePointer Output 20(fvec4)
|
||||||
35(badorder3): 34(ptr) Variable Output
|
35(badorder3): 34(ptr) Variable Output
|
||||||
38: TypePointer UniformConstant 7(float)
|
38: TypePointer UniformConstant 7(float)
|
||||||
39(f): 38(ptr) Variable UniformConstant
|
39(f): 38(ptr) Variable UniformConstant
|
||||||
42: TypePointer UniformConstant 20(fvec4)
|
42: TypePointer UniformConstant 20(fvec4)
|
||||||
43(uv4): 42(ptr) Variable UniformConstant
|
43(uv4): 42(ptr) Variable UniformConstant
|
||||||
44(badorder): 25(ptr) Variable Input
|
44(badorder): 25(ptr) Variable Input
|
||||||
45(badorder2): 34(ptr) Variable Output
|
45(badorder2): 34(ptr) Variable Output
|
||||||
46(boundblock): TypeStruct 14(int)
|
46(boundblock): TypeStruct 14(int)
|
||||||
47: TypePointer Uniform 46(boundblock)
|
47: TypePointer Uniform 46(boundblock)
|
||||||
48(boundInst): 47(ptr) Variable Uniform
|
48(boundInst): 47(ptr) Variable Uniform
|
||||||
49(anonblock): TypeStruct 14(int)
|
49(anonblock): TypeStruct 14(int)
|
||||||
50: TypePointer Uniform 49(anonblock)
|
50: TypePointer Uniform 49(anonblock)
|
||||||
51: 50(ptr) Variable Uniform
|
51: 50(ptr) Variable Uniform
|
||||||
52: TypeSampler7(float) 2D filter+texture
|
52: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
53: TypePointer UniformConstant 52
|
53: TypeSampledImage 52
|
||||||
54(sampb1): 53(ptr) Variable UniformConstant
|
54: TypePointer UniformConstant 53
|
||||||
55: TypeArray 52 21
|
55(sampb1): 54(ptr) Variable UniformConstant
|
||||||
56: TypePointer UniformConstant 55
|
56: TypeArray 53 21
|
||||||
57(sampb2): 56(ptr) Variable UniformConstant
|
57: TypePointer UniformConstant 56
|
||||||
58(sampb4): 53(ptr) Variable UniformConstant
|
58(sampb2): 57(ptr) Variable UniformConstant
|
||||||
59: TypePointer Input 14(int)
|
59(sampb4): 54(ptr) Variable UniformConstant
|
||||||
60(gl_VertexID): 59(ptr) Variable Input
|
60: TypePointer Input 14(int)
|
||||||
61(gl_InstanceID): 59(ptr) Variable Input
|
61(gl_VertexID): 60(ptr) Variable Input
|
||||||
|
62(gl_InstanceID): 60(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
19: 18(ptr) AccessChain 13 15 16
|
19: 18(ptr) AccessChain 13 15 16
|
||||||
Store 19 17
|
Store 19 17
|
||||||
26: 25(ptr) AccessChain 24(bad) 15
|
26: 25(ptr) AccessChain 24(bad) 15
|
||||||
27: 20(fvec4) Load 26
|
27: 20(fvec4) Load 26
|
||||||
28: 7(float) CompositeExtract 27 0
|
28: 7(float) CompositeExtract 27 0
|
||||||
31: 30(bool) FOrdEqual 28 29
|
31: 30(bool) FOrdEqual 28 29
|
||||||
SelectionMerge 33 None
|
SelectionMerge 33 None
|
||||||
BranchConditional 31 32 33
|
BranchConditional 31 32 33
|
||||||
32: Label
|
32: Label
|
||||||
36: 25(ptr) AccessChain 24(bad) 15
|
36: 25(ptr) AccessChain 24(bad) 15
|
||||||
37: 20(fvec4) Load 36
|
37: 20(fvec4) Load 36
|
||||||
Store 35(badorder3) 37
|
Store 35(badorder3) 37
|
||||||
Branch 33
|
Branch 33
|
||||||
33: Label
|
33: Label
|
||||||
40: 7(float) Load 39(f)
|
40: 7(float) Load 39(f)
|
||||||
41: 18(ptr) AccessChain 13 15 15
|
41: 18(ptr) AccessChain 13 15 15
|
||||||
Store 41 40
|
Store 41 40
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 399
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "v"
|
Name 10 "v"
|
||||||
Name 12 "uv4"
|
Name 12 "uv4"
|
||||||
@ -25,27 +27,27 @@ Linked fragment stage:
|
|||||||
Name 396 "uiv4"
|
Name 396 "uiv4"
|
||||||
Name 398 "ub"
|
Name 398 "ub"
|
||||||
Decorate 378(gl_FragColor) BuiltIn FragColor
|
Decorate 378(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 396(uiv4) NoStaticUse
|
Decorate 396(uiv4) NoStaticUse
|
||||||
Decorate 398(ub) NoStaticUse
|
Decorate 398(ub) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer UniformConstant 8(fvec4)
|
11: TypePointer UniformConstant 8(fvec4)
|
||||||
12(uv4): 11(ptr) Variable UniformConstant
|
12(uv4): 11(ptr) Variable UniformConstant
|
||||||
19: TypeInt 32 1
|
19: TypeInt 32 1
|
||||||
20: TypePointer Function 19(int)
|
20: TypePointer Function 19(int)
|
||||||
22: TypePointer UniformConstant 19(int)
|
22: TypePointer UniformConstant 19(int)
|
||||||
23(ui): 22(ptr) Variable UniformConstant
|
23(ui): 22(ptr) Variable UniformConstant
|
||||||
169: TypePointer UniformConstant 7(float)
|
169: TypePointer UniformConstant 7(float)
|
||||||
170(uf): 169(ptr) Variable UniformConstant
|
170(uf): 169(ptr) Variable UniformConstant
|
||||||
215: TypeBool
|
215: TypeBool
|
||||||
216: TypePointer Function 215(bool)
|
216: TypePointer Function 215(bool)
|
||||||
220: TypeVector 215(bool) 4
|
220: TypeVector 215(bool) 4
|
||||||
242: TypePointer UniformConstant 220(bvec4)
|
242: TypePointer UniformConstant 220(bvec4)
|
||||||
243(ub41): 242(ptr) Variable UniformConstant
|
243(ub41): 242(ptr) Variable UniformConstant
|
||||||
245(ub42): 242(ptr) Variable UniformConstant
|
245(ub42): 242(ptr) Variable UniformConstant
|
||||||
292: 19(int) Constant 2
|
292: 19(int) Constant 2
|
||||||
299: 19(int) Constant 1
|
299: 19(int) Constant 1
|
||||||
301: TypePointer Function 7(float)
|
301: TypePointer Function 7(float)
|
||||||
@ -55,458 +57,458 @@ Linked fragment stage:
|
|||||||
359: 19(int) Constant 66
|
359: 19(int) Constant 66
|
||||||
365: 19(int) Constant 17
|
365: 19(int) Constant 17
|
||||||
377: TypePointer Output 8(fvec4)
|
377: TypePointer Output 8(fvec4)
|
||||||
378(gl_FragColor): 377(ptr) Variable Output
|
378(gl_FragColor): 377(ptr) Variable Output
|
||||||
394: TypeVector 19(int) 4
|
394: TypeVector 19(int) 4
|
||||||
395: TypePointer UniformConstant 394(ivec4)
|
395: TypePointer UniformConstant 394(ivec4)
|
||||||
396(uiv4): 395(ptr) Variable UniformConstant
|
396(uiv4): 395(ptr) Variable UniformConstant
|
||||||
397: TypePointer UniformConstant 215(bool)
|
397: TypePointer UniformConstant 215(bool)
|
||||||
398(ub): 397(ptr) Variable UniformConstant
|
398(ub): 397(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(v): 9(ptr) Variable Function
|
10(v): 9(ptr) Variable Function
|
||||||
21(i): 20(ptr) Variable Function
|
21(i): 20(ptr) Variable Function
|
||||||
217(b): 216(ptr) Variable Function
|
217(b): 216(ptr) Variable Function
|
||||||
302(f): 301(ptr) Variable Function
|
302(f): 301(ptr) Variable Function
|
||||||
379: 9(ptr) Variable Function
|
379: 9(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(uv4)
|
13: 8(fvec4) Load 12(uv4)
|
||||||
14: 8(fvec4) ExtInst 1(GLSL.std.450) 8(radians) 13
|
14: 8(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 13
|
||||||
Store 10(v) 14
|
Store 10(v) 14
|
||||||
15: 8(fvec4) Load 10(v)
|
15: 8(fvec4) Load 10(v)
|
||||||
16: 8(fvec4) ExtInst 1(GLSL.std.450) 9(degrees) 15
|
16: 8(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 15
|
||||||
17: 8(fvec4) Load 10(v)
|
17: 8(fvec4) Load 10(v)
|
||||||
18: 8(fvec4) FAdd 17 16
|
18: 8(fvec4) FAdd 17 16
|
||||||
Store 10(v) 18
|
Store 10(v) 18
|
||||||
24: 19(int) Load 23(ui)
|
24: 19(int) Load 23(ui)
|
||||||
25: 19(int) Load 23(ui)
|
25: 19(int) Load 23(ui)
|
||||||
26: 19(int) IMul 24 25
|
26: 19(int) IMul 24 25
|
||||||
Store 21(i) 26
|
Store 21(i) 26
|
||||||
27: 8(fvec4) Load 10(v)
|
27: 8(fvec4) Load 10(v)
|
||||||
28: 8(fvec4) ExtInst 1(GLSL.std.450) 10(sin) 27
|
28: 8(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 27
|
||||||
29: 8(fvec4) Load 10(v)
|
29: 8(fvec4) Load 10(v)
|
||||||
30: 8(fvec4) FAdd 29 28
|
30: 8(fvec4) FAdd 29 28
|
||||||
Store 10(v) 30
|
Store 10(v) 30
|
||||||
31: 8(fvec4) Load 10(v)
|
31: 8(fvec4) Load 10(v)
|
||||||
32: 8(fvec4) ExtInst 1(GLSL.std.450) 11(cos) 31
|
32: 8(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 31
|
||||||
33: 8(fvec4) Load 10(v)
|
33: 8(fvec4) Load 10(v)
|
||||||
34: 8(fvec4) FAdd 33 32
|
34: 8(fvec4) FAdd 33 32
|
||||||
Store 10(v) 34
|
Store 10(v) 34
|
||||||
35: 8(fvec4) Load 10(v)
|
35: 8(fvec4) Load 10(v)
|
||||||
36: 8(fvec4) ExtInst 1(GLSL.std.450) 12(tan) 35
|
36: 8(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 35
|
||||||
37: 8(fvec4) Load 10(v)
|
37: 8(fvec4) Load 10(v)
|
||||||
38: 8(fvec4) FAdd 37 36
|
38: 8(fvec4) FAdd 37 36
|
||||||
Store 10(v) 38
|
Store 10(v) 38
|
||||||
39: 8(fvec4) Load 10(v)
|
39: 8(fvec4) Load 10(v)
|
||||||
40: 8(fvec4) ExtInst 1(GLSL.std.450) 13(asin) 39
|
40: 8(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 39
|
||||||
41: 8(fvec4) Load 10(v)
|
41: 8(fvec4) Load 10(v)
|
||||||
42: 8(fvec4) FAdd 41 40
|
42: 8(fvec4) FAdd 41 40
|
||||||
Store 10(v) 42
|
Store 10(v) 42
|
||||||
43: 8(fvec4) Load 10(v)
|
43: 8(fvec4) Load 10(v)
|
||||||
44: 8(fvec4) ExtInst 1(GLSL.std.450) 14(acos) 43
|
44: 8(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 43
|
||||||
45: 8(fvec4) Load 10(v)
|
45: 8(fvec4) Load 10(v)
|
||||||
46: 8(fvec4) FAdd 45 44
|
46: 8(fvec4) FAdd 45 44
|
||||||
Store 10(v) 46
|
Store 10(v) 46
|
||||||
47: 8(fvec4) Load 10(v)
|
47: 8(fvec4) Load 10(v)
|
||||||
48: 8(fvec4) ExtInst 1(GLSL.std.450) 15(atan) 47
|
48: 8(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 47
|
||||||
49: 8(fvec4) Load 10(v)
|
49: 8(fvec4) Load 10(v)
|
||||||
50: 8(fvec4) FAdd 49 48
|
50: 8(fvec4) FAdd 49 48
|
||||||
Store 10(v) 50
|
Store 10(v) 50
|
||||||
51: 8(fvec4) Load 10(v)
|
51: 8(fvec4) Load 10(v)
|
||||||
52: 8(fvec4) ExtInst 1(GLSL.std.450) 16(sinh) 51
|
52: 8(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 51
|
||||||
53: 8(fvec4) Load 10(v)
|
53: 8(fvec4) Load 10(v)
|
||||||
54: 8(fvec4) FAdd 53 52
|
54: 8(fvec4) FAdd 53 52
|
||||||
Store 10(v) 54
|
Store 10(v) 54
|
||||||
55: 8(fvec4) Load 10(v)
|
55: 8(fvec4) Load 10(v)
|
||||||
56: 8(fvec4) ExtInst 1(GLSL.std.450) 17(cosh) 55
|
56: 8(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 55
|
||||||
57: 8(fvec4) Load 10(v)
|
57: 8(fvec4) Load 10(v)
|
||||||
58: 8(fvec4) FAdd 57 56
|
58: 8(fvec4) FAdd 57 56
|
||||||
Store 10(v) 58
|
Store 10(v) 58
|
||||||
59: 8(fvec4) Load 10(v)
|
59: 8(fvec4) Load 10(v)
|
||||||
60: 8(fvec4) ExtInst 1(GLSL.std.450) 18(tanh) 59
|
60: 8(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 59
|
||||||
61: 8(fvec4) Load 10(v)
|
61: 8(fvec4) Load 10(v)
|
||||||
62: 8(fvec4) FAdd 61 60
|
62: 8(fvec4) FAdd 61 60
|
||||||
Store 10(v) 62
|
Store 10(v) 62
|
||||||
63: 8(fvec4) Load 10(v)
|
63: 8(fvec4) Load 10(v)
|
||||||
64: 8(fvec4) ExtInst 1(GLSL.std.450) 19(asinh) 63
|
64: 8(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 63
|
||||||
65: 8(fvec4) Load 10(v)
|
65: 8(fvec4) Load 10(v)
|
||||||
66: 8(fvec4) FAdd 65 64
|
66: 8(fvec4) FAdd 65 64
|
||||||
Store 10(v) 66
|
Store 10(v) 66
|
||||||
67: 8(fvec4) Load 10(v)
|
67: 8(fvec4) Load 10(v)
|
||||||
68: 8(fvec4) ExtInst 1(GLSL.std.450) 20(acosh) 67
|
68: 8(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 67
|
||||||
69: 8(fvec4) Load 10(v)
|
69: 8(fvec4) Load 10(v)
|
||||||
70: 8(fvec4) FAdd 69 68
|
70: 8(fvec4) FAdd 69 68
|
||||||
Store 10(v) 70
|
Store 10(v) 70
|
||||||
71: 8(fvec4) Load 10(v)
|
71: 8(fvec4) Load 10(v)
|
||||||
72: 8(fvec4) ExtInst 1(GLSL.std.450) 21(atanh) 71
|
72: 8(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 71
|
||||||
73: 8(fvec4) Load 10(v)
|
73: 8(fvec4) Load 10(v)
|
||||||
74: 8(fvec4) FAdd 73 72
|
74: 8(fvec4) FAdd 73 72
|
||||||
Store 10(v) 74
|
Store 10(v) 74
|
||||||
75: 8(fvec4) Load 10(v)
|
75: 8(fvec4) Load 10(v)
|
||||||
76: 8(fvec4) Load 10(v)
|
76: 8(fvec4) Load 10(v)
|
||||||
77: 8(fvec4) ExtInst 1(GLSL.std.450) 23(pow) 75 76
|
77: 8(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 75 76
|
||||||
78: 8(fvec4) Load 10(v)
|
78: 8(fvec4) Load 10(v)
|
||||||
79: 8(fvec4) FAdd 78 77
|
79: 8(fvec4) FAdd 78 77
|
||||||
Store 10(v) 79
|
Store 10(v) 79
|
||||||
80: 8(fvec4) Load 10(v)
|
80: 8(fvec4) Load 10(v)
|
||||||
81: 8(fvec4) ExtInst 1(GLSL.std.450) 24(exp) 80
|
81: 8(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 80
|
||||||
82: 8(fvec4) Load 10(v)
|
82: 8(fvec4) Load 10(v)
|
||||||
83: 8(fvec4) FAdd 82 81
|
83: 8(fvec4) FAdd 82 81
|
||||||
Store 10(v) 83
|
Store 10(v) 83
|
||||||
84: 8(fvec4) Load 10(v)
|
84: 8(fvec4) Load 10(v)
|
||||||
85: 8(fvec4) ExtInst 1(GLSL.std.450) 25(log) 84
|
85: 8(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 84
|
||||||
86: 8(fvec4) Load 10(v)
|
86: 8(fvec4) Load 10(v)
|
||||||
87: 8(fvec4) FAdd 86 85
|
87: 8(fvec4) FAdd 86 85
|
||||||
Store 10(v) 87
|
Store 10(v) 87
|
||||||
88: 8(fvec4) Load 10(v)
|
88: 8(fvec4) Load 10(v)
|
||||||
89: 8(fvec4) ExtInst 1(GLSL.std.450) 26(exp2) 88
|
89: 8(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 88
|
||||||
90: 8(fvec4) Load 10(v)
|
90: 8(fvec4) Load 10(v)
|
||||||
91: 8(fvec4) FAdd 90 89
|
91: 8(fvec4) FAdd 90 89
|
||||||
Store 10(v) 91
|
Store 10(v) 91
|
||||||
92: 8(fvec4) Load 10(v)
|
92: 8(fvec4) Load 10(v)
|
||||||
93: 8(fvec4) ExtInst 1(GLSL.std.450) 27(log2) 92
|
93: 8(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 92
|
||||||
94: 8(fvec4) Load 10(v)
|
94: 8(fvec4) Load 10(v)
|
||||||
95: 8(fvec4) FAdd 94 93
|
95: 8(fvec4) FAdd 94 93
|
||||||
Store 10(v) 95
|
Store 10(v) 95
|
||||||
96: 8(fvec4) Load 10(v)
|
96: 8(fvec4) Load 10(v)
|
||||||
97: 8(fvec4) ExtInst 1(GLSL.std.450) 28(sqrt) 96
|
97: 8(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 96
|
||||||
98: 8(fvec4) Load 10(v)
|
98: 8(fvec4) Load 10(v)
|
||||||
99: 8(fvec4) FAdd 98 97
|
99: 8(fvec4) FAdd 98 97
|
||||||
Store 10(v) 99
|
Store 10(v) 99
|
||||||
100: 8(fvec4) Load 10(v)
|
100: 8(fvec4) Load 10(v)
|
||||||
101: 8(fvec4) ExtInst 1(GLSL.std.450) 29(inverseSqrt) 100
|
101: 8(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 100
|
||||||
102: 8(fvec4) Load 10(v)
|
102: 8(fvec4) Load 10(v)
|
||||||
103: 8(fvec4) FAdd 102 101
|
103: 8(fvec4) FAdd 102 101
|
||||||
Store 10(v) 103
|
Store 10(v) 103
|
||||||
104: 8(fvec4) Load 10(v)
|
104: 8(fvec4) Load 10(v)
|
||||||
105: 8(fvec4) ExtInst 1(GLSL.std.450) 3(abs) 104
|
105: 8(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 104
|
||||||
106: 8(fvec4) Load 10(v)
|
106: 8(fvec4) Load 10(v)
|
||||||
107: 8(fvec4) FAdd 106 105
|
107: 8(fvec4) FAdd 106 105
|
||||||
Store 10(v) 107
|
Store 10(v) 107
|
||||||
108: 8(fvec4) Load 10(v)
|
108: 8(fvec4) Load 10(v)
|
||||||
109: 8(fvec4) ExtInst 1(GLSL.std.450) 4(sign) 108
|
109: 8(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 108
|
||||||
110: 8(fvec4) Load 10(v)
|
110: 8(fvec4) Load 10(v)
|
||||||
111: 8(fvec4) FAdd 110 109
|
111: 8(fvec4) FAdd 110 109
|
||||||
Store 10(v) 111
|
Store 10(v) 111
|
||||||
112: 8(fvec4) Load 10(v)
|
112: 8(fvec4) Load 10(v)
|
||||||
113: 8(fvec4) ExtInst 1(GLSL.std.450) 5(floor) 112
|
113: 8(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 112
|
||||||
114: 8(fvec4) Load 10(v)
|
114: 8(fvec4) Load 10(v)
|
||||||
115: 8(fvec4) FAdd 114 113
|
115: 8(fvec4) FAdd 114 113
|
||||||
Store 10(v) 115
|
Store 10(v) 115
|
||||||
116: 8(fvec4) Load 10(v)
|
116: 8(fvec4) Load 10(v)
|
||||||
117: 8(fvec4) ExtInst 1(GLSL.std.450) 6(ceil) 116
|
117: 8(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 116
|
||||||
118: 8(fvec4) Load 10(v)
|
118: 8(fvec4) Load 10(v)
|
||||||
119: 8(fvec4) FAdd 118 117
|
119: 8(fvec4) FAdd 118 117
|
||||||
Store 10(v) 119
|
Store 10(v) 119
|
||||||
120: 8(fvec4) Load 10(v)
|
120: 8(fvec4) Load 10(v)
|
||||||
121: 8(fvec4) ExtInst 1(GLSL.std.450) 7(fract) 120
|
121: 8(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 120
|
||||||
122: 8(fvec4) Load 10(v)
|
122: 8(fvec4) Load 10(v)
|
||||||
123: 8(fvec4) FAdd 122 121
|
123: 8(fvec4) FAdd 122 121
|
||||||
Store 10(v) 123
|
Store 10(v) 123
|
||||||
124: 8(fvec4) Load 10(v)
|
124: 8(fvec4) Load 10(v)
|
||||||
125: 8(fvec4) Load 10(v)
|
125: 8(fvec4) Load 10(v)
|
||||||
126: 8(fvec4) FMod 124 125
|
126: 8(fvec4) FMod 124 125
|
||||||
127: 8(fvec4) Load 10(v)
|
127: 8(fvec4) Load 10(v)
|
||||||
128: 8(fvec4) FAdd 127 126
|
128: 8(fvec4) FAdd 127 126
|
||||||
Store 10(v) 128
|
Store 10(v) 128
|
||||||
129: 8(fvec4) Load 10(v)
|
129: 8(fvec4) Load 10(v)
|
||||||
130: 8(fvec4) Load 10(v)
|
130: 8(fvec4) Load 10(v)
|
||||||
131: 7(float) CompositeExtract 130 0
|
131: 7(float) CompositeExtract 130 0
|
||||||
132: 8(fvec4) CompositeConstruct 131 131 131 131
|
132: 8(fvec4) CompositeConstruct 131 131 131 131
|
||||||
133: 8(fvec4) FMod 129 132
|
133: 8(fvec4) FMod 129 132
|
||||||
134: 8(fvec4) Load 10(v)
|
134: 8(fvec4) Load 10(v)
|
||||||
135: 8(fvec4) FAdd 134 133
|
135: 8(fvec4) FAdd 134 133
|
||||||
Store 10(v) 135
|
Store 10(v) 135
|
||||||
136: 8(fvec4) Load 10(v)
|
136: 8(fvec4) Load 10(v)
|
||||||
137: 8(fvec4) Load 12(uv4)
|
137: 8(fvec4) Load 12(uv4)
|
||||||
138: 8(fvec4) ExtInst 1(GLSL.std.450) 33(min) 136 137
|
138: 8(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 136 137
|
||||||
139: 8(fvec4) Load 10(v)
|
139: 8(fvec4) Load 10(v)
|
||||||
140: 8(fvec4) FAdd 139 138
|
140: 8(fvec4) FAdd 139 138
|
||||||
Store 10(v) 140
|
Store 10(v) 140
|
||||||
141: 8(fvec4) Load 10(v)
|
141: 8(fvec4) Load 10(v)
|
||||||
142: 8(fvec4) Load 12(uv4)
|
142: 8(fvec4) Load 12(uv4)
|
||||||
143: 8(fvec4) ExtInst 1(GLSL.std.450) 34(max) 141 142
|
143: 8(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 141 142
|
||||||
144: 8(fvec4) Load 10(v)
|
144: 8(fvec4) Load 10(v)
|
||||||
145: 8(fvec4) FAdd 144 143
|
145: 8(fvec4) FAdd 144 143
|
||||||
Store 10(v) 145
|
Store 10(v) 145
|
||||||
146: 8(fvec4) Load 10(v)
|
146: 8(fvec4) Load 10(v)
|
||||||
147: 8(fvec4) Load 12(uv4)
|
147: 8(fvec4) Load 12(uv4)
|
||||||
148: 8(fvec4) Load 12(uv4)
|
148: 8(fvec4) Load 12(uv4)
|
||||||
149: 8(fvec4) ExtInst 1(GLSL.std.450) 35(clamp) 146 147 148
|
149: 8(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 146 147 148
|
||||||
150: 8(fvec4) Load 10(v)
|
150: 8(fvec4) Load 10(v)
|
||||||
151: 8(fvec4) FAdd 150 149
|
151: 8(fvec4) FAdd 150 149
|
||||||
Store 10(v) 151
|
Store 10(v) 151
|
||||||
152: 8(fvec4) Load 10(v)
|
152: 8(fvec4) Load 10(v)
|
||||||
153: 8(fvec4) Load 10(v)
|
153: 8(fvec4) Load 10(v)
|
||||||
154: 8(fvec4) Load 10(v)
|
154: 8(fvec4) Load 10(v)
|
||||||
155: 8(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 152 153 154
|
155: 8(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 152 153 154
|
||||||
156: 8(fvec4) Load 10(v)
|
156: 8(fvec4) Load 10(v)
|
||||||
157: 8(fvec4) FAdd 156 155
|
157: 8(fvec4) FAdd 156 155
|
||||||
Store 10(v) 157
|
Store 10(v) 157
|
||||||
158: 8(fvec4) Load 10(v)
|
158: 8(fvec4) Load 10(v)
|
||||||
159: 8(fvec4) Load 10(v)
|
159: 8(fvec4) Load 10(v)
|
||||||
160: 8(fvec4) ExtInst 1(GLSL.std.450) 37(step) 158 159
|
160: 8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 158 159
|
||||||
161: 8(fvec4) Load 10(v)
|
161: 8(fvec4) Load 10(v)
|
||||||
162: 8(fvec4) FAdd 161 160
|
162: 8(fvec4) FAdd 161 160
|
||||||
Store 10(v) 162
|
Store 10(v) 162
|
||||||
163: 8(fvec4) Load 10(v)
|
163: 8(fvec4) Load 10(v)
|
||||||
164: 8(fvec4) Load 10(v)
|
164: 8(fvec4) Load 10(v)
|
||||||
165: 8(fvec4) Load 10(v)
|
165: 8(fvec4) Load 10(v)
|
||||||
166: 8(fvec4) ExtInst 1(GLSL.std.450) 38(smoothStep) 163 164 165
|
166: 8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 163 164 165
|
||||||
167: 8(fvec4) Load 10(v)
|
167: 8(fvec4) Load 10(v)
|
||||||
168: 8(fvec4) FAdd 167 166
|
168: 8(fvec4) FAdd 167 166
|
||||||
Store 10(v) 168
|
Store 10(v) 168
|
||||||
171: 7(float) Load 170(uf)
|
171: 7(float) Load 170(uf)
|
||||||
172: 8(fvec4) Load 10(v)
|
172: 8(fvec4) Load 10(v)
|
||||||
173: 8(fvec4) ExtInst 1(GLSL.std.450) 37(step) 171 172
|
173: 8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 171 172
|
||||||
174: 8(fvec4) Load 10(v)
|
174: 8(fvec4) Load 10(v)
|
||||||
175: 8(fvec4) FAdd 174 173
|
175: 8(fvec4) FAdd 174 173
|
||||||
Store 10(v) 175
|
Store 10(v) 175
|
||||||
176: 7(float) Load 170(uf)
|
176: 7(float) Load 170(uf)
|
||||||
177: 7(float) Load 170(uf)
|
177: 7(float) Load 170(uf)
|
||||||
178: 8(fvec4) Load 10(v)
|
178: 8(fvec4) Load 10(v)
|
||||||
179: 8(fvec4) ExtInst 1(GLSL.std.450) 38(smoothStep) 176 177 178
|
179: 8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 176 177 178
|
||||||
180: 8(fvec4) Load 10(v)
|
180: 8(fvec4) Load 10(v)
|
||||||
181: 8(fvec4) FAdd 180 179
|
181: 8(fvec4) FAdd 180 179
|
||||||
Store 10(v) 181
|
Store 10(v) 181
|
||||||
182: 8(fvec4) Load 10(v)
|
182: 8(fvec4) Load 10(v)
|
||||||
183: 8(fvec4) ExtInst 1(GLSL.std.450) 61(normalize) 182
|
183: 8(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 182
|
||||||
184: 8(fvec4) Load 10(v)
|
184: 8(fvec4) Load 10(v)
|
||||||
185: 8(fvec4) FAdd 184 183
|
185: 8(fvec4) FAdd 184 183
|
||||||
Store 10(v) 185
|
Store 10(v) 185
|
||||||
186: 8(fvec4) Load 10(v)
|
186: 8(fvec4) Load 10(v)
|
||||||
187: 8(fvec4) Load 10(v)
|
187: 8(fvec4) Load 10(v)
|
||||||
188: 8(fvec4) Load 10(v)
|
188: 8(fvec4) Load 10(v)
|
||||||
189: 8(fvec4) ExtInst 1(GLSL.std.450) 63(faceForward) 186 187 188
|
189: 8(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 186 187 188
|
||||||
190: 8(fvec4) Load 10(v)
|
190: 8(fvec4) Load 10(v)
|
||||||
191: 8(fvec4) FAdd 190 189
|
191: 8(fvec4) FAdd 190 189
|
||||||
Store 10(v) 191
|
Store 10(v) 191
|
||||||
192: 8(fvec4) Load 10(v)
|
192: 8(fvec4) Load 10(v)
|
||||||
193: 8(fvec4) Load 10(v)
|
193: 8(fvec4) Load 10(v)
|
||||||
194: 8(fvec4) ExtInst 1(GLSL.std.450) 64(reflect) 192 193
|
194: 8(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 192 193
|
||||||
195: 8(fvec4) Load 10(v)
|
195: 8(fvec4) Load 10(v)
|
||||||
196: 8(fvec4) FAdd 195 194
|
196: 8(fvec4) FAdd 195 194
|
||||||
Store 10(v) 196
|
Store 10(v) 196
|
||||||
197: 8(fvec4) Load 10(v)
|
197: 8(fvec4) Load 10(v)
|
||||||
198: 8(fvec4) Load 10(v)
|
198: 8(fvec4) Load 10(v)
|
||||||
199: 7(float) Load 170(uf)
|
199: 7(float) Load 170(uf)
|
||||||
200: 8(fvec4) ExtInst 1(GLSL.std.450) 65(refract) 197 198 199
|
200: 8(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 197 198 199
|
||||||
201: 8(fvec4) Load 10(v)
|
201: 8(fvec4) Load 10(v)
|
||||||
202: 8(fvec4) FAdd 201 200
|
202: 8(fvec4) FAdd 201 200
|
||||||
Store 10(v) 202
|
Store 10(v) 202
|
||||||
203: 8(fvec4) Load 10(v)
|
203: 8(fvec4) Load 10(v)
|
||||||
204: 8(fvec4) DPdx 203
|
204: 8(fvec4) DPdx 203
|
||||||
205: 8(fvec4) Load 10(v)
|
205: 8(fvec4) Load 10(v)
|
||||||
206: 8(fvec4) FAdd 205 204
|
206: 8(fvec4) FAdd 205 204
|
||||||
Store 10(v) 206
|
Store 10(v) 206
|
||||||
207: 8(fvec4) Load 10(v)
|
207: 8(fvec4) Load 10(v)
|
||||||
208: 8(fvec4) DPdy 207
|
208: 8(fvec4) DPdy 207
|
||||||
209: 8(fvec4) Load 10(v)
|
209: 8(fvec4) Load 10(v)
|
||||||
210: 8(fvec4) FAdd 209 208
|
210: 8(fvec4) FAdd 209 208
|
||||||
Store 10(v) 210
|
Store 10(v) 210
|
||||||
211: 8(fvec4) Load 10(v)
|
211: 8(fvec4) Load 10(v)
|
||||||
212: 8(fvec4) Fwidth 211
|
212: 8(fvec4) Fwidth 211
|
||||||
213: 8(fvec4) Load 10(v)
|
213: 8(fvec4) Load 10(v)
|
||||||
214: 8(fvec4) FAdd 213 212
|
214: 8(fvec4) FAdd 213 212
|
||||||
Store 10(v) 214
|
Store 10(v) 214
|
||||||
218: 8(fvec4) Load 10(v)
|
218: 8(fvec4) Load 10(v)
|
||||||
219: 8(fvec4) Load 12(uv4)
|
219: 8(fvec4) Load 12(uv4)
|
||||||
221: 220(bvec4) FOrdLessThan 218 219
|
221: 220(bvec4) FOrdLessThan 218 219
|
||||||
222: 215(bool) Any 221
|
222: 215(bool) Any 221
|
||||||
Store 217(b) 222
|
Store 217(b) 222
|
||||||
223: 215(bool) Load 217(b)
|
223: 215(bool) Load 217(b)
|
||||||
224: 8(fvec4) Load 10(v)
|
224: 8(fvec4) Load 10(v)
|
||||||
225: 8(fvec4) Load 12(uv4)
|
225: 8(fvec4) Load 12(uv4)
|
||||||
226: 220(bvec4) FOrdLessThanEqual 224 225
|
226: 220(bvec4) FOrdLessThanEqual 224 225
|
||||||
227: 215(bool) Any 226
|
227: 215(bool) Any 226
|
||||||
228: 215(bool) LogicalAnd 223 227
|
228: 215(bool) LogicalAnd 223 227
|
||||||
Store 217(b) 228
|
Store 217(b) 228
|
||||||
229: 215(bool) Load 217(b)
|
229: 215(bool) Load 217(b)
|
||||||
230: 8(fvec4) Load 10(v)
|
230: 8(fvec4) Load 10(v)
|
||||||
231: 8(fvec4) Load 12(uv4)
|
231: 8(fvec4) Load 12(uv4)
|
||||||
232: 220(bvec4) FOrdGreaterThan 230 231
|
232: 220(bvec4) FOrdGreaterThan 230 231
|
||||||
233: 215(bool) Any 232
|
233: 215(bool) Any 232
|
||||||
234: 215(bool) LogicalAnd 229 233
|
234: 215(bool) LogicalAnd 229 233
|
||||||
Store 217(b) 234
|
Store 217(b) 234
|
||||||
235: 215(bool) Load 217(b)
|
235: 215(bool) Load 217(b)
|
||||||
236: 8(fvec4) Load 10(v)
|
236: 8(fvec4) Load 10(v)
|
||||||
237: 8(fvec4) Load 12(uv4)
|
237: 8(fvec4) Load 12(uv4)
|
||||||
238: 220(bvec4) FOrdGreaterThanEqual 236 237
|
238: 220(bvec4) FOrdGreaterThanEqual 236 237
|
||||||
239: 215(bool) Any 238
|
239: 215(bool) Any 238
|
||||||
240: 215(bool) LogicalAnd 235 239
|
240: 215(bool) LogicalAnd 235 239
|
||||||
Store 217(b) 240
|
Store 217(b) 240
|
||||||
241: 215(bool) Load 217(b)
|
241: 215(bool) Load 217(b)
|
||||||
244: 220(bvec4) Load 243(ub41)
|
244: 220(bvec4) Load 243(ub41)
|
||||||
246: 220(bvec4) Load 245(ub42)
|
246: 220(bvec4) Load 245(ub42)
|
||||||
247: 220(bvec4) IEqual 244 246
|
247: 220(bvec4) IEqual 244 246
|
||||||
248: 215(bool) Any 247
|
248: 215(bool) Any 247
|
||||||
249: 215(bool) LogicalAnd 241 248
|
249: 215(bool) LogicalAnd 241 248
|
||||||
Store 217(b) 249
|
Store 217(b) 249
|
||||||
250: 215(bool) Load 217(b)
|
250: 215(bool) Load 217(b)
|
||||||
251: 220(bvec4) Load 243(ub41)
|
251: 220(bvec4) Load 243(ub41)
|
||||||
252: 220(bvec4) Load 245(ub42)
|
252: 220(bvec4) Load 245(ub42)
|
||||||
253: 220(bvec4) INotEqual 251 252
|
253: 220(bvec4) INotEqual 251 252
|
||||||
254: 215(bool) Any 253
|
254: 215(bool) Any 253
|
||||||
255: 215(bool) LogicalAnd 250 254
|
255: 215(bool) LogicalAnd 250 254
|
||||||
Store 217(b) 255
|
Store 217(b) 255
|
||||||
256: 215(bool) Load 217(b)
|
256: 215(bool) Load 217(b)
|
||||||
257: 220(bvec4) Load 243(ub41)
|
257: 220(bvec4) Load 243(ub41)
|
||||||
258: 215(bool) Any 257
|
258: 215(bool) Any 257
|
||||||
259: 215(bool) LogicalAnd 256 258
|
259: 215(bool) LogicalAnd 256 258
|
||||||
Store 217(b) 259
|
Store 217(b) 259
|
||||||
260: 215(bool) Load 217(b)
|
260: 215(bool) Load 217(b)
|
||||||
261: 220(bvec4) Load 243(ub41)
|
261: 220(bvec4) Load 243(ub41)
|
||||||
262: 215(bool) All 261
|
262: 215(bool) All 261
|
||||||
263: 215(bool) LogicalAnd 260 262
|
263: 215(bool) LogicalAnd 260 262
|
||||||
Store 217(b) 263
|
Store 217(b) 263
|
||||||
264: 215(bool) Load 217(b)
|
264: 215(bool) Load 217(b)
|
||||||
265: 220(bvec4) Load 243(ub41)
|
265: 220(bvec4) Load 243(ub41)
|
||||||
266: 220(bvec4) Not 265
|
266: 220(bvec4) LogicalNot 265
|
||||||
267: 215(bool) Any 266
|
267: 215(bool) Any 266
|
||||||
268: 215(bool) LogicalAnd 264 267
|
268: 215(bool) LogicalAnd 264 267
|
||||||
Store 217(b) 268
|
Store 217(b) 268
|
||||||
269: 19(int) Load 21(i)
|
269: 19(int) Load 21(i)
|
||||||
270: 19(int) Load 23(ui)
|
270: 19(int) Load 23(ui)
|
||||||
271: 19(int) IAdd 269 270
|
271: 19(int) IAdd 269 270
|
||||||
272: 19(int) Load 21(i)
|
272: 19(int) Load 21(i)
|
||||||
273: 19(int) IMul 271 272
|
273: 19(int) IMul 271 272
|
||||||
274: 19(int) Load 23(ui)
|
274: 19(int) Load 23(ui)
|
||||||
275: 19(int) ISub 273 274
|
275: 19(int) ISub 273 274
|
||||||
276: 19(int) Load 21(i)
|
276: 19(int) Load 21(i)
|
||||||
277: 19(int) SDiv 275 276
|
277: 19(int) SDiv 275 276
|
||||||
Store 21(i) 277
|
Store 21(i) 277
|
||||||
278: 19(int) Load 21(i)
|
278: 19(int) Load 21(i)
|
||||||
279: 19(int) Load 23(ui)
|
279: 19(int) Load 23(ui)
|
||||||
280: 19(int) SMod 278 279
|
280: 19(int) SMod 278 279
|
||||||
Store 21(i) 280
|
Store 21(i) 280
|
||||||
281: 19(int) Load 21(i)
|
281: 19(int) Load 21(i)
|
||||||
282: 19(int) Load 23(ui)
|
282: 19(int) Load 23(ui)
|
||||||
283: 215(bool) IEqual 281 282
|
283: 215(bool) IEqual 281 282
|
||||||
284: 19(int) Load 21(i)
|
284: 19(int) Load 21(i)
|
||||||
285: 19(int) Load 23(ui)
|
285: 19(int) Load 23(ui)
|
||||||
286: 215(bool) INotEqual 284 285
|
286: 215(bool) INotEqual 284 285
|
||||||
287: 19(int) Load 21(i)
|
287: 19(int) Load 21(i)
|
||||||
288: 19(int) Load 23(ui)
|
288: 19(int) Load 23(ui)
|
||||||
289: 215(bool) IEqual 287 288
|
289: 215(bool) IEqual 287 288
|
||||||
290: 215(bool) LogicalAnd 286 289
|
290: 215(bool) LogicalAnd 286 289
|
||||||
291: 19(int) Load 21(i)
|
291: 19(int) Load 21(i)
|
||||||
293: 215(bool) INotEqual 291 292
|
293: 215(bool) INotEqual 291 292
|
||||||
294: 215(bool) LogicalXor 290 293
|
294: 215(bool) LogicalNotEqual 290 293
|
||||||
295: 215(bool) LogicalOr 283 294
|
295: 215(bool) LogicalOr 283 294
|
||||||
SelectionMerge 297 None
|
SelectionMerge 297 None
|
||||||
BranchConditional 295 296 297
|
BranchConditional 295 296 297
|
||||||
296: Label
|
296: Label
|
||||||
298: 19(int) Load 21(i)
|
298: 19(int) Load 21(i)
|
||||||
300: 19(int) IAdd 298 299
|
300: 19(int) IAdd 298 299
|
||||||
Store 21(i) 300
|
Store 21(i) 300
|
||||||
Branch 297
|
Branch 297
|
||||||
297: Label
|
297: Label
|
||||||
303: 7(float) Load 170(uf)
|
303: 7(float) Load 170(uf)
|
||||||
304: 7(float) Load 170(uf)
|
304: 7(float) Load 170(uf)
|
||||||
305: 7(float) FAdd 303 304
|
305: 7(float) FAdd 303 304
|
||||||
306: 7(float) Load 170(uf)
|
306: 7(float) Load 170(uf)
|
||||||
307: 7(float) FMul 305 306
|
307: 7(float) FMul 305 306
|
||||||
308: 7(float) Load 170(uf)
|
308: 7(float) Load 170(uf)
|
||||||
309: 7(float) FSub 307 308
|
309: 7(float) FSub 307 308
|
||||||
310: 7(float) Load 170(uf)
|
310: 7(float) Load 170(uf)
|
||||||
311: 7(float) FDiv 309 310
|
311: 7(float) FDiv 309 310
|
||||||
Store 302(f) 311
|
Store 302(f) 311
|
||||||
312: 8(fvec4) Load 10(v)
|
312: 8(fvec4) Load 10(v)
|
||||||
313: 7(float) ExtInst 1(GLSL.std.450) 58(length) 312
|
313: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 312
|
||||||
314: 7(float) Load 302(f)
|
314: 7(float) Load 302(f)
|
||||||
315: 7(float) FAdd 314 313
|
315: 7(float) FAdd 314 313
|
||||||
Store 302(f) 315
|
Store 302(f) 315
|
||||||
316: 8(fvec4) Load 10(v)
|
316: 8(fvec4) Load 10(v)
|
||||||
317: 8(fvec4) Load 10(v)
|
317: 8(fvec4) Load 10(v)
|
||||||
318: 7(float) ExtInst 1(GLSL.std.450) 59(distance) 316 317
|
318: 7(float) ExtInst 1(GLSL.std.450) 66(Distance) 316 317
|
||||||
319: 7(float) Load 302(f)
|
319: 7(float) Load 302(f)
|
||||||
320: 7(float) FAdd 319 318
|
320: 7(float) FAdd 319 318
|
||||||
Store 302(f) 320
|
Store 302(f) 320
|
||||||
321: 8(fvec4) Load 10(v)
|
321: 8(fvec4) Load 10(v)
|
||||||
322: 8(fvec4) Load 10(v)
|
322: 8(fvec4) Load 10(v)
|
||||||
323: 7(float) Dot 321 322
|
323: 7(float) Dot 321 322
|
||||||
324: 7(float) Load 302(f)
|
324: 7(float) Load 302(f)
|
||||||
325: 7(float) FAdd 324 323
|
325: 7(float) FAdd 324 323
|
||||||
Store 302(f) 325
|
Store 302(f) 325
|
||||||
326: 7(float) Load 302(f)
|
326: 7(float) Load 302(f)
|
||||||
327: 7(float) Load 170(uf)
|
327: 7(float) Load 170(uf)
|
||||||
328: 7(float) FMul 326 327
|
328: 7(float) FMul 326 327
|
||||||
329: 7(float) Load 302(f)
|
329: 7(float) Load 302(f)
|
||||||
330: 7(float) FAdd 329 328
|
330: 7(float) FAdd 329 328
|
||||||
Store 302(f) 330
|
Store 302(f) 330
|
||||||
331: 8(fvec4) Load 10(v)
|
331: 8(fvec4) Load 10(v)
|
||||||
333: 332(fvec3) VectorShuffle 331 331 0 1 2
|
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
|
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
|
337: 7(float) CompositeExtract 336 0
|
||||||
338: 7(float) Load 302(f)
|
338: 7(float) Load 302(f)
|
||||||
339: 7(float) FAdd 338 337
|
339: 7(float) FAdd 338 337
|
||||||
Store 302(f) 339
|
Store 302(f) 339
|
||||||
340: 7(float) Load 302(f)
|
340: 7(float) Load 302(f)
|
||||||
341: 7(float) Load 170(uf)
|
341: 7(float) Load 170(uf)
|
||||||
342: 215(bool) FOrdEqual 340 341
|
342: 215(bool) FOrdEqual 340 341
|
||||||
343: 7(float) Load 302(f)
|
343: 7(float) Load 302(f)
|
||||||
344: 7(float) Load 170(uf)
|
344: 7(float) Load 170(uf)
|
||||||
345: 215(bool) FOrdNotEqual 343 344
|
345: 215(bool) FOrdNotEqual 343 344
|
||||||
346: 7(float) Load 302(f)
|
346: 7(float) Load 302(f)
|
||||||
348: 215(bool) FOrdNotEqual 346 347
|
348: 215(bool) FOrdNotEqual 346 347
|
||||||
349: 215(bool) LogicalAnd 345 348
|
349: 215(bool) LogicalAnd 345 348
|
||||||
350: 215(bool) LogicalOr 342 349
|
350: 215(bool) LogicalOr 342 349
|
||||||
SelectionMerge 352 None
|
SelectionMerge 352 None
|
||||||
BranchConditional 350 351 352
|
BranchConditional 350 351 352
|
||||||
351: Label
|
351: Label
|
||||||
353: 7(float) Load 302(f)
|
353: 7(float) Load 302(f)
|
||||||
355: 7(float) FAdd 353 354
|
355: 7(float) FAdd 353 354
|
||||||
Store 302(f) 355
|
Store 302(f) 355
|
||||||
Branch 352
|
Branch 352
|
||||||
352: Label
|
352: Label
|
||||||
356: 19(int) Load 23(ui)
|
356: 19(int) Load 23(ui)
|
||||||
357: 19(int) Load 21(i)
|
357: 19(int) Load 21(i)
|
||||||
358: 19(int) BitwiseAnd 357 356
|
358: 19(int) BitwiseAnd 357 356
|
||||||
Store 21(i) 358
|
Store 21(i) 358
|
||||||
360: 19(int) Load 21(i)
|
360: 19(int) Load 21(i)
|
||||||
361: 19(int) BitwiseOr 360 359
|
361: 19(int) BitwiseOr 360 359
|
||||||
Store 21(i) 361
|
Store 21(i) 361
|
||||||
362: 19(int) Load 23(ui)
|
362: 19(int) Load 23(ui)
|
||||||
363: 19(int) Load 21(i)
|
363: 19(int) Load 21(i)
|
||||||
364: 19(int) BitwiseXor 363 362
|
364: 19(int) BitwiseXor 363 362
|
||||||
Store 21(i) 364
|
Store 21(i) 364
|
||||||
366: 19(int) Load 21(i)
|
366: 19(int) Load 21(i)
|
||||||
367: 19(int) SMod 366 365
|
367: 19(int) SMod 366 365
|
||||||
Store 21(i) 367
|
Store 21(i) 367
|
||||||
368: 19(int) Load 21(i)
|
368: 19(int) Load 21(i)
|
||||||
369: 19(int) ShiftRightArithmetic 368 292
|
369: 19(int) ShiftRightArithmetic 368 292
|
||||||
Store 21(i) 369
|
Store 21(i) 369
|
||||||
370: 19(int) Load 23(ui)
|
370: 19(int) Load 23(ui)
|
||||||
371: 19(int) Load 21(i)
|
371: 19(int) Load 21(i)
|
||||||
372: 19(int) ShiftLeftLogical 371 370
|
372: 19(int) ShiftLeftLogical 371 370
|
||||||
Store 21(i) 372
|
Store 21(i) 372
|
||||||
373: 19(int) Load 21(i)
|
373: 19(int) Load 21(i)
|
||||||
374: 19(int) Not 373
|
374: 19(int) Not 373
|
||||||
Store 21(i) 374
|
Store 21(i) 374
|
||||||
375: 215(bool) Load 217(b)
|
375: 215(bool) Load 217(b)
|
||||||
376: 215(bool) Not 375
|
376: 215(bool) LogicalNot 375
|
||||||
Store 217(b) 376
|
Store 217(b) 376
|
||||||
380: 215(bool) Load 217(b)
|
380: 215(bool) Load 217(b)
|
||||||
SelectionMerge 382 None
|
SelectionMerge 382 None
|
||||||
BranchConditional 380 381 391
|
BranchConditional 380 381 391
|
||||||
381: Label
|
381: Label
|
||||||
383: 19(int) Load 21(i)
|
383: 19(int) Load 21(i)
|
||||||
384: 7(float) ConvertSToF 383
|
384: 7(float) ConvertSToF 383
|
||||||
385: 8(fvec4) CompositeConstruct 384 384 384 384
|
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
|
387: 8(fvec4) CompositeConstruct 386 386 386 386
|
||||||
388: 8(fvec4) FAdd 385 387
|
388: 8(fvec4) FAdd 385 387
|
||||||
389: 8(fvec4) Load 10(v)
|
389: 8(fvec4) Load 10(v)
|
||||||
390: 8(fvec4) FAdd 388 389
|
390: 8(fvec4) FAdd 388 389
|
||||||
Store 379 390
|
Store 379 390
|
||||||
Branch 382
|
Branch 382
|
||||||
391: Label
|
391: Label
|
||||||
392: 8(fvec4) Load 10(v)
|
392: 8(fvec4) Load 10(v)
|
||||||
Store 379 392
|
Store 379 392
|
||||||
Branch 382
|
Branch 382
|
||||||
382: Label
|
382: Label
|
||||||
393: 8(fvec4) Load 379
|
393: 8(fvec4) Load 379
|
||||||
Store 378(gl_FragColor) 393
|
Store 378(gl_FragColor) 393
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 198
|
||||||
|
|
||||||
Source GLSL 420
|
Source GLSL 420
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "S"
|
Name 9 "S"
|
||||||
MemberName 9(S) 0 "color"
|
MemberName 9(S) 0 "color"
|
||||||
@ -71,7 +73,7 @@ Linked fragment stage:
|
|||||||
Name 195 "param"
|
Name 195 "param"
|
||||||
Decorate 66(OutColor) Location 0
|
Decorate 66(OutColor) Location 0
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 3
|
8: TypeVector 7(float) 3
|
||||||
9(S): TypeStruct 8(fvec3)
|
9(S): TypeStruct 8(fvec3)
|
||||||
@ -80,7 +82,7 @@ Linked fragment stage:
|
|||||||
15: TypePointer Function 14(int)
|
15: TypePointer Function 14(int)
|
||||||
16: TypeFunction 2 9(S) 15(ptr)
|
16: TypeFunction 2 9(S) 15(ptr)
|
||||||
65: TypePointer Output 8(fvec3)
|
65: TypePointer Output 8(fvec3)
|
||||||
66(OutColor): 65(ptr) Variable Output
|
66(OutColor): 65(ptr) Variable Output
|
||||||
67: 14(int) Constant 0
|
67: 14(int) Constant 0
|
||||||
68: TypeInt 32 0
|
68: TypeInt 32 0
|
||||||
69: 68(int) Constant 0
|
69: 68(int) Constant 0
|
||||||
@ -90,72 +92,72 @@ Linked fragment stage:
|
|||||||
143: 8(fvec3) ConstantComposite 142 142 142
|
143: 8(fvec3) ConstantComposite 142 142 142
|
||||||
144: TypePointer Function 9(S)
|
144: TypePointer Function 9(S)
|
||||||
149: TypePointer UniformConstant 14(int)
|
149: TypePointer UniformConstant 14(int)
|
||||||
150(u): 149(ptr) Variable UniformConstant
|
150(u): 149(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
145(s): 144(ptr) Variable Function
|
145(s): 144(ptr) Variable Function
|
||||||
151(param): 15(ptr) Variable Function
|
151(param): 15(ptr) Variable Function
|
||||||
155(param): 15(ptr) Variable Function
|
155(param): 15(ptr) Variable Function
|
||||||
159(param): 15(ptr) Variable Function
|
159(param): 15(ptr) Variable Function
|
||||||
163(param): 15(ptr) Variable Function
|
163(param): 15(ptr) Variable Function
|
||||||
167(param): 15(ptr) Variable Function
|
167(param): 15(ptr) Variable Function
|
||||||
171(param): 15(ptr) Variable Function
|
171(param): 15(ptr) Variable Function
|
||||||
175(param): 15(ptr) Variable Function
|
175(param): 15(ptr) Variable Function
|
||||||
179(param): 15(ptr) Variable Function
|
179(param): 15(ptr) Variable Function
|
||||||
183(param): 15(ptr) Variable Function
|
183(param): 15(ptr) Variable Function
|
||||||
187(param): 15(ptr) Variable Function
|
187(param): 15(ptr) Variable Function
|
||||||
191(param): 15(ptr) Variable Function
|
191(param): 15(ptr) Variable Function
|
||||||
195(param): 15(ptr) Variable Function
|
195(param): 15(ptr) Variable Function
|
||||||
Store 66(OutColor) 143
|
Store 66(OutColor) 143
|
||||||
146: 9(S) Load 145(s)
|
146: 9(S) Load 145(s)
|
||||||
147: 2 FunctionCall 12(GetColor1(struct-S-vf31;) 146
|
147: 2 FunctionCall 12(GetColor1(struct-S-vf31;) 146
|
||||||
148: 9(S) Load 145(s)
|
148: 9(S) Load 145(s)
|
||||||
152: 14(int) Load 150(u)
|
152: 14(int) Load 150(u)
|
||||||
Store 151(param) 152
|
Store 151(param) 152
|
||||||
153: 2 FunctionCall 19(GetColor2(struct-S-vf31;i1;) 148 151(param)
|
153: 2 FunctionCall 19(GetColor2(struct-S-vf31;i1;) 148 151(param)
|
||||||
154: 9(S) Load 145(s)
|
154: 9(S) Load 145(s)
|
||||||
156: 14(int) Load 150(u)
|
156: 14(int) Load 150(u)
|
||||||
Store 155(param) 156
|
Store 155(param) 156
|
||||||
157: 2 FunctionCall 23(GetColor3(struct-S-vf31;i1;) 154 155(param)
|
157: 2 FunctionCall 23(GetColor3(struct-S-vf31;i1;) 154 155(param)
|
||||||
158: 9(S) Load 145(s)
|
158: 9(S) Load 145(s)
|
||||||
160: 14(int) Load 150(u)
|
160: 14(int) Load 150(u)
|
||||||
Store 159(param) 160
|
Store 159(param) 160
|
||||||
161: 2 FunctionCall 27(GetColor4(struct-S-vf31;i1;) 158 159(param)
|
161: 2 FunctionCall 27(GetColor4(struct-S-vf31;i1;) 158 159(param)
|
||||||
162: 9(S) Load 145(s)
|
162: 9(S) Load 145(s)
|
||||||
164: 14(int) Load 150(u)
|
164: 14(int) Load 150(u)
|
||||||
Store 163(param) 164
|
Store 163(param) 164
|
||||||
165: 2 FunctionCall 31(GetColor5(struct-S-vf31;i1;) 162 163(param)
|
165: 2 FunctionCall 31(GetColor5(struct-S-vf31;i1;) 162 163(param)
|
||||||
166: 9(S) Load 145(s)
|
166: 9(S) Load 145(s)
|
||||||
168: 14(int) Load 150(u)
|
168: 14(int) Load 150(u)
|
||||||
Store 167(param) 168
|
Store 167(param) 168
|
||||||
169: 2 FunctionCall 35(GetColor6(struct-S-vf31;i1;) 166 167(param)
|
169: 2 FunctionCall 35(GetColor6(struct-S-vf31;i1;) 166 167(param)
|
||||||
170: 9(S) Load 145(s)
|
170: 9(S) Load 145(s)
|
||||||
172: 14(int) Load 150(u)
|
172: 14(int) Load 150(u)
|
||||||
Store 171(param) 172
|
Store 171(param) 172
|
||||||
173: 2 FunctionCall 39(GetColor7(struct-S-vf31;i1;) 170 171(param)
|
173: 2 FunctionCall 39(GetColor7(struct-S-vf31;i1;) 170 171(param)
|
||||||
174: 9(S) Load 145(s)
|
174: 9(S) Load 145(s)
|
||||||
176: 14(int) Load 150(u)
|
176: 14(int) Load 150(u)
|
||||||
Store 175(param) 176
|
Store 175(param) 176
|
||||||
177: 2 FunctionCall 43(GetColor8(struct-S-vf31;i1;) 174 175(param)
|
177: 2 FunctionCall 43(GetColor8(struct-S-vf31;i1;) 174 175(param)
|
||||||
178: 9(S) Load 145(s)
|
178: 9(S) Load 145(s)
|
||||||
180: 14(int) Load 150(u)
|
180: 14(int) Load 150(u)
|
||||||
Store 179(param) 180
|
Store 179(param) 180
|
||||||
181: 2 FunctionCall 47(GetColor9(struct-S-vf31;i1;) 178 179(param)
|
181: 2 FunctionCall 47(GetColor9(struct-S-vf31;i1;) 178 179(param)
|
||||||
182: 9(S) Load 145(s)
|
182: 9(S) Load 145(s)
|
||||||
184: 14(int) Load 150(u)
|
184: 14(int) Load 150(u)
|
||||||
Store 183(param) 184
|
Store 183(param) 184
|
||||||
185: 2 FunctionCall 51(GetColor10(struct-S-vf31;i1;) 182 183(param)
|
185: 2 FunctionCall 51(GetColor10(struct-S-vf31;i1;) 182 183(param)
|
||||||
186: 9(S) Load 145(s)
|
186: 9(S) Load 145(s)
|
||||||
188: 14(int) Load 150(u)
|
188: 14(int) Load 150(u)
|
||||||
Store 187(param) 188
|
Store 187(param) 188
|
||||||
189: 2 FunctionCall 55(GetColor11(struct-S-vf31;i1;) 186 187(param)
|
189: 2 FunctionCall 55(GetColor11(struct-S-vf31;i1;) 186 187(param)
|
||||||
190: 9(S) Load 145(s)
|
190: 9(S) Load 145(s)
|
||||||
192: 14(int) Load 150(u)
|
192: 14(int) Load 150(u)
|
||||||
Store 191(param) 192
|
Store 191(param) 192
|
||||||
193: 2 FunctionCall 59(GetColor12(struct-S-vf31;i1;) 190 191(param)
|
193: 2 FunctionCall 59(GetColor12(struct-S-vf31;i1;) 190 191(param)
|
||||||
194: 9(S) Load 145(s)
|
194: 9(S) Load 145(s)
|
||||||
196: 14(int) Load 150(u)
|
196: 14(int) Load 150(u)
|
||||||
Store 195(param) 196
|
Store 195(param) 196
|
||||||
197: 2 FunctionCall 63(GetColor13(struct-S-vf31;i1;) 194 195(param)
|
197: 2 FunctionCall 63(GetColor13(struct-S-vf31;i1;) 194 195(param)
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
@ -165,49 +167,49 @@ Linked fragment stage:
|
|||||||
11(i): 9(S) FunctionParameter
|
11(i): 9(S) FunctionParameter
|
||||||
13: Label
|
13: Label
|
||||||
70: 7(float) CompositeExtract 11(i) 0 0
|
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
|
72: 8(fvec3) CompositeConstruct 70 70 70
|
||||||
73: 8(fvec3) FAdd 71 72
|
73: 8(fvec3) FAdd 71 72
|
||||||
Store 66(OutColor) 73
|
Store 66(OutColor) 73
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(GetColor2(struct-S-vf31;i1;): 2 Function None 16
|
19(GetColor2(struct-S-vf31;i1;): 2 Function None 16
|
||||||
17(i): 9(S) FunctionParameter
|
17(i): 9(S) FunctionParameter
|
||||||
18(comp): 15(ptr) FunctionParameter
|
18(comp): 15(ptr) FunctionParameter
|
||||||
20: Label
|
20: Label
|
||||||
74: 14(int) Load 18(comp)
|
74: 14(int) Load 18(comp)
|
||||||
75: 8(fvec3) CompositeExtract 17(i) 0
|
75: 8(fvec3) CompositeExtract 17(i) 0
|
||||||
76: 7(float) VectorExtractDynamic 75 74
|
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
|
78: 8(fvec3) CompositeConstruct 76 76 76
|
||||||
79: 8(fvec3) FAdd 77 78
|
79: 8(fvec3) FAdd 77 78
|
||||||
Store 66(OutColor) 79
|
Store 66(OutColor) 79
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
23(GetColor3(struct-S-vf31;i1;): 2 Function None 16
|
23(GetColor3(struct-S-vf31;i1;): 2 Function None 16
|
||||||
21(i): 9(S) FunctionParameter
|
21(i): 9(S) FunctionParameter
|
||||||
22(comp): 15(ptr) FunctionParameter
|
22(comp): 15(ptr) FunctionParameter
|
||||||
24: Label
|
24: Label
|
||||||
80: 14(int) Load 22(comp)
|
80: 14(int) Load 22(comp)
|
||||||
81: 8(fvec3) CompositeExtract 21(i) 0
|
81: 8(fvec3) CompositeExtract 21(i) 0
|
||||||
82: 7(float) VectorExtractDynamic 81 80
|
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
|
84: 8(fvec3) CompositeConstruct 82 82 82
|
||||||
85: 8(fvec3) FAdd 83 84
|
85: 8(fvec3) FAdd 83 84
|
||||||
Store 66(OutColor) 85
|
Store 66(OutColor) 85
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
27(GetColor4(struct-S-vf31;i1;): 2 Function None 16
|
27(GetColor4(struct-S-vf31;i1;): 2 Function None 16
|
||||||
25(i): 9(S) FunctionParameter
|
25(i): 9(S) FunctionParameter
|
||||||
26(comp): 15(ptr) FunctionParameter
|
26(comp): 15(ptr) FunctionParameter
|
||||||
28: Label
|
28: Label
|
||||||
86: 14(int) Load 26(comp)
|
86: 14(int) Load 26(comp)
|
||||||
87: 8(fvec3) CompositeExtract 25(i) 0
|
87: 8(fvec3) CompositeExtract 25(i) 0
|
||||||
88: 7(float) VectorExtractDynamic 87 86
|
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
|
90: 8(fvec3) CompositeConstruct 88 88 88
|
||||||
91: 8(fvec3) FAdd 89 90
|
91: 8(fvec3) FAdd 89 90
|
||||||
Store 66(OutColor) 91
|
Store 66(OutColor) 91
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
31(GetColor5(struct-S-vf31;i1;): 2 Function None 16
|
31(GetColor5(struct-S-vf31;i1;): 2 Function None 16
|
||||||
@ -215,23 +217,23 @@ Linked fragment stage:
|
|||||||
30(comp): 15(ptr) FunctionParameter
|
30(comp): 15(ptr) FunctionParameter
|
||||||
32: Label
|
32: Label
|
||||||
92: 8(fvec3) CompositeExtract 29(i) 0
|
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
|
94: 8(fvec3) FAdd 93 92
|
||||||
Store 66(OutColor) 94
|
Store 66(OutColor) 94
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
35(GetColor6(struct-S-vf31;i1;): 2 Function None 16
|
35(GetColor6(struct-S-vf31;i1;): 2 Function None 16
|
||||||
33(i): 9(S) FunctionParameter
|
33(i): 9(S) FunctionParameter
|
||||||
34(comp): 15(ptr) FunctionParameter
|
34(comp): 15(ptr) FunctionParameter
|
||||||
36: Label
|
36: Label
|
||||||
95: 14(int) Load 34(comp)
|
95: 14(int) Load 34(comp)
|
||||||
96: 8(fvec3) CompositeExtract 33(i) 0
|
96: 8(fvec3) CompositeExtract 33(i) 0
|
||||||
98: 97(fvec2) VectorShuffle 96 96 1 0
|
98: 97(fvec2) VectorShuffle 96 96 1 0
|
||||||
99: 7(float) VectorExtractDynamic 98 95
|
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
|
101: 8(fvec3) CompositeConstruct 99 99 99
|
||||||
102: 8(fvec3) FAdd 100 101
|
102: 8(fvec3) FAdd 100 101
|
||||||
Store 66(OutColor) 102
|
Store 66(OutColor) 102
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
39(GetColor7(struct-S-vf31;i1;): 2 Function None 16
|
39(GetColor7(struct-S-vf31;i1;): 2 Function None 16
|
||||||
@ -240,12 +242,12 @@ Linked fragment stage:
|
|||||||
40: Label
|
40: Label
|
||||||
103: 8(fvec3) CompositeExtract 37(i) 0
|
103: 8(fvec3) CompositeExtract 37(i) 0
|
||||||
104: 97(fvec2) VectorShuffle 103 103 0 1
|
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
|
106: 97(fvec2) VectorShuffle 105 105 0 1
|
||||||
107: 97(fvec2) FAdd 106 104
|
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
|
109: 8(fvec3) VectorShuffle 108 107 3 4 2
|
||||||
Store 66(OutColor) 109
|
Store 66(OutColor) 109
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
43(GetColor8(struct-S-vf31;i1;): 2 Function None 16
|
43(GetColor8(struct-S-vf31;i1;): 2 Function None 16
|
||||||
@ -253,10 +255,10 @@ Linked fragment stage:
|
|||||||
42(comp): 15(ptr) FunctionParameter
|
42(comp): 15(ptr) FunctionParameter
|
||||||
44: Label
|
44: Label
|
||||||
111: 7(float) CompositeExtract 41(i) 0 2
|
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
|
113: 8(fvec3) CompositeConstruct 111 111 111
|
||||||
114: 8(fvec3) FAdd 112 113
|
114: 8(fvec3) FAdd 112 113
|
||||||
Store 66(OutColor) 114
|
Store 66(OutColor) 114
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
47(GetColor9(struct-S-vf31;i1;): 2 Function None 16
|
47(GetColor9(struct-S-vf31;i1;): 2 Function None 16
|
||||||
@ -264,12 +266,12 @@ Linked fragment stage:
|
|||||||
46(comp): 15(ptr) FunctionParameter
|
46(comp): 15(ptr) FunctionParameter
|
||||||
48: Label
|
48: Label
|
||||||
115: 8(fvec3) CompositeExtract 45(i) 0
|
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
|
117: 8(fvec3) VectorShuffle 116 116 2 0 1
|
||||||
118: 8(fvec3) FAdd 117 115
|
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
|
120: 8(fvec3) VectorShuffle 119 118 4 5 3
|
||||||
Store 66(OutColor) 120
|
Store 66(OutColor) 120
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
51(GetColor10(struct-S-vf31;i1;): 2 Function None 16
|
51(GetColor10(struct-S-vf31;i1;): 2 Function None 16
|
||||||
@ -278,12 +280,12 @@ Linked fragment stage:
|
|||||||
52: Label
|
52: Label
|
||||||
121: 8(fvec3) CompositeExtract 49(i) 0
|
121: 8(fvec3) CompositeExtract 49(i) 0
|
||||||
122: 97(fvec2) VectorShuffle 121 121 0 1
|
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
|
124: 97(fvec2) VectorShuffle 123 123 2 1
|
||||||
125: 97(fvec2) FAdd 124 122
|
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
|
127: 8(fvec3) VectorShuffle 126 125 0 4 3
|
||||||
Store 66(OutColor) 127
|
Store 66(OutColor) 127
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
55(GetColor11(struct-S-vf31;i1;): 2 Function None 16
|
55(GetColor11(struct-S-vf31;i1;): 2 Function None 16
|
||||||
@ -292,26 +294,26 @@ Linked fragment stage:
|
|||||||
56: Label
|
56: Label
|
||||||
128: 8(fvec3) CompositeExtract 53(i) 0
|
128: 8(fvec3) CompositeExtract 53(i) 0
|
||||||
129: 97(fvec2) VectorShuffle 128 128 0 1
|
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
|
131: 97(fvec2) VectorShuffle 130 130 0 2
|
||||||
132: 97(fvec2) FAdd 131 129
|
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
|
134: 8(fvec3) VectorShuffle 133 132 3 1 4
|
||||||
Store 66(OutColor) 134
|
Store 66(OutColor) 134
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
59(GetColor12(struct-S-vf31;i1;): 2 Function None 16
|
59(GetColor12(struct-S-vf31;i1;): 2 Function None 16
|
||||||
57(i): 9(S) FunctionParameter
|
57(i): 9(S) FunctionParameter
|
||||||
58(comp): 15(ptr) FunctionParameter
|
58(comp): 15(ptr) FunctionParameter
|
||||||
60: Label
|
60: Label
|
||||||
135: 14(int) Load 58(comp)
|
135: 14(int) Load 58(comp)
|
||||||
136: 7(float) CompositeExtract 57(i) 0 0
|
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
|
138: 7(float) VectorExtractDynamic 137 135
|
||||||
139: 7(float) FAdd 138 136
|
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
|
141: 8(fvec3) VectorInsertDynamic 140 139 135
|
||||||
Store 66(OutColor) 141
|
Store 66(OutColor) 141
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
63(GetColor13(struct-S-vf31;i1;): 2 Function None 16
|
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
|
// Id's are bound by 81
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "white"
|
Name 10 "white"
|
||||||
Name 13 "black"
|
Name 13 "black"
|
||||||
@ -20,10 +22,10 @@ Linked fragment stage:
|
|||||||
Name 28 "y"
|
Name 28 "y"
|
||||||
Name 33 "radius"
|
Name 33 "radius"
|
||||||
Name 56 "gl_FragColor"
|
Name 56 "gl_FragColor"
|
||||||
Decorate 22(tex_coord) Smooth
|
Decorate 22(tex_coord) Smooth
|
||||||
Decorate 56(gl_FragColor) BuiltIn FragColor
|
Decorate 56(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
@ -34,96 +36,96 @@ Linked fragment stage:
|
|||||||
18: TypePointer Function 7(float)
|
18: TypePointer Function 7(float)
|
||||||
20: TypeVector 7(float) 2
|
20: TypeVector 7(float) 2
|
||||||
21: TypePointer Input 20(fvec2)
|
21: TypePointer Input 20(fvec2)
|
||||||
22(tex_coord): 21(ptr) Variable Input
|
22(tex_coord): 21(ptr) Variable Input
|
||||||
25: 7(float) Constant 1073741824
|
25: 7(float) Constant 1073741824
|
||||||
43: TypeBool
|
43: TypeBool
|
||||||
48: 7(float) Constant 1066192077
|
48: 7(float) Constant 1066192077
|
||||||
55: TypePointer Output 8(fvec4)
|
55: TypePointer Output 8(fvec4)
|
||||||
56(gl_FragColor): 55(ptr) Variable Output
|
56(gl_FragColor): 55(ptr) Variable Output
|
||||||
59: 7(float) Constant 1067030938
|
59: 7(float) Constant 1067030938
|
||||||
68: 7(float) Constant 1061158912
|
68: 7(float) Constant 1061158912
|
||||||
73: 7(float) Constant 1098907648
|
73: 7(float) Constant 1098907648
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(white): 9(ptr) Variable Function
|
10(white): 9(ptr) Variable Function
|
||||||
13(black): 9(ptr) Variable Function
|
13(black): 9(ptr) Variable Function
|
||||||
16(color): 9(ptr) Variable Function
|
16(color): 9(ptr) Variable Function
|
||||||
19(x): 18(ptr) Variable Function
|
19(x): 18(ptr) Variable Function
|
||||||
28(y): 18(ptr) Variable Function
|
28(y): 18(ptr) Variable Function
|
||||||
33(radius): 18(ptr) Variable Function
|
33(radius): 18(ptr) Variable Function
|
||||||
Store 10(white) 12
|
Store 10(white) 12
|
||||||
Store 13(black) 15
|
Store 13(black) 15
|
||||||
17: 8(fvec4) Load 10(white)
|
17: 8(fvec4) Load 10(white)
|
||||||
Store 16(color) 17
|
Store 16(color) 17
|
||||||
23: 20(fvec2) Load 22(tex_coord)
|
23: 20(fvec2) Load 22(tex_coord)
|
||||||
24: 7(float) CompositeExtract 23 0
|
24: 7(float) CompositeExtract 23 0
|
||||||
26: 7(float) FMul 24 25
|
26: 7(float) FMul 24 25
|
||||||
27: 7(float) FSub 26 11
|
27: 7(float) FSub 26 11
|
||||||
Store 19(x) 27
|
Store 19(x) 27
|
||||||
29: 20(fvec2) Load 22(tex_coord)
|
29: 20(fvec2) Load 22(tex_coord)
|
||||||
30: 7(float) CompositeExtract 29 1
|
30: 7(float) CompositeExtract 29 1
|
||||||
31: 7(float) FMul 30 25
|
31: 7(float) FMul 30 25
|
||||||
32: 7(float) FSub 31 11
|
32: 7(float) FSub 31 11
|
||||||
Store 28(y) 32
|
Store 28(y) 32
|
||||||
34: 7(float) Load 19(x)
|
34: 7(float) Load 19(x)
|
||||||
35: 7(float) Load 19(x)
|
35: 7(float) Load 19(x)
|
||||||
36: 7(float) FMul 34 35
|
36: 7(float) FMul 34 35
|
||||||
37: 7(float) Load 28(y)
|
37: 7(float) Load 28(y)
|
||||||
38: 7(float) Load 28(y)
|
38: 7(float) Load 28(y)
|
||||||
39: 7(float) FMul 37 38
|
39: 7(float) FMul 37 38
|
||||||
40: 7(float) FAdd 36 39
|
40: 7(float) FAdd 36 39
|
||||||
41: 7(float) ExtInst 1(GLSL.std.450) 28(sqrt) 40
|
41: 7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40
|
||||||
Store 33(radius) 41
|
Store 33(radius) 41
|
||||||
42: 7(float) Load 33(radius)
|
42: 7(float) Load 33(radius)
|
||||||
44: 43(bool) FOrdGreaterThan 42 11
|
44: 43(bool) FOrdGreaterThan 42 11
|
||||||
SelectionMerge 46 None
|
SelectionMerge 46 None
|
||||||
BranchConditional 44 45 46
|
BranchConditional 44 45 46
|
||||||
45: Label
|
45: Label
|
||||||
47: 7(float) Load 33(radius)
|
47: 7(float) Load 33(radius)
|
||||||
49: 43(bool) FOrdGreaterThan 47 48
|
49: 43(bool) FOrdGreaterThan 47 48
|
||||||
SelectionMerge 51 None
|
SelectionMerge 51 None
|
||||||
BranchConditional 49 50 51
|
BranchConditional 49 50 51
|
||||||
50: Label
|
50: Label
|
||||||
52: 8(fvec4) Load 16(color)
|
52: 8(fvec4) Load 16(color)
|
||||||
53: 8(fvec4) CompositeConstruct 11 11 11 11
|
53: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||||
54: 8(fvec4) FAdd 52 53
|
54: 8(fvec4) FAdd 52 53
|
||||||
Store 16(color) 54
|
Store 16(color) 54
|
||||||
Branch 51
|
Branch 51
|
||||||
51: Label
|
51: Label
|
||||||
57: 8(fvec4) Load 16(color)
|
57: 8(fvec4) Load 16(color)
|
||||||
Store 56(gl_FragColor) 57
|
Store 56(gl_FragColor) 57
|
||||||
58: 7(float) Load 33(radius)
|
58: 7(float) Load 33(radius)
|
||||||
60: 43(bool) FOrdGreaterThan 58 59
|
60: 43(bool) FOrdGreaterThan 58 59
|
||||||
SelectionMerge 62 None
|
SelectionMerge 62 None
|
||||||
BranchConditional 60 61 62
|
BranchConditional 60 61 62
|
||||||
61: Label
|
61: Label
|
||||||
63: 8(fvec4) Load 16(color)
|
63: 8(fvec4) Load 16(color)
|
||||||
64: 8(fvec4) CompositeConstruct 11 11 11 11
|
64: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||||
65: 8(fvec4) FAdd 63 64
|
65: 8(fvec4) FAdd 63 64
|
||||||
Store 16(color) 65
|
Store 16(color) 65
|
||||||
Branch 62
|
Branch 62
|
||||||
62: Label
|
62: Label
|
||||||
Branch 46
|
Branch 46
|
||||||
46: Label
|
46: Label
|
||||||
Kill
|
Kill
|
||||||
66: Label
|
66: Label
|
||||||
67: 7(float) Load 33(radius)
|
67: 7(float) Load 33(radius)
|
||||||
69: 43(bool) FOrdGreaterThanEqual 67 68
|
69: 43(bool) FOrdGreaterThanEqual 67 68
|
||||||
SelectionMerge 71 None
|
SelectionMerge 71 None
|
||||||
BranchConditional 69 70 71
|
BranchConditional 69 70 71
|
||||||
70: Label
|
70: Label
|
||||||
72: 7(float) Load 33(radius)
|
72: 7(float) Load 33(radius)
|
||||||
74: 7(float) ExtInst 1(GLSL.std.450) 23(pow) 72 73
|
74: 7(float) ExtInst 1(GLSL.std.450) 26(Pow) 72 73
|
||||||
75: 7(float) FDiv 74 25
|
75: 7(float) FDiv 74 25
|
||||||
76: 7(float) ExtInst 1(GLSL.std.450) 3(abs) 75
|
76: 7(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75
|
||||||
77: 8(fvec4) Load 16(color)
|
77: 8(fvec4) Load 16(color)
|
||||||
78: 8(fvec4) CompositeConstruct 76 76 76 76
|
78: 8(fvec4) CompositeConstruct 76 76 76 76
|
||||||
79: 8(fvec4) FSub 77 78
|
79: 8(fvec4) FSub 77 78
|
||||||
Store 16(color) 79
|
Store 16(color) 79
|
||||||
Branch 71
|
Branch 71
|
||||||
71: Label
|
71: Label
|
||||||
80: 8(fvec4) Load 16(color)
|
80: 8(fvec4) Load 16(color)
|
||||||
Store 56(gl_FragColor) 80
|
Store 56(gl_FragColor) 80
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 37
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "white"
|
Name 10 "white"
|
||||||
Name 13 "black"
|
Name 13 "black"
|
||||||
@ -19,10 +21,10 @@ Linked fragment stage:
|
|||||||
Name 22 "tex_coord"
|
Name 22 "tex_coord"
|
||||||
Name 28 "y"
|
Name 28 "y"
|
||||||
Name 35 "gl_FragColor"
|
Name 35 "gl_FragColor"
|
||||||
Decorate 22(tex_coord) Smooth
|
Decorate 22(tex_coord) Smooth
|
||||||
Decorate 35(gl_FragColor) BuiltIn FragColor
|
Decorate 35(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
@ -33,31 +35,31 @@ Linked fragment stage:
|
|||||||
18: TypePointer Function 7(float)
|
18: TypePointer Function 7(float)
|
||||||
20: TypeVector 7(float) 2
|
20: TypeVector 7(float) 2
|
||||||
21: TypePointer Input 20(fvec2)
|
21: TypePointer Input 20(fvec2)
|
||||||
22(tex_coord): 21(ptr) Variable Input
|
22(tex_coord): 21(ptr) Variable Input
|
||||||
25: 7(float) Constant 1073741824
|
25: 7(float) Constant 1073741824
|
||||||
34: TypePointer Output 8(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(white): 9(ptr) Variable Function
|
10(white): 9(ptr) Variable Function
|
||||||
13(black): 9(ptr) Variable Function
|
13(black): 9(ptr) Variable Function
|
||||||
16(color): 9(ptr) Variable Function
|
16(color): 9(ptr) Variable Function
|
||||||
19(x): 18(ptr) Variable Function
|
19(x): 18(ptr) Variable Function
|
||||||
28(y): 18(ptr) Variable Function
|
28(y): 18(ptr) Variable Function
|
||||||
Store 10(white) 12
|
Store 10(white) 12
|
||||||
Store 13(black) 15
|
Store 13(black) 15
|
||||||
17: 8(fvec4) Load 10(white)
|
17: 8(fvec4) Load 10(white)
|
||||||
Store 16(color) 17
|
Store 16(color) 17
|
||||||
23: 20(fvec2) Load 22(tex_coord)
|
23: 20(fvec2) Load 22(tex_coord)
|
||||||
24: 7(float) CompositeExtract 23 0
|
24: 7(float) CompositeExtract 23 0
|
||||||
26: 7(float) FMul 24 25
|
26: 7(float) FMul 24 25
|
||||||
27: 7(float) FSub 26 11
|
27: 7(float) FSub 26 11
|
||||||
Store 19(x) 27
|
Store 19(x) 27
|
||||||
29: 20(fvec2) Load 22(tex_coord)
|
29: 20(fvec2) Load 22(tex_coord)
|
||||||
30: 7(float) CompositeExtract 29 1
|
30: 7(float) CompositeExtract 29 1
|
||||||
31: 7(float) FMul 30 25
|
31: 7(float) FMul 30 25
|
||||||
32: 7(float) FSub 31 11
|
32: 7(float) FSub 31 11
|
||||||
Store 28(y) 32
|
Store 28(y) 32
|
||||||
Kill
|
Kill
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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?
|
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
|
||||||
// Module Version 99
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 75
|
// Id's are bound by 77
|
||||||
|
|
||||||
Source ESSL 310
|
Source ESSL 310
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint GLCompute 4
|
EntryPoint GLCompute 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 11 "func(au1;"
|
Name 11 "func(au1;"
|
||||||
Name 10 "c"
|
Name 10 "c"
|
||||||
Name 13 "atoms("
|
Name 13 "atoms("
|
||||||
Name 20 "counter"
|
Name 23 "counter"
|
||||||
Name 21 "param"
|
Name 24 "param"
|
||||||
Name 24 "val"
|
Name 27 "val"
|
||||||
Name 28 "countArr"
|
Name 31 "countArr"
|
||||||
Name 38 "origi"
|
Name 41 "origi"
|
||||||
Name 40 "atomi"
|
Name 43 "atomi"
|
||||||
Name 44 "origu"
|
Name 47 "origu"
|
||||||
Name 46 "atomu"
|
Name 49 "atomu"
|
||||||
Name 48 "value"
|
Name 51 "value"
|
||||||
Name 72 "arrX"
|
Name 74 "arrX"
|
||||||
Name 73 "arrY"
|
Name 75 "arrY"
|
||||||
Name 74 "arrZ"
|
Name 76 "arrZ"
|
||||||
Decorate 20(counter) PrecisionHigh
|
Decorate 23(counter) Binding 0
|
||||||
Decorate 20(counter) Binding 0
|
Decorate 31(countArr) Binding 0
|
||||||
Decorate 24(val) PrecisionHigh
|
Decorate 74(arrX) NoStaticUse
|
||||||
Decorate 28(countArr) PrecisionHigh
|
Decorate 75(arrY) NoStaticUse
|
||||||
Decorate 28(countArr) Binding 0
|
Decorate 76(arrZ) NoStaticUse
|
||||||
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
|
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 0
|
7: TypeInt 32 0
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
9: TypeFunction 7(int) 8(ptr)
|
9: TypeFunction 7(int) 8(ptr)
|
||||||
19: TypePointer UniformConstant 7(int)
|
16: 7(int) Constant 1
|
||||||
20(counter): 19(ptr) Variable UniformConstant
|
17: 7(int) Constant 0
|
||||||
25: 7(int) Constant 4
|
21: 7(int) Constant 256
|
||||||
26: TypeArray 7(int) 25
|
22: TypePointer UniformConstant 7(int)
|
||||||
27: TypePointer UniformConstant 26
|
23(counter): 22(ptr) Variable UniformConstant
|
||||||
28(countArr): 27(ptr) Variable UniformConstant
|
28: 7(int) Constant 4
|
||||||
29: TypeInt 32 1
|
29: TypeArray 7(int) 28
|
||||||
30: 29(int) Constant 2
|
30: TypePointer UniformConstant 29
|
||||||
37: TypePointer Function 29(int)
|
31(countArr): 30(ptr) Variable UniformConstant
|
||||||
39: TypePointer WorkgroupLocal 29(int)
|
32: TypeInt 32 1
|
||||||
40(atomi): 39(ptr) Variable WorkgroupLocal
|
33: 32(int) Constant 2
|
||||||
42: 29(int) Constant 3
|
40: TypePointer Function 32(int)
|
||||||
45: TypePointer WorkgroupLocal 7(int)
|
42: TypePointer WorkgroupLocal 32(int)
|
||||||
46(atomu): 45(ptr) Variable WorkgroupLocal
|
43(atomi): 42(ptr) Variable WorkgroupLocal
|
||||||
48(value): 19(ptr) Variable UniformConstant
|
45: 32(int) Constant 3
|
||||||
52: 7(int) Constant 7
|
48: TypePointer WorkgroupLocal 7(int)
|
||||||
60: 29(int) Constant 7
|
49(atomu): 48(ptr) Variable WorkgroupLocal
|
||||||
66: 7(int) Constant 10
|
51(value): 22(ptr) Variable UniformConstant
|
||||||
69: 7(int) Constant 1
|
55: 7(int) Constant 7
|
||||||
70: TypeArray 29(int) 69
|
63: 32(int) Constant 7
|
||||||
71: TypePointer PrivateGlobal 70
|
69: 7(int) Constant 10
|
||||||
72(arrX): 71(ptr) Variable PrivateGlobal
|
72: TypeArray 32(int) 16
|
||||||
73(arrY): 71(ptr) Variable PrivateGlobal
|
73: TypePointer PrivateGlobal 72
|
||||||
74(arrZ): 71(ptr) Variable PrivateGlobal
|
74(arrX): 73(ptr) Variable PrivateGlobal
|
||||||
|
75(arrY): 73(ptr) Variable PrivateGlobal
|
||||||
|
76(arrZ): 73(ptr) Variable PrivateGlobal
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
21(param): 8(ptr) Variable Function
|
24(param): 8(ptr) Variable Function
|
||||||
24(val): 8(ptr) Variable Function
|
27(val): 8(ptr) Variable Function
|
||||||
MemoryBarrier Device AtomicCounterMemory
|
MemoryBarrier 16 21
|
||||||
22: 7(int) Load 20(counter)
|
25: 7(int) Load 23(counter)
|
||||||
Store 21(param) 22
|
Store 24(param) 25
|
||||||
23: 7(int) FunctionCall 11(func(au1;) 21(param)
|
26: 7(int) FunctionCall 11(func(au1;) 24(param)
|
||||||
31: 19(ptr) AccessChain 28(countArr) 30
|
34: 22(ptr) AccessChain 31(countArr) 33
|
||||||
32: 7(int) Load 31
|
35: 7(int) Load 34
|
||||||
33: 7(int) AtomicLoad 32 Device None
|
36: 7(int) AtomicLoad 35 16 17
|
||||||
34: 7(int) Load 31
|
37: 7(int) Load 34
|
||||||
Store 24(val) 34
|
Store 27(val) 37
|
||||||
35: 7(int) Load 20(counter)
|
38: 7(int) Load 23(counter)
|
||||||
36: 7(int) AtomicIDecrement 35 Device None
|
39: 7(int) AtomicIDecrement 38 16 17
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
11(func(au1;): 7(int) Function None 9
|
||||||
10(c): 8(ptr) FunctionParameter
|
10(c): 8(ptr) FunctionParameter
|
||||||
12: Label
|
12: Label
|
||||||
15: 7(int) Load 10(c)
|
15: 7(int) Load 10(c)
|
||||||
16: 7(int) AtomicIIncrement 15 Device None
|
18: 7(int) AtomicIIncrement 15 16 17
|
||||||
17: 7(int) Load 10(c)
|
19: 7(int) Load 10(c)
|
||||||
ReturnValue 17
|
ReturnValue 19
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
13(atoms(): 2 Function None 3
|
13(atoms(): 2 Function None 3
|
||||||
14: Label
|
14: Label
|
||||||
38(origi): 37(ptr) Variable Function
|
41(origi): 40(ptr) Variable Function
|
||||||
44(origu): 8(ptr) Variable Function
|
47(origu): 8(ptr) Variable Function
|
||||||
41: 29(int) Load 40(atomi)
|
44: 32(int) Load 43(atomi)
|
||||||
43: 29(int) AtomicIAdd 41 Device None 42
|
46: 32(int) AtomicIAdd 44 16 17 45
|
||||||
Store 38(origi) 43
|
Store 41(origi) 46
|
||||||
47: 7(int) Load 46(atomu)
|
50: 7(int) Load 49(atomu)
|
||||||
49: 7(int) Load 48(value)
|
52: 7(int) Load 51(value)
|
||||||
50: 7(int) AtomicAnd 47 Device None 49
|
53: 7(int) AtomicAnd 50 16 17 52
|
||||||
Store 44(origu) 50
|
Store 47(origu) 53
|
||||||
51: 7(int) Load 46(atomu)
|
54: 7(int) Load 49(atomu)
|
||||||
53: 7(int) AtomicOr 51 Device None 52
|
56: 7(int) AtomicOr 54 16 17 55
|
||||||
Store 44(origu) 53
|
Store 47(origu) 56
|
||||||
54: 7(int) Load 46(atomu)
|
57: 7(int) Load 49(atomu)
|
||||||
55: 7(int) AtomicXor 54 Device None 52
|
58: 7(int) AtomicXor 57 16 17 55
|
||||||
Store 44(origu) 55
|
Store 47(origu) 58
|
||||||
56: 7(int) Load 46(atomu)
|
59: 7(int) Load 49(atomu)
|
||||||
57: 7(int) Load 48(value)
|
60: 7(int) Load 51(value)
|
||||||
58: 7(int) AtomicIMin 56 Device None 57
|
61: 7(int) AtomicSMin 59 16 17 60
|
||||||
Store 44(origu) 58
|
Store 47(origu) 61
|
||||||
59: 29(int) Load 40(atomi)
|
62: 32(int) Load 43(atomi)
|
||||||
61: 29(int) AtomicIMax 59 Device None 60
|
64: 32(int) AtomicSMax 62 16 17 63
|
||||||
Store 38(origi) 61
|
Store 41(origi) 64
|
||||||
62: 29(int) Load 40(atomi)
|
65: 32(int) Load 43(atomi)
|
||||||
63: 29(int) Load 38(origi)
|
66: 32(int) Load 41(origi)
|
||||||
64: 29(int) AtomicExchange 62 Device None 63
|
67: 32(int) AtomicExchange 65 16 17 66
|
||||||
Store 38(origi) 64
|
Store 41(origi) 67
|
||||||
65: 7(int) Load 46(atomu)
|
68: 7(int) Load 49(atomu)
|
||||||
67: 7(int) Load 48(value)
|
70: 7(int) Load 51(value)
|
||||||
68: 7(int) AtomicCompareExchange 65 Device None 66 67
|
71: 7(int) AtomicCompareExchange 68 16 17 69 70
|
||||||
Store 44(origu) 68
|
Store 47(origu) 71
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 36
|
// Id's are bound by 37
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "v"
|
Name 10 "v"
|
||||||
Name 13 "tex"
|
Name 14 "tex"
|
||||||
Name 17 "coord"
|
Name 18 "coord"
|
||||||
Name 34 "gl_FragColor"
|
Name 35 "gl_FragColor"
|
||||||
Decorate 17(coord) Smooth
|
Decorate 18(coord) Smooth
|
||||||
Decorate 34(gl_FragColor) BuiltIn FragColor
|
Decorate 35(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypeSampler7(float) 2D filter+texture
|
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
12: TypePointer UniformConstant 11
|
12: TypeSampledImage 11
|
||||||
13(tex): 12(ptr) Variable UniformConstant
|
13: TypePointer UniformConstant 12
|
||||||
15: TypeVector 7(float) 2
|
14(tex): 13(ptr) Variable UniformConstant
|
||||||
16: TypePointer Input 15(fvec2)
|
16: TypeVector 7(float) 2
|
||||||
17(coord): 16(ptr) Variable Input
|
17: TypePointer Input 16(fvec2)
|
||||||
21: 7(float) Constant 1036831949
|
18(coord): 17(ptr) Variable Input
|
||||||
22: 7(float) Constant 1045220557
|
22: 7(float) Constant 1036831949
|
||||||
23: 7(float) Constant 1050253722
|
23: 7(float) Constant 1045220557
|
||||||
24: 7(float) Constant 1053609165
|
24: 7(float) Constant 1050253722
|
||||||
25: 8(fvec4) ConstantComposite 21 22 23 24
|
25: 7(float) Constant 1053609165
|
||||||
26: TypeBool
|
26: 8(fvec4) ConstantComposite 22 23 24 25
|
||||||
27: TypeVector 26(bool) 4
|
27: TypeBool
|
||||||
33: TypePointer Output 8(fvec4)
|
28: TypeVector 27(bool) 4
|
||||||
34(gl_FragColor): 33(ptr) Variable Output
|
34: TypePointer Output 8(fvec4)
|
||||||
|
35(gl_FragColor): 34(ptr) Variable Output
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(v): 9(ptr) Variable Function
|
10(v): 9(ptr) Variable Function
|
||||||
14: 11 Load 13(tex)
|
15: 12 Load 14(tex)
|
||||||
18: 15(fvec2) Load 17(coord)
|
19: 16(fvec2) Load 18(coord)
|
||||||
19: 8(fvec4) TextureSample 14 18
|
20: 8(fvec4) ImageSampleImplicitLod 15 19
|
||||||
Store 10(v) 19
|
Store 10(v) 20
|
||||||
20: 8(fvec4) Load 10(v)
|
21: 8(fvec4) Load 10(v)
|
||||||
28: 27(bvec4) FOrdEqual 20 25
|
29: 28(bvec4) FOrdEqual 21 26
|
||||||
29: 26(bool) All 28
|
30: 27(bool) All 29
|
||||||
SelectionMerge 31 None
|
SelectionMerge 32 None
|
||||||
BranchConditional 29 30 31
|
BranchConditional 30 31 32
|
||||||
30: Label
|
31: Label
|
||||||
Kill
|
Kill
|
||||||
31: Label
|
32: Label
|
||||||
35: 8(fvec4) Load 10(v)
|
36: 8(fvec4) Load 10(v)
|
||||||
Store 34(gl_FragColor) 35
|
Store 35(gl_FragColor) 36
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 444
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "b"
|
Name 9 "b"
|
||||||
Name 12 "u_i"
|
Name 12 "u_i"
|
||||||
@ -51,54 +53,54 @@ Linked fragment stage:
|
|||||||
Name 439 "i_f2"
|
Name 439 "i_f2"
|
||||||
Name 441 "i_f3"
|
Name 441 "i_f3"
|
||||||
Name 443 "i_f4"
|
Name 443 "i_f4"
|
||||||
Decorate 40(i_i) Flat
|
Decorate 40(i_i) Flat
|
||||||
Decorate 54(i_f) Smooth
|
Decorate 54(i_f) Smooth
|
||||||
Decorate 158(i_i4) Flat
|
Decorate 158(i_i4) Flat
|
||||||
Decorate 313(gl_FragColor) BuiltIn FragColor
|
Decorate 313(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 417(u_b) NoStaticUse
|
Decorate 417(u_b) NoStaticUse
|
||||||
Decorate 419(u_b2) NoStaticUse
|
Decorate 419(u_b2) NoStaticUse
|
||||||
Decorate 421(u_b3) NoStaticUse
|
Decorate 421(u_b3) NoStaticUse
|
||||||
Decorate 423(u_b4) NoStaticUse
|
Decorate 423(u_b4) NoStaticUse
|
||||||
Decorate 425(u_i2) NoStaticUse
|
Decorate 425(u_i2) NoStaticUse
|
||||||
Decorate 427(u_i3) NoStaticUse
|
Decorate 427(u_i3) NoStaticUse
|
||||||
Decorate 429(u_i4) NoStaticUse
|
Decorate 429(u_i4) NoStaticUse
|
||||||
Decorate 430(i_b) NoStaticUse
|
Decorate 430(i_b) NoStaticUse
|
||||||
Decorate 431(i_b2) NoStaticUse
|
Decorate 431(i_b2) NoStaticUse
|
||||||
Decorate 432(i_b3) NoStaticUse
|
Decorate 432(i_b3) NoStaticUse
|
||||||
Decorate 433(i_b4) NoStaticUse
|
Decorate 433(i_b4) NoStaticUse
|
||||||
Decorate 435(i_i2) Flat
|
Decorate 435(i_i2) Flat
|
||||||
Decorate 435(i_i2) NoStaticUse
|
Decorate 435(i_i2) NoStaticUse
|
||||||
Decorate 437(i_i3) Flat
|
Decorate 437(i_i3) Flat
|
||||||
Decorate 437(i_i3) NoStaticUse
|
Decorate 437(i_i3) NoStaticUse
|
||||||
Decorate 439(i_f2) Smooth
|
Decorate 439(i_f2) Smooth
|
||||||
Decorate 439(i_f2) NoStaticUse
|
Decorate 439(i_f2) NoStaticUse
|
||||||
Decorate 441(i_f3) Smooth
|
Decorate 441(i_f3) Smooth
|
||||||
Decorate 441(i_f3) NoStaticUse
|
Decorate 441(i_f3) NoStaticUse
|
||||||
Decorate 443(i_f4) Smooth
|
Decorate 443(i_f4) Smooth
|
||||||
Decorate 443(i_f4) NoStaticUse
|
Decorate 443(i_f4) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeBool
|
7: TypeBool
|
||||||
8: TypePointer Function 7(bool)
|
8: TypePointer Function 7(bool)
|
||||||
10: TypeInt 32 1
|
10: TypeInt 32 1
|
||||||
11: TypePointer UniformConstant 10(int)
|
11: TypePointer UniformConstant 10(int)
|
||||||
12(u_i): 11(ptr) Variable UniformConstant
|
12(u_i): 11(ptr) Variable UniformConstant
|
||||||
14: TypeInt 32 0
|
14: TypeInt 32 0
|
||||||
15: 14(int) Constant 0
|
15: 14(int) Constant 0
|
||||||
17: TypeFloat 32
|
17: TypeFloat 32
|
||||||
18: TypePointer UniformConstant 17(float)
|
18: TypePointer UniformConstant 17(float)
|
||||||
19(u_f): 18(ptr) Variable UniformConstant
|
19(u_f): 18(ptr) Variable UniformConstant
|
||||||
21: 17(float) Constant 0
|
21: 17(float) Constant 0
|
||||||
24: TypeVector 7(bool) 2
|
24: TypeVector 7(bool) 2
|
||||||
25: TypePointer Function 24(bvec2)
|
25: TypePointer Function 24(bvec2)
|
||||||
32: TypeVector 7(bool) 3
|
32: TypeVector 7(bool) 3
|
||||||
33: TypePointer Function 32(bvec3)
|
33: TypePointer Function 32(bvec3)
|
||||||
39: TypePointer Input 10(int)
|
39: TypePointer Input 10(int)
|
||||||
40(i_i): 39(ptr) Variable Input
|
40(i_i): 39(ptr) Variable Input
|
||||||
44: TypeVector 7(bool) 4
|
44: TypeVector 7(bool) 4
|
||||||
45: TypePointer Function 44(bvec4)
|
45: TypePointer Function 44(bvec4)
|
||||||
53: TypePointer Input 17(float)
|
53: TypePointer Input 17(float)
|
||||||
54(i_f): 53(ptr) Variable Input
|
54(i_f): 53(ptr) Variable Input
|
||||||
58: TypePointer Function 10(int)
|
58: TypePointer Function 10(int)
|
||||||
63: 10(int) Constant 0
|
63: 10(int) Constant 0
|
||||||
64: 10(int) Constant 1
|
64: 10(int) Constant 1
|
||||||
@ -106,21 +108,21 @@ Linked fragment stage:
|
|||||||
68: TypePointer Function 67(ivec2)
|
68: TypePointer Function 67(ivec2)
|
||||||
70: TypeVector 17(float) 2
|
70: TypeVector 17(float) 2
|
||||||
71: TypePointer UniformConstant 70(fvec2)
|
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
|
76: 67(ivec2) ConstantComposite 63 63
|
||||||
77: 67(ivec2) ConstantComposite 64 64
|
77: 67(ivec2) ConstantComposite 64 64
|
||||||
80: TypeVector 10(int) 3
|
80: TypeVector 10(int) 3
|
||||||
81: TypePointer Function 80(ivec3)
|
81: TypePointer Function 80(ivec3)
|
||||||
83: TypeVector 17(float) 3
|
83: TypeVector 17(float) 3
|
||||||
84: TypePointer UniformConstant 83(fvec3)
|
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
|
89: 80(ivec3) ConstantComposite 63 63 63
|
||||||
90: 80(ivec3) ConstantComposite 64 64 64
|
90: 80(ivec3) ConstantComposite 64 64 64
|
||||||
93: TypeVector 10(int) 4
|
93: TypeVector 10(int) 4
|
||||||
94: TypePointer Function 93(ivec4)
|
94: TypePointer Function 93(ivec4)
|
||||||
96: TypeVector 17(float) 4
|
96: TypeVector 17(float) 4
|
||||||
97: TypePointer UniformConstant 96(fvec4)
|
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
|
102: 93(ivec4) ConstantComposite 63 63 63 63
|
||||||
103: 93(ivec4) ConstantComposite 64 64 64 64
|
103: 93(ivec4) ConstantComposite 64 64 64 64
|
||||||
106: TypePointer Function 17(float)
|
106: TypePointer Function 17(float)
|
||||||
@ -135,442 +137,442 @@ Linked fragment stage:
|
|||||||
151: 96(fvec4) ConstantComposite 21 21 21 21
|
151: 96(fvec4) ConstantComposite 21 21 21 21
|
||||||
152: 96(fvec4) ConstantComposite 125 125 125 125
|
152: 96(fvec4) ConstantComposite 125 125 125 125
|
||||||
157: TypePointer Input 93(ivec4)
|
157: TypePointer Input 93(ivec4)
|
||||||
158(i_i4): 157(ptr) Variable Input
|
158(i_i4): 157(ptr) Variable Input
|
||||||
160: TypeVector 14(int) 4
|
160: TypeVector 14(int) 4
|
||||||
161: 160(ivec4) ConstantComposite 15 15 15 15
|
161: 160(ivec4) ConstantComposite 15 15 15 15
|
||||||
312: TypePointer Output 96(fvec4)
|
312: TypePointer Output 96(fvec4)
|
||||||
313(gl_FragColor): 312(ptr) Variable Output
|
313(gl_FragColor): 312(ptr) Variable Output
|
||||||
416: TypePointer UniformConstant 7(bool)
|
416: TypePointer UniformConstant 7(bool)
|
||||||
417(u_b): 416(ptr) Variable UniformConstant
|
417(u_b): 416(ptr) Variable UniformConstant
|
||||||
418: TypePointer UniformConstant 24(bvec2)
|
418: TypePointer UniformConstant 24(bvec2)
|
||||||
419(u_b2): 418(ptr) Variable UniformConstant
|
419(u_b2): 418(ptr) Variable UniformConstant
|
||||||
420: TypePointer UniformConstant 32(bvec3)
|
420: TypePointer UniformConstant 32(bvec3)
|
||||||
421(u_b3): 420(ptr) Variable UniformConstant
|
421(u_b3): 420(ptr) Variable UniformConstant
|
||||||
422: TypePointer UniformConstant 44(bvec4)
|
422: TypePointer UniformConstant 44(bvec4)
|
||||||
423(u_b4): 422(ptr) Variable UniformConstant
|
423(u_b4): 422(ptr) Variable UniformConstant
|
||||||
424: TypePointer UniformConstant 67(ivec2)
|
424: TypePointer UniformConstant 67(ivec2)
|
||||||
425(u_i2): 424(ptr) Variable UniformConstant
|
425(u_i2): 424(ptr) Variable UniformConstant
|
||||||
426: TypePointer UniformConstant 80(ivec3)
|
426: TypePointer UniformConstant 80(ivec3)
|
||||||
427(u_i3): 426(ptr) Variable UniformConstant
|
427(u_i3): 426(ptr) Variable UniformConstant
|
||||||
428: TypePointer UniformConstant 93(ivec4)
|
428: TypePointer UniformConstant 93(ivec4)
|
||||||
429(u_i4): 428(ptr) Variable UniformConstant
|
429(u_i4): 428(ptr) Variable UniformConstant
|
||||||
430(i_b): 416(ptr) Variable UniformConstant
|
430(i_b): 416(ptr) Variable UniformConstant
|
||||||
431(i_b2): 418(ptr) Variable UniformConstant
|
431(i_b2): 418(ptr) Variable UniformConstant
|
||||||
432(i_b3): 420(ptr) Variable UniformConstant
|
432(i_b3): 420(ptr) Variable UniformConstant
|
||||||
433(i_b4): 422(ptr) Variable UniformConstant
|
433(i_b4): 422(ptr) Variable UniformConstant
|
||||||
434: TypePointer Input 67(ivec2)
|
434: TypePointer Input 67(ivec2)
|
||||||
435(i_i2): 434(ptr) Variable Input
|
435(i_i2): 434(ptr) Variable Input
|
||||||
436: TypePointer Input 80(ivec3)
|
436: TypePointer Input 80(ivec3)
|
||||||
437(i_i3): 436(ptr) Variable Input
|
437(i_i3): 436(ptr) Variable Input
|
||||||
438: TypePointer Input 70(fvec2)
|
438: TypePointer Input 70(fvec2)
|
||||||
439(i_f2): 438(ptr) Variable Input
|
439(i_f2): 438(ptr) Variable Input
|
||||||
440: TypePointer Input 83(fvec3)
|
440: TypePointer Input 83(fvec3)
|
||||||
441(i_f3): 440(ptr) Variable Input
|
441(i_f3): 440(ptr) Variable Input
|
||||||
442: TypePointer Input 96(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(b): 8(ptr) Variable Function
|
9(b): 8(ptr) Variable Function
|
||||||
26(b2): 25(ptr) Variable Function
|
26(b2): 25(ptr) Variable Function
|
||||||
34(b3): 33(ptr) Variable Function
|
34(b3): 33(ptr) Variable Function
|
||||||
46(b4): 45(ptr) Variable Function
|
46(b4): 45(ptr) Variable Function
|
||||||
59(i): 58(ptr) Variable Function
|
59(i): 58(ptr) Variable Function
|
||||||
69(i2): 68(ptr) Variable Function
|
69(i2): 68(ptr) Variable Function
|
||||||
82(i3): 81(ptr) Variable Function
|
82(i3): 81(ptr) Variable Function
|
||||||
95(i4): 94(ptr) Variable Function
|
95(i4): 94(ptr) Variable Function
|
||||||
107(f): 106(ptr) Variable Function
|
107(f): 106(ptr) Variable Function
|
||||||
111(f2): 110(ptr) Variable Function
|
111(f2): 110(ptr) Variable Function
|
||||||
115(f3): 114(ptr) Variable Function
|
115(f3): 114(ptr) Variable Function
|
||||||
119(f4): 118(ptr) Variable Function
|
119(f4): 118(ptr) Variable Function
|
||||||
289: 106(ptr) Variable Function
|
289: 106(ptr) Variable Function
|
||||||
299: 106(ptr) Variable Function
|
299: 106(ptr) Variable Function
|
||||||
314: 118(ptr) Variable Function
|
314: 118(ptr) Variable Function
|
||||||
406(cv2): 94(ptr) Variable Function
|
406(cv2): 94(ptr) Variable Function
|
||||||
407(cv5): 45(ptr) Variable Function
|
407(cv5): 45(ptr) Variable Function
|
||||||
13: 10(int) Load 12(u_i)
|
13: 10(int) Load 12(u_i)
|
||||||
16: 7(bool) INotEqual 13 15
|
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
|
22: 7(bool) FOrdNotEqual 20 21
|
||||||
23: 7(bool) LogicalXor 16 22
|
23: 7(bool) LogicalNotEqual 16 22
|
||||||
Store 9(b) 23
|
Store 9(b) 23
|
||||||
27: 10(int) Load 12(u_i)
|
27: 10(int) Load 12(u_i)
|
||||||
28: 7(bool) INotEqual 27 15
|
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
|
30: 7(bool) FOrdNotEqual 29 21
|
||||||
31: 24(bvec2) CompositeConstruct 28 30
|
31: 24(bvec2) CompositeConstruct 28 30
|
||||||
Store 26(b2) 31
|
Store 26(b2) 31
|
||||||
35: 10(int) Load 12(u_i)
|
35: 10(int) Load 12(u_i)
|
||||||
36: 7(bool) INotEqual 35 15
|
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
|
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
|
42: 7(bool) INotEqual 41 15
|
||||||
43: 32(bvec3) CompositeConstruct 36 38 42
|
43: 32(bvec3) CompositeConstruct 36 38 42
|
||||||
Store 34(b3) 43
|
Store 34(b3) 43
|
||||||
47: 10(int) Load 12(u_i)
|
47: 10(int) Load 12(u_i)
|
||||||
48: 7(bool) INotEqual 47 15
|
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
|
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
|
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
|
56: 7(bool) FOrdNotEqual 55 21
|
||||||
57: 44(bvec4) CompositeConstruct 48 50 52 56
|
57: 44(bvec4) CompositeConstruct 48 50 52 56
|
||||||
Store 46(b4) 57
|
Store 46(b4) 57
|
||||||
60: 17(float) Load 19(u_f)
|
60: 17(float) Load 19(u_f)
|
||||||
61: 10(int) ConvertFToS 60
|
61: 10(int) ConvertFToS 60
|
||||||
62: 7(bool) Load 9(b)
|
62: 7(bool) Load 9(b)
|
||||||
65: 10(int) Select 62 64 63
|
65: 10(int) Select 62 64 63
|
||||||
66: 10(int) IAdd 61 65
|
66: 10(int) IAdd 61 65
|
||||||
Store 59(i) 66
|
Store 59(i) 66
|
||||||
73: 70(fvec2) Load 72(u_f2)
|
73: 70(fvec2) Load 72(u_f2)
|
||||||
74: 67(ivec2) ConvertFToS 73
|
74: 67(ivec2) ConvertFToS 73
|
||||||
75: 24(bvec2) Load 26(b2)
|
75: 24(bvec2) Load 26(b2)
|
||||||
78: 67(ivec2) Select 75 77 76
|
78: 67(ivec2) Select 75 77 76
|
||||||
79: 67(ivec2) IAdd 74 78
|
79: 67(ivec2) IAdd 74 78
|
||||||
Store 69(i2) 79
|
Store 69(i2) 79
|
||||||
86: 83(fvec3) Load 85(u_f3)
|
86: 83(fvec3) Load 85(u_f3)
|
||||||
87: 80(ivec3) ConvertFToS 86
|
87: 80(ivec3) ConvertFToS 86
|
||||||
88: 32(bvec3) Load 34(b3)
|
88: 32(bvec3) Load 34(b3)
|
||||||
91: 80(ivec3) Select 88 90 89
|
91: 80(ivec3) Select 88 90 89
|
||||||
92: 80(ivec3) IAdd 87 91
|
92: 80(ivec3) IAdd 87 91
|
||||||
Store 82(i3) 92
|
Store 82(i3) 92
|
||||||
99: 96(fvec4) Load 98(u_f4)
|
99: 96(fvec4) Load 98(u_f4)
|
||||||
100: 93(ivec4) ConvertFToS 99
|
100: 93(ivec4) ConvertFToS 99
|
||||||
101: 44(bvec4) Load 46(b4)
|
101: 44(bvec4) Load 46(b4)
|
||||||
104: 93(ivec4) Select 101 103 102
|
104: 93(ivec4) Select 101 103 102
|
||||||
105: 93(ivec4) IAdd 100 104
|
105: 93(ivec4) IAdd 100 104
|
||||||
Store 95(i4) 105
|
Store 95(i4) 105
|
||||||
108: 10(int) Load 59(i)
|
108: 10(int) Load 59(i)
|
||||||
109: 17(float) ConvertSToF 108
|
109: 17(float) ConvertSToF 108
|
||||||
Store 107(f) 109
|
Store 107(f) 109
|
||||||
112: 67(ivec2) Load 69(i2)
|
112: 67(ivec2) Load 69(i2)
|
||||||
113: 70(fvec2) ConvertSToF 112
|
113: 70(fvec2) ConvertSToF 112
|
||||||
Store 111(f2) 113
|
Store 111(f2) 113
|
||||||
116: 80(ivec3) Load 82(i3)
|
116: 80(ivec3) Load 82(i3)
|
||||||
117: 83(fvec3) ConvertSToF 116
|
117: 83(fvec3) ConvertSToF 116
|
||||||
Store 115(f3) 117
|
Store 115(f3) 117
|
||||||
120: 93(ivec4) Load 95(i4)
|
120: 93(ivec4) Load 95(i4)
|
||||||
121: 96(fvec4) ConvertSToF 120
|
121: 96(fvec4) ConvertSToF 120
|
||||||
Store 119(f4) 121
|
Store 119(f4) 121
|
||||||
122: 10(int) Load 59(i)
|
122: 10(int) Load 59(i)
|
||||||
123: 17(float) ConvertSToF 122
|
123: 17(float) ConvertSToF 122
|
||||||
124: 7(bool) Load 9(b)
|
124: 7(bool) Load 9(b)
|
||||||
126: 17(float) Select 124 125 21
|
126: 17(float) Select 124 125 21
|
||||||
127: 17(float) FAdd 123 126
|
127: 17(float) FAdd 123 126
|
||||||
128: 17(float) Load 107(f)
|
128: 17(float) Load 107(f)
|
||||||
129: 17(float) FAdd 128 127
|
129: 17(float) FAdd 128 127
|
||||||
Store 107(f) 129
|
Store 107(f) 129
|
||||||
130: 67(ivec2) Load 69(i2)
|
130: 67(ivec2) Load 69(i2)
|
||||||
131: 70(fvec2) ConvertSToF 130
|
131: 70(fvec2) ConvertSToF 130
|
||||||
132: 24(bvec2) Load 26(b2)
|
132: 24(bvec2) Load 26(b2)
|
||||||
135: 70(fvec2) Select 132 134 133
|
135: 70(fvec2) Select 132 134 133
|
||||||
136: 70(fvec2) FAdd 131 135
|
136: 70(fvec2) FAdd 131 135
|
||||||
137: 70(fvec2) Load 111(f2)
|
137: 70(fvec2) Load 111(f2)
|
||||||
138: 70(fvec2) FSub 137 136
|
138: 70(fvec2) FSub 137 136
|
||||||
Store 111(f2) 138
|
Store 111(f2) 138
|
||||||
139: 80(ivec3) Load 82(i3)
|
139: 80(ivec3) Load 82(i3)
|
||||||
140: 83(fvec3) ConvertSToF 139
|
140: 83(fvec3) ConvertSToF 139
|
||||||
141: 32(bvec3) Load 34(b3)
|
141: 32(bvec3) Load 34(b3)
|
||||||
144: 83(fvec3) Select 141 143 142
|
144: 83(fvec3) Select 141 143 142
|
||||||
145: 83(fvec3) FAdd 140 144
|
145: 83(fvec3) FAdd 140 144
|
||||||
146: 83(fvec3) Load 115(f3)
|
146: 83(fvec3) Load 115(f3)
|
||||||
147: 83(fvec3) FDiv 146 145
|
147: 83(fvec3) FDiv 146 145
|
||||||
Store 115(f3) 147
|
Store 115(f3) 147
|
||||||
148: 93(ivec4) Load 95(i4)
|
148: 93(ivec4) Load 95(i4)
|
||||||
149: 96(fvec4) ConvertSToF 148
|
149: 96(fvec4) ConvertSToF 148
|
||||||
150: 44(bvec4) Load 46(b4)
|
150: 44(bvec4) Load 46(b4)
|
||||||
153: 96(fvec4) Select 150 152 151
|
153: 96(fvec4) Select 150 152 151
|
||||||
154: 96(fvec4) FAdd 149 153
|
154: 96(fvec4) FAdd 149 153
|
||||||
155: 96(fvec4) Load 119(f4)
|
155: 96(fvec4) Load 119(f4)
|
||||||
156: 96(fvec4) FAdd 155 154
|
156: 96(fvec4) FAdd 155 154
|
||||||
Store 119(f4) 156
|
Store 119(f4) 156
|
||||||
159: 93(ivec4) Load 158(i_i4)
|
159: 93(ivec4) Load 158(i_i4)
|
||||||
162: 44(bvec4) INotEqual 159 161
|
162: 44(bvec4) INotEqual 159 161
|
||||||
163: 96(fvec4) Select 162 152 151
|
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
|
165: 96(fvec4) FAdd 164 163
|
||||||
Store 119(f4) 165
|
Store 119(f4) 165
|
||||||
166: 96(fvec4) Load 98(u_f4)
|
166: 96(fvec4) Load 98(u_f4)
|
||||||
167: 44(bvec4) FOrdNotEqual 166 151
|
167: 44(bvec4) FOrdNotEqual 166 151
|
||||||
168: 96(fvec4) Select 167 152 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
|
170: 96(fvec4) FAdd 169 168
|
||||||
Store 119(f4) 170
|
Store 119(f4) 170
|
||||||
171: 17(float) Load 107(f)
|
171: 17(float) Load 107(f)
|
||||||
172: 10(int) Load 59(i)
|
172: 10(int) Load 59(i)
|
||||||
173: 17(float) ConvertSToF 172
|
173: 17(float) ConvertSToF 172
|
||||||
174: 17(float) FSub 171 173
|
174: 17(float) FSub 171 173
|
||||||
175: 17(float) Load 107(f)
|
175: 17(float) Load 107(f)
|
||||||
176: 17(float) FAdd 175 174
|
176: 17(float) FAdd 175 174
|
||||||
Store 107(f) 176
|
Store 107(f) 176
|
||||||
177: 17(float) Load 107(f)
|
177: 17(float) Load 107(f)
|
||||||
178: 10(int) Load 59(i)
|
178: 10(int) Load 59(i)
|
||||||
179: 17(float) ConvertSToF 178
|
179: 17(float) ConvertSToF 178
|
||||||
180: 70(fvec2) CompositeConstruct 177 179
|
180: 70(fvec2) CompositeConstruct 177 179
|
||||||
181: 67(ivec2) Load 69(i2)
|
181: 67(ivec2) Load 69(i2)
|
||||||
182: 70(fvec2) ConvertSToF 181
|
182: 70(fvec2) ConvertSToF 181
|
||||||
183: 70(fvec2) FAdd 180 182
|
183: 70(fvec2) FAdd 180 182
|
||||||
184: 70(fvec2) Load 111(f2)
|
184: 70(fvec2) Load 111(f2)
|
||||||
185: 70(fvec2) FAdd 184 183
|
185: 70(fvec2) FAdd 184 183
|
||||||
Store 111(f2) 185
|
Store 111(f2) 185
|
||||||
186: 80(ivec3) Load 82(i3)
|
186: 80(ivec3) Load 82(i3)
|
||||||
187: 83(fvec3) ConvertSToF 186
|
187: 83(fvec3) ConvertSToF 186
|
||||||
188: 17(float) Load 107(f)
|
188: 17(float) Load 107(f)
|
||||||
189: 10(int) Load 59(i)
|
189: 10(int) Load 59(i)
|
||||||
190: 17(float) ConvertSToF 189
|
190: 17(float) ConvertSToF 189
|
||||||
191: 17(float) Load 107(f)
|
191: 17(float) Load 107(f)
|
||||||
192: 83(fvec3) CompositeConstruct 188 190 191
|
192: 83(fvec3) CompositeConstruct 188 190 191
|
||||||
193: 83(fvec3) FAdd 187 192
|
193: 83(fvec3) FAdd 187 192
|
||||||
194: 83(fvec3) Load 115(f3)
|
194: 83(fvec3) Load 115(f3)
|
||||||
195: 83(fvec3) FAdd 194 193
|
195: 83(fvec3) FAdd 194 193
|
||||||
Store 115(f3) 195
|
Store 115(f3) 195
|
||||||
196: 7(bool) Load 9(b)
|
196: 7(bool) Load 9(b)
|
||||||
197: 17(float) Select 196 125 21
|
197: 17(float) Select 196 125 21
|
||||||
198: 10(int) Load 59(i)
|
198: 10(int) Load 59(i)
|
||||||
199: 17(float) ConvertSToF 198
|
199: 17(float) ConvertSToF 198
|
||||||
200: 17(float) Load 107(f)
|
200: 17(float) Load 107(f)
|
||||||
201: 10(int) Load 59(i)
|
201: 10(int) Load 59(i)
|
||||||
202: 17(float) ConvertSToF 201
|
202: 17(float) ConvertSToF 201
|
||||||
203: 96(fvec4) CompositeConstruct 197 199 200 202
|
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
|
205: 96(fvec4) ConvertSToF 204
|
||||||
206: 96(fvec4) FAdd 203 205
|
206: 96(fvec4) FAdd 203 205
|
||||||
207: 96(fvec4) Load 119(f4)
|
207: 96(fvec4) Load 119(f4)
|
||||||
208: 96(fvec4) FAdd 207 206
|
208: 96(fvec4) FAdd 207 206
|
||||||
Store 119(f4) 208
|
Store 119(f4) 208
|
||||||
209: 17(float) Load 107(f)
|
209: 17(float) Load 107(f)
|
||||||
210: 10(int) Load 59(i)
|
210: 10(int) Load 59(i)
|
||||||
211: 17(float) ConvertSToF 210
|
211: 17(float) ConvertSToF 210
|
||||||
212: 70(fvec2) CompositeConstruct 209 211
|
212: 70(fvec2) CompositeConstruct 209 211
|
||||||
213: 10(int) Load 59(i)
|
213: 10(int) Load 59(i)
|
||||||
214: 17(float) ConvertSToF 213
|
214: 17(float) ConvertSToF 213
|
||||||
215: 70(fvec2) VectorTimesScalar 212 214
|
215: 70(fvec2) VectorTimesScalar 212 214
|
||||||
216: 70(fvec2) Load 111(f2)
|
216: 70(fvec2) Load 111(f2)
|
||||||
217: 70(fvec2) FAdd 216 215
|
217: 70(fvec2) FAdd 216 215
|
||||||
Store 111(f2) 217
|
Store 111(f2) 217
|
||||||
218: 17(float) Load 107(f)
|
218: 17(float) Load 107(f)
|
||||||
219: 10(int) Load 59(i)
|
219: 10(int) Load 59(i)
|
||||||
220: 17(float) ConvertSToF 219
|
220: 17(float) ConvertSToF 219
|
||||||
221: 17(float) Load 107(f)
|
221: 17(float) Load 107(f)
|
||||||
222: 83(fvec3) CompositeConstruct 218 220 221
|
222: 83(fvec3) CompositeConstruct 218 220 221
|
||||||
223: 10(int) Load 59(i)
|
223: 10(int) Load 59(i)
|
||||||
224: 17(float) ConvertSToF 223
|
224: 17(float) ConvertSToF 223
|
||||||
225: 83(fvec3) CompositeConstruct 224 224 224
|
225: 83(fvec3) CompositeConstruct 224 224 224
|
||||||
226: 83(fvec3) FAdd 222 225
|
226: 83(fvec3) FAdd 222 225
|
||||||
227: 83(fvec3) Load 115(f3)
|
227: 83(fvec3) Load 115(f3)
|
||||||
228: 83(fvec3) FAdd 227 226
|
228: 83(fvec3) FAdd 227 226
|
||||||
Store 115(f3) 228
|
Store 115(f3) 228
|
||||||
229: 10(int) Load 59(i)
|
229: 10(int) Load 59(i)
|
||||||
230: 17(float) ConvertSToF 229
|
230: 17(float) ConvertSToF 229
|
||||||
231: 7(bool) Load 9(b)
|
231: 7(bool) Load 9(b)
|
||||||
232: 17(float) Select 231 125 21
|
232: 17(float) Select 231 125 21
|
||||||
233: 10(int) Load 59(i)
|
233: 10(int) Load 59(i)
|
||||||
234: 17(float) ConvertSToF 233
|
234: 17(float) ConvertSToF 233
|
||||||
235: 17(float) Load 107(f)
|
235: 17(float) Load 107(f)
|
||||||
236: 10(int) Load 59(i)
|
236: 10(int) Load 59(i)
|
||||||
237: 17(float) ConvertSToF 236
|
237: 17(float) ConvertSToF 236
|
||||||
238: 96(fvec4) CompositeConstruct 232 234 235 237
|
238: 96(fvec4) CompositeConstruct 232 234 235 237
|
||||||
239: 96(fvec4) CompositeConstruct 230 230 230 230
|
239: 96(fvec4) CompositeConstruct 230 230 230 230
|
||||||
240: 96(fvec4) FSub 239 238
|
240: 96(fvec4) FSub 239 238
|
||||||
241: 96(fvec4) Load 119(f4)
|
241: 96(fvec4) Load 119(f4)
|
||||||
242: 96(fvec4) FAdd 241 240
|
242: 96(fvec4) FAdd 241 240
|
||||||
Store 119(f4) 242
|
Store 119(f4) 242
|
||||||
243: 17(float) Load 107(f)
|
243: 17(float) Load 107(f)
|
||||||
244: 10(int) ConvertFToS 243
|
244: 10(int) ConvertFToS 243
|
||||||
245: 10(int) Load 59(i)
|
245: 10(int) Load 59(i)
|
||||||
246: 67(ivec2) CompositeConstruct 244 245
|
246: 67(ivec2) CompositeConstruct 244 245
|
||||||
247: 67(ivec2) Load 69(i2)
|
247: 67(ivec2) Load 69(i2)
|
||||||
248: 67(ivec2) IAdd 247 246
|
248: 67(ivec2) IAdd 247 246
|
||||||
Store 69(i2) 248
|
Store 69(i2) 248
|
||||||
249: 17(float) Load 107(f)
|
249: 17(float) Load 107(f)
|
||||||
250: 10(int) ConvertFToS 249
|
250: 10(int) ConvertFToS 249
|
||||||
251: 10(int) Load 59(i)
|
251: 10(int) Load 59(i)
|
||||||
252: 17(float) Load 107(f)
|
252: 17(float) Load 107(f)
|
||||||
253: 10(int) ConvertFToS 252
|
253: 10(int) ConvertFToS 252
|
||||||
254: 80(ivec3) CompositeConstruct 250 251 253
|
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
|
256: 80(ivec3) IAdd 255 254
|
||||||
Store 82(i3) 256
|
Store 82(i3) 256
|
||||||
257: 7(bool) Load 9(b)
|
257: 7(bool) Load 9(b)
|
||||||
258: 10(int) Select 257 64 63
|
258: 10(int) Select 257 64 63
|
||||||
259: 10(int) Load 59(i)
|
259: 10(int) Load 59(i)
|
||||||
260: 17(float) Load 107(f)
|
260: 17(float) Load 107(f)
|
||||||
261: 10(int) ConvertFToS 260
|
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
|
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
|
265: 93(ivec4) IAdd 264 263
|
||||||
Store 95(i4) 265
|
Store 95(i4) 265
|
||||||
266: 17(float) Load 107(f)
|
266: 17(float) Load 107(f)
|
||||||
267: 10(int) Load 59(i)
|
267: 10(int) Load 59(i)
|
||||||
268: 17(float) ConvertSToF 267
|
268: 17(float) ConvertSToF 267
|
||||||
269: 7(bool) FOrdLessThan 266 268
|
269: 7(bool) FOrdLessThan 266 268
|
||||||
270: 10(int) Load 59(i)
|
270: 10(int) Load 59(i)
|
||||||
271: 17(float) ConvertSToF 270
|
271: 17(float) ConvertSToF 270
|
||||||
272: 17(float) Load 107(f)
|
272: 17(float) Load 107(f)
|
||||||
273: 7(bool) FOrdLessThan 271 272
|
273: 7(bool) FOrdLessThan 271 272
|
||||||
274: 7(bool) LogicalOr 269 273
|
274: 7(bool) LogicalOr 269 273
|
||||||
275: 70(fvec2) Load 111(f2)
|
275: 70(fvec2) Load 111(f2)
|
||||||
276: 67(ivec2) Load 69(i2)
|
276: 67(ivec2) Load 69(i2)
|
||||||
277: 70(fvec2) ConvertSToF 276
|
277: 70(fvec2) ConvertSToF 276
|
||||||
278: 24(bvec2) FOrdEqual 275 277
|
278: 24(bvec2) FOrdEqual 275 277
|
||||||
279: 7(bool) All 278
|
279: 7(bool) All 278
|
||||||
280: 7(bool) LogicalOr 274 279
|
280: 7(bool) LogicalOr 274 279
|
||||||
281: 80(ivec3) Load 82(i3)
|
281: 80(ivec3) Load 82(i3)
|
||||||
282: 83(fvec3) ConvertSToF 281
|
282: 83(fvec3) ConvertSToF 281
|
||||||
283: 83(fvec3) Load 115(f3)
|
283: 83(fvec3) Load 115(f3)
|
||||||
284: 32(bvec3) FOrdNotEqual 282 283
|
284: 32(bvec3) FOrdNotEqual 282 283
|
||||||
285: 7(bool) Any 284
|
285: 7(bool) Any 284
|
||||||
286: 7(bool) LogicalOr 280 285
|
286: 7(bool) LogicalOr 280 285
|
||||||
SelectionMerge 288 None
|
SelectionMerge 288 None
|
||||||
BranchConditional 286 287 288
|
BranchConditional 286 287 288
|
||||||
287: Label
|
287: Label
|
||||||
290: 7(bool) Load 9(b)
|
290: 7(bool) Load 9(b)
|
||||||
SelectionMerge 292 None
|
SelectionMerge 292 None
|
||||||
BranchConditional 290 291 295
|
BranchConditional 290 291 295
|
||||||
291: Label
|
291: Label
|
||||||
293: 10(int) Load 59(i)
|
293: 10(int) Load 59(i)
|
||||||
294: 17(float) ConvertSToF 293
|
294: 17(float) ConvertSToF 293
|
||||||
Store 289 294
|
Store 289 294
|
||||||
Branch 292
|
Branch 292
|
||||||
295: Label
|
295: Label
|
||||||
296: 70(fvec2) Load 111(f2)
|
296: 70(fvec2) Load 111(f2)
|
||||||
297: 17(float) CompositeExtract 296 0
|
297: 17(float) CompositeExtract 296 0
|
||||||
Store 289 297
|
Store 289 297
|
||||||
Branch 292
|
Branch 292
|
||||||
292: Label
|
292: Label
|
||||||
298: 17(float) Load 289
|
298: 17(float) Load 289
|
||||||
300: 24(bvec2) Load 26(b2)
|
300: 24(bvec2) Load 26(b2)
|
||||||
301: 7(bool) CompositeExtract 300 0
|
301: 7(bool) CompositeExtract 300 0
|
||||||
SelectionMerge 303 None
|
SelectionMerge 303 None
|
||||||
BranchConditional 301 302 306
|
BranchConditional 301 302 306
|
||||||
302: Label
|
302: Label
|
||||||
304: 83(fvec3) Load 115(f3)
|
304: 83(fvec3) Load 115(f3)
|
||||||
305: 17(float) CompositeExtract 304 0
|
305: 17(float) CompositeExtract 304 0
|
||||||
Store 299 305
|
Store 299 305
|
||||||
Branch 303
|
Branch 303
|
||||||
306: Label
|
306: Label
|
||||||
307: 67(ivec2) Load 69(i2)
|
307: 67(ivec2) Load 69(i2)
|
||||||
308: 10(int) CompositeExtract 307 1
|
308: 10(int) CompositeExtract 307 1
|
||||||
309: 17(float) ConvertSToF 308
|
309: 17(float) ConvertSToF 308
|
||||||
Store 299 309
|
Store 299 309
|
||||||
Branch 303
|
Branch 303
|
||||||
303: Label
|
303: Label
|
||||||
310: 17(float) Load 299
|
310: 17(float) Load 299
|
||||||
311: 17(float) FAdd 298 310
|
311: 17(float) FAdd 298 310
|
||||||
Store 107(f) 311
|
Store 107(f) 311
|
||||||
Branch 288
|
Branch 288
|
||||||
288: Label
|
288: Label
|
||||||
315: 7(bool) Load 9(b)
|
315: 7(bool) Load 9(b)
|
||||||
316: 24(bvec2) Load 26(b2)
|
316: 24(bvec2) Load 26(b2)
|
||||||
317: 7(bool) CompositeExtract 316 0
|
317: 7(bool) CompositeExtract 316 0
|
||||||
318: 7(bool) LogicalOr 315 317
|
318: 7(bool) LogicalOr 315 317
|
||||||
319: 24(bvec2) Load 26(b2)
|
319: 24(bvec2) Load 26(b2)
|
||||||
320: 7(bool) CompositeExtract 319 1
|
320: 7(bool) CompositeExtract 319 1
|
||||||
321: 7(bool) LogicalOr 318 320
|
321: 7(bool) LogicalOr 318 320
|
||||||
322: 32(bvec3) Load 34(b3)
|
322: 32(bvec3) Load 34(b3)
|
||||||
323: 7(bool) CompositeExtract 322 0
|
323: 7(bool) CompositeExtract 322 0
|
||||||
324: 7(bool) LogicalOr 321 323
|
324: 7(bool) LogicalOr 321 323
|
||||||
325: 32(bvec3) Load 34(b3)
|
325: 32(bvec3) Load 34(b3)
|
||||||
326: 7(bool) CompositeExtract 325 1
|
326: 7(bool) CompositeExtract 325 1
|
||||||
327: 7(bool) LogicalOr 324 326
|
327: 7(bool) LogicalOr 324 326
|
||||||
328: 32(bvec3) Load 34(b3)
|
328: 32(bvec3) Load 34(b3)
|
||||||
329: 7(bool) CompositeExtract 328 2
|
329: 7(bool) CompositeExtract 328 2
|
||||||
330: 7(bool) LogicalOr 327 329
|
330: 7(bool) LogicalOr 327 329
|
||||||
331: 44(bvec4) Load 46(b4)
|
331: 44(bvec4) Load 46(b4)
|
||||||
332: 7(bool) CompositeExtract 331 0
|
332: 7(bool) CompositeExtract 331 0
|
||||||
333: 7(bool) LogicalOr 330 332
|
333: 7(bool) LogicalOr 330 332
|
||||||
334: 44(bvec4) Load 46(b4)
|
334: 44(bvec4) Load 46(b4)
|
||||||
335: 7(bool) CompositeExtract 334 1
|
335: 7(bool) CompositeExtract 334 1
|
||||||
336: 7(bool) LogicalOr 333 335
|
336: 7(bool) LogicalOr 333 335
|
||||||
337: 44(bvec4) Load 46(b4)
|
337: 44(bvec4) Load 46(b4)
|
||||||
338: 7(bool) CompositeExtract 337 2
|
338: 7(bool) CompositeExtract 337 2
|
||||||
339: 7(bool) LogicalOr 336 338
|
339: 7(bool) LogicalOr 336 338
|
||||||
340: 44(bvec4) Load 46(b4)
|
340: 44(bvec4) Load 46(b4)
|
||||||
341: 7(bool) CompositeExtract 340 3
|
341: 7(bool) CompositeExtract 340 3
|
||||||
342: 7(bool) LogicalOr 339 341
|
342: 7(bool) LogicalOr 339 341
|
||||||
SelectionMerge 344 None
|
SelectionMerge 344 None
|
||||||
BranchConditional 342 343 404
|
BranchConditional 342 343 404
|
||||||
343: Label
|
343: Label
|
||||||
345: 10(int) Load 59(i)
|
345: 10(int) Load 59(i)
|
||||||
346: 67(ivec2) Load 69(i2)
|
346: 67(ivec2) Load 69(i2)
|
||||||
347: 10(int) CompositeExtract 346 0
|
347: 10(int) CompositeExtract 346 0
|
||||||
348: 10(int) IAdd 345 347
|
348: 10(int) IAdd 345 347
|
||||||
349: 67(ivec2) Load 69(i2)
|
349: 67(ivec2) Load 69(i2)
|
||||||
350: 10(int) CompositeExtract 349 1
|
350: 10(int) CompositeExtract 349 1
|
||||||
351: 10(int) IAdd 348 350
|
351: 10(int) IAdd 348 350
|
||||||
352: 80(ivec3) Load 82(i3)
|
352: 80(ivec3) Load 82(i3)
|
||||||
353: 10(int) CompositeExtract 352 0
|
353: 10(int) CompositeExtract 352 0
|
||||||
354: 10(int) IAdd 351 353
|
354: 10(int) IAdd 351 353
|
||||||
355: 80(ivec3) Load 82(i3)
|
355: 80(ivec3) Load 82(i3)
|
||||||
356: 10(int) CompositeExtract 355 1
|
356: 10(int) CompositeExtract 355 1
|
||||||
357: 10(int) IAdd 354 356
|
357: 10(int) IAdd 354 356
|
||||||
358: 80(ivec3) Load 82(i3)
|
358: 80(ivec3) Load 82(i3)
|
||||||
359: 10(int) CompositeExtract 358 2
|
359: 10(int) CompositeExtract 358 2
|
||||||
360: 10(int) IAdd 357 359
|
360: 10(int) IAdd 357 359
|
||||||
361: 93(ivec4) Load 95(i4)
|
361: 93(ivec4) Load 95(i4)
|
||||||
362: 10(int) CompositeExtract 361 0
|
362: 10(int) CompositeExtract 361 0
|
||||||
363: 10(int) IAdd 360 362
|
363: 10(int) IAdd 360 362
|
||||||
364: 93(ivec4) Load 95(i4)
|
364: 93(ivec4) Load 95(i4)
|
||||||
365: 10(int) CompositeExtract 364 1
|
365: 10(int) CompositeExtract 364 1
|
||||||
366: 10(int) IAdd 363 365
|
366: 10(int) IAdd 363 365
|
||||||
367: 93(ivec4) Load 95(i4)
|
367: 93(ivec4) Load 95(i4)
|
||||||
368: 10(int) CompositeExtract 367 2
|
368: 10(int) CompositeExtract 367 2
|
||||||
369: 10(int) IAdd 366 368
|
369: 10(int) IAdd 366 368
|
||||||
370: 93(ivec4) Load 95(i4)
|
370: 93(ivec4) Load 95(i4)
|
||||||
371: 10(int) CompositeExtract 370 3
|
371: 10(int) CompositeExtract 370 3
|
||||||
372: 10(int) IAdd 369 371
|
372: 10(int) IAdd 369 371
|
||||||
373: 17(float) ConvertSToF 372
|
373: 17(float) ConvertSToF 372
|
||||||
374: 17(float) Load 107(f)
|
374: 17(float) Load 107(f)
|
||||||
375: 17(float) FAdd 373 374
|
375: 17(float) FAdd 373 374
|
||||||
376: 70(fvec2) Load 111(f2)
|
376: 70(fvec2) Load 111(f2)
|
||||||
377: 17(float) CompositeExtract 376 0
|
377: 17(float) CompositeExtract 376 0
|
||||||
378: 17(float) FAdd 375 377
|
378: 17(float) FAdd 375 377
|
||||||
379: 70(fvec2) Load 111(f2)
|
379: 70(fvec2) Load 111(f2)
|
||||||
380: 17(float) CompositeExtract 379 1
|
380: 17(float) CompositeExtract 379 1
|
||||||
381: 17(float) FAdd 378 380
|
381: 17(float) FAdd 378 380
|
||||||
382: 83(fvec3) Load 115(f3)
|
382: 83(fvec3) Load 115(f3)
|
||||||
383: 17(float) CompositeExtract 382 0
|
383: 17(float) CompositeExtract 382 0
|
||||||
384: 17(float) FAdd 381 383
|
384: 17(float) FAdd 381 383
|
||||||
385: 83(fvec3) Load 115(f3)
|
385: 83(fvec3) Load 115(f3)
|
||||||
386: 17(float) CompositeExtract 385 1
|
386: 17(float) CompositeExtract 385 1
|
||||||
387: 17(float) FAdd 384 386
|
387: 17(float) FAdd 384 386
|
||||||
388: 83(fvec3) Load 115(f3)
|
388: 83(fvec3) Load 115(f3)
|
||||||
389: 17(float) CompositeExtract 388 2
|
389: 17(float) CompositeExtract 388 2
|
||||||
390: 17(float) FAdd 387 389
|
390: 17(float) FAdd 387 389
|
||||||
391: 96(fvec4) Load 119(f4)
|
391: 96(fvec4) Load 119(f4)
|
||||||
392: 17(float) CompositeExtract 391 0
|
392: 17(float) CompositeExtract 391 0
|
||||||
393: 17(float) FAdd 390 392
|
393: 17(float) FAdd 390 392
|
||||||
394: 96(fvec4) Load 119(f4)
|
394: 96(fvec4) Load 119(f4)
|
||||||
395: 17(float) CompositeExtract 394 1
|
395: 17(float) CompositeExtract 394 1
|
||||||
396: 17(float) FAdd 393 395
|
396: 17(float) FAdd 393 395
|
||||||
397: 96(fvec4) Load 119(f4)
|
397: 96(fvec4) Load 119(f4)
|
||||||
398: 17(float) CompositeExtract 397 2
|
398: 17(float) CompositeExtract 397 2
|
||||||
399: 17(float) FAdd 396 398
|
399: 17(float) FAdd 396 398
|
||||||
400: 96(fvec4) Load 119(f4)
|
400: 96(fvec4) Load 119(f4)
|
||||||
401: 17(float) CompositeExtract 400 3
|
401: 17(float) CompositeExtract 400 3
|
||||||
402: 17(float) FAdd 399 401
|
402: 17(float) FAdd 399 401
|
||||||
403: 96(fvec4) CompositeConstruct 402 402 402 402
|
403: 96(fvec4) CompositeConstruct 402 402 402 402
|
||||||
Store 314 403
|
Store 314 403
|
||||||
Branch 344
|
Branch 344
|
||||||
404: Label
|
404: Label
|
||||||
Store 314 152
|
Store 314 152
|
||||||
Branch 344
|
Branch 344
|
||||||
344: Label
|
344: Label
|
||||||
405: 96(fvec4) Load 314
|
405: 96(fvec4) Load 314
|
||||||
Store 313(gl_FragColor) 405
|
Store 313(gl_FragColor) 405
|
||||||
Store 406(cv2) 103
|
Store 406(cv2) 103
|
||||||
408: 93(ivec4) Load 406(cv2)
|
408: 93(ivec4) Load 406(cv2)
|
||||||
409: 44(bvec4) INotEqual 408 161
|
409: 44(bvec4) INotEqual 408 161
|
||||||
Store 407(cv5) 409
|
Store 407(cv5) 409
|
||||||
410: 44(bvec4) Load 407(cv5)
|
410: 44(bvec4) Load 407(cv5)
|
||||||
411: 96(fvec4) Select 410 152 151
|
411: 96(fvec4) Select 410 152 151
|
||||||
412: 17(float) CompositeExtract 411 0
|
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
|
414: 96(fvec4) CompositeConstruct 412 412 412 412
|
||||||
415: 96(fvec4) FAdd 413 414
|
415: 96(fvec4) FAdd 413 414
|
||||||
Store 313(gl_FragColor) 415
|
Store 313(gl_FragColor) 415
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 21
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 13 "gl_FragData"
|
Name 13 "gl_FragData"
|
||||||
Name 17 "Color"
|
Name 17 "Color"
|
||||||
Decorate 13(gl_FragData) BuiltIn FragColor
|
Decorate 13(gl_FragData) BuiltIn FragColor
|
||||||
Decorate 17(Color) Smooth
|
Decorate 17(Color) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypeInt 32 0
|
9: TypeInt 32 0
|
||||||
10: 9(int) Constant 32
|
10: 9(int) Constant 32
|
||||||
11: TypeArray 8(fvec4) 10
|
11: TypeArray 8(fvec4) 10
|
||||||
12: TypePointer Output 11
|
12: TypePointer Output 11
|
||||||
13(gl_FragData): 12(ptr) Variable Output
|
13(gl_FragData): 12(ptr) Variable Output
|
||||||
14: TypeInt 32 1
|
14: TypeInt 32 1
|
||||||
15: 14(int) Constant 1
|
15: 14(int) Constant 1
|
||||||
16: TypePointer Input 8(fvec4)
|
16: TypePointer Input 8(fvec4)
|
||||||
17(Color): 16(ptr) Variable Input
|
17(Color): 16(ptr) Variable Input
|
||||||
19: TypePointer Output 8(fvec4)
|
19: TypePointer Output 8(fvec4)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
18: 8(fvec4) Load 17(Color)
|
18: 8(fvec4) Load 17(Color)
|
||||||
20: 19(ptr) AccessChain 13(gl_FragData) 15
|
20: 19(ptr) AccessChain 13(gl_FragData) 15
|
||||||
Store 20 18
|
Store 20 18
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 23
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 13 "gl_FragData"
|
Name 13 "gl_FragData"
|
||||||
Name 16 "i"
|
Name 16 "i"
|
||||||
Name 19 "Color"
|
Name 19 "Color"
|
||||||
Decorate 13(gl_FragData) BuiltIn FragColor
|
Decorate 13(gl_FragData) BuiltIn FragColor
|
||||||
Decorate 19(Color) Smooth
|
Decorate 19(Color) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypeInt 32 0
|
9: TypeInt 32 0
|
||||||
10: 9(int) Constant 32
|
10: 9(int) Constant 32
|
||||||
11: TypeArray 8(fvec4) 10
|
11: TypeArray 8(fvec4) 10
|
||||||
12: TypePointer Output 11
|
12: TypePointer Output 11
|
||||||
13(gl_FragData): 12(ptr) Variable Output
|
13(gl_FragData): 12(ptr) Variable Output
|
||||||
14: TypeInt 32 1
|
14: TypeInt 32 1
|
||||||
15: TypePointer UniformConstant 14(int)
|
15: TypePointer UniformConstant 14(int)
|
||||||
16(i): 15(ptr) Variable UniformConstant
|
16(i): 15(ptr) Variable UniformConstant
|
||||||
18: TypePointer Input 8(fvec4)
|
18: TypePointer Input 8(fvec4)
|
||||||
19(Color): 18(ptr) Variable Input
|
19(Color): 18(ptr) Variable Input
|
||||||
21: TypePointer Output 8(fvec4)
|
21: TypePointer Output 8(fvec4)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
17: 14(int) Load 16(i)
|
17: 14(int) Load 16(i)
|
||||||
20: 8(fvec4) Load 19(Color)
|
20: 8(fvec4) Load 19(Color)
|
||||||
22: 21(ptr) AccessChain 13(gl_FragData) 17
|
22: 21(ptr) AccessChain 13(gl_FragData) 17
|
||||||
Store 22 20
|
Store 22 20
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 39
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 24 "colorOut"
|
Name 24 "colorOut"
|
||||||
Name 27 "color"
|
Name 27 "color"
|
||||||
Name 33 "gl_Position"
|
Name 33 "gl_Position"
|
||||||
Name 38 "gl_VertexID"
|
Name 38 "gl_VertexID"
|
||||||
Decorate 24(colorOut) Smooth
|
Decorate 24(colorOut) Smooth
|
||||||
Decorate 33(gl_Position) BuiltIn Position
|
Decorate 33(gl_Position) BuiltIn Position
|
||||||
Decorate 38(gl_VertexID) BuiltIn VertexId
|
Decorate 38(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 38(gl_VertexID) NoStaticUse
|
Decorate 38(gl_VertexID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 1
|
10: 7(int) Constant 1
|
||||||
@ -37,37 +38,37 @@ Linked vertex stage:
|
|||||||
21: 20(int) Constant 6
|
21: 20(int) Constant 6
|
||||||
22: TypeArray 19(fvec4) 21
|
22: TypeArray 19(fvec4) 21
|
||||||
23: TypePointer Output 22
|
23: TypePointer Output 22
|
||||||
24(colorOut): 23(ptr) Variable Output
|
24(colorOut): 23(ptr) Variable Output
|
||||||
26: TypePointer Input 19(fvec4)
|
26: TypePointer Input 19(fvec4)
|
||||||
27(color): 26(ptr) Variable Input
|
27(color): 26(ptr) Variable Input
|
||||||
29: TypePointer Output 19(fvec4)
|
29: TypePointer Output 19(fvec4)
|
||||||
33(gl_Position): 29(ptr) Variable Output
|
33(gl_Position): 29(ptr) Variable Output
|
||||||
34: 7(int) Constant 2
|
34: 7(int) Constant 2
|
||||||
37: TypePointer Input 7(int)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 7(int) Load 9(i)
|
14: 7(int) Load 9(i)
|
||||||
17: 16(bool) SLessThan 14 15
|
17: 16(bool) SLessThan 14 15
|
||||||
LoopMerge 12 None
|
LoopMerge 12 None
|
||||||
BranchConditional 17 13 12
|
BranchConditional 17 13 12
|
||||||
13: Label
|
13: Label
|
||||||
25: 7(int) Load 9(i)
|
25: 7(int) Load 9(i)
|
||||||
28: 19(fvec4) Load 27(color)
|
28: 19(fvec4) Load 27(color)
|
||||||
30: 29(ptr) AccessChain 24(colorOut) 25
|
30: 29(ptr) AccessChain 24(colorOut) 25
|
||||||
Store 30 28
|
Store 30 28
|
||||||
31: 7(int) Load 9(i)
|
31: 7(int) Load 9(i)
|
||||||
32: 7(int) IAdd 31 10
|
32: 7(int) IAdd 31 10
|
||||||
Store 9(i) 32
|
Store 9(i) 32
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
35: 29(ptr) AccessChain 24(colorOut) 34
|
35: 29(ptr) AccessChain 24(colorOut) 34
|
||||||
36: 19(fvec4) Load 35
|
36: 19(fvec4) Load 35
|
||||||
Store 33(gl_Position) 36
|
Store 33(gl_Position) 36
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 19
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "gl_FragDepth"
|
Name 9 "gl_FragDepth"
|
||||||
Name 11 "Depth"
|
Name 11 "Depth"
|
||||||
Name 15 "gl_FragColor"
|
Name 15 "gl_FragColor"
|
||||||
Name 17 "Color"
|
Name 17 "Color"
|
||||||
Decorate 9(gl_FragDepth) BuiltIn FragDepth
|
Decorate 9(gl_FragDepth) BuiltIn FragDepth
|
||||||
Decorate 11(Depth) Smooth
|
Decorate 11(Depth) Smooth
|
||||||
Decorate 15(gl_FragColor) BuiltIn FragColor
|
Decorate 15(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 17(Color) Smooth
|
Decorate 17(Color) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypePointer Output 7(float)
|
8: TypePointer Output 7(float)
|
||||||
9(gl_FragDepth): 8(ptr) Variable Output
|
9(gl_FragDepth): 8(ptr) Variable Output
|
||||||
10: TypePointer Input 7(float)
|
10: TypePointer Input 7(float)
|
||||||
11(Depth): 10(ptr) Variable Input
|
11(Depth): 10(ptr) Variable Input
|
||||||
13: TypeVector 7(float) 4
|
13: TypeVector 7(float) 4
|
||||||
14: TypePointer Output 13(fvec4)
|
14: TypePointer Output 13(fvec4)
|
||||||
15(gl_FragColor): 14(ptr) Variable Output
|
15(gl_FragColor): 14(ptr) Variable Output
|
||||||
16: TypePointer Input 13(fvec4)
|
16: TypePointer Input 13(fvec4)
|
||||||
17(Color): 16(ptr) Variable Input
|
17(Color): 16(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
12: 7(float) Load 11(Depth)
|
12: 7(float) Load 11(Depth)
|
||||||
Store 9(gl_FragDepth) 12
|
Store 9(gl_FragDepth) 12
|
||||||
18: 13(fvec4) Load 17(Color)
|
18: 13(fvec4) Load 17(Color)
|
||||||
Store 15(gl_FragColor) 18
|
Store 15(gl_FragColor) 18
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 81
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "white"
|
Name 10 "white"
|
||||||
Name 13 "black"
|
Name 13 "black"
|
||||||
@ -20,10 +22,10 @@ Linked fragment stage:
|
|||||||
Name 28 "y"
|
Name 28 "y"
|
||||||
Name 33 "radius"
|
Name 33 "radius"
|
||||||
Name 56 "gl_FragColor"
|
Name 56 "gl_FragColor"
|
||||||
Decorate 22(tex_coord) Smooth
|
Decorate 22(tex_coord) Smooth
|
||||||
Decorate 56(gl_FragColor) BuiltIn FragColor
|
Decorate 56(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
@ -34,94 +36,94 @@ Linked fragment stage:
|
|||||||
18: TypePointer Function 7(float)
|
18: TypePointer Function 7(float)
|
||||||
20: TypeVector 7(float) 2
|
20: TypeVector 7(float) 2
|
||||||
21: TypePointer Input 20(fvec2)
|
21: TypePointer Input 20(fvec2)
|
||||||
22(tex_coord): 21(ptr) Variable Input
|
22(tex_coord): 21(ptr) Variable Input
|
||||||
25: 7(float) Constant 1073741824
|
25: 7(float) Constant 1073741824
|
||||||
43: TypeBool
|
43: TypeBool
|
||||||
48: 7(float) Constant 1066192077
|
48: 7(float) Constant 1066192077
|
||||||
55: TypePointer Output 8(fvec4)
|
55: TypePointer Output 8(fvec4)
|
||||||
56(gl_FragColor): 55(ptr) Variable Output
|
56(gl_FragColor): 55(ptr) Variable Output
|
||||||
59: 7(float) Constant 1067030938
|
59: 7(float) Constant 1067030938
|
||||||
68: 7(float) Constant 1061158912
|
68: 7(float) Constant 1061158912
|
||||||
73: 7(float) Constant 1098907648
|
73: 7(float) Constant 1098907648
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(white): 9(ptr) Variable Function
|
10(white): 9(ptr) Variable Function
|
||||||
13(black): 9(ptr) Variable Function
|
13(black): 9(ptr) Variable Function
|
||||||
16(color): 9(ptr) Variable Function
|
16(color): 9(ptr) Variable Function
|
||||||
19(x): 18(ptr) Variable Function
|
19(x): 18(ptr) Variable Function
|
||||||
28(y): 18(ptr) Variable Function
|
28(y): 18(ptr) Variable Function
|
||||||
33(radius): 18(ptr) Variable Function
|
33(radius): 18(ptr) Variable Function
|
||||||
Store 10(white) 12
|
Store 10(white) 12
|
||||||
Store 13(black) 15
|
Store 13(black) 15
|
||||||
17: 8(fvec4) Load 10(white)
|
17: 8(fvec4) Load 10(white)
|
||||||
Store 16(color) 17
|
Store 16(color) 17
|
||||||
23: 20(fvec2) Load 22(tex_coord)
|
23: 20(fvec2) Load 22(tex_coord)
|
||||||
24: 7(float) CompositeExtract 23 0
|
24: 7(float) CompositeExtract 23 0
|
||||||
26: 7(float) FMul 24 25
|
26: 7(float) FMul 24 25
|
||||||
27: 7(float) FSub 26 11
|
27: 7(float) FSub 26 11
|
||||||
Store 19(x) 27
|
Store 19(x) 27
|
||||||
29: 20(fvec2) Load 22(tex_coord)
|
29: 20(fvec2) Load 22(tex_coord)
|
||||||
30: 7(float) CompositeExtract 29 1
|
30: 7(float) CompositeExtract 29 1
|
||||||
31: 7(float) FMul 30 25
|
31: 7(float) FMul 30 25
|
||||||
32: 7(float) FSub 31 11
|
32: 7(float) FSub 31 11
|
||||||
Store 28(y) 32
|
Store 28(y) 32
|
||||||
34: 7(float) Load 19(x)
|
34: 7(float) Load 19(x)
|
||||||
35: 7(float) Load 19(x)
|
35: 7(float) Load 19(x)
|
||||||
36: 7(float) FMul 34 35
|
36: 7(float) FMul 34 35
|
||||||
37: 7(float) Load 28(y)
|
37: 7(float) Load 28(y)
|
||||||
38: 7(float) Load 28(y)
|
38: 7(float) Load 28(y)
|
||||||
39: 7(float) FMul 37 38
|
39: 7(float) FMul 37 38
|
||||||
40: 7(float) FAdd 36 39
|
40: 7(float) FAdd 36 39
|
||||||
41: 7(float) ExtInst 1(GLSL.std.450) 28(sqrt) 40
|
41: 7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40
|
||||||
Store 33(radius) 41
|
Store 33(radius) 41
|
||||||
42: 7(float) Load 33(radius)
|
42: 7(float) Load 33(radius)
|
||||||
44: 43(bool) FOrdGreaterThan 42 11
|
44: 43(bool) FOrdGreaterThan 42 11
|
||||||
SelectionMerge 46 None
|
SelectionMerge 46 None
|
||||||
BranchConditional 44 45 46
|
BranchConditional 44 45 46
|
||||||
45: Label
|
45: Label
|
||||||
47: 7(float) Load 33(radius)
|
47: 7(float) Load 33(radius)
|
||||||
49: 43(bool) FOrdGreaterThan 47 48
|
49: 43(bool) FOrdGreaterThan 47 48
|
||||||
SelectionMerge 51 None
|
SelectionMerge 51 None
|
||||||
BranchConditional 49 50 51
|
BranchConditional 49 50 51
|
||||||
50: Label
|
50: Label
|
||||||
52: 8(fvec4) Load 16(color)
|
52: 8(fvec4) Load 16(color)
|
||||||
53: 8(fvec4) CompositeConstruct 11 11 11 11
|
53: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||||
54: 8(fvec4) FAdd 52 53
|
54: 8(fvec4) FAdd 52 53
|
||||||
Store 16(color) 54
|
Store 16(color) 54
|
||||||
Branch 51
|
Branch 51
|
||||||
51: Label
|
51: Label
|
||||||
57: 8(fvec4) Load 16(color)
|
57: 8(fvec4) Load 16(color)
|
||||||
Store 56(gl_FragColor) 57
|
Store 56(gl_FragColor) 57
|
||||||
58: 7(float) Load 33(radius)
|
58: 7(float) Load 33(radius)
|
||||||
60: 43(bool) FOrdGreaterThan 58 59
|
60: 43(bool) FOrdGreaterThan 58 59
|
||||||
SelectionMerge 62 None
|
SelectionMerge 62 None
|
||||||
BranchConditional 60 61 62
|
BranchConditional 60 61 62
|
||||||
61: Label
|
61: Label
|
||||||
63: 8(fvec4) Load 16(color)
|
63: 8(fvec4) Load 16(color)
|
||||||
64: 8(fvec4) CompositeConstruct 11 11 11 11
|
64: 8(fvec4) CompositeConstruct 11 11 11 11
|
||||||
65: 8(fvec4) FAdd 63 64
|
65: 8(fvec4) FAdd 63 64
|
||||||
Store 16(color) 65
|
Store 16(color) 65
|
||||||
Branch 62
|
Branch 62
|
||||||
62: Label
|
62: Label
|
||||||
Kill
|
Kill
|
||||||
46: Label
|
46: Label
|
||||||
67: 7(float) Load 33(radius)
|
67: 7(float) Load 33(radius)
|
||||||
69: 43(bool) FOrdGreaterThanEqual 67 68
|
69: 43(bool) FOrdGreaterThanEqual 67 68
|
||||||
SelectionMerge 71 None
|
SelectionMerge 71 None
|
||||||
BranchConditional 69 70 71
|
BranchConditional 69 70 71
|
||||||
70: Label
|
70: Label
|
||||||
72: 7(float) Load 33(radius)
|
72: 7(float) Load 33(radius)
|
||||||
74: 7(float) ExtInst 1(GLSL.std.450) 23(pow) 72 73
|
74: 7(float) ExtInst 1(GLSL.std.450) 26(Pow) 72 73
|
||||||
75: 7(float) FDiv 74 25
|
75: 7(float) FDiv 74 25
|
||||||
76: 7(float) ExtInst 1(GLSL.std.450) 3(abs) 75
|
76: 7(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75
|
||||||
77: 8(fvec4) Load 16(color)
|
77: 8(fvec4) Load 16(color)
|
||||||
78: 8(fvec4) CompositeConstruct 76 76 76 76
|
78: 8(fvec4) CompositeConstruct 76 76 76 76
|
||||||
79: 8(fvec4) FSub 77 78
|
79: 8(fvec4) FSub 77 78
|
||||||
Store 16(color) 79
|
Store 16(color) 79
|
||||||
Branch 71
|
Branch 71
|
||||||
71: Label
|
71: Label
|
||||||
80: 8(fvec4) Load 16(color)
|
80: 8(fvec4) Load 16(color)
|
||||||
Store 56(gl_FragColor) 80
|
Store 56(gl_FragColor) 80
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 30
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 28 "gl_VertexID"
|
Name 28 "gl_VertexID"
|
||||||
Name 29 "gl_InstanceID"
|
Name 29 "gl_InstanceID"
|
||||||
Decorate 9(i) PrecisionHigh
|
|
||||||
Decorate 28(gl_VertexID) PrecisionHigh
|
|
||||||
Decorate 28(gl_VertexID) BuiltIn VertexId
|
Decorate 28(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 28(gl_VertexID) NoStaticUse
|
Decorate 28(gl_VertexID) NoStaticUse
|
||||||
Decorate 29(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 29(gl_InstanceID) BuiltIn InstanceId
|
Decorate 29(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 29(gl_InstanceID) NoStaticUse
|
Decorate 29(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 0
|
10: 7(int) Constant 0
|
||||||
@ -33,12 +31,12 @@ Linked vertex stage:
|
|||||||
24: 7(int) Constant 1
|
24: 7(int) Constant 1
|
||||||
26: 15(bool) ConstantFalse
|
26: 15(bool) ConstantFalse
|
||||||
27: TypePointer Input 7(int)
|
27: TypePointer Input 7(int)
|
||||||
28(gl_VertexID): 27(ptr) Variable Input
|
28(gl_VertexID): 27(ptr) Variable Input
|
||||||
29(gl_InstanceID): 27(ptr) Variable Input
|
29(gl_InstanceID): 27(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 15(bool) Phi 16 5 26 13
|
14: 15(bool) Phi 16 5 26 13
|
||||||
@ -46,18 +44,18 @@ Linked vertex stage:
|
|||||||
Branch 17
|
Branch 17
|
||||||
17: Label
|
17: Label
|
||||||
SelectionMerge 13 None
|
SelectionMerge 13 None
|
||||||
BranchConditional 14 13 18
|
BranchConditional 14 13 18
|
||||||
18: Label
|
18: Label
|
||||||
19: 7(int) Load 9(i)
|
19: 7(int) Load 9(i)
|
||||||
21: 15(bool) SLessThan 19 20
|
21: 15(bool) SLessThan 19 20
|
||||||
SelectionMerge 22 None
|
SelectionMerge 22 None
|
||||||
BranchConditional 21 22 12
|
BranchConditional 21 22 12
|
||||||
22: Label
|
22: Label
|
||||||
Branch 13
|
Branch 13
|
||||||
13: Label
|
13: Label
|
||||||
23: 7(int) Load 9(i)
|
23: 7(int) Load 9(i)
|
||||||
25: 7(int) IAdd 23 24
|
25: 7(int) IAdd 23 24
|
||||||
Store 9(i) 25
|
Store 9(i) 25
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
Branch 6
|
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
|
// Id's are bound by 52
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 25 "A"
|
Name 25 "A"
|
||||||
@ -22,22 +23,12 @@ Linked vertex stage:
|
|||||||
Name 47 "G"
|
Name 47 "G"
|
||||||
Name 50 "gl_VertexID"
|
Name 50 "gl_VertexID"
|
||||||
Name 51 "gl_InstanceID"
|
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) BuiltIn VertexId
|
||||||
Decorate 50(gl_VertexID) NoStaticUse
|
Decorate 50(gl_VertexID) NoStaticUse
|
||||||
Decorate 51(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 51(gl_InstanceID) BuiltIn InstanceId
|
Decorate 51(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 51(gl_InstanceID) NoStaticUse
|
Decorate 51(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 0
|
10: 7(int) Constant 0
|
||||||
@ -53,19 +44,19 @@ Linked vertex stage:
|
|||||||
46: 7(int) Constant 99
|
46: 7(int) Constant 99
|
||||||
48: 7(int) Constant 12
|
48: 7(int) Constant 12
|
||||||
49: TypePointer Input 7(int)
|
49: TypePointer Input 7(int)
|
||||||
50(gl_VertexID): 49(ptr) Variable Input
|
50(gl_VertexID): 49(ptr) Variable Input
|
||||||
51(gl_InstanceID): 49(ptr) Variable Input
|
51(gl_InstanceID): 49(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
25(A): 8(ptr) Variable Function
|
25(A): 8(ptr) Variable Function
|
||||||
31(B): 8(ptr) Variable Function
|
31(B): 8(ptr) Variable Function
|
||||||
34(C): 8(ptr) Variable Function
|
34(C): 8(ptr) Variable Function
|
||||||
40(D): 8(ptr) Variable Function
|
40(D): 8(ptr) Variable Function
|
||||||
43(E): 8(ptr) Variable Function
|
43(E): 8(ptr) Variable Function
|
||||||
45(F): 8(ptr) Variable Function
|
45(F): 8(ptr) Variable Function
|
||||||
47(G): 8(ptr) Variable Function
|
47(G): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 15(bool) Phi 16 5 32 29 32 39
|
14: 15(bool) Phi 16 5 32 29 32 39
|
||||||
@ -73,44 +64,44 @@ Linked vertex stage:
|
|||||||
Branch 17
|
Branch 17
|
||||||
17: Label
|
17: Label
|
||||||
SelectionMerge 13 None
|
SelectionMerge 13 None
|
||||||
BranchConditional 14 13 18
|
BranchConditional 14 13 18
|
||||||
18: Label
|
18: Label
|
||||||
19: 7(int) Load 9(i)
|
19: 7(int) Load 9(i)
|
||||||
21: 7(int) IAdd 19 20
|
21: 7(int) IAdd 19 20
|
||||||
Store 9(i) 21
|
Store 9(i) 21
|
||||||
23: 15(bool) SLessThan 21 22
|
23: 15(bool) SLessThan 21 22
|
||||||
SelectionMerge 24 None
|
SelectionMerge 24 None
|
||||||
BranchConditional 23 24 12
|
BranchConditional 23 24 12
|
||||||
24: Label
|
24: Label
|
||||||
Branch 13
|
Branch 13
|
||||||
13: Label
|
13: Label
|
||||||
Store 25(A) 10
|
Store 25(A) 10
|
||||||
26: 7(int) Load 9(i)
|
26: 7(int) Load 9(i)
|
||||||
28: 15(bool) IEqual 26 27
|
28: 15(bool) IEqual 26 27
|
||||||
SelectionMerge 30 None
|
SelectionMerge 30 None
|
||||||
BranchConditional 28 29 30
|
BranchConditional 28 29 30
|
||||||
29: Label
|
29: Label
|
||||||
Store 31(B) 20
|
Store 31(B) 20
|
||||||
Branch 11
|
Branch 11
|
||||||
33: Label
|
33: Label
|
||||||
Store 34(C) 27
|
Store 34(C) 27
|
||||||
Branch 30
|
Branch 30
|
||||||
30: Label
|
30: Label
|
||||||
35: 7(int) Load 9(i)
|
35: 7(int) Load 9(i)
|
||||||
37: 15(bool) IEqual 35 36
|
37: 15(bool) IEqual 35 36
|
||||||
SelectionMerge 39 None
|
SelectionMerge 39 None
|
||||||
BranchConditional 37 38 39
|
BranchConditional 37 38 39
|
||||||
38: Label
|
38: Label
|
||||||
Store 40(D) 41
|
Store 40(D) 41
|
||||||
Branch 12
|
Branch 12
|
||||||
42: Label
|
42: Label
|
||||||
Store 43(E) 44
|
Store 43(E) 44
|
||||||
Branch 39
|
Branch 39
|
||||||
39: Label
|
39: Label
|
||||||
Store 45(F) 46
|
Store 45(F) 46
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
Store 47(G) 48
|
Store 47(G) 48
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 38
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 12 "BaseColor"
|
Name 12 "BaseColor"
|
||||||
Name 25 "d"
|
Name 25 "d"
|
||||||
Name 30 "bigColor"
|
Name 30 "bigColor"
|
||||||
Name 36 "gl_FragColor"
|
Name 36 "gl_FragColor"
|
||||||
Decorate 12(BaseColor) Smooth
|
Decorate 12(BaseColor) Smooth
|
||||||
Decorate 36(gl_FragColor) BuiltIn FragColor
|
Decorate 36(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(BaseColor): 11(ptr) Variable Input
|
12(BaseColor): 11(ptr) Variable Input
|
||||||
18: TypeBool
|
18: TypeBool
|
||||||
19: 18(bool) ConstantTrue
|
19: 18(bool) ConstantTrue
|
||||||
24: TypePointer UniformConstant 7(float)
|
24: TypePointer UniformConstant 7(float)
|
||||||
25(d): 24(ptr) Variable UniformConstant
|
25(d): 24(ptr) Variable UniformConstant
|
||||||
29: TypePointer UniformConstant 8(fvec4)
|
29: TypePointer UniformConstant 8(fvec4)
|
||||||
30(bigColor): 29(ptr) Variable UniformConstant
|
30(bigColor): 29(ptr) Variable UniformConstant
|
||||||
34: 18(bool) ConstantFalse
|
34: 18(bool) ConstantFalse
|
||||||
35: TypePointer Output 8(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(color): 9(ptr) Variable Function
|
10(color): 9(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(BaseColor)
|
13: 8(fvec4) Load 12(BaseColor)
|
||||||
Store 10(color) 13
|
Store 10(color) 13
|
||||||
Branch 14
|
Branch 14
|
||||||
14: Label
|
14: Label
|
||||||
17: 18(bool) Phi 19 5 34 16
|
17: 18(bool) Phi 19 5 34 16
|
||||||
@ -47,25 +49,25 @@ Linked fragment stage:
|
|||||||
Branch 20
|
Branch 20
|
||||||
20: Label
|
20: Label
|
||||||
SelectionMerge 16 None
|
SelectionMerge 16 None
|
||||||
BranchConditional 17 16 21
|
BranchConditional 17 16 21
|
||||||
21: Label
|
21: Label
|
||||||
22: 8(fvec4) Load 10(color)
|
22: 8(fvec4) Load 10(color)
|
||||||
23: 7(float) CompositeExtract 22 0
|
23: 7(float) CompositeExtract 22 0
|
||||||
26: 7(float) Load 25(d)
|
26: 7(float) Load 25(d)
|
||||||
27: 18(bool) FOrdLessThan 23 26
|
27: 18(bool) FOrdLessThan 23 26
|
||||||
SelectionMerge 28 None
|
SelectionMerge 28 None
|
||||||
BranchConditional 27 28 15
|
BranchConditional 27 28 15
|
||||||
28: Label
|
28: Label
|
||||||
Branch 16
|
Branch 16
|
||||||
16: Label
|
16: Label
|
||||||
31: 8(fvec4) Load 30(bigColor)
|
31: 8(fvec4) Load 30(bigColor)
|
||||||
32: 8(fvec4) Load 10(color)
|
32: 8(fvec4) Load 10(color)
|
||||||
33: 8(fvec4) FAdd 32 31
|
33: 8(fvec4) FAdd 32 31
|
||||||
Store 10(color) 33
|
Store 10(color) 33
|
||||||
Branch 14
|
Branch 14
|
||||||
15: Label
|
15: Label
|
||||||
37: 8(fvec4) Load 10(color)
|
37: 8(fvec4) Load 10(color)
|
||||||
Store 36(gl_FragColor) 37
|
Store 36(gl_FragColor) 37
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 63
|
||||||
|
|
||||||
Source GLSL 430
|
Source GLSL 430
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint GLCompute 4
|
EntryPoint GLCompute 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "bufName"
|
Name 9 "bufName"
|
||||||
MemberName 9(bufName) 0 "f"
|
MemberName 9(bufName) 0 "f"
|
||||||
@ -26,23 +27,23 @@ Linked compute stage:
|
|||||||
Name 55 "globalCoef"
|
Name 55 "globalCoef"
|
||||||
Name 59 "roll"
|
Name 59 "roll"
|
||||||
Name 62 "destTex"
|
Name 62 "destTex"
|
||||||
Decorate 9(bufName) GLSLShared
|
Decorate 9(bufName) GLSLShared
|
||||||
Decorate 9(bufName) BufferBlock
|
Decorate 9(bufName) BufferBlock
|
||||||
Decorate 27(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
|
Decorate 27(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
|
||||||
Decorate 34(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
Decorate 34(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
||||||
Decorate 14 NoStaticUse
|
Decorate 14 NoStaticUse
|
||||||
Decorate 57 NoStaticUse
|
Decorate 57 NoStaticUse
|
||||||
Decorate 14 NoStaticUse
|
Decorate 14 NoStaticUse
|
||||||
Decorate 14 NoStaticUse
|
Decorate 14 NoStaticUse
|
||||||
Decorate 59(roll) NoStaticUse
|
Decorate 59(roll) NoStaticUse
|
||||||
Decorate 62(destTex) NoStaticUse
|
Decorate 62(destTex) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeFloat 64
|
8: TypeFloat 64
|
||||||
9(bufName): TypeStruct 7(float) 8(float)
|
9(bufName): TypeStruct 7(float) 8(float)
|
||||||
10: TypePointer Uniform 9(bufName)
|
10: TypePointer Uniform 9(bufName)
|
||||||
11(bufInst): 10(ptr) Variable Uniform
|
11(bufInst): 10(ptr) Variable Uniform
|
||||||
12: TypeInt 32 1
|
12: TypeInt 32 1
|
||||||
13: 12(int) Constant 1
|
13: 12(int) Constant 1
|
||||||
14: 8(float) Constant 1413754136 1074340347
|
14: 8(float) Constant 1413754136 1074340347
|
||||||
@ -55,10 +56,10 @@ Linked compute stage:
|
|||||||
24: TypeInt 32 0
|
24: TypeInt 32 0
|
||||||
25: TypeVector 24(int) 3
|
25: TypeVector 24(int) 3
|
||||||
26: TypePointer Input 25(ivec3)
|
26: TypePointer Input 25(ivec3)
|
||||||
27(gl_GlobalInvocationID): 26(ptr) Variable Input
|
27(gl_GlobalInvocationID): 26(ptr) Variable Input
|
||||||
29: TypeVector 24(int) 2
|
29: TypeVector 24(int) 2
|
||||||
32: TypePointer Function 8(float)
|
32: TypePointer Function 8(float)
|
||||||
34(gl_LocalInvocationID): 26(ptr) Variable Input
|
34(gl_LocalInvocationID): 26(ptr) Variable Input
|
||||||
38: 12(int) Constant 8
|
38: 12(int) Constant 8
|
||||||
41: TypeVector 7(float) 2
|
41: TypeVector 7(float) 2
|
||||||
43: 7(float) Constant 1090519040
|
43: 7(float) Constant 1090519040
|
||||||
@ -71,25 +72,25 @@ Linked compute stage:
|
|||||||
56: 8(float) Constant 0 1072693248
|
56: 8(float) Constant 0 1072693248
|
||||||
57: 8(float) Constant 3229815407 1074340298
|
57: 8(float) Constant 3229815407 1074340298
|
||||||
58: TypePointer UniformConstant 8(float)
|
58: TypePointer UniformConstant 8(float)
|
||||||
59(roll): 58(ptr) Variable UniformConstant
|
59(roll): 58(ptr) Variable UniformConstant
|
||||||
60: TypeSampler7(float) 2D image
|
60: TypeImage 7(float) 2D nonsampled format:Unknown
|
||||||
61: TypePointer UniformConstant 60
|
61: TypePointer UniformConstant 60
|
||||||
62(destTex): 61(ptr) Variable UniformConstant
|
62(destTex): 61(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
23(storePos): 22(ptr) Variable Function
|
23(storePos): 22(ptr) Variable Function
|
||||||
33(localCoef): 32(ptr) Variable Function
|
33(localCoef): 32(ptr) Variable Function
|
||||||
50(aa): 49(ptr) Variable Function
|
50(aa): 49(ptr) Variable Function
|
||||||
55(globalCoef): 32(ptr) Variable Function
|
55(globalCoef): 32(ptr) Variable Function
|
||||||
16: 15(ptr) AccessChain 11(bufInst) 13
|
16: 15(ptr) AccessChain 11(bufInst) 13
|
||||||
Store 16 14
|
Store 16 14
|
||||||
20: 19(ptr) AccessChain 11(bufInst) 17
|
20: 19(ptr) AccessChain 11(bufInst) 17
|
||||||
Store 20 18
|
Store 20 18
|
||||||
28: 25(ivec3) Load 27(gl_GlobalInvocationID)
|
28: 25(ivec3) Load 27(gl_GlobalInvocationID)
|
||||||
30: 29(ivec2) VectorShuffle 28 28 0 1
|
30: 29(ivec2) VectorShuffle 28 28 0 1
|
||||||
31: 21(ivec2) Bitcast 30
|
31: 21(ivec2) Bitcast 30
|
||||||
Store 23(storePos) 31
|
Store 23(storePos) 31
|
||||||
35: 25(ivec3) Load 34(gl_LocalInvocationID)
|
35: 25(ivec3) Load 34(gl_LocalInvocationID)
|
||||||
36: 29(ivec2) VectorShuffle 35 35 0 1
|
36: 29(ivec2) VectorShuffle 35 35 0 1
|
||||||
37: 21(ivec2) Bitcast 36
|
37: 21(ivec2) Bitcast 36
|
||||||
39: 21(ivec2) CompositeConstruct 38 38
|
39: 21(ivec2) CompositeConstruct 38 38
|
||||||
@ -97,11 +98,11 @@ Linked compute stage:
|
|||||||
42: 41(fvec2) ConvertSToF 40
|
42: 41(fvec2) ConvertSToF 40
|
||||||
44: 41(fvec2) CompositeConstruct 43 43
|
44: 41(fvec2) CompositeConstruct 43 43
|
||||||
45: 41(fvec2) FDiv 42 44
|
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
|
47: 8(float) FConvert 46
|
||||||
Store 33(localCoef) 47
|
Store 33(localCoef) 47
|
||||||
Store 50(aa) 54
|
Store 50(aa) 54
|
||||||
Store 55(globalCoef) 56
|
Store 55(globalCoef) 56
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 112
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 12 "BaseColor"
|
Name 12 "BaseColor"
|
||||||
@ -26,130 +28,130 @@ Linked fragment stage:
|
|||||||
Name 78 "b"
|
Name 78 "b"
|
||||||
Name 107 "gl_FragColor"
|
Name 107 "gl_FragColor"
|
||||||
Name 111 "threshhold3"
|
Name 111 "threshhold3"
|
||||||
Decorate 12(BaseColor) Smooth
|
Decorate 12(BaseColor) Smooth
|
||||||
Decorate 19(c) Smooth
|
Decorate 19(c) Smooth
|
||||||
Decorate 107(gl_FragColor) BuiltIn FragColor
|
Decorate 107(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 111(threshhold3) NoStaticUse
|
Decorate 111(threshhold3) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(BaseColor): 11(ptr) Variable Input
|
12(BaseColor): 11(ptr) Variable Input
|
||||||
15: TypePointer UniformConstant 8(fvec4)
|
15: TypePointer UniformConstant 8(fvec4)
|
||||||
16(otherColor): 15(ptr) Variable UniformConstant
|
16(otherColor): 15(ptr) Variable UniformConstant
|
||||||
18: TypePointer Input 7(float)
|
18: TypePointer Input 7(float)
|
||||||
19(c): 18(ptr) Variable Input
|
19(c): 18(ptr) Variable Input
|
||||||
21: TypePointer UniformConstant 7(float)
|
21: TypePointer UniformConstant 7(float)
|
||||||
22(d): 21(ptr) Variable UniformConstant
|
22(d): 21(ptr) Variable UniformConstant
|
||||||
24: TypeBool
|
24: TypeBool
|
||||||
28(bigColor): 15(ptr) Variable UniformConstant
|
28(bigColor): 15(ptr) Variable UniformConstant
|
||||||
33(smallColor): 15(ptr) Variable UniformConstant
|
33(smallColor): 15(ptr) Variable UniformConstant
|
||||||
39(minimum): 21(ptr) Variable UniformConstant
|
39(minimum): 21(ptr) Variable UniformConstant
|
||||||
47: 7(float) Constant 1065353216
|
47: 7(float) Constant 1065353216
|
||||||
53(threshhold): 21(ptr) Variable UniformConstant
|
53(threshhold): 21(ptr) Variable UniformConstant
|
||||||
64(threshhold2): 21(ptr) Variable UniformConstant
|
64(threshhold2): 21(ptr) Variable UniformConstant
|
||||||
77: TypePointer UniformConstant 24(bool)
|
77: TypePointer UniformConstant 24(bool)
|
||||||
78(b): 77(ptr) Variable UniformConstant
|
78(b): 77(ptr) Variable UniformConstant
|
||||||
106: TypePointer Output 8(fvec4)
|
106: TypePointer Output 8(fvec4)
|
||||||
107(gl_FragColor): 106(ptr) Variable Output
|
107(gl_FragColor): 106(ptr) Variable Output
|
||||||
111(threshhold3): 21(ptr) Variable UniformConstant
|
111(threshhold3): 21(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(color): 9(ptr) Variable Function
|
10(color): 9(ptr) Variable Function
|
||||||
14(color2): 9(ptr) Variable Function
|
14(color2): 9(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(BaseColor)
|
13: 8(fvec4) Load 12(BaseColor)
|
||||||
Store 10(color) 13
|
Store 10(color) 13
|
||||||
17: 8(fvec4) Load 16(otherColor)
|
17: 8(fvec4) Load 16(otherColor)
|
||||||
Store 14(color2) 17
|
Store 14(color2) 17
|
||||||
20: 7(float) Load 19(c)
|
20: 7(float) Load 19(c)
|
||||||
23: 7(float) Load 22(d)
|
23: 7(float) Load 22(d)
|
||||||
25: 24(bool) FOrdGreaterThan 20 23
|
25: 24(bool) FOrdGreaterThan 20 23
|
||||||
SelectionMerge 27 None
|
SelectionMerge 27 None
|
||||||
BranchConditional 25 26 32
|
BranchConditional 25 26 32
|
||||||
26: Label
|
26: Label
|
||||||
29: 8(fvec4) Load 28(bigColor)
|
29: 8(fvec4) Load 28(bigColor)
|
||||||
30: 8(fvec4) Load 10(color)
|
30: 8(fvec4) Load 10(color)
|
||||||
31: 8(fvec4) FAdd 30 29
|
31: 8(fvec4) FAdd 30 29
|
||||||
Store 10(color) 31
|
Store 10(color) 31
|
||||||
Branch 27
|
Branch 27
|
||||||
32: Label
|
32: Label
|
||||||
34: 8(fvec4) Load 33(smallColor)
|
34: 8(fvec4) Load 33(smallColor)
|
||||||
35: 8(fvec4) Load 10(color)
|
35: 8(fvec4) Load 10(color)
|
||||||
36: 8(fvec4) FAdd 35 34
|
36: 8(fvec4) FAdd 35 34
|
||||||
Store 10(color) 36
|
Store 10(color) 36
|
||||||
Branch 27
|
Branch 27
|
||||||
27: Label
|
27: Label
|
||||||
37: 8(fvec4) Load 10(color)
|
37: 8(fvec4) Load 10(color)
|
||||||
38: 7(float) CompositeExtract 37 2
|
38: 7(float) CompositeExtract 37 2
|
||||||
40: 7(float) Load 39(minimum)
|
40: 7(float) Load 39(minimum)
|
||||||
41: 24(bool) FOrdLessThan 38 40
|
41: 24(bool) FOrdLessThan 38 40
|
||||||
SelectionMerge 43 None
|
SelectionMerge 43 None
|
||||||
BranchConditional 41 42 43
|
BranchConditional 41 42 43
|
||||||
42: Label
|
42: Label
|
||||||
Branch 6
|
Branch 6
|
||||||
43: Label
|
43: Label
|
||||||
45: 8(fvec4) Load 10(color)
|
45: 8(fvec4) Load 10(color)
|
||||||
46: 7(float) CompositeExtract 45 2
|
46: 7(float) CompositeExtract 45 2
|
||||||
48: 7(float) FAdd 46 47
|
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
|
50: 8(fvec4) CompositeInsert 48 49 2
|
||||||
Store 10(color) 50
|
Store 10(color) 50
|
||||||
51: 8(fvec4) Load 10(color)
|
51: 8(fvec4) Load 10(color)
|
||||||
52: 7(float) CompositeExtract 51 2
|
52: 7(float) CompositeExtract 51 2
|
||||||
54: 7(float) Load 53(threshhold)
|
54: 7(float) Load 53(threshhold)
|
||||||
55: 24(bool) FOrdGreaterThan 52 54
|
55: 24(bool) FOrdGreaterThan 52 54
|
||||||
SelectionMerge 57 None
|
SelectionMerge 57 None
|
||||||
BranchConditional 55 56 57
|
BranchConditional 55 56 57
|
||||||
56: Label
|
56: Label
|
||||||
Kill
|
Kill
|
||||||
57: Label
|
57: Label
|
||||||
59: 8(fvec4) Load 10(color)
|
59: 8(fvec4) Load 10(color)
|
||||||
60: 8(fvec4) CompositeConstruct 47 47 47 47
|
60: 8(fvec4) CompositeConstruct 47 47 47 47
|
||||||
61: 8(fvec4) FAdd 59 60
|
61: 8(fvec4) FAdd 59 60
|
||||||
Store 10(color) 61
|
Store 10(color) 61
|
||||||
62: 8(fvec4) Load 10(color)
|
62: 8(fvec4) Load 10(color)
|
||||||
63: 7(float) CompositeExtract 62 3
|
63: 7(float) CompositeExtract 62 3
|
||||||
65: 7(float) Load 64(threshhold2)
|
65: 7(float) Load 64(threshhold2)
|
||||||
66: 24(bool) FOrdGreaterThan 63 65
|
66: 24(bool) FOrdGreaterThan 63 65
|
||||||
SelectionMerge 68 None
|
SelectionMerge 68 None
|
||||||
BranchConditional 66 67 99
|
BranchConditional 66 67 99
|
||||||
67: Label
|
67: Label
|
||||||
69: 8(fvec4) Load 10(color)
|
69: 8(fvec4) Load 10(color)
|
||||||
70: 7(float) CompositeExtract 69 2
|
70: 7(float) CompositeExtract 69 2
|
||||||
71: 7(float) Load 64(threshhold2)
|
71: 7(float) Load 64(threshhold2)
|
||||||
72: 24(bool) FOrdGreaterThan 70 71
|
72: 24(bool) FOrdGreaterThan 70 71
|
||||||
SelectionMerge 74 None
|
SelectionMerge 74 None
|
||||||
BranchConditional 72 73 76
|
BranchConditional 72 73 76
|
||||||
73: Label
|
73: Label
|
||||||
Branch 6
|
Branch 6
|
||||||
76: Label
|
76: Label
|
||||||
79: 24(bool) Load 78(b)
|
79: 24(bool) Load 78(b)
|
||||||
SelectionMerge 81 None
|
SelectionMerge 81 None
|
||||||
BranchConditional 79 80 87
|
BranchConditional 79 80 87
|
||||||
80: Label
|
80: Label
|
||||||
82: 8(fvec4) Load 10(color)
|
82: 8(fvec4) Load 10(color)
|
||||||
83: 7(float) CompositeExtract 82 2
|
83: 7(float) CompositeExtract 82 2
|
||||||
84: 7(float) FAdd 83 47
|
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
|
86: 8(fvec4) CompositeInsert 84 85 2
|
||||||
Store 10(color) 86
|
Store 10(color) 86
|
||||||
Branch 81
|
Branch 81
|
||||||
87: Label
|
87: Label
|
||||||
88: 8(fvec4) Load 10(color)
|
88: 8(fvec4) Load 10(color)
|
||||||
89: 7(float) CompositeExtract 88 0
|
89: 7(float) CompositeExtract 88 0
|
||||||
90: 7(float) Load 39(minimum)
|
90: 7(float) Load 39(minimum)
|
||||||
91: 24(bool) FOrdLessThan 89 90
|
91: 24(bool) FOrdLessThan 89 90
|
||||||
SelectionMerge 93 None
|
SelectionMerge 93 None
|
||||||
BranchConditional 91 92 95
|
BranchConditional 91 92 95
|
||||||
92: Label
|
92: Label
|
||||||
Kill
|
Kill
|
||||||
95: Label
|
95: Label
|
||||||
96: 8(fvec4) Load 10(color)
|
96: 8(fvec4) Load 10(color)
|
||||||
97: 8(fvec4) CompositeConstruct 47 47 47 47
|
97: 8(fvec4) CompositeConstruct 47 47 47 47
|
||||||
98: 8(fvec4) FAdd 96 97
|
98: 8(fvec4) FAdd 96 97
|
||||||
Store 10(color) 98
|
Store 10(color) 98
|
||||||
Branch 93
|
Branch 93
|
||||||
93: Label
|
93: Label
|
||||||
Branch 81
|
Branch 81
|
||||||
@ -158,9 +160,9 @@ Linked fragment stage:
|
|||||||
74: Label
|
74: Label
|
||||||
Branch 68
|
Branch 68
|
||||||
99: Label
|
99: Label
|
||||||
100: 24(bool) Load 78(b)
|
100: 24(bool) Load 78(b)
|
||||||
SelectionMerge 102 None
|
SelectionMerge 102 None
|
||||||
BranchConditional 100 101 104
|
BranchConditional 100 101 104
|
||||||
101: Label
|
101: Label
|
||||||
Kill
|
Kill
|
||||||
104: Label
|
104: Label
|
||||||
@ -168,10 +170,10 @@ Linked fragment stage:
|
|||||||
102: Label
|
102: Label
|
||||||
Branch 68
|
Branch 68
|
||||||
68: Label
|
68: Label
|
||||||
108: 8(fvec4) Load 10(color)
|
108: 8(fvec4) Load 10(color)
|
||||||
109: 8(fvec4) Load 14(color2)
|
109: 8(fvec4) Load 14(color2)
|
||||||
110: 8(fvec4) FMul 108 109
|
110: 8(fvec4) FMul 108 109
|
||||||
Store 107(gl_FragColor) 110
|
Store 107(gl_FragColor) 110
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 42
|
||||||
|
|
||||||
Source GLSL 120
|
Source GLSL 120
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 12 "BaseColor"
|
Name 12 "BaseColor"
|
||||||
@ -21,57 +23,57 @@ Linked fragment stage:
|
|||||||
Name 28 "bigColor"
|
Name 28 "bigColor"
|
||||||
Name 33 "smallColor"
|
Name 33 "smallColor"
|
||||||
Name 38 "gl_FragColor"
|
Name 38 "gl_FragColor"
|
||||||
Decorate 12(BaseColor) Smooth
|
Decorate 12(BaseColor) Smooth
|
||||||
Decorate 19(c) Smooth
|
Decorate 19(c) Smooth
|
||||||
Decorate 38(gl_FragColor) BuiltIn FragColor
|
Decorate 38(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(BaseColor): 11(ptr) Variable Input
|
12(BaseColor): 11(ptr) Variable Input
|
||||||
15: TypePointer UniformConstant 8(fvec4)
|
15: TypePointer UniformConstant 8(fvec4)
|
||||||
16(otherColor): 15(ptr) Variable UniformConstant
|
16(otherColor): 15(ptr) Variable UniformConstant
|
||||||
18: TypePointer Input 7(float)
|
18: TypePointer Input 7(float)
|
||||||
19(c): 18(ptr) Variable Input
|
19(c): 18(ptr) Variable Input
|
||||||
21: TypePointer UniformConstant 7(float)
|
21: TypePointer UniformConstant 7(float)
|
||||||
22(d): 21(ptr) Variable UniformConstant
|
22(d): 21(ptr) Variable UniformConstant
|
||||||
24: TypeBool
|
24: TypeBool
|
||||||
28(bigColor): 15(ptr) Variable UniformConstant
|
28(bigColor): 15(ptr) Variable UniformConstant
|
||||||
33(smallColor): 15(ptr) Variable UniformConstant
|
33(smallColor): 15(ptr) Variable UniformConstant
|
||||||
37: TypePointer Output 8(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(color): 9(ptr) Variable Function
|
10(color): 9(ptr) Variable Function
|
||||||
14(color2): 9(ptr) Variable Function
|
14(color2): 9(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(BaseColor)
|
13: 8(fvec4) Load 12(BaseColor)
|
||||||
Store 10(color) 13
|
Store 10(color) 13
|
||||||
17: 8(fvec4) Load 16(otherColor)
|
17: 8(fvec4) Load 16(otherColor)
|
||||||
Store 14(color2) 17
|
Store 14(color2) 17
|
||||||
20: 7(float) Load 19(c)
|
20: 7(float) Load 19(c)
|
||||||
23: 7(float) Load 22(d)
|
23: 7(float) Load 22(d)
|
||||||
25: 24(bool) FOrdGreaterThan 20 23
|
25: 24(bool) FOrdGreaterThan 20 23
|
||||||
SelectionMerge 27 None
|
SelectionMerge 27 None
|
||||||
BranchConditional 25 26 32
|
BranchConditional 25 26 32
|
||||||
26: Label
|
26: Label
|
||||||
29: 8(fvec4) Load 28(bigColor)
|
29: 8(fvec4) Load 28(bigColor)
|
||||||
30: 8(fvec4) Load 10(color)
|
30: 8(fvec4) Load 10(color)
|
||||||
31: 8(fvec4) FAdd 30 29
|
31: 8(fvec4) FAdd 30 29
|
||||||
Store 10(color) 31
|
Store 10(color) 31
|
||||||
Branch 27
|
Branch 27
|
||||||
32: Label
|
32: Label
|
||||||
34: 8(fvec4) Load 33(smallColor)
|
34: 8(fvec4) Load 33(smallColor)
|
||||||
35: 8(fvec4) Load 10(color)
|
35: 8(fvec4) Load 10(color)
|
||||||
36: 8(fvec4) FAdd 35 34
|
36: 8(fvec4) FAdd 35 34
|
||||||
Store 10(color) 36
|
Store 10(color) 36
|
||||||
Branch 27
|
Branch 27
|
||||||
27: Label
|
27: Label
|
||||||
39: 8(fvec4) Load 10(color)
|
39: 8(fvec4) Load 10(color)
|
||||||
40: 8(fvec4) Load 14(color2)
|
40: 8(fvec4) Load 14(color2)
|
||||||
41: 8(fvec4) FMul 39 40
|
41: 8(fvec4) FMul 39 40
|
||||||
Store 38(gl_FragColor) 41
|
Store 38(gl_FragColor) 41
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 49
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 18 "A"
|
Name 18 "A"
|
||||||
@ -22,22 +23,12 @@ Linked vertex stage:
|
|||||||
Name 44 "G"
|
Name 44 "G"
|
||||||
Name 47 "gl_VertexID"
|
Name 47 "gl_VertexID"
|
||||||
Name 48 "gl_InstanceID"
|
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) BuiltIn VertexId
|
||||||
Decorate 47(gl_VertexID) NoStaticUse
|
Decorate 47(gl_VertexID) NoStaticUse
|
||||||
Decorate 48(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 48(gl_InstanceID) BuiltIn InstanceId
|
Decorate 48(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 48(gl_InstanceID) NoStaticUse
|
Decorate 48(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 0
|
10: 7(int) Constant 0
|
||||||
@ -49,61 +40,61 @@ Linked vertex stage:
|
|||||||
41: 7(int) Constant 12
|
41: 7(int) Constant 12
|
||||||
45: 7(int) Constant 99
|
45: 7(int) Constant 99
|
||||||
46: TypePointer Input 7(int)
|
46: TypePointer Input 7(int)
|
||||||
47(gl_VertexID): 46(ptr) Variable Input
|
47(gl_VertexID): 46(ptr) Variable Input
|
||||||
48(gl_InstanceID): 46(ptr) Variable Input
|
48(gl_InstanceID): 46(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
18(A): 8(ptr) Variable Function
|
18(A): 8(ptr) Variable Function
|
||||||
26(B): 8(ptr) Variable Function
|
26(B): 8(ptr) Variable Function
|
||||||
30(C): 8(ptr) Variable Function
|
30(C): 8(ptr) Variable Function
|
||||||
37(D): 8(ptr) Variable Function
|
37(D): 8(ptr) Variable Function
|
||||||
39(E): 8(ptr) Variable Function
|
39(E): 8(ptr) Variable Function
|
||||||
40(F): 8(ptr) Variable Function
|
40(F): 8(ptr) Variable Function
|
||||||
44(G): 8(ptr) Variable Function
|
44(G): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 7(int) Load 9(i)
|
14: 7(int) Load 9(i)
|
||||||
17: 16(bool) SLessThan 14 15
|
17: 16(bool) SLessThan 14 15
|
||||||
LoopMerge 12 None
|
LoopMerge 12 None
|
||||||
BranchConditional 17 13 12
|
BranchConditional 17 13 12
|
||||||
13: Label
|
13: Label
|
||||||
Store 18(A) 19
|
Store 18(A) 19
|
||||||
20: 7(int) Load 9(i)
|
20: 7(int) Load 9(i)
|
||||||
22: 7(int) SMod 20 21
|
22: 7(int) SMod 20 21
|
||||||
23: 16(bool) IEqual 22 10
|
23: 16(bool) IEqual 22 10
|
||||||
SelectionMerge 25 None
|
SelectionMerge 25 None
|
||||||
BranchConditional 23 24 25
|
BranchConditional 23 24 25
|
||||||
24: Label
|
24: Label
|
||||||
Store 26(B) 19
|
Store 26(B) 19
|
||||||
27: 7(int) Load 9(i)
|
27: 7(int) Load 9(i)
|
||||||
28: 7(int) IAdd 27 19
|
28: 7(int) IAdd 27 19
|
||||||
Store 9(i) 28
|
Store 9(i) 28
|
||||||
Branch 11
|
Branch 11
|
||||||
29: Label
|
29: Label
|
||||||
Store 30(C) 19
|
Store 30(C) 19
|
||||||
Branch 25
|
Branch 25
|
||||||
25: Label
|
25: Label
|
||||||
31: 7(int) Load 9(i)
|
31: 7(int) Load 9(i)
|
||||||
33: 7(int) SMod 31 32
|
33: 7(int) SMod 31 32
|
||||||
34: 16(bool) IEqual 33 10
|
34: 16(bool) IEqual 33 10
|
||||||
SelectionMerge 36 None
|
SelectionMerge 36 None
|
||||||
BranchConditional 34 35 36
|
BranchConditional 34 35 36
|
||||||
35: Label
|
35: Label
|
||||||
Store 37(D) 19
|
Store 37(D) 19
|
||||||
Branch 12
|
Branch 12
|
||||||
38: Label
|
38: Label
|
||||||
Store 39(E) 19
|
Store 39(E) 19
|
||||||
Branch 36
|
Branch 36
|
||||||
36: Label
|
36: Label
|
||||||
Store 40(F) 41
|
Store 40(F) 41
|
||||||
42: 7(int) Load 9(i)
|
42: 7(int) Load 9(i)
|
||||||
43: 7(int) IAdd 42 19
|
43: 7(int) IAdd 42 19
|
||||||
Store 9(i) 43
|
Store 9(i) 43
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
Store 44(G) 45
|
Store 44(G) 45
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 26
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 18 "j"
|
Name 18 "j"
|
||||||
Name 24 "gl_VertexID"
|
Name 24 "gl_VertexID"
|
||||||
Name 25 "gl_InstanceID"
|
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) BuiltIn VertexId
|
||||||
Decorate 24(gl_VertexID) NoStaticUse
|
Decorate 24(gl_VertexID) NoStaticUse
|
||||||
Decorate 25(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 25(gl_InstanceID) BuiltIn InstanceId
|
Decorate 25(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 25(gl_InstanceID) NoStaticUse
|
Decorate 25(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 0
|
10: 7(int) Constant 0
|
||||||
@ -34,24 +31,24 @@ Linked vertex stage:
|
|||||||
19: 7(int) Constant 12
|
19: 7(int) Constant 12
|
||||||
21: 7(int) Constant 1
|
21: 7(int) Constant 1
|
||||||
23: TypePointer Input 7(int)
|
23: TypePointer Input 7(int)
|
||||||
24(gl_VertexID): 23(ptr) Variable Input
|
24(gl_VertexID): 23(ptr) Variable Input
|
||||||
25(gl_InstanceID): 23(ptr) Variable Input
|
25(gl_InstanceID): 23(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
18(j): 8(ptr) Variable Function
|
18(j): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 7(int) Load 9(i)
|
14: 7(int) Load 9(i)
|
||||||
17: 16(bool) SLessThan 14 15
|
17: 16(bool) SLessThan 14 15
|
||||||
LoopMerge 12 None
|
LoopMerge 12 None
|
||||||
BranchConditional 17 13 12
|
BranchConditional 17 13 12
|
||||||
13: Label
|
13: Label
|
||||||
Store 18(j) 19
|
Store 18(j) 19
|
||||||
20: 7(int) Load 9(i)
|
20: 7(int) Load 9(i)
|
||||||
22: 7(int) IAdd 20 21
|
22: 7(int) IAdd 20 21
|
||||||
Store 9(i) 22
|
Store 9(i) 22
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
Branch 6
|
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
|
// Id's are bound by 123
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 12 "BaseColor"
|
Name 12 "BaseColor"
|
||||||
@ -27,168 +29,168 @@ Linked fragment stage:
|
|||||||
Name 90 "i"
|
Name 90 "i"
|
||||||
Name 98 "f"
|
Name 98 "f"
|
||||||
Name 111 "i"
|
Name 111 "i"
|
||||||
Decorate 12(BaseColor) Smooth
|
Decorate 12(BaseColor) Smooth
|
||||||
Decorate 36(gl_FragColor) BuiltIn FragColor
|
Decorate 36(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 98(f) Smooth
|
Decorate 98(f) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(BaseColor): 11(ptr) Variable Input
|
12(BaseColor): 11(ptr) Variable Input
|
||||||
14: TypeInt 32 1
|
14: TypeInt 32 1
|
||||||
15: TypePointer Function 14(int)
|
15: TypePointer Function 14(int)
|
||||||
17: 14(int) Constant 0
|
17: 14(int) Constant 0
|
||||||
22: TypePointer UniformConstant 14(int)
|
22: TypePointer UniformConstant 14(int)
|
||||||
23(Count): 22(ptr) Variable UniformConstant
|
23(Count): 22(ptr) Variable UniformConstant
|
||||||
25: TypeBool
|
25: TypeBool
|
||||||
27: TypePointer UniformConstant 8(fvec4)
|
27: TypePointer UniformConstant 8(fvec4)
|
||||||
28(bigColor): 27(ptr) Variable UniformConstant
|
28(bigColor): 27(ptr) Variable UniformConstant
|
||||||
33: 14(int) Constant 1
|
33: 14(int) Constant 1
|
||||||
35: TypePointer Output 8(fvec4)
|
35: TypePointer Output 8(fvec4)
|
||||||
36(gl_FragColor): 35(ptr) Variable Output
|
36(gl_FragColor): 35(ptr) Variable Output
|
||||||
38: TypePointer Function 7(float)
|
38: TypePointer Function 7(float)
|
||||||
40: 7(float) Constant 0
|
40: 7(float) Constant 0
|
||||||
46: 14(int) Constant 4
|
46: 14(int) Constant 4
|
||||||
48: TypeInt 32 0
|
48: TypeInt 32 0
|
||||||
49: TypeVector 48(int) 4
|
49: TypeVector 48(int) 4
|
||||||
50: TypePointer UniformConstant 49(ivec4)
|
50: TypePointer UniformConstant 49(ivec4)
|
||||||
51(v4): 50(ptr) Variable UniformConstant
|
51(v4): 50(ptr) Variable UniformConstant
|
||||||
71: 48(int) Constant 4
|
71: 48(int) Constant 4
|
||||||
86: TypeVector 7(float) 3
|
86: TypeVector 7(float) 3
|
||||||
97: TypePointer Input 7(float)
|
97: TypePointer Input 7(float)
|
||||||
98(f): 97(ptr) Variable Input
|
98(f): 97(ptr) Variable Input
|
||||||
116: 14(int) Constant 16
|
116: 14(int) Constant 16
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(color): 9(ptr) Variable Function
|
10(color): 9(ptr) Variable Function
|
||||||
16(i): 15(ptr) Variable Function
|
16(i): 15(ptr) Variable Function
|
||||||
39(sum): 38(ptr) Variable Function
|
39(sum): 38(ptr) Variable Function
|
||||||
41(i): 15(ptr) Variable Function
|
41(i): 15(ptr) Variable Function
|
||||||
60(i): 15(ptr) Variable Function
|
60(i): 15(ptr) Variable Function
|
||||||
66(tv4): 9(ptr) Variable Function
|
66(tv4): 9(ptr) Variable Function
|
||||||
84(r): 9(ptr) Variable Function
|
84(r): 9(ptr) Variable Function
|
||||||
90(i): 15(ptr) Variable Function
|
90(i): 15(ptr) Variable Function
|
||||||
111(i): 15(ptr) Variable Function
|
111(i): 15(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(BaseColor)
|
13: 8(fvec4) Load 12(BaseColor)
|
||||||
Store 10(color) 13
|
Store 10(color) 13
|
||||||
Store 16(i) 17
|
Store 16(i) 17
|
||||||
Branch 18
|
Branch 18
|
||||||
18: Label
|
18: Label
|
||||||
21: 14(int) Load 16(i)
|
21: 14(int) Load 16(i)
|
||||||
24: 14(int) Load 23(Count)
|
24: 14(int) Load 23(Count)
|
||||||
26: 25(bool) SLessThan 21 24
|
26: 25(bool) SLessThan 21 24
|
||||||
LoopMerge 19 None
|
LoopMerge 19 None
|
||||||
BranchConditional 26 20 19
|
BranchConditional 26 20 19
|
||||||
20: Label
|
20: Label
|
||||||
29: 8(fvec4) Load 28(bigColor)
|
29: 8(fvec4) Load 28(bigColor)
|
||||||
30: 8(fvec4) Load 10(color)
|
30: 8(fvec4) Load 10(color)
|
||||||
31: 8(fvec4) FAdd 30 29
|
31: 8(fvec4) FAdd 30 29
|
||||||
Store 10(color) 31
|
Store 10(color) 31
|
||||||
32: 14(int) Load 16(i)
|
32: 14(int) Load 16(i)
|
||||||
34: 14(int) IAdd 32 33
|
34: 14(int) IAdd 32 33
|
||||||
Store 16(i) 34
|
Store 16(i) 34
|
||||||
Branch 18
|
Branch 18
|
||||||
19: Label
|
19: Label
|
||||||
37: 8(fvec4) Load 10(color)
|
37: 8(fvec4) Load 10(color)
|
||||||
Store 36(gl_FragColor) 37
|
Store 36(gl_FragColor) 37
|
||||||
Store 39(sum) 40
|
Store 39(sum) 40
|
||||||
Store 41(i) 17
|
Store 41(i) 17
|
||||||
Branch 42
|
Branch 42
|
||||||
42: Label
|
42: Label
|
||||||
45: 14(int) Load 41(i)
|
45: 14(int) Load 41(i)
|
||||||
47: 25(bool) SLessThan 45 46
|
47: 25(bool) SLessThan 45 46
|
||||||
LoopMerge 43 None
|
LoopMerge 43 None
|
||||||
BranchConditional 47 44 43
|
BranchConditional 47 44 43
|
||||||
44: Label
|
44: Label
|
||||||
52: 14(int) Load 41(i)
|
52: 14(int) Load 41(i)
|
||||||
53: 49(ivec4) Load 51(v4)
|
53: 49(ivec4) Load 51(v4)
|
||||||
54: 48(int) VectorExtractDynamic 53 52
|
54: 48(int) VectorExtractDynamic 53 52
|
||||||
55: 7(float) ConvertUToF 54
|
55: 7(float) ConvertUToF 54
|
||||||
56: 7(float) Load 39(sum)
|
56: 7(float) Load 39(sum)
|
||||||
57: 7(float) FAdd 56 55
|
57: 7(float) FAdd 56 55
|
||||||
Store 39(sum) 57
|
Store 39(sum) 57
|
||||||
58: 14(int) Load 41(i)
|
58: 14(int) Load 41(i)
|
||||||
59: 14(int) IAdd 58 33
|
59: 14(int) IAdd 58 33
|
||||||
Store 41(i) 59
|
Store 41(i) 59
|
||||||
Branch 42
|
Branch 42
|
||||||
43: Label
|
43: Label
|
||||||
Store 60(i) 17
|
Store 60(i) 17
|
||||||
Branch 61
|
Branch 61
|
||||||
61: Label
|
61: Label
|
||||||
64: 14(int) Load 60(i)
|
64: 14(int) Load 60(i)
|
||||||
65: 25(bool) SLessThan 64 46
|
65: 25(bool) SLessThan 64 46
|
||||||
LoopMerge 62 None
|
LoopMerge 62 None
|
||||||
BranchConditional 65 63 62
|
BranchConditional 65 63 62
|
||||||
63: Label
|
63: Label
|
||||||
67: 14(int) Load 60(i)
|
67: 14(int) Load 60(i)
|
||||||
68: 14(int) Load 60(i)
|
68: 14(int) Load 60(i)
|
||||||
69: 49(ivec4) Load 51(v4)
|
69: 49(ivec4) Load 51(v4)
|
||||||
70: 48(int) VectorExtractDynamic 69 68
|
70: 48(int) VectorExtractDynamic 69 68
|
||||||
72: 48(int) IMul 70 71
|
72: 48(int) IMul 70 71
|
||||||
73: 7(float) ConvertUToF 72
|
73: 7(float) ConvertUToF 72
|
||||||
74: 8(fvec4) Load 66(tv4)
|
74: 8(fvec4) Load 66(tv4)
|
||||||
75: 8(fvec4) VectorInsertDynamic 74 73 67
|
75: 8(fvec4) VectorInsertDynamic 74 73 67
|
||||||
Store 66(tv4) 75
|
Store 66(tv4) 75
|
||||||
76: 14(int) Load 60(i)
|
76: 14(int) Load 60(i)
|
||||||
77: 14(int) IAdd 76 33
|
77: 14(int) IAdd 76 33
|
||||||
Store 60(i) 77
|
Store 60(i) 77
|
||||||
Branch 61
|
Branch 61
|
||||||
62: Label
|
62: Label
|
||||||
78: 7(float) Load 39(sum)
|
78: 7(float) Load 39(sum)
|
||||||
79: 8(fvec4) CompositeConstruct 78 78 78 78
|
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
|
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
|
83: 8(fvec4) FAdd 82 81
|
||||||
Store 36(gl_FragColor) 83
|
Store 36(gl_FragColor) 83
|
||||||
85: 8(fvec4) Load 12(BaseColor)
|
85: 8(fvec4) Load 12(BaseColor)
|
||||||
87: 86(fvec3) VectorShuffle 85 85 0 1 2
|
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
|
89: 8(fvec4) VectorShuffle 88 87 4 5 6 3
|
||||||
Store 84(r) 89
|
Store 84(r) 89
|
||||||
Store 90(i) 17
|
Store 90(i) 17
|
||||||
Branch 91
|
Branch 91
|
||||||
91: Label
|
91: Label
|
||||||
94: 14(int) Load 90(i)
|
94: 14(int) Load 90(i)
|
||||||
95: 14(int) Load 23(Count)
|
95: 14(int) Load 23(Count)
|
||||||
96: 25(bool) SLessThan 94 95
|
96: 25(bool) SLessThan 94 95
|
||||||
LoopMerge 92 None
|
LoopMerge 92 None
|
||||||
BranchConditional 96 93 92
|
BranchConditional 96 93 92
|
||||||
93: Label
|
93: Label
|
||||||
99: 7(float) Load 98(f)
|
99: 7(float) Load 98(f)
|
||||||
100: 8(fvec4) Load 84(r)
|
100: 8(fvec4) Load 84(r)
|
||||||
101: 8(fvec4) CompositeInsert 99 100 3
|
101: 8(fvec4) CompositeInsert 99 100 3
|
||||||
Store 84(r) 101
|
Store 84(r) 101
|
||||||
102: 14(int) Load 90(i)
|
102: 14(int) Load 90(i)
|
||||||
103: 14(int) IAdd 102 33
|
103: 14(int) IAdd 102 33
|
||||||
Store 90(i) 103
|
Store 90(i) 103
|
||||||
Branch 91
|
Branch 91
|
||||||
92: Label
|
92: Label
|
||||||
104: 8(fvec4) Load 84(r)
|
104: 8(fvec4) Load 84(r)
|
||||||
105: 86(fvec3) VectorShuffle 104 104 0 1 2
|
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
|
107: 86(fvec3) VectorShuffle 106 106 0 1 2
|
||||||
108: 86(fvec3) FAdd 107 105
|
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
|
110: 8(fvec4) VectorShuffle 109 108 4 5 6 3
|
||||||
Store 36(gl_FragColor) 110
|
Store 36(gl_FragColor) 110
|
||||||
Store 111(i) 17
|
Store 111(i) 17
|
||||||
Branch 112
|
Branch 112
|
||||||
112: Label
|
112: Label
|
||||||
115: 14(int) Load 111(i)
|
115: 14(int) Load 111(i)
|
||||||
117: 25(bool) SLessThan 115 116
|
117: 25(bool) SLessThan 115 116
|
||||||
LoopMerge 113 None
|
LoopMerge 113 None
|
||||||
BranchConditional 117 114 113
|
BranchConditional 117 114 113
|
||||||
114: Label
|
114: Label
|
||||||
118: 7(float) Load 98(f)
|
118: 7(float) Load 98(f)
|
||||||
119: 8(fvec4) Load 36(gl_FragColor)
|
119: 8(fvec4) Load 36(gl_FragColor)
|
||||||
120: 8(fvec4) VectorTimesScalar 119 118
|
120: 8(fvec4) VectorTimesScalar 119 118
|
||||||
Store 36(gl_FragColor) 120
|
Store 36(gl_FragColor) 120
|
||||||
121: 14(int) Load 111(i)
|
121: 14(int) Load 111(i)
|
||||||
122: 14(int) IAdd 121 46
|
122: 14(int) IAdd 121 46
|
||||||
Store 111(i) 122
|
Store 111(i) 122
|
||||||
Branch 112
|
Branch 112
|
||||||
113: Label
|
113: Label
|
||||||
Branch 6
|
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
|
// Id's are bound by 59
|
||||||
|
|
||||||
Source ESSL 100
|
Source ESSL 100
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 7 "bar("
|
Name 7 "bar("
|
||||||
Name 11 "unreachableReturn("
|
Name 11 "unreachableReturn("
|
||||||
@ -24,52 +26,52 @@ Linked fragment stage:
|
|||||||
Name 37 "d"
|
Name 37 "d"
|
||||||
Name 49 "dummyReturn"
|
Name 49 "dummyReturn"
|
||||||
Name 58 "bigColor"
|
Name 58 "bigColor"
|
||||||
Decorate 19(color) PrecisionMedium
|
Decorate 19(color) RelaxedPrecision
|
||||||
Decorate 21(BaseColor) PrecisionMedium
|
Decorate 21(BaseColor) RelaxedPrecision
|
||||||
Decorate 21(BaseColor) Smooth
|
Decorate 21(BaseColor) Smooth
|
||||||
Decorate 28(f) PrecisionMedium
|
Decorate 28(f) RelaxedPrecision
|
||||||
Decorate 31(gl_FragColor) PrecisionMedium
|
Decorate 31(gl_FragColor) RelaxedPrecision
|
||||||
Decorate 31(gl_FragColor) BuiltIn FragColor
|
Decorate 31(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 37(d) PrecisionMedium
|
Decorate 37(d) RelaxedPrecision
|
||||||
Decorate 58(bigColor) PrecisionMedium
|
Decorate 58(bigColor) RelaxedPrecision
|
||||||
Decorate 58(bigColor) NoStaticUse
|
Decorate 58(bigColor) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
9: TypeFloat 32
|
9: TypeFloat 32
|
||||||
10: TypeFunction 9(float)
|
10: TypeFunction 9(float)
|
||||||
13: TypeVector 9(float) 4
|
13: TypeVector 9(float) 4
|
||||||
14: TypePointer Function 13(fvec4)
|
14: TypePointer Function 13(fvec4)
|
||||||
15: TypeFunction 9(float) 14(ptr)
|
15: TypeFunction 9(float) 14(ptr)
|
||||||
20: TypePointer Input 13(fvec4)
|
20: TypePointer Input 13(fvec4)
|
||||||
21(BaseColor): 20(ptr) Variable Input
|
21(BaseColor): 20(ptr) Variable Input
|
||||||
27: TypePointer Function 9(float)
|
27: TypePointer Function 9(float)
|
||||||
30: TypePointer Output 13(fvec4)
|
30: TypePointer Output 13(fvec4)
|
||||||
31(gl_FragColor): 30(ptr) Variable Output
|
31(gl_FragColor): 30(ptr) Variable Output
|
||||||
36: TypePointer UniformConstant 9(float)
|
36: TypePointer UniformConstant 9(float)
|
||||||
37(d): 36(ptr) Variable UniformConstant
|
37(d): 36(ptr) Variable UniformConstant
|
||||||
39: 9(float) Constant 1082549862
|
39: 9(float) Constant 1082549862
|
||||||
40: TypeBool
|
40: TypeBool
|
||||||
44: 9(float) Constant 1067030938
|
44: 9(float) Constant 1067030938
|
||||||
47: 9(float) Constant 1083179008
|
47: 9(float) Constant 1083179008
|
||||||
57: TypePointer UniformConstant 13(fvec4)
|
57: TypePointer UniformConstant 13(fvec4)
|
||||||
58(bigColor): 57(ptr) Variable UniformConstant
|
58(bigColor): 57(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
19(color): 14(ptr) Variable Function
|
19(color): 14(ptr) Variable Function
|
||||||
22(param): 14(ptr) Variable Function
|
22(param): 14(ptr) Variable Function
|
||||||
28(f): 27(ptr) Variable Function
|
28(f): 27(ptr) Variable Function
|
||||||
23: 13(fvec4) Load 21(BaseColor)
|
23: 13(fvec4) Load 21(BaseColor)
|
||||||
Store 22(param) 23
|
Store 22(param) 23
|
||||||
24: 9(float) FunctionCall 17(foo(vf4;) 22(param)
|
24: 9(float) FunctionCall 17(foo(vf4;) 22(param)
|
||||||
25: 13(fvec4) CompositeConstruct 24 24 24 24
|
25: 13(fvec4) CompositeConstruct 24 24 24 24
|
||||||
Store 19(color) 25
|
Store 19(color) 25
|
||||||
26: 2 FunctionCall 7(bar()
|
26: 2 FunctionCall 7(bar()
|
||||||
29: 9(float) FunctionCall 11(unreachableReturn()
|
29: 9(float) FunctionCall 11(unreachableReturn()
|
||||||
Store 28(f) 29
|
Store 28(f) 29
|
||||||
32: 13(fvec4) Load 19(color)
|
32: 13(fvec4) Load 19(color)
|
||||||
33: 9(float) Load 28(f)
|
33: 9(float) Load 28(f)
|
||||||
34: 13(fvec4) VectorTimesScalar 32 33
|
34: 13(fvec4) VectorTimesScalar 32 33
|
||||||
Store 31(gl_FragColor) 34
|
Store 31(gl_FragColor) 34
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
@ -80,26 +82,26 @@ Linked fragment stage:
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
11(unreachableReturn(): 9(float) Function None 10
|
11(unreachableReturn(): 9(float) Function None 10
|
||||||
12: Label
|
12: Label
|
||||||
49(dummyReturn): 27(ptr) Variable Function
|
49(dummyReturn): 27(ptr) Variable Function
|
||||||
35: 2 FunctionCall 7(bar()
|
35: 2 FunctionCall 7(bar()
|
||||||
38: 9(float) Load 37(d)
|
38: 9(float) Load 37(d)
|
||||||
41: 40(bool) FOrdLessThan 38 39
|
41: 40(bool) FOrdLessThan 38 39
|
||||||
SelectionMerge 43 None
|
SelectionMerge 43 None
|
||||||
BranchConditional 41 42 46
|
BranchConditional 41 42 46
|
||||||
42: Label
|
42: Label
|
||||||
ReturnValue 44
|
ReturnValue 44
|
||||||
46: Label
|
46: Label
|
||||||
ReturnValue 47
|
ReturnValue 47
|
||||||
43: Label
|
43: Label
|
||||||
50: 9(float) Load 49(dummyReturn)
|
50: 9(float) Load 49(dummyReturn)
|
||||||
ReturnValue 50
|
ReturnValue 50
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
17(foo(vf4;): 9(float) Function None 15
|
17(foo(vf4;): 9(float) Function None 15
|
||||||
16(bar): 14(ptr) FunctionParameter
|
16(bar): 14(ptr) FunctionParameter
|
||||||
18: Label
|
18: Label
|
||||||
51: 13(fvec4) Load 16(bar)
|
51: 13(fvec4) Load 16(bar)
|
||||||
52: 9(float) CompositeExtract 51 0
|
52: 9(float) CompositeExtract 51 0
|
||||||
53: 13(fvec4) Load 16(bar)
|
53: 13(fvec4) Load 16(bar)
|
||||||
54: 9(float) CompositeExtract 53 1
|
54: 9(float) CompositeExtract 53 1
|
||||||
55: 9(float) FAdd 52 54
|
55: 9(float) FAdd 52 54
|
||||||
ReturnValue 55
|
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
|
// Id's are bound by 76
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 12 "foo(vf4;"
|
Name 12 "foo(vf4;"
|
||||||
Name 11 "bar"
|
Name 11 "bar"
|
||||||
@ -30,21 +32,21 @@ Linked fragment stage:
|
|||||||
Name 65 "g"
|
Name 65 "g"
|
||||||
Name 68 "gl_FragColor"
|
Name 68 "gl_FragColor"
|
||||||
Name 75 "bigColor"
|
Name 75 "bigColor"
|
||||||
Decorate 57(BaseColor) Smooth
|
Decorate 57(BaseColor) Smooth
|
||||||
Decorate 68(gl_FragColor) BuiltIn FragColor
|
Decorate 68(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 75(bigColor) NoStaticUse
|
Decorate 75(bigColor) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
10: TypeFunction 7(float) 9(ptr)
|
10: TypeFunction 7(float) 9(ptr)
|
||||||
16: TypeFunction 7(float)
|
16: TypeFunction 7(float)
|
||||||
21: TypePointer PrivateGlobal 7(float)
|
21: TypePointer PrivateGlobal 7(float)
|
||||||
22(h): 21(ptr) Variable PrivateGlobal
|
22(h): 21(ptr) Variable PrivateGlobal
|
||||||
23: 7(float) Constant 0
|
23: 7(float) Constant 0
|
||||||
30: TypePointer UniformConstant 7(float)
|
30: TypePointer UniformConstant 7(float)
|
||||||
31(d): 30(ptr) Variable UniformConstant
|
31(d): 30(ptr) Variable UniformConstant
|
||||||
33: 7(float) Constant 1082549862
|
33: 7(float) Constant 1082549862
|
||||||
34: TypeBool
|
34: TypeBool
|
||||||
38: 7(float) Constant 1067030938
|
38: 7(float) Constant 1067030938
|
||||||
@ -52,34 +54,34 @@ Linked fragment stage:
|
|||||||
43: TypePointer Function 7(float)
|
43: TypePointer Function 7(float)
|
||||||
51: 7(float) Constant 1081711002
|
51: 7(float) Constant 1081711002
|
||||||
56: TypePointer Input 8(fvec4)
|
56: TypePointer Input 8(fvec4)
|
||||||
57(BaseColor): 56(ptr) Variable Input
|
57(BaseColor): 56(ptr) Variable Input
|
||||||
67: TypePointer Output 8(fvec4)
|
67: TypePointer Output 8(fvec4)
|
||||||
68(gl_FragColor): 67(ptr) Variable Output
|
68(gl_FragColor): 67(ptr) Variable Output
|
||||||
74: TypePointer UniformConstant 8(fvec4)
|
74: TypePointer UniformConstant 8(fvec4)
|
||||||
75(bigColor): 74(ptr) Variable UniformConstant
|
75(bigColor): 74(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
55(color): 9(ptr) Variable Function
|
55(color): 9(ptr) Variable Function
|
||||||
58(param): 9(ptr) Variable Function
|
58(param): 9(ptr) Variable Function
|
||||||
63(f): 43(ptr) Variable Function
|
63(f): 43(ptr) Variable Function
|
||||||
65(g): 43(ptr) Variable Function
|
65(g): 43(ptr) Variable Function
|
||||||
Store 22(h) 23
|
Store 22(h) 23
|
||||||
59: 8(fvec4) Load 57(BaseColor)
|
59: 8(fvec4) Load 57(BaseColor)
|
||||||
Store 58(param) 59
|
Store 58(param) 59
|
||||||
60: 7(float) FunctionCall 12(foo(vf4;) 58(param)
|
60: 7(float) FunctionCall 12(foo(vf4;) 58(param)
|
||||||
61: 8(fvec4) CompositeConstruct 60 60 60 60
|
61: 8(fvec4) CompositeConstruct 60 60 60 60
|
||||||
Store 55(color) 61
|
Store 55(color) 61
|
||||||
62: 2 FunctionCall 14(bar()
|
62: 2 FunctionCall 14(bar()
|
||||||
64: 7(float) FunctionCall 17(unreachableReturn()
|
64: 7(float) FunctionCall 17(unreachableReturn()
|
||||||
Store 63(f) 64
|
Store 63(f) 64
|
||||||
66: 7(float) FunctionCall 19(missingReturn()
|
66: 7(float) FunctionCall 19(missingReturn()
|
||||||
Store 65(g) 66
|
Store 65(g) 66
|
||||||
69: 8(fvec4) Load 55(color)
|
69: 8(fvec4) Load 55(color)
|
||||||
70: 7(float) Load 63(f)
|
70: 7(float) Load 63(f)
|
||||||
71: 8(fvec4) VectorTimesScalar 69 70
|
71: 8(fvec4) VectorTimesScalar 69 70
|
||||||
72: 7(float) Load 22(h)
|
72: 7(float) Load 22(h)
|
||||||
73: 8(fvec4) VectorTimesScalar 71 72
|
73: 8(fvec4) VectorTimesScalar 71 72
|
||||||
Store 68(gl_FragColor) 73
|
Store 68(gl_FragColor) 73
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
@ -87,9 +89,9 @@ Linked fragment stage:
|
|||||||
12(foo(vf4;): 7(float) Function None 10
|
12(foo(vf4;): 7(float) Function None 10
|
||||||
11(bar): 9(ptr) FunctionParameter
|
11(bar): 9(ptr) FunctionParameter
|
||||||
13: Label
|
13: Label
|
||||||
24: 8(fvec4) Load 11(bar)
|
24: 8(fvec4) Load 11(bar)
|
||||||
25: 7(float) CompositeExtract 24 0
|
25: 7(float) CompositeExtract 24 0
|
||||||
26: 8(fvec4) Load 11(bar)
|
26: 8(fvec4) Load 11(bar)
|
||||||
27: 7(float) CompositeExtract 26 1
|
27: 7(float) CompositeExtract 26 1
|
||||||
28: 7(float) FAdd 25 27
|
28: 7(float) FAdd 25 27
|
||||||
ReturnValue 28
|
ReturnValue 28
|
||||||
@ -100,31 +102,31 @@ Linked fragment stage:
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
17(unreachableReturn(): 7(float) Function None 16
|
17(unreachableReturn(): 7(float) Function None 16
|
||||||
18: Label
|
18: Label
|
||||||
44(dummyReturn): 43(ptr) Variable Function
|
44(dummyReturn): 43(ptr) Variable Function
|
||||||
32: 7(float) Load 31(d)
|
32: 7(float) Load 31(d)
|
||||||
35: 34(bool) FOrdLessThan 32 33
|
35: 34(bool) FOrdLessThan 32 33
|
||||||
SelectionMerge 37 None
|
SelectionMerge 37 None
|
||||||
BranchConditional 35 36 40
|
BranchConditional 35 36 40
|
||||||
36: Label
|
36: Label
|
||||||
ReturnValue 38
|
ReturnValue 38
|
||||||
40: Label
|
40: Label
|
||||||
ReturnValue 41
|
ReturnValue 41
|
||||||
37: Label
|
37: Label
|
||||||
45: 7(float) Load 44(dummyReturn)
|
45: 7(float) Load 44(dummyReturn)
|
||||||
ReturnValue 45
|
ReturnValue 45
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
19(missingReturn(): 7(float) Function None 16
|
19(missingReturn(): 7(float) Function None 16
|
||||||
20: Label
|
20: Label
|
||||||
53(dummyReturn): 43(ptr) Variable Function
|
53(dummyReturn): 43(ptr) Variable Function
|
||||||
46: 7(float) Load 31(d)
|
46: 7(float) Load 31(d)
|
||||||
47: 34(bool) FOrdLessThan 46 41
|
47: 34(bool) FOrdLessThan 46 41
|
||||||
SelectionMerge 49 None
|
SelectionMerge 49 None
|
||||||
BranchConditional 47 48 49
|
BranchConditional 47 48 49
|
||||||
48: Label
|
48: Label
|
||||||
50: 7(float) Load 31(d)
|
50: 7(float) Load 31(d)
|
||||||
Store 22(h) 50
|
Store 22(h) 50
|
||||||
ReturnValue 51
|
ReturnValue 51
|
||||||
49: Label
|
49: Label
|
||||||
54: 7(float) Load 53(dummyReturn)
|
54: 7(float) Load 53(dummyReturn)
|
||||||
ReturnValue 54
|
ReturnValue 54
|
||||||
FunctionEnd
|
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
|
// Id's are bound by 159
|
||||||
|
|
||||||
Source GLSL 400
|
Source GLSL 400
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 16 "foo(i1;i1;i1;i1;i1;i1;"
|
Name 16 "foo(i1;i1;i1;i1;i1;i1;"
|
||||||
Name 10 "a"
|
Name 10 "a"
|
||||||
@ -48,7 +50,7 @@ Linked fragment stage:
|
|||||||
Name 155 "gl_FragColor"
|
Name 155 "gl_FragColor"
|
||||||
Decorate 155(gl_FragColor) BuiltIn FragColor
|
Decorate 155(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
9: TypeFunction 7(int) 8(ptr) 7(int) 8(ptr) 7(int) 8(ptr) 8(ptr)
|
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
|
20: TypeVector 18(float) 3
|
||||||
21: TypePointer Function 20(fvec3)
|
21: TypePointer Function 20(fvec3)
|
||||||
22: TypeFunction 7(int) 19(ptr) 21(ptr) 8(ptr)
|
22: TypeFunction 7(int) 19(ptr) 21(ptr) 8(ptr)
|
||||||
28: TypeFunction 7(int)
|
28: TypeFunction 7(int)
|
||||||
39: 7(int) Constant 64
|
39: 7(int) Constant 64
|
||||||
44: 7(int) Constant 1024
|
44: 7(int) Constant 1024
|
||||||
62: 18(float) Constant 1077936128
|
62: 18(float) Constant 1077936128
|
||||||
66: 18(float) Constant 1084227584
|
66: 18(float) Constant 1084227584
|
||||||
72: TypePointer UniformConstant 18(float)
|
72: TypePointer UniformConstant 18(float)
|
||||||
73(u): 72(ptr) Variable UniformConstant
|
73(u): 72(ptr) Variable UniformConstant
|
||||||
75: 18(float) Constant 1078774989
|
75: 18(float) Constant 1078774989
|
||||||
76: TypeBool
|
76: TypeBool
|
||||||
81: 7(int) Constant 1000000
|
81: 7(int) Constant 1000000
|
||||||
@ -79,89 +81,89 @@ Linked fragment stage:
|
|||||||
102: 7(int) Constant 8
|
102: 7(int) Constant 8
|
||||||
117: 7(int) Constant 128
|
117: 7(int) Constant 128
|
||||||
127: TypePointer PrivateGlobal 7(int)
|
127: TypePointer PrivateGlobal 7(int)
|
||||||
128(tempReturn): 127(ptr) Variable PrivateGlobal
|
128(tempReturn): 127(ptr) Variable PrivateGlobal
|
||||||
129: 18(float) Constant 1082130432
|
129: 18(float) Constant 1082130432
|
||||||
130: 18(float) Constant 1065353216
|
130: 18(float) Constant 1065353216
|
||||||
131: 18(float) Constant 1073741824
|
131: 18(float) Constant 1073741824
|
||||||
132: 20(fvec3) ConstantComposite 130 131 62
|
132: 20(fvec3) ConstantComposite 130 131 62
|
||||||
153: TypeVector 18(float) 4
|
153: TypeVector 18(float) 4
|
||||||
154: TypePointer Output 153(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
85(t): 8(ptr) Variable Function
|
85(t): 8(ptr) Variable Function
|
||||||
90(f): 89(ptr) Variable Function
|
90(f): 89(ptr) Variable Function
|
||||||
97(color): 8(ptr) Variable Function
|
97(color): 8(ptr) Variable Function
|
||||||
103(e): 8(ptr) Variable Function
|
103(e): 8(ptr) Variable Function
|
||||||
104(param): 8(ptr) Variable Function
|
104(param): 8(ptr) Variable Function
|
||||||
105(param): 8(ptr) Variable Function
|
105(param): 8(ptr) Variable Function
|
||||||
106(param): 8(ptr) Variable Function
|
106(param): 8(ptr) Variable Function
|
||||||
107(param): 8(ptr) Variable Function
|
107(param): 8(ptr) Variable Function
|
||||||
126(ret): 19(ptr) Variable Function
|
126(ret): 19(ptr) Variable Function
|
||||||
133(tempArg): 8(ptr) Variable Function
|
133(tempArg): 8(ptr) Variable Function
|
||||||
134(param): 19(ptr) Variable Function
|
134(param): 19(ptr) Variable Function
|
||||||
135(param): 21(ptr) Variable Function
|
135(param): 21(ptr) Variable Function
|
||||||
136(param): 8(ptr) Variable Function
|
136(param): 8(ptr) Variable Function
|
||||||
139(arg): 19(ptr) Variable Function
|
139(arg): 19(ptr) Variable Function
|
||||||
Store 85(t) 86
|
Store 85(t) 86
|
||||||
94: 93(ptr) AccessChain 90(f) 91
|
94: 93(ptr) AccessChain 90(f) 91
|
||||||
95: 87(ivec4) Load 94
|
95: 87(ivec4) Load 94
|
||||||
96: 87(ivec4) CompositeInsert 92 95 1
|
96: 87(ivec4) CompositeInsert 92 95 1
|
||||||
Store 94 96
|
Store 94 96
|
||||||
99: 7(int) Load 85(t)
|
99: 7(int) Load 85(t)
|
||||||
100: 7(int) Load 85(t)
|
100: 7(int) Load 85(t)
|
||||||
101: 7(int) IAdd 99 100
|
101: 7(int) IAdd 99 100
|
||||||
Store 104(param) 98
|
Store 104(param) 98
|
||||||
Store 105(param) 101
|
Store 105(param) 101
|
||||||
108: 93(ptr) AccessChain 90(f) 91
|
108: 93(ptr) AccessChain 90(f) 91
|
||||||
109: 87(ivec4) Load 108
|
109: 87(ivec4) Load 108
|
||||||
110: 7(int) CompositeExtract 109 1
|
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)
|
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)
|
112: 7(int) Load 106(param)
|
||||||
Store 103(e) 112
|
Store 103(e) 112
|
||||||
113: 7(int) Load 107(param)
|
113: 7(int) Load 107(param)
|
||||||
114: 93(ptr) AccessChain 90(f) 91
|
114: 93(ptr) AccessChain 90(f) 91
|
||||||
115: 87(ivec4) Load 114
|
115: 87(ivec4) Load 114
|
||||||
116: 87(ivec4) CompositeInsert 113 115 1
|
116: 87(ivec4) CompositeInsert 113 115 1
|
||||||
Store 114 116
|
Store 114 116
|
||||||
Store 97(color) 111
|
Store 97(color) 111
|
||||||
118: 7(int) Load 103(e)
|
118: 7(int) Load 103(e)
|
||||||
119: 93(ptr) AccessChain 90(f) 91
|
119: 93(ptr) AccessChain 90(f) 91
|
||||||
120: 87(ivec4) Load 119
|
120: 87(ivec4) Load 119
|
||||||
121: 7(int) CompositeExtract 120 1
|
121: 7(int) CompositeExtract 120 1
|
||||||
122: 7(int) IAdd 118 121
|
122: 7(int) IAdd 118 121
|
||||||
123: 7(int) IMul 117 122
|
123: 7(int) IMul 117 122
|
||||||
124: 7(int) Load 97(color)
|
124: 7(int) Load 97(color)
|
||||||
125: 7(int) IAdd 124 123
|
125: 7(int) IAdd 124 123
|
||||||
Store 97(color) 125
|
Store 97(color) 125
|
||||||
Store 134(param) 129
|
Store 134(param) 129
|
||||||
Store 135(param) 132
|
Store 135(param) 132
|
||||||
137: 7(int) FunctionCall 26(foo2(f1;vf3;i1;) 134(param) 135(param) 136(param)
|
137: 7(int) FunctionCall 26(foo2(f1;vf3;i1;) 134(param) 135(param) 136(param)
|
||||||
138: 7(int) Load 136(param)
|
138: 7(int) Load 136(param)
|
||||||
Store 133(tempArg) 138
|
Store 133(tempArg) 138
|
||||||
Store 128(tempReturn) 137
|
Store 128(tempReturn) 137
|
||||||
140: 7(int) Load 133(tempArg)
|
140: 7(int) Load 133(tempArg)
|
||||||
141: 18(float) ConvertSToF 140
|
141: 18(float) ConvertSToF 140
|
||||||
Store 139(arg) 141
|
Store 139(arg) 141
|
||||||
142: 7(int) Load 128(tempReturn)
|
142: 7(int) Load 128(tempReturn)
|
||||||
143: 18(float) ConvertSToF 142
|
143: 18(float) ConvertSToF 142
|
||||||
Store 126(ret) 143
|
Store 126(ret) 143
|
||||||
144: 18(float) Load 126(ret)
|
144: 18(float) Load 126(ret)
|
||||||
145: 18(float) Load 139(arg)
|
145: 18(float) Load 139(arg)
|
||||||
146: 18(float) FAdd 144 145
|
146: 18(float) FAdd 144 145
|
||||||
147: 7(int) ConvertFToS 146
|
147: 7(int) ConvertFToS 146
|
||||||
148: 7(int) Load 97(color)
|
148: 7(int) Load 97(color)
|
||||||
149: 7(int) IAdd 148 147
|
149: 7(int) IAdd 148 147
|
||||||
Store 97(color) 149
|
Store 97(color) 149
|
||||||
150: 7(int) FunctionCall 29(foo3()
|
150: 7(int) FunctionCall 29(foo3()
|
||||||
151: 7(int) Load 97(color)
|
151: 7(int) Load 97(color)
|
||||||
152: 7(int) IAdd 151 150
|
152: 7(int) IAdd 151 150
|
||||||
Store 97(color) 152
|
Store 97(color) 152
|
||||||
156: 7(int) Load 97(color)
|
156: 7(int) Load 97(color)
|
||||||
157: 18(float) ConvertSToF 156
|
157: 18(float) ConvertSToF 156
|
||||||
158: 153(fvec4) CompositeConstruct 157 157 157 157
|
158: 153(fvec4) CompositeConstruct 157 157 157 157
|
||||||
Store 155(gl_FragColor) 158
|
Store 155(gl_FragColor) 158
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
@ -174,40 +176,40 @@ Linked fragment stage:
|
|||||||
14(e): 8(ptr) FunctionParameter
|
14(e): 8(ptr) FunctionParameter
|
||||||
15(f): 8(ptr) FunctionParameter
|
15(f): 8(ptr) FunctionParameter
|
||||||
17: Label
|
17: Label
|
||||||
31(sum): 8(ptr) Variable Function
|
31(sum): 8(ptr) Variable Function
|
||||||
32: 7(int) Load 10(a)
|
32: 7(int) Load 10(a)
|
||||||
33: 7(int) IAdd 32 11(b)
|
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
|
35: 7(int) IAdd 33 34
|
||||||
36: 7(int) IAdd 35 13(d)
|
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
|
38: 7(int) IAdd 36 37
|
||||||
Store 31(sum) 38
|
Store 31(sum) 38
|
||||||
40: 7(int) Load 10(a)
|
40: 7(int) Load 10(a)
|
||||||
41: 7(int) IMul 40 39
|
41: 7(int) IMul 40 39
|
||||||
Store 10(a) 41
|
Store 10(a) 41
|
||||||
42: 7(int) Load 12(c)
|
42: 7(int) Load 12(c)
|
||||||
43: 7(int) IMul 42 39
|
43: 7(int) IMul 42 39
|
||||||
Store 12(c) 43
|
Store 12(c) 43
|
||||||
Store 14(e) 44
|
Store 14(e) 44
|
||||||
45: 7(int) Load 15(f)
|
45: 7(int) Load 15(f)
|
||||||
46: 7(int) IMul 45 39
|
46: 7(int) IMul 45 39
|
||||||
Store 15(f) 46
|
Store 15(f) 46
|
||||||
47: 7(int) Load 10(a)
|
47: 7(int) Load 10(a)
|
||||||
48: 7(int) IMul 39 11(b)
|
48: 7(int) IMul 39 11(b)
|
||||||
49: 7(int) IAdd 47 48
|
49: 7(int) IAdd 47 48
|
||||||
50: 7(int) Load 12(c)
|
50: 7(int) Load 12(c)
|
||||||
51: 7(int) IAdd 49 50
|
51: 7(int) IAdd 49 50
|
||||||
52: 7(int) IMul 39 13(d)
|
52: 7(int) IMul 39 13(d)
|
||||||
53: 7(int) IAdd 51 52
|
53: 7(int) IAdd 51 52
|
||||||
54: 7(int) Load 14(e)
|
54: 7(int) Load 14(e)
|
||||||
55: 7(int) IAdd 53 54
|
55: 7(int) IAdd 53 54
|
||||||
56: 7(int) Load 15(f)
|
56: 7(int) Load 15(f)
|
||||||
57: 7(int) IAdd 55 56
|
57: 7(int) IAdd 55 56
|
||||||
58: 7(int) Load 31(sum)
|
58: 7(int) Load 31(sum)
|
||||||
59: 7(int) IAdd 58 57
|
59: 7(int) IAdd 58 57
|
||||||
Store 31(sum) 59
|
Store 31(sum) 59
|
||||||
60: 7(int) Load 31(sum)
|
60: 7(int) Load 31(sum)
|
||||||
ReturnValue 60
|
ReturnValue 60
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
26(foo2(f1;vf3;i1;): 7(int) Function None 22
|
26(foo2(f1;vf3;i1;): 7(int) Function None 22
|
||||||
@ -215,11 +217,11 @@ Linked fragment stage:
|
|||||||
24(b): 21(ptr) FunctionParameter
|
24(b): 21(ptr) FunctionParameter
|
||||||
25(r): 8(ptr) FunctionParameter
|
25(r): 8(ptr) FunctionParameter
|
||||||
27: Label
|
27: Label
|
||||||
63: 18(float) Load 23(a)
|
63: 18(float) Load 23(a)
|
||||||
64: 18(float) FMul 62 63
|
64: 18(float) FMul 62 63
|
||||||
65: 7(int) ConvertFToS 64
|
65: 7(int) ConvertFToS 64
|
||||||
Store 25(r) 65
|
Store 25(r) 65
|
||||||
67: 20(fvec3) Load 24(b)
|
67: 20(fvec3) Load 24(b)
|
||||||
68: 18(float) CompositeExtract 67 1
|
68: 18(float) CompositeExtract 67 1
|
||||||
69: 18(float) FMul 66 68
|
69: 18(float) FMul 66 68
|
||||||
70: 7(int) ConvertFToS 69
|
70: 7(int) ConvertFToS 69
|
||||||
@ -227,10 +229,10 @@ Linked fragment stage:
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
29(foo3(): 7(int) Function None 28
|
29(foo3(): 7(int) Function None 28
|
||||||
30: Label
|
30: Label
|
||||||
74: 18(float) Load 73(u)
|
74: 18(float) Load 73(u)
|
||||||
77: 76(bool) FOrdGreaterThan 74 75
|
77: 76(bool) FOrdGreaterThan 74 75
|
||||||
SelectionMerge 79 None
|
SelectionMerge 79 None
|
||||||
BranchConditional 77 78 79
|
BranchConditional 77 78 79
|
||||||
78: Label
|
78: Label
|
||||||
Kill
|
Kill
|
||||||
79: Label
|
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
|
// Id's are bound by 34
|
||||||
|
|
||||||
Source GLSL 120
|
Source GLSL 120
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "t"
|
Name 10 "t"
|
||||||
Name 15 "v"
|
Name 15 "v"
|
||||||
Name 27 "gl_FragColor"
|
Name 27 "gl_FragColor"
|
||||||
Name 33 "u"
|
Name 33 "u"
|
||||||
Decorate 15(v) Smooth
|
Decorate 15(v) Smooth
|
||||||
Decorate 27(gl_FragColor) BuiltIn FragColor
|
Decorate 27(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 33(u) NoStaticUse
|
Decorate 33(u) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 2
|
8: TypeVector 7(float) 2
|
||||||
9: TypePointer Function 8(fvec2)
|
9: TypePointer Function 8(fvec2)
|
||||||
@ -28,30 +30,30 @@ Linked fragment stage:
|
|||||||
12: 11(int) Constant 2
|
12: 11(int) Constant 2
|
||||||
13: TypeArray 8(fvec2) 12
|
13: TypeArray 8(fvec2) 12
|
||||||
14: TypePointer Input 13
|
14: TypePointer Input 13
|
||||||
15(v): 14(ptr) Variable Input
|
15(v): 14(ptr) Variable Input
|
||||||
16: TypeInt 32 1
|
16: TypeInt 32 1
|
||||||
17: 16(int) Constant 0
|
17: 16(int) Constant 0
|
||||||
18: TypePointer Input 8(fvec2)
|
18: TypePointer Input 8(fvec2)
|
||||||
21: 16(int) Constant 1
|
21: 16(int) Constant 1
|
||||||
25: TypeVector 7(float) 4
|
25: TypeVector 7(float) 4
|
||||||
26: TypePointer Output 25(fvec4)
|
26: TypePointer Output 25(fvec4)
|
||||||
27(gl_FragColor): 26(ptr) Variable Output
|
27(gl_FragColor): 26(ptr) Variable Output
|
||||||
28: 7(float) Constant 1106247680
|
28: 7(float) Constant 1106247680
|
||||||
29: 25(fvec4) ConstantComposite 28 28 28 28
|
29: 25(fvec4) ConstantComposite 28 28 28 28
|
||||||
30: 11(int) Constant 3
|
30: 11(int) Constant 3
|
||||||
31: TypeArray 25(fvec4) 30
|
31: TypeArray 25(fvec4) 30
|
||||||
32: TypePointer UniformConstant 31
|
32: TypePointer UniformConstant 31
|
||||||
33(u): 32(ptr) Variable UniformConstant
|
33(u): 32(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(t): 9(ptr) Variable Function
|
10(t): 9(ptr) Variable Function
|
||||||
19: 18(ptr) AccessChain 15(v) 17
|
19: 18(ptr) AccessChain 15(v) 17
|
||||||
20: 8(fvec2) Load 19
|
20: 8(fvec2) Load 19
|
||||||
22: 18(ptr) AccessChain 15(v) 21
|
22: 18(ptr) AccessChain 15(v) 21
|
||||||
23: 8(fvec2) Load 22
|
23: 8(fvec2) Load 22
|
||||||
24: 8(fvec2) FAdd 20 23
|
24: 8(fvec2) FAdd 20 23
|
||||||
Store 10(t) 24
|
Store 10(t) 24
|
||||||
Store 27(gl_FragColor) 29
|
Store 27(gl_FragColor) 29
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 134
|
// Id's are bound by 135
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "s1"
|
Name 9 "s1"
|
||||||
MemberName 9(s1) 0 "i"
|
MemberName 9(s1) 0 "i"
|
||||||
@ -40,18 +42,18 @@ Linked fragment stage:
|
|||||||
Name 87 "condition"
|
Name 87 "condition"
|
||||||
Name 95 "color"
|
Name 95 "color"
|
||||||
Name 105 "gl_FragColor"
|
Name 105 "gl_FragColor"
|
||||||
Name 124 "sampler"
|
Name 125 "sampler"
|
||||||
Name 130 "foo"
|
Name 131 "foo"
|
||||||
Name 131 "foo2"
|
Name 132 "foo2"
|
||||||
Name 133 "uFloatArray"
|
Name 134 "uFloatArray"
|
||||||
Decorate 41(coord) Smooth
|
Decorate 41(coord) Smooth
|
||||||
Decorate 95(color) Smooth
|
Decorate 95(color) Smooth
|
||||||
Decorate 105(gl_FragColor) BuiltIn FragColor
|
Decorate 105(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 130(foo) NoStaticUse
|
Decorate 131(foo) NoStaticUse
|
||||||
Decorate 131(foo2) NoStaticUse
|
Decorate 132(foo2) NoStaticUse
|
||||||
Decorate 133(uFloatArray) NoStaticUse
|
Decorate 134(uFloatArray) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9(s1): TypeStruct 7(int) 8(float)
|
9(s1): TypeStruct 7(int) 8(float)
|
||||||
@ -60,7 +62,7 @@ Linked fragment stage:
|
|||||||
12: TypePointer Function 11(s2)
|
12: TypePointer Function 11(s2)
|
||||||
14(s3): TypeStruct 11(s2) 7(int) 8(float) 9(s1)
|
14(s3): TypeStruct 11(s2) 7(int) 8(float) 9(s1)
|
||||||
15: TypePointer UniformConstant 14(s3)
|
15: TypePointer UniformConstant 14(s3)
|
||||||
16(foo3): 15(ptr) Variable UniformConstant
|
16(foo3): 15(ptr) Variable UniformConstant
|
||||||
17: 7(int) Constant 0
|
17: 7(int) Constant 0
|
||||||
18: TypePointer UniformConstant 11(s2)
|
18: TypePointer UniformConstant 11(s2)
|
||||||
21: TypePointer UniformConstant 7(int)
|
21: TypePointer UniformConstant 7(int)
|
||||||
@ -76,7 +78,7 @@ Linked fragment stage:
|
|||||||
38: 7(int) Constant 4
|
38: 7(int) Constant 4
|
||||||
39: TypeVector 8(float) 2
|
39: TypeVector 8(float) 2
|
||||||
40: TypePointer Input 39(fvec2)
|
40: TypePointer Input 39(fvec2)
|
||||||
41(coord): 40(ptr) Variable Input
|
41(coord): 40(ptr) Variable Input
|
||||||
45: 33(int) Constant 8
|
45: 33(int) Constant 8
|
||||||
46: TypeArray 7(int) 45
|
46: TypeArray 7(int) 45
|
||||||
47: TypePointer Function 46
|
47: TypePointer Function 46
|
||||||
@ -84,134 +86,135 @@ Linked fragment stage:
|
|||||||
68: 7(int) Constant 5
|
68: 7(int) Constant 5
|
||||||
79: 7(int) Constant 16
|
79: 7(int) Constant 16
|
||||||
83: 8(float) Constant 0
|
83: 8(float) Constant 0
|
||||||
87(condition): 21(ptr) Variable UniformConstant
|
87(condition): 21(ptr) Variable UniformConstant
|
||||||
93: 7(int) Constant 3
|
93: 7(int) Constant 3
|
||||||
94: TypePointer Input 10(fvec4)
|
94: TypePointer Input 10(fvec4)
|
||||||
95(color): 94(ptr) Variable Input
|
95(color): 94(ptr) Variable Input
|
||||||
97: TypePointer Function 10(fvec4)
|
97: TypePointer Function 10(fvec4)
|
||||||
104: TypePointer Output 10(fvec4)
|
104: TypePointer Output 10(fvec4)
|
||||||
105(gl_FragColor): 104(ptr) Variable Output
|
105(gl_FragColor): 104(ptr) Variable Output
|
||||||
122: TypeSampler8(float) 2D filter+texture
|
122: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
123: TypePointer UniformConstant 122
|
123: TypeSampledImage 122
|
||||||
124(sampler): 123(ptr) Variable UniformConstant
|
124: TypePointer UniformConstant 123
|
||||||
129: TypePointer UniformConstant 9(s1)
|
125(sampler): 124(ptr) Variable UniformConstant
|
||||||
130(foo): 129(ptr) Variable UniformConstant
|
130: TypePointer UniformConstant 9(s1)
|
||||||
131(foo2): 18(ptr) Variable UniformConstant
|
131(foo): 130(ptr) Variable UniformConstant
|
||||||
132: TypePointer UniformConstant 35
|
132(foo2): 18(ptr) Variable UniformConstant
|
||||||
133(uFloatArray): 132(ptr) Variable UniformConstant
|
133: TypePointer UniformConstant 35
|
||||||
|
134(uFloatArray): 133(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
13(locals2): 12(ptr) Variable Function
|
13(locals2): 12(ptr) Variable Function
|
||||||
37(localFArray): 36(ptr) Variable Function
|
37(localFArray): 36(ptr) Variable Function
|
||||||
48(localIArray): 47(ptr) Variable Function
|
48(localIArray): 47(ptr) Variable Function
|
||||||
67(x): 51(ptr) Variable Function
|
67(x): 51(ptr) Variable Function
|
||||||
69(localArray): 36(ptr) Variable Function
|
69(localArray): 36(ptr) Variable Function
|
||||||
74(i): 51(ptr) Variable Function
|
74(i): 51(ptr) Variable Function
|
||||||
81(a): 36(ptr) Variable Function
|
81(a): 36(ptr) Variable Function
|
||||||
19: 18(ptr) AccessChain 16(foo3) 17
|
19: 18(ptr) AccessChain 16(foo3) 17
|
||||||
20: 11(s2) Load 19
|
20: 11(s2) Load 19
|
||||||
Store 13(locals2) 20
|
Store 13(locals2) 20
|
||||||
22: 21(ptr) AccessChain 16(foo3) 17 17
|
22: 21(ptr) AccessChain 16(foo3) 17 17
|
||||||
23: 7(int) Load 22
|
23: 7(int) Load 22
|
||||||
25: 24(bool) SGreaterThan 23 17
|
25: 24(bool) SGreaterThan 23 17
|
||||||
SelectionMerge 27 None
|
SelectionMerge 27 None
|
||||||
BranchConditional 25 26 53
|
BranchConditional 25 26 53
|
||||||
26: Label
|
26: Label
|
||||||
32: 31(ptr) AccessChain 13(locals2) 28 29
|
32: 31(ptr) AccessChain 13(locals2) 28 29
|
||||||
Store 32 30
|
Store 32 30
|
||||||
42: 39(fvec2) Load 41(coord)
|
42: 39(fvec2) Load 41(coord)
|
||||||
43: 8(float) CompositeExtract 42 0
|
43: 8(float) CompositeExtract 42 0
|
||||||
44: 31(ptr) AccessChain 37(localFArray) 38
|
44: 31(ptr) AccessChain 37(localFArray) 38
|
||||||
Store 44 43
|
Store 44 43
|
||||||
49: 21(ptr) AccessChain 16(foo3) 17 17
|
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
|
52: 51(ptr) AccessChain 48(localIArray) 28
|
||||||
Store 52 50
|
Store 52 50
|
||||||
Branch 27
|
Branch 27
|
||||||
53: Label
|
53: Label
|
||||||
54: 39(fvec2) Load 41(coord)
|
54: 39(fvec2) Load 41(coord)
|
||||||
55: 8(float) CompositeExtract 54 0
|
55: 8(float) CompositeExtract 54 0
|
||||||
56: 31(ptr) AccessChain 13(locals2) 28 29
|
56: 31(ptr) AccessChain 13(locals2) 28 29
|
||||||
Store 56 55
|
Store 56 55
|
||||||
57: 31(ptr) AccessChain 37(localFArray) 38
|
57: 31(ptr) AccessChain 37(localFArray) 38
|
||||||
Store 57 30
|
Store 57 30
|
||||||
58: 51(ptr) AccessChain 48(localIArray) 28
|
58: 51(ptr) AccessChain 48(localIArray) 28
|
||||||
Store 58 17
|
Store 58 17
|
||||||
Branch 27
|
Branch 27
|
||||||
27: Label
|
27: Label
|
||||||
59: 51(ptr) AccessChain 48(localIArray) 28
|
59: 51(ptr) AccessChain 48(localIArray) 28
|
||||||
60: 7(int) Load 59
|
60: 7(int) Load 59
|
||||||
61: 24(bool) IEqual 60 17
|
61: 24(bool) IEqual 60 17
|
||||||
SelectionMerge 63 None
|
SelectionMerge 63 None
|
||||||
BranchConditional 61 62 63
|
BranchConditional 61 62 63
|
||||||
62: Label
|
62: Label
|
||||||
64: 31(ptr) AccessChain 37(localFArray) 38
|
64: 31(ptr) AccessChain 37(localFArray) 38
|
||||||
65: 8(float) Load 64
|
65: 8(float) Load 64
|
||||||
66: 8(float) FAdd 65 30
|
66: 8(float) FAdd 65 30
|
||||||
Store 64 66
|
Store 64 66
|
||||||
Branch 63
|
Branch 63
|
||||||
63: Label
|
63: Label
|
||||||
Store 67(x) 68
|
Store 67(x) 68
|
||||||
70: 7(int) Load 67(x)
|
70: 7(int) Load 67(x)
|
||||||
71: 39(fvec2) Load 41(coord)
|
71: 39(fvec2) Load 41(coord)
|
||||||
72: 8(float) CompositeExtract 71 0
|
72: 8(float) CompositeExtract 71 0
|
||||||
73: 31(ptr) AccessChain 69(localArray) 70
|
73: 31(ptr) AccessChain 69(localArray) 70
|
||||||
Store 73 72
|
Store 73 72
|
||||||
Store 74(i) 17
|
Store 74(i) 17
|
||||||
Branch 75
|
Branch 75
|
||||||
75: Label
|
75: Label
|
||||||
78: 7(int) Load 74(i)
|
78: 7(int) Load 74(i)
|
||||||
80: 24(bool) SLessThan 78 79
|
80: 24(bool) SLessThan 78 79
|
||||||
LoopMerge 76 None
|
LoopMerge 76 None
|
||||||
BranchConditional 80 77 76
|
BranchConditional 80 77 76
|
||||||
77: Label
|
77: Label
|
||||||
82: 7(int) Load 74(i)
|
82: 7(int) Load 74(i)
|
||||||
84: 31(ptr) AccessChain 81(a) 82
|
84: 31(ptr) AccessChain 81(a) 82
|
||||||
Store 84 83
|
Store 84 83
|
||||||
85: 7(int) Load 74(i)
|
85: 7(int) Load 74(i)
|
||||||
86: 7(int) IAdd 85 29
|
86: 7(int) IAdd 85 29
|
||||||
Store 74(i) 86
|
Store 74(i) 86
|
||||||
Branch 75
|
Branch 75
|
||||||
76: Label
|
76: Label
|
||||||
88: 7(int) Load 87(condition)
|
88: 7(int) Load 87(condition)
|
||||||
89: 24(bool) IEqual 88 29
|
89: 24(bool) IEqual 88 29
|
||||||
SelectionMerge 91 None
|
SelectionMerge 91 None
|
||||||
BranchConditional 89 90 91
|
BranchConditional 89 90 91
|
||||||
90: Label
|
90: Label
|
||||||
92: 35 Load 69(localArray)
|
92: 35 Load 69(localArray)
|
||||||
Store 81(a) 92
|
Store 81(a) 92
|
||||||
Branch 91
|
Branch 91
|
||||||
91: Label
|
91: Label
|
||||||
96: 10(fvec4) Load 95(color)
|
96: 10(fvec4) Load 95(color)
|
||||||
98: 97(ptr) AccessChain 13(locals2) 93
|
98: 97(ptr) AccessChain 13(locals2) 93
|
||||||
Store 98 96
|
Store 98 96
|
||||||
99: 39(fvec2) Load 41(coord)
|
99: 39(fvec2) Load 41(coord)
|
||||||
100: 8(float) CompositeExtract 99 1
|
100: 8(float) CompositeExtract 99 1
|
||||||
101: 97(ptr) AccessChain 13(locals2) 93
|
101: 97(ptr) AccessChain 13(locals2) 93
|
||||||
102: 10(fvec4) Load 101
|
102: 10(fvec4) Load 101
|
||||||
103: 10(fvec4) CompositeInsert 100 102 2
|
103: 10(fvec4) CompositeInsert 100 102 2
|
||||||
Store 101 103
|
Store 101 103
|
||||||
106: 97(ptr) AccessChain 13(locals2) 93
|
106: 97(ptr) AccessChain 13(locals2) 93
|
||||||
107: 10(fvec4) Load 106
|
107: 10(fvec4) Load 106
|
||||||
108: 31(ptr) AccessChain 37(localFArray) 38
|
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
|
110: 31(ptr) AccessChain 13(locals2) 28 29
|
||||||
111: 8(float) Load 110
|
111: 8(float) Load 110
|
||||||
112: 8(float) FAdd 109 111
|
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
|
114: 31(ptr) AccessChain 69(localArray) 113
|
||||||
115: 8(float) Load 114
|
115: 8(float) Load 114
|
||||||
116: 8(float) FAdd 112 115
|
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
|
118: 31(ptr) AccessChain 81(a) 117
|
||||||
119: 8(float) Load 118
|
119: 8(float) Load 118
|
||||||
120: 8(float) FAdd 116 119
|
120: 8(float) FAdd 116 119
|
||||||
121: 10(fvec4) VectorTimesScalar 107 120
|
121: 10(fvec4) VectorTimesScalar 107 120
|
||||||
125: 122 Load 124(sampler)
|
126: 123 Load 125(sampler)
|
||||||
126: 39(fvec2) Load 41(coord)
|
127: 39(fvec2) Load 41(coord)
|
||||||
127: 10(fvec4) TextureSample 125 126
|
128: 10(fvec4) ImageSampleImplicitLod 126 127
|
||||||
128: 10(fvec4) FMul 121 127
|
129: 10(fvec4) FMul 121 128
|
||||||
Store 105(gl_FragColor) 128
|
Store 105(gl_FragColor) 129
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 196
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 12 "BaseColor"
|
Name 12 "BaseColor"
|
||||||
@ -63,120 +65,120 @@ Linked fragment stage:
|
|||||||
Name 191 "d33"
|
Name 191 "d33"
|
||||||
Name 192 "d34"
|
Name 192 "d34"
|
||||||
Name 195 "Count"
|
Name 195 "Count"
|
||||||
Decorate 12(BaseColor) Smooth
|
Decorate 12(BaseColor) Smooth
|
||||||
Decorate 149(gl_FragColor) BuiltIn FragColor
|
Decorate 149(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 151(bigColor) NoStaticUse
|
Decorate 151(bigColor) NoStaticUse
|
||||||
Decorate 152(bigColor1_1) NoStaticUse
|
Decorate 152(bigColor1_1) NoStaticUse
|
||||||
Decorate 153(bigColor1_2) NoStaticUse
|
Decorate 153(bigColor1_2) NoStaticUse
|
||||||
Decorate 154(bigColor1_3) NoStaticUse
|
Decorate 154(bigColor1_3) NoStaticUse
|
||||||
Decorate 155(bigColor2) NoStaticUse
|
Decorate 155(bigColor2) NoStaticUse
|
||||||
Decorate 156(bigColor3) NoStaticUse
|
Decorate 156(bigColor3) NoStaticUse
|
||||||
Decorate 157(bigColor5) NoStaticUse
|
Decorate 157(bigColor5) NoStaticUse
|
||||||
Decorate 158(bigColor6) NoStaticUse
|
Decorate 158(bigColor6) NoStaticUse
|
||||||
Decorate 159(bigColor7) NoStaticUse
|
Decorate 159(bigColor7) NoStaticUse
|
||||||
Decorate 160(bigColor8) NoStaticUse
|
Decorate 160(bigColor8) NoStaticUse
|
||||||
Decorate 161(d) NoStaticUse
|
Decorate 161(d) NoStaticUse
|
||||||
Decorate 162(d2) NoStaticUse
|
Decorate 162(d2) NoStaticUse
|
||||||
Decorate 163(d3) NoStaticUse
|
Decorate 163(d3) NoStaticUse
|
||||||
Decorate 164(d5) NoStaticUse
|
Decorate 164(d5) NoStaticUse
|
||||||
Decorate 165(d6) NoStaticUse
|
Decorate 165(d6) NoStaticUse
|
||||||
Decorate 166(d7) NoStaticUse
|
Decorate 166(d7) NoStaticUse
|
||||||
Decorate 167(d8) NoStaticUse
|
Decorate 167(d8) NoStaticUse
|
||||||
Decorate 168(d9) NoStaticUse
|
Decorate 168(d9) NoStaticUse
|
||||||
Decorate 169(d10) NoStaticUse
|
Decorate 169(d10) NoStaticUse
|
||||||
Decorate 170(d11) NoStaticUse
|
Decorate 170(d11) NoStaticUse
|
||||||
Decorate 171(d12) NoStaticUse
|
Decorate 171(d12) NoStaticUse
|
||||||
Decorate 172(d14) NoStaticUse
|
Decorate 172(d14) NoStaticUse
|
||||||
Decorate 173(d15) NoStaticUse
|
Decorate 173(d15) NoStaticUse
|
||||||
Decorate 174(d16) NoStaticUse
|
Decorate 174(d16) NoStaticUse
|
||||||
Decorate 175(d17) NoStaticUse
|
Decorate 175(d17) NoStaticUse
|
||||||
Decorate 176(d18) NoStaticUse
|
Decorate 176(d18) NoStaticUse
|
||||||
Decorate 177(d19) NoStaticUse
|
Decorate 177(d19) NoStaticUse
|
||||||
Decorate 178(d20) NoStaticUse
|
Decorate 178(d20) NoStaticUse
|
||||||
Decorate 179(d21) NoStaticUse
|
Decorate 179(d21) NoStaticUse
|
||||||
Decorate 180(d22) NoStaticUse
|
Decorate 180(d22) NoStaticUse
|
||||||
Decorate 181(d23) NoStaticUse
|
Decorate 181(d23) NoStaticUse
|
||||||
Decorate 182(d24) NoStaticUse
|
Decorate 182(d24) NoStaticUse
|
||||||
Decorate 183(d25) NoStaticUse
|
Decorate 183(d25) NoStaticUse
|
||||||
Decorate 184(d26) NoStaticUse
|
Decorate 184(d26) NoStaticUse
|
||||||
Decorate 185(d27) NoStaticUse
|
Decorate 185(d27) NoStaticUse
|
||||||
Decorate 186(d28) NoStaticUse
|
Decorate 186(d28) NoStaticUse
|
||||||
Decorate 187(d29) NoStaticUse
|
Decorate 187(d29) NoStaticUse
|
||||||
Decorate 188(d30) NoStaticUse
|
Decorate 188(d30) NoStaticUse
|
||||||
Decorate 189(d31) NoStaticUse
|
Decorate 189(d31) NoStaticUse
|
||||||
Decorate 190(d32) NoStaticUse
|
Decorate 190(d32) NoStaticUse
|
||||||
Decorate 191(d33) NoStaticUse
|
Decorate 191(d33) NoStaticUse
|
||||||
Decorate 192(d34) NoStaticUse
|
Decorate 192(d34) NoStaticUse
|
||||||
Decorate 195(Count) NoStaticUse
|
Decorate 195(Count) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(BaseColor): 11(ptr) Variable Input
|
12(BaseColor): 11(ptr) Variable Input
|
||||||
18: TypeBool
|
18: TypeBool
|
||||||
19: 18(bool) ConstantTrue
|
19: 18(bool) ConstantTrue
|
||||||
24: TypePointer UniformConstant 7(float)
|
24: TypePointer UniformConstant 7(float)
|
||||||
25(d4): 24(ptr) Variable UniformConstant
|
25(d4): 24(ptr) Variable UniformConstant
|
||||||
29: TypePointer UniformConstant 8(fvec4)
|
29: TypePointer UniformConstant 8(fvec4)
|
||||||
30(bigColor4): 29(ptr) Variable UniformConstant
|
30(bigColor4): 29(ptr) Variable UniformConstant
|
||||||
40: 7(float) Constant 1073741824
|
40: 7(float) Constant 1073741824
|
||||||
54: 7(float) Constant 1065353216
|
54: 7(float) Constant 1065353216
|
||||||
58: 18(bool) ConstantFalse
|
58: 18(bool) ConstantFalse
|
||||||
84(d13): 24(ptr) Variable UniformConstant
|
84(d13): 24(ptr) Variable UniformConstant
|
||||||
148: TypePointer Output 8(fvec4)
|
148: TypePointer Output 8(fvec4)
|
||||||
149(gl_FragColor): 148(ptr) Variable Output
|
149(gl_FragColor): 148(ptr) Variable Output
|
||||||
151(bigColor): 29(ptr) Variable UniformConstant
|
151(bigColor): 29(ptr) Variable UniformConstant
|
||||||
152(bigColor1_1): 29(ptr) Variable UniformConstant
|
152(bigColor1_1): 29(ptr) Variable UniformConstant
|
||||||
153(bigColor1_2): 29(ptr) Variable UniformConstant
|
153(bigColor1_2): 29(ptr) Variable UniformConstant
|
||||||
154(bigColor1_3): 29(ptr) Variable UniformConstant
|
154(bigColor1_3): 29(ptr) Variable UniformConstant
|
||||||
155(bigColor2): 29(ptr) Variable UniformConstant
|
155(bigColor2): 29(ptr) Variable UniformConstant
|
||||||
156(bigColor3): 29(ptr) Variable UniformConstant
|
156(bigColor3): 29(ptr) Variable UniformConstant
|
||||||
157(bigColor5): 29(ptr) Variable UniformConstant
|
157(bigColor5): 29(ptr) Variable UniformConstant
|
||||||
158(bigColor6): 29(ptr) Variable UniformConstant
|
158(bigColor6): 29(ptr) Variable UniformConstant
|
||||||
159(bigColor7): 29(ptr) Variable UniformConstant
|
159(bigColor7): 29(ptr) Variable UniformConstant
|
||||||
160(bigColor8): 29(ptr) Variable UniformConstant
|
160(bigColor8): 29(ptr) Variable UniformConstant
|
||||||
161(d): 24(ptr) Variable UniformConstant
|
161(d): 24(ptr) Variable UniformConstant
|
||||||
162(d2): 24(ptr) Variable UniformConstant
|
162(d2): 24(ptr) Variable UniformConstant
|
||||||
163(d3): 24(ptr) Variable UniformConstant
|
163(d3): 24(ptr) Variable UniformConstant
|
||||||
164(d5): 24(ptr) Variable UniformConstant
|
164(d5): 24(ptr) Variable UniformConstant
|
||||||
165(d6): 24(ptr) Variable UniformConstant
|
165(d6): 24(ptr) Variable UniformConstant
|
||||||
166(d7): 24(ptr) Variable UniformConstant
|
166(d7): 24(ptr) Variable UniformConstant
|
||||||
167(d8): 24(ptr) Variable UniformConstant
|
167(d8): 24(ptr) Variable UniformConstant
|
||||||
168(d9): 24(ptr) Variable UniformConstant
|
168(d9): 24(ptr) Variable UniformConstant
|
||||||
169(d10): 24(ptr) Variable UniformConstant
|
169(d10): 24(ptr) Variable UniformConstant
|
||||||
170(d11): 24(ptr) Variable UniformConstant
|
170(d11): 24(ptr) Variable UniformConstant
|
||||||
171(d12): 24(ptr) Variable UniformConstant
|
171(d12): 24(ptr) Variable UniformConstant
|
||||||
172(d14): 24(ptr) Variable UniformConstant
|
172(d14): 24(ptr) Variable UniformConstant
|
||||||
173(d15): 24(ptr) Variable UniformConstant
|
173(d15): 24(ptr) Variable UniformConstant
|
||||||
174(d16): 24(ptr) Variable UniformConstant
|
174(d16): 24(ptr) Variable UniformConstant
|
||||||
175(d17): 24(ptr) Variable UniformConstant
|
175(d17): 24(ptr) Variable UniformConstant
|
||||||
176(d18): 24(ptr) Variable UniformConstant
|
176(d18): 24(ptr) Variable UniformConstant
|
||||||
177(d19): 24(ptr) Variable UniformConstant
|
177(d19): 24(ptr) Variable UniformConstant
|
||||||
178(d20): 24(ptr) Variable UniformConstant
|
178(d20): 24(ptr) Variable UniformConstant
|
||||||
179(d21): 24(ptr) Variable UniformConstant
|
179(d21): 24(ptr) Variable UniformConstant
|
||||||
180(d22): 24(ptr) Variable UniformConstant
|
180(d22): 24(ptr) Variable UniformConstant
|
||||||
181(d23): 24(ptr) Variable UniformConstant
|
181(d23): 24(ptr) Variable UniformConstant
|
||||||
182(d24): 24(ptr) Variable UniformConstant
|
182(d24): 24(ptr) Variable UniformConstant
|
||||||
183(d25): 24(ptr) Variable UniformConstant
|
183(d25): 24(ptr) Variable UniformConstant
|
||||||
184(d26): 24(ptr) Variable UniformConstant
|
184(d26): 24(ptr) Variable UniformConstant
|
||||||
185(d27): 24(ptr) Variable UniformConstant
|
185(d27): 24(ptr) Variable UniformConstant
|
||||||
186(d28): 24(ptr) Variable UniformConstant
|
186(d28): 24(ptr) Variable UniformConstant
|
||||||
187(d29): 24(ptr) Variable UniformConstant
|
187(d29): 24(ptr) Variable UniformConstant
|
||||||
188(d30): 24(ptr) Variable UniformConstant
|
188(d30): 24(ptr) Variable UniformConstant
|
||||||
189(d31): 24(ptr) Variable UniformConstant
|
189(d31): 24(ptr) Variable UniformConstant
|
||||||
190(d32): 24(ptr) Variable UniformConstant
|
190(d32): 24(ptr) Variable UniformConstant
|
||||||
191(d33): 24(ptr) Variable UniformConstant
|
191(d33): 24(ptr) Variable UniformConstant
|
||||||
192(d34): 24(ptr) Variable UniformConstant
|
192(d34): 24(ptr) Variable UniformConstant
|
||||||
193: TypeInt 32 1
|
193: TypeInt 32 1
|
||||||
194: TypePointer UniformConstant 193(int)
|
194: TypePointer UniformConstant 193(int)
|
||||||
195(Count): 194(ptr) Variable UniformConstant
|
195(Count): 194(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(color): 9(ptr) Variable Function
|
10(color): 9(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(BaseColor)
|
13: 8(fvec4) Load 12(BaseColor)
|
||||||
Store 10(color) 13
|
Store 10(color) 13
|
||||||
Branch 14
|
Branch 14
|
||||||
14: Label
|
14: Label
|
||||||
17: 18(bool) Phi 19 5 58 50 58 65
|
17: 18(bool) Phi 19 5 58 50 58 65
|
||||||
@ -184,173 +186,173 @@ Linked fragment stage:
|
|||||||
Branch 20
|
Branch 20
|
||||||
20: Label
|
20: Label
|
||||||
SelectionMerge 16 None
|
SelectionMerge 16 None
|
||||||
BranchConditional 17 16 21
|
BranchConditional 17 16 21
|
||||||
21: Label
|
21: Label
|
||||||
22: 8(fvec4) Load 10(color)
|
22: 8(fvec4) Load 10(color)
|
||||||
23: 7(float) CompositeExtract 22 2
|
23: 7(float) CompositeExtract 22 2
|
||||||
26: 7(float) Load 25(d4)
|
26: 7(float) Load 25(d4)
|
||||||
27: 18(bool) FOrdLessThan 23 26
|
27: 18(bool) FOrdLessThan 23 26
|
||||||
SelectionMerge 28 None
|
SelectionMerge 28 None
|
||||||
BranchConditional 27 28 15
|
BranchConditional 27 28 15
|
||||||
28: Label
|
28: Label
|
||||||
Branch 16
|
Branch 16
|
||||||
16: Label
|
16: Label
|
||||||
31: 8(fvec4) Load 30(bigColor4)
|
31: 8(fvec4) Load 30(bigColor4)
|
||||||
32: 8(fvec4) Load 10(color)
|
32: 8(fvec4) Load 10(color)
|
||||||
33: 8(fvec4) FAdd 32 31
|
33: 8(fvec4) FAdd 32 31
|
||||||
Store 10(color) 33
|
Store 10(color) 33
|
||||||
34: 8(fvec4) Load 10(color)
|
34: 8(fvec4) Load 10(color)
|
||||||
35: 7(float) CompositeExtract 34 0
|
35: 7(float) CompositeExtract 34 0
|
||||||
36: 7(float) Load 25(d4)
|
36: 7(float) Load 25(d4)
|
||||||
37: 18(bool) FOrdLessThan 35 36
|
37: 18(bool) FOrdLessThan 35 36
|
||||||
SelectionMerge 39 None
|
SelectionMerge 39 None
|
||||||
BranchConditional 37 38 39
|
BranchConditional 37 38 39
|
||||||
38: Label
|
38: Label
|
||||||
41: 8(fvec4) Load 10(color)
|
41: 8(fvec4) Load 10(color)
|
||||||
42: 7(float) CompositeExtract 41 2
|
42: 7(float) CompositeExtract 41 2
|
||||||
43: 7(float) FAdd 42 40
|
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
|
45: 8(fvec4) CompositeInsert 43 44 2
|
||||||
Store 10(color) 45
|
Store 10(color) 45
|
||||||
46: 8(fvec4) Load 10(color)
|
46: 8(fvec4) Load 10(color)
|
||||||
47: 7(float) CompositeExtract 46 2
|
47: 7(float) CompositeExtract 46 2
|
||||||
48: 7(float) Load 25(d4)
|
48: 7(float) Load 25(d4)
|
||||||
49: 18(bool) FOrdLessThan 47 48
|
49: 18(bool) FOrdLessThan 47 48
|
||||||
SelectionMerge 51 None
|
SelectionMerge 51 None
|
||||||
BranchConditional 49 50 51
|
BranchConditional 49 50 51
|
||||||
50: Label
|
50: Label
|
||||||
52: 8(fvec4) Load 10(color)
|
52: 8(fvec4) Load 10(color)
|
||||||
53: 7(float) CompositeExtract 52 0
|
53: 7(float) CompositeExtract 52 0
|
||||||
55: 7(float) FAdd 53 54
|
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
|
57: 8(fvec4) CompositeInsert 55 56 0
|
||||||
Store 10(color) 57
|
Store 10(color) 57
|
||||||
Branch 14
|
Branch 14
|
||||||
51: Label
|
51: Label
|
||||||
Branch 39
|
Branch 39
|
||||||
39: Label
|
39: Label
|
||||||
60: 8(fvec4) Load 10(color)
|
60: 8(fvec4) Load 10(color)
|
||||||
61: 7(float) CompositeExtract 60 1
|
61: 7(float) CompositeExtract 60 1
|
||||||
62: 7(float) Load 25(d4)
|
62: 7(float) Load 25(d4)
|
||||||
63: 18(bool) FOrdLessThan 61 62
|
63: 18(bool) FOrdLessThan 61 62
|
||||||
SelectionMerge 65 None
|
SelectionMerge 65 None
|
||||||
BranchConditional 63 64 72
|
BranchConditional 63 64 72
|
||||||
64: Label
|
64: Label
|
||||||
66: 7(float) Load 25(d4)
|
66: 7(float) Load 25(d4)
|
||||||
67: 8(fvec4) Load 10(color)
|
67: 8(fvec4) Load 10(color)
|
||||||
68: 7(float) CompositeExtract 67 1
|
68: 7(float) CompositeExtract 67 1
|
||||||
69: 7(float) FAdd 68 66
|
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
|
71: 8(fvec4) CompositeInsert 69 70 1
|
||||||
Store 10(color) 71
|
Store 10(color) 71
|
||||||
Branch 65
|
Branch 65
|
||||||
72: Label
|
72: Label
|
||||||
73: 7(float) Load 25(d4)
|
73: 7(float) Load 25(d4)
|
||||||
74: 8(fvec4) Load 10(color)
|
74: 8(fvec4) Load 10(color)
|
||||||
75: 7(float) CompositeExtract 74 0
|
75: 7(float) CompositeExtract 74 0
|
||||||
76: 7(float) FAdd 75 73
|
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
|
78: 8(fvec4) CompositeInsert 76 77 0
|
||||||
Store 10(color) 78
|
Store 10(color) 78
|
||||||
Branch 65
|
Branch 65
|
||||||
65: Label
|
65: Label
|
||||||
Branch 14
|
Branch 14
|
||||||
15: Label
|
15: Label
|
||||||
Branch 79
|
Branch 79
|
||||||
79: Label
|
79: Label
|
||||||
82: 8(fvec4) Load 10(color)
|
82: 8(fvec4) Load 10(color)
|
||||||
83: 7(float) CompositeExtract 82 3
|
83: 7(float) CompositeExtract 82 3
|
||||||
85: 7(float) Load 84(d13)
|
85: 7(float) Load 84(d13)
|
||||||
86: 18(bool) FOrdLessThan 83 85
|
86: 18(bool) FOrdLessThan 83 85
|
||||||
LoopMerge 80 None
|
LoopMerge 80 None
|
||||||
BranchConditional 86 81 80
|
BranchConditional 86 81 80
|
||||||
81: Label
|
81: Label
|
||||||
87: 8(fvec4) Load 10(color)
|
87: 8(fvec4) Load 10(color)
|
||||||
88: 7(float) CompositeExtract 87 2
|
88: 7(float) CompositeExtract 87 2
|
||||||
89: 7(float) Load 84(d13)
|
89: 7(float) Load 84(d13)
|
||||||
90: 18(bool) FOrdLessThan 88 89
|
90: 18(bool) FOrdLessThan 88 89
|
||||||
SelectionMerge 92 None
|
SelectionMerge 92 None
|
||||||
BranchConditional 90 91 96
|
BranchConditional 90 91 96
|
||||||
91: Label
|
91: Label
|
||||||
93: 8(fvec4) Load 10(color)
|
93: 8(fvec4) Load 10(color)
|
||||||
94: 8(fvec4) CompositeConstruct 54 54 54 54
|
94: 8(fvec4) CompositeConstruct 54 54 54 54
|
||||||
95: 8(fvec4) FAdd 93 94
|
95: 8(fvec4) FAdd 93 94
|
||||||
Store 10(color) 95
|
Store 10(color) 95
|
||||||
Branch 92
|
Branch 92
|
||||||
96: Label
|
96: Label
|
||||||
97: 8(fvec4) Load 10(color)
|
97: 8(fvec4) Load 10(color)
|
||||||
98: 8(fvec4) CompositeConstruct 54 54 54 54
|
98: 8(fvec4) CompositeConstruct 54 54 54 54
|
||||||
99: 8(fvec4) FSub 97 98
|
99: 8(fvec4) FSub 97 98
|
||||||
Store 10(color) 99
|
Store 10(color) 99
|
||||||
Branch 92
|
Branch 92
|
||||||
92: Label
|
92: Label
|
||||||
100: 8(fvec4) Load 30(bigColor4)
|
100: 8(fvec4) Load 30(bigColor4)
|
||||||
101: 8(fvec4) Load 10(color)
|
101: 8(fvec4) Load 10(color)
|
||||||
102: 8(fvec4) FAdd 101 100
|
102: 8(fvec4) FAdd 101 100
|
||||||
Store 10(color) 102
|
Store 10(color) 102
|
||||||
103: 8(fvec4) Load 10(color)
|
103: 8(fvec4) Load 10(color)
|
||||||
104: 7(float) CompositeExtract 103 0
|
104: 7(float) CompositeExtract 103 0
|
||||||
105: 7(float) Load 25(d4)
|
105: 7(float) Load 25(d4)
|
||||||
106: 18(bool) FOrdLessThan 104 105
|
106: 18(bool) FOrdLessThan 104 105
|
||||||
SelectionMerge 108 None
|
SelectionMerge 108 None
|
||||||
BranchConditional 106 107 108
|
BranchConditional 106 107 108
|
||||||
107: Label
|
107: Label
|
||||||
109: 8(fvec4) Load 10(color)
|
109: 8(fvec4) Load 10(color)
|
||||||
110: 7(float) CompositeExtract 109 2
|
110: 7(float) CompositeExtract 109 2
|
||||||
111: 7(float) FAdd 110 40
|
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
|
113: 8(fvec4) CompositeInsert 111 112 2
|
||||||
Store 10(color) 113
|
Store 10(color) 113
|
||||||
114: 8(fvec4) Load 10(color)
|
114: 8(fvec4) Load 10(color)
|
||||||
115: 7(float) CompositeExtract 114 2
|
115: 7(float) CompositeExtract 114 2
|
||||||
116: 7(float) Load 25(d4)
|
116: 7(float) Load 25(d4)
|
||||||
117: 18(bool) FOrdLessThan 115 116
|
117: 18(bool) FOrdLessThan 115 116
|
||||||
SelectionMerge 119 None
|
SelectionMerge 119 None
|
||||||
BranchConditional 117 118 119
|
BranchConditional 117 118 119
|
||||||
118: Label
|
118: Label
|
||||||
120: 8(fvec4) Load 10(color)
|
120: 8(fvec4) Load 10(color)
|
||||||
121: 7(float) CompositeExtract 120 0
|
121: 7(float) CompositeExtract 120 0
|
||||||
122: 7(float) FAdd 121 54
|
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
|
124: 8(fvec4) CompositeInsert 122 123 0
|
||||||
Store 10(color) 124
|
Store 10(color) 124
|
||||||
Branch 79
|
Branch 79
|
||||||
119: Label
|
119: Label
|
||||||
Branch 108
|
Branch 108
|
||||||
108: Label
|
108: Label
|
||||||
126: 8(fvec4) Load 10(color)
|
126: 8(fvec4) Load 10(color)
|
||||||
127: 7(float) CompositeExtract 126 1
|
127: 7(float) CompositeExtract 126 1
|
||||||
128: 7(float) Load 25(d4)
|
128: 7(float) Load 25(d4)
|
||||||
129: 18(bool) FOrdLessThan 127 128
|
129: 18(bool) FOrdLessThan 127 128
|
||||||
SelectionMerge 131 None
|
SelectionMerge 131 None
|
||||||
BranchConditional 129 130 138
|
BranchConditional 129 130 138
|
||||||
130: Label
|
130: Label
|
||||||
132: 7(float) Load 25(d4)
|
132: 7(float) Load 25(d4)
|
||||||
133: 8(fvec4) Load 10(color)
|
133: 8(fvec4) Load 10(color)
|
||||||
134: 7(float) CompositeExtract 133 1
|
134: 7(float) CompositeExtract 133 1
|
||||||
135: 7(float) FAdd 134 132
|
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
|
137: 8(fvec4) CompositeInsert 135 136 1
|
||||||
Store 10(color) 137
|
Store 10(color) 137
|
||||||
Branch 131
|
Branch 131
|
||||||
138: Label
|
138: Label
|
||||||
139: 7(float) Load 25(d4)
|
139: 7(float) Load 25(d4)
|
||||||
140: 8(fvec4) Load 10(color)
|
140: 8(fvec4) Load 10(color)
|
||||||
141: 7(float) CompositeExtract 140 0
|
141: 7(float) CompositeExtract 140 0
|
||||||
142: 7(float) FAdd 141 139
|
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
|
144: 8(fvec4) CompositeInsert 142 143 0
|
||||||
Store 10(color) 144
|
Store 10(color) 144
|
||||||
Branch 131
|
Branch 131
|
||||||
131: Label
|
131: Label
|
||||||
Branch 79
|
Branch 79
|
||||||
80: Label
|
80: Label
|
||||||
145: 8(fvec4) Load 10(color)
|
145: 8(fvec4) Load 10(color)
|
||||||
146: 8(fvec4) CompositeConstruct 54 54 54 54
|
146: 8(fvec4) CompositeConstruct 54 54 54 54
|
||||||
147: 8(fvec4) FAdd 145 146
|
147: 8(fvec4) FAdd 145 146
|
||||||
Store 10(color) 147
|
Store 10(color) 147
|
||||||
150: 8(fvec4) Load 10(color)
|
150: 8(fvec4) Load 10(color)
|
||||||
Store 149(gl_FragColor) 150
|
Store 149(gl_FragColor) 150
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 94
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 15 "xf(mf33;vf3;"
|
Name 15 "xf(mf33;vf3;"
|
||||||
Name 13 "m"
|
Name 13 "m"
|
||||||
@ -32,9 +33,9 @@ Linked vertex stage:
|
|||||||
Name 93 "gl_VertexID"
|
Name 93 "gl_VertexID"
|
||||||
Decorate 70(gl_Position) BuiltIn Position
|
Decorate 70(gl_Position) BuiltIn Position
|
||||||
Decorate 93(gl_VertexID) BuiltIn VertexId
|
Decorate 93(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 93(gl_VertexID) NoStaticUse
|
Decorate 93(gl_VertexID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 3
|
8: TypeVector 7(float) 3
|
||||||
9: TypeMatrix 8(fvec3) 3
|
9: TypeMatrix 8(fvec3) 3
|
||||||
@ -54,37 +55,37 @@ Linked vertex stage:
|
|||||||
47: 7(float) Constant 1065353216
|
47: 7(float) Constant 1065353216
|
||||||
48: 7(float) Constant 0
|
48: 7(float) Constant 0
|
||||||
69: TypePointer Output 17(fvec4)
|
69: TypePointer Output 17(fvec4)
|
||||||
70(gl_Position): 69(ptr) Variable Output
|
70(gl_Position): 69(ptr) Variable Output
|
||||||
71: TypePointer UniformConstant 18
|
71: TypePointer UniformConstant 18
|
||||||
72(m4): 71(ptr) Variable UniformConstant
|
72(m4): 71(ptr) Variable UniformConstant
|
||||||
73: TypePointer Input 8(fvec3)
|
73: TypePointer Input 8(fvec3)
|
||||||
74(v3): 73(ptr) Variable Input
|
74(v3): 73(ptr) Variable Input
|
||||||
80: TypePointer UniformConstant 9
|
80: TypePointer UniformConstant 9
|
||||||
81(m3): 80(ptr) Variable UniformConstant
|
81(m3): 80(ptr) Variable UniformConstant
|
||||||
92: TypePointer Input 33(int)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
75(param): 19(ptr) Variable Function
|
75(param): 19(ptr) Variable Function
|
||||||
77(param): 11(ptr) Variable Function
|
77(param): 11(ptr) Variable Function
|
||||||
82(param): 10(ptr) Variable Function
|
82(param): 10(ptr) Variable Function
|
||||||
84(param): 11(ptr) Variable Function
|
84(param): 11(ptr) Variable Function
|
||||||
76: 18 Load 72(m4)
|
76: 18 Load 72(m4)
|
||||||
Store 75(param) 76
|
Store 75(param) 76
|
||||||
78: 8(fvec3) Load 74(v3)
|
78: 8(fvec3) Load 74(v3)
|
||||||
Store 77(param) 78
|
Store 77(param) 78
|
||||||
79: 8(fvec3) FunctionCall 27(mxv(mf44;vf3;) 75(param) 77(param)
|
79: 8(fvec3) FunctionCall 27(mxv(mf44;vf3;) 75(param) 77(param)
|
||||||
83: 9 Load 81(m3)
|
83: 9 Load 81(m3)
|
||||||
Store 82(param) 83
|
Store 82(param) 83
|
||||||
85: 8(fvec3) Load 74(v3)
|
85: 8(fvec3) Load 74(v3)
|
||||||
Store 84(param) 85
|
Store 84(param) 85
|
||||||
86: 8(fvec3) FunctionCall 15(xf(mf33;vf3;) 82(param) 84(param)
|
86: 8(fvec3) FunctionCall 15(xf(mf33;vf3;) 82(param) 84(param)
|
||||||
87: 8(fvec3) FAdd 79 86
|
87: 8(fvec3) FAdd 79 86
|
||||||
88: 7(float) CompositeExtract 87 0
|
88: 7(float) CompositeExtract 87 0
|
||||||
89: 7(float) CompositeExtract 87 1
|
89: 7(float) CompositeExtract 87 1
|
||||||
90: 7(float) CompositeExtract 87 2
|
90: 7(float) CompositeExtract 87 2
|
||||||
91: 17(fvec4) CompositeConstruct 88 89 90 47
|
91: 17(fvec4) CompositeConstruct 88 89 90 47
|
||||||
Store 70(gl_Position) 91
|
Store 70(gl_Position) 91
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
@ -93,8 +94,8 @@ Linked vertex stage:
|
|||||||
13(m): 10(ptr) FunctionParameter
|
13(m): 10(ptr) FunctionParameter
|
||||||
14(v): 11(ptr) FunctionParameter
|
14(v): 11(ptr) FunctionParameter
|
||||||
16: Label
|
16: Label
|
||||||
29: 8(fvec3) Load 14(v)
|
29: 8(fvec3) Load 14(v)
|
||||||
30: 9 Load 13(m)
|
30: 9 Load 13(m)
|
||||||
31: 8(fvec3) VectorTimesMatrix 29 30
|
31: 8(fvec3) VectorTimesMatrix 29 30
|
||||||
ReturnValue 31
|
ReturnValue 31
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
@ -102,13 +103,13 @@ Linked vertex stage:
|
|||||||
21(m): 19(ptr) FunctionParameter
|
21(m): 19(ptr) FunctionParameter
|
||||||
23: Label
|
23: Label
|
||||||
36: 35(ptr) AccessChain 21(m) 34
|
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
|
38: 8(fvec3) VectorShuffle 37 37 0 1 2
|
||||||
40: 35(ptr) AccessChain 21(m) 39
|
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
|
42: 8(fvec3) VectorShuffle 41 41 0 1 2
|
||||||
44: 35(ptr) AccessChain 21(m) 43
|
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
|
46: 8(fvec3) VectorShuffle 45 45 0 1 2
|
||||||
49: 7(float) CompositeExtract 38 0
|
49: 7(float) CompositeExtract 38 0
|
||||||
50: 7(float) CompositeExtract 38 1
|
50: 7(float) CompositeExtract 38 1
|
||||||
@ -129,10 +130,10 @@ Linked vertex stage:
|
|||||||
25(m4): 19(ptr) FunctionParameter
|
25(m4): 19(ptr) FunctionParameter
|
||||||
26(v): 11(ptr) FunctionParameter
|
26(v): 11(ptr) FunctionParameter
|
||||||
28: Label
|
28: Label
|
||||||
64(param): 19(ptr) Variable Function
|
64(param): 19(ptr) Variable Function
|
||||||
63: 8(fvec3) Load 26(v)
|
63: 8(fvec3) Load 26(v)
|
||||||
65: 18 Load 25(m4)
|
65: 18 Load 25(m4)
|
||||||
Store 64(param) 65
|
Store 64(param) 65
|
||||||
66: 9 FunctionCall 22(Mat3(mf44;) 64(param)
|
66: 9 FunctionCall 22(Mat3(mf44;) 64(param)
|
||||||
67: 8(fvec3) VectorTimesMatrix 63 66
|
67: 8(fvec3) VectorTimesMatrix 63 66
|
||||||
ReturnValue 67
|
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
|
// Id's are bound by 91
|
||||||
|
|
||||||
Source GLSL 120
|
Source GLSL 120
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "a"
|
Name 10 "a"
|
||||||
Name 13 "v3"
|
Name 13 "v3"
|
||||||
@ -20,25 +21,25 @@ Linked vertex stage:
|
|||||||
Name 29 "gl_Position"
|
Name 29 "gl_Position"
|
||||||
Name 56 "v4"
|
Name 56 "v4"
|
||||||
Decorate 29(gl_Position) BuiltIn Position
|
Decorate 29(gl_Position) BuiltIn Position
|
||||||
Decorate 75 NoStaticUse
|
Decorate 75 NoStaticUse
|
||||||
Decorate 79 NoStaticUse
|
Decorate 79 NoStaticUse
|
||||||
Decorate 90 NoStaticUse
|
Decorate 90 NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 2
|
8: TypeVector 7(float) 2
|
||||||
9: TypePointer Function 8(fvec2)
|
9: TypePointer Function 8(fvec2)
|
||||||
11: TypeVector 7(float) 3
|
11: TypeVector 7(float) 3
|
||||||
12: TypePointer Input 11(fvec3)
|
12: TypePointer Input 11(fvec3)
|
||||||
13(v3): 12(ptr) Variable Input
|
13(v3): 12(ptr) Variable Input
|
||||||
15: TypeMatrix 11(fvec3) 2
|
15: TypeMatrix 11(fvec3) 2
|
||||||
16: TypePointer Function 15
|
16: TypePointer Function 15
|
||||||
21: TypeMatrix 8(fvec2) 3
|
21: TypeMatrix 8(fvec2) 3
|
||||||
22: TypePointer UniformConstant 21
|
22: TypePointer UniformConstant 21
|
||||||
23(m32): 22(ptr) Variable UniformConstant
|
23(m32): 22(ptr) Variable UniformConstant
|
||||||
27: TypeVector 7(float) 4
|
27: TypeVector 7(float) 4
|
||||||
28: TypePointer Output 27(fvec4)
|
28: TypePointer Output 27(fvec4)
|
||||||
29(gl_Position): 28(ptr) Variable Output
|
29(gl_Position): 28(ptr) Variable Output
|
||||||
32: TypeMatrix 11(fvec3) 3
|
32: TypeMatrix 11(fvec3) 3
|
||||||
36: 7(float) Constant 0
|
36: 7(float) Constant 0
|
||||||
41: TypeMatrix 27(fvec4) 4
|
41: TypeMatrix 27(fvec4) 4
|
||||||
@ -56,7 +57,7 @@ Linked vertex stage:
|
|||||||
53: 27(fvec4) ConstantComposite 51 52 36 36
|
53: 27(fvec4) ConstantComposite 51 52 36 36
|
||||||
54: 41 ConstantComposite 44 47 50 53
|
54: 41 ConstantComposite 44 47 50 53
|
||||||
55: TypePointer Input 27(fvec4)
|
55: TypePointer Input 27(fvec4)
|
||||||
56(v4): 55(ptr) Variable Input
|
56(v4): 55(ptr) Variable Input
|
||||||
60: 7(float) Constant 1112014848
|
60: 7(float) Constant 1112014848
|
||||||
61: 7(float) Constant 1121714176
|
61: 7(float) Constant 1121714176
|
||||||
62: 7(float) Constant 1126825984
|
62: 7(float) Constant 1126825984
|
||||||
@ -87,33 +88,33 @@ Linked vertex stage:
|
|||||||
90: 80 ConstantComposite 83 85 86 89
|
90: 80 ConstantComposite 83 85 86 89
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(a): 9(ptr) Variable Function
|
10(a): 9(ptr) Variable Function
|
||||||
17(m23): 16(ptr) Variable Function
|
17(m23): 16(ptr) Variable Function
|
||||||
20(b): 9(ptr) Variable Function
|
20(b): 9(ptr) Variable Function
|
||||||
14: 11(fvec3) Load 13(v3)
|
14: 11(fvec3) Load 13(v3)
|
||||||
18: 15 Load 17(m23)
|
18: 15 Load 17(m23)
|
||||||
19: 8(fvec2) VectorTimesMatrix 14 18
|
19: 8(fvec2) VectorTimesMatrix 14 18
|
||||||
Store 10(a) 19
|
Store 10(a) 19
|
||||||
24: 21 Load 23(m32)
|
24: 21 Load 23(m32)
|
||||||
25: 11(fvec3) Load 13(v3)
|
25: 11(fvec3) Load 13(v3)
|
||||||
26: 8(fvec2) MatrixTimesVector 24 25
|
26: 8(fvec2) MatrixTimesVector 24 25
|
||||||
Store 20(b) 26
|
Store 20(b) 26
|
||||||
30: 15 Load 17(m23)
|
30: 15 Load 17(m23)
|
||||||
31: 21 Load 23(m32)
|
31: 21 Load 23(m32)
|
||||||
33: 32 MatrixTimesMatrix 30 31
|
33: 32 MatrixTimesMatrix 30 31
|
||||||
34: 11(fvec3) Load 13(v3)
|
34: 11(fvec3) Load 13(v3)
|
||||||
35: 11(fvec3) MatrixTimesVector 33 34
|
35: 11(fvec3) MatrixTimesVector 33 34
|
||||||
37: 7(float) CompositeExtract 35 0
|
37: 7(float) CompositeExtract 35 0
|
||||||
38: 7(float) CompositeExtract 35 1
|
38: 7(float) CompositeExtract 35 1
|
||||||
39: 7(float) CompositeExtract 35 2
|
39: 7(float) CompositeExtract 35 2
|
||||||
40: 27(fvec4) CompositeConstruct 37 38 39 36
|
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
|
58: 27(fvec4) MatrixTimesVector 54 57
|
||||||
59: 27(fvec4) FAdd 40 58
|
59: 27(fvec4) FAdd 40 58
|
||||||
65: 27(fvec4) FAdd 59 64
|
65: 27(fvec4) FAdd 59 64
|
||||||
69: 27(fvec4) FAdd 65 68
|
69: 27(fvec4) FAdd 65 68
|
||||||
74: 27(fvec4) FAdd 69 73
|
74: 27(fvec4) FAdd 69 73
|
||||||
Store 29(gl_Position) 74
|
Store 29(gl_Position) 74
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 111
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 13 "foo(vf3;"
|
Name 13 "foo(vf3;"
|
||||||
Name 12 "mv3"
|
Name 12 "mv3"
|
||||||
@ -31,24 +33,20 @@ Linked fragment stage:
|
|||||||
Name 72 "mediumfout"
|
Name 72 "mediumfout"
|
||||||
Name 101 "ub2"
|
Name 101 "ub2"
|
||||||
Name 102 "param"
|
Name 102 "param"
|
||||||
Decorate 24(highfin) PrecisionHigh
|
Decorate 24(highfin) Smooth
|
||||||
Decorate 24(highfin) Smooth
|
Decorate 37(sum) RelaxedPrecision
|
||||||
Decorate 37(sum) PrecisionLow
|
Decorate 39(uniform_medium) RelaxedPrecision
|
||||||
Decorate 39(uniform_medium) PrecisionMedium
|
Decorate 47(uniform_low) RelaxedPrecision
|
||||||
Decorate 41(uniform_high) PrecisionHigh
|
Decorate 52(arg1) RelaxedPrecision
|
||||||
Decorate 47(uniform_low) PrecisionLow
|
Decorate 54(arg2) RelaxedPrecision
|
||||||
Decorate 52(arg1) PrecisionLow
|
Decorate 56(d) RelaxedPrecision
|
||||||
Decorate 54(arg2) PrecisionMedium
|
Decorate 58(lowfin) RelaxedPrecision
|
||||||
Decorate 56(d) PrecisionLow
|
Decorate 58(lowfin) Smooth
|
||||||
Decorate 58(lowfin) PrecisionLow
|
Decorate 60(mediumfin) RelaxedPrecision
|
||||||
Decorate 58(lowfin) Smooth
|
Decorate 60(mediumfin) Smooth
|
||||||
Decorate 60(mediumfin) PrecisionMedium
|
Decorate 72(mediumfout) RelaxedPrecision
|
||||||
Decorate 60(mediumfin) Smooth
|
|
||||||
Decorate 64(global_highp) PrecisionHigh
|
|
||||||
Decorate 68(local_highp) PrecisionHigh
|
|
||||||
Decorate 72(mediumfout) PrecisionMedium
|
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 3
|
8: TypeVector 7(float) 3
|
||||||
9: TypePointer Function 8(fvec3)
|
9: TypePointer Function 8(fvec3)
|
||||||
@ -60,102 +58,102 @@ Linked fragment stage:
|
|||||||
18: TypeFunction 15(bool) 17(ptr)
|
18: TypeFunction 15(bool) 17(ptr)
|
||||||
22: TypeVector 7(float) 4
|
22: TypeVector 7(float) 4
|
||||||
23: TypePointer Input 22(fvec4)
|
23: TypePointer Input 22(fvec4)
|
||||||
24(highfin): 23(ptr) Variable Input
|
24(highfin): 23(ptr) Variable Input
|
||||||
29: 15(bool) ConstantFalse
|
29: 15(bool) ConstantFalse
|
||||||
30: 15(bool) ConstantTrue
|
30: 15(bool) ConstantTrue
|
||||||
31: 16(bvec2) ConstantComposite 29 30
|
31: 16(bvec2) ConstantComposite 29 30
|
||||||
35: TypeInt 32 1
|
35: TypeInt 32 1
|
||||||
36: TypePointer Function 35(int)
|
36: TypePointer Function 35(int)
|
||||||
38: TypePointer UniformConstant 35(int)
|
38: TypePointer UniformConstant 35(int)
|
||||||
39(uniform_medium): 38(ptr) Variable UniformConstant
|
39(uniform_medium): 38(ptr) Variable UniformConstant
|
||||||
41(uniform_high): 38(ptr) Variable UniformConstant
|
41(uniform_high): 38(ptr) Variable UniformConstant
|
||||||
47(uniform_low): 38(ptr) Variable UniformConstant
|
47(uniform_low): 38(ptr) Variable UniformConstant
|
||||||
51: TypePointer Function 7(float)
|
51: TypePointer Function 7(float)
|
||||||
53: 7(float) Constant 1078774989
|
53: 7(float) Constant 1078774989
|
||||||
55: 7(float) Constant 1232730691
|
55: 7(float) Constant 1232730691
|
||||||
57: TypePointer Input 7(float)
|
57: TypePointer Input 7(float)
|
||||||
58(lowfin): 57(ptr) Variable Input
|
58(lowfin): 57(ptr) Variable Input
|
||||||
60(mediumfin): 57(ptr) Variable Input
|
60(mediumfin): 57(ptr) Variable Input
|
||||||
63: TypePointer PrivateGlobal 7(float)
|
63: TypePointer PrivateGlobal 7(float)
|
||||||
64(global_highp): 63(ptr) Variable PrivateGlobal
|
64(global_highp): 63(ptr) Variable PrivateGlobal
|
||||||
67: TypePointer Function 22(fvec4)
|
67: TypePointer Function 22(fvec4)
|
||||||
71: TypePointer Output 22(fvec4)
|
71: TypePointer Output 22(fvec4)
|
||||||
72(mediumfout): 71(ptr) Variable Output
|
72(mediumfout): 71(ptr) Variable Output
|
||||||
81: 35(int) Constant 4
|
81: 35(int) Constant 4
|
||||||
83: TypeVector 35(int) 2
|
83: TypeVector 35(int) 2
|
||||||
100: TypePointer UniformConstant 16(bvec2)
|
100: TypePointer UniformConstant 16(bvec2)
|
||||||
101(ub2): 100(ptr) Variable UniformConstant
|
101(ub2): 100(ptr) Variable UniformConstant
|
||||||
108: 7(float) Constant 1065353216
|
108: 7(float) Constant 1065353216
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
37(sum): 36(ptr) Variable Function
|
37(sum): 36(ptr) Variable Function
|
||||||
52(arg1): 51(ptr) Variable Function
|
52(arg1): 51(ptr) Variable Function
|
||||||
54(arg2): 51(ptr) Variable Function
|
54(arg2): 51(ptr) Variable Function
|
||||||
56(d): 51(ptr) Variable Function
|
56(d): 51(ptr) Variable Function
|
||||||
68(local_highp): 67(ptr) Variable Function
|
68(local_highp): 67(ptr) Variable Function
|
||||||
102(param): 17(ptr) Variable Function
|
102(param): 17(ptr) Variable Function
|
||||||
40: 35(int) Load 39(uniform_medium)
|
40: 35(int) Load 39(uniform_medium)
|
||||||
42: 35(int) Load 41(uniform_high)
|
42: 35(int) Load 41(uniform_high)
|
||||||
43: 35(int) IAdd 40 42
|
43: 35(int) IAdd 40 42
|
||||||
Store 37(sum) 43
|
Store 37(sum) 43
|
||||||
44: 35(int) Load 41(uniform_high)
|
44: 35(int) Load 41(uniform_high)
|
||||||
45: 35(int) Load 37(sum)
|
45: 35(int) Load 37(sum)
|
||||||
46: 35(int) IAdd 45 44
|
46: 35(int) IAdd 45 44
|
||||||
Store 37(sum) 46
|
Store 37(sum) 46
|
||||||
48: 35(int) Load 47(uniform_low)
|
48: 35(int) Load 47(uniform_low)
|
||||||
49: 35(int) Load 37(sum)
|
49: 35(int) Load 37(sum)
|
||||||
50: 35(int) IAdd 49 48
|
50: 35(int) IAdd 49 48
|
||||||
Store 37(sum) 50
|
Store 37(sum) 50
|
||||||
Store 52(arg1) 53
|
Store 52(arg1) 53
|
||||||
Store 54(arg2) 55
|
Store 54(arg2) 55
|
||||||
59: 7(float) Load 58(lowfin)
|
59: 7(float) Load 58(lowfin)
|
||||||
61: 7(float) Load 60(mediumfin)
|
61: 7(float) Load 60(mediumfin)
|
||||||
62: 7(float) ExtInst 1(GLSL.std.450) 59(distance) 59 61
|
62: 7(float) ExtInst 1(GLSL.std.450) 66(Distance) 59 61
|
||||||
Store 56(d) 62
|
Store 56(d) 62
|
||||||
65: 22(fvec4) Load 24(highfin)
|
65: 22(fvec4) Load 24(highfin)
|
||||||
66: 7(float) ExtInst 1(GLSL.std.450) 58(length) 65
|
66: 7(float) ExtInst 1(GLSL.std.450) 65(Length) 65
|
||||||
Store 64(global_highp) 66
|
Store 64(global_highp) 66
|
||||||
69: 7(float) Load 64(global_highp)
|
69: 7(float) Load 64(global_highp)
|
||||||
70: 22(fvec4) CompositeConstruct 69 69 69 69
|
70: 22(fvec4) CompositeConstruct 69 69 69 69
|
||||||
Store 68(local_highp) 70
|
Store 68(local_highp) 70
|
||||||
73: 7(float) Load 56(d)
|
73: 7(float) Load 56(d)
|
||||||
74: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 73
|
74: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 73
|
||||||
75: 22(fvec4) CompositeConstruct 74 74 74 74
|
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
|
77: 22(fvec4) CompositeConstruct 76 76 76 76
|
||||||
78: 22(fvec4) FAdd 75 77
|
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
|
80: 22(fvec4) FAdd 78 79
|
||||||
Store 72(mediumfout) 80
|
Store 72(mediumfout) 80
|
||||||
82: 35(int) Load 47(uniform_low)
|
82: 35(int) Load 47(uniform_low)
|
||||||
84: 83(ivec2) CompositeConstruct 82 82
|
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
|
86: 83(ivec2) CompositeConstruct 85 85
|
||||||
87: 83(ivec2) IMul 84 86
|
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
|
89: 83(ivec2) CompositeConstruct 88 88
|
||||||
90: 83(ivec2) IAdd 87 89
|
90: 83(ivec2) IAdd 87 89
|
||||||
91: 35(int) CompositeExtract 90 0
|
91: 35(int) CompositeExtract 90 0
|
||||||
92: 35(int) IAdd 81 91
|
92: 35(int) IAdd 81 91
|
||||||
93: 35(int) Load 37(sum)
|
93: 35(int) Load 37(sum)
|
||||||
94: 35(int) IAdd 93 92
|
94: 35(int) IAdd 93 92
|
||||||
Store 37(sum) 94
|
Store 37(sum) 94
|
||||||
95: 35(int) Load 37(sum)
|
95: 35(int) Load 37(sum)
|
||||||
96: 7(float) ConvertSToF 95
|
96: 7(float) ConvertSToF 95
|
||||||
97: 22(fvec4) CompositeConstruct 96 96 96 96
|
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
|
99: 22(fvec4) FAdd 98 97
|
||||||
Store 72(mediumfout) 99
|
Store 72(mediumfout) 99
|
||||||
103: 16(bvec2) Load 101(ub2)
|
103: 16(bvec2) Load 101(ub2)
|
||||||
Store 102(param) 103
|
Store 102(param) 103
|
||||||
104: 15(bool) FunctionCall 20(boolfun(vb2;) 102(param)
|
104: 15(bool) FunctionCall 20(boolfun(vb2;) 102(param)
|
||||||
SelectionMerge 106 None
|
SelectionMerge 106 None
|
||||||
BranchConditional 104 105 106
|
BranchConditional 104 105 106
|
||||||
105: Label
|
105: Label
|
||||||
107: 22(fvec4) Load 72(mediumfout)
|
107: 22(fvec4) Load 72(mediumfout)
|
||||||
109: 22(fvec4) CompositeConstruct 108 108 108 108
|
109: 22(fvec4) CompositeConstruct 108 108 108 108
|
||||||
110: 22(fvec4) FAdd 107 109
|
110: 22(fvec4) FAdd 107 109
|
||||||
Store 72(mediumfout) 110
|
Store 72(mediumfout) 110
|
||||||
Branch 106
|
Branch 106
|
||||||
106: Label
|
106: Label
|
||||||
Branch 6
|
Branch 6
|
||||||
@ -165,14 +163,14 @@ Linked fragment stage:
|
|||||||
13(foo(vf3;): 10(fvec2) Function None 11
|
13(foo(vf3;): 10(fvec2) Function None 11
|
||||||
12(mv3): 9(ptr) FunctionParameter
|
12(mv3): 9(ptr) FunctionParameter
|
||||||
14: Label
|
14: Label
|
||||||
25: 22(fvec4) Load 24(highfin)
|
25: 22(fvec4) Load 24(highfin)
|
||||||
26: 10(fvec2) VectorShuffle 25 25 0 1
|
26: 10(fvec2) VectorShuffle 25 25 0 1
|
||||||
ReturnValue 26
|
ReturnValue 26
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
20(boolfun(vb2;): 15(bool) Function None 18
|
20(boolfun(vb2;): 15(bool) Function None 18
|
||||||
19(bv2): 17(ptr) FunctionParameter
|
19(bv2): 17(ptr) FunctionParameter
|
||||||
21: Label
|
21: Label
|
||||||
28: 16(bvec2) Load 19(bv2)
|
28: 16(bvec2) Load 19(bv2)
|
||||||
32: 16(bvec2) IEqual 28 31
|
32: 16(bvec2) IEqual 28 31
|
||||||
33: 15(bool) All 32
|
33: 15(bool) All 32
|
||||||
ReturnValue 33
|
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
|
// Id's are bound by 97
|
||||||
|
|
||||||
Source GLSL 140
|
Source GLSL 140
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "index"
|
Name 9 "index"
|
||||||
Name 15 "s"
|
Name 15 "s"
|
||||||
@ -24,7 +26,7 @@ Linked fragment stage:
|
|||||||
Name 93 "gl_FragColor"
|
Name 93 "gl_FragColor"
|
||||||
Decorate 93(gl_FragColor) BuiltIn FragColor
|
Decorate 93(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 5
|
10: 7(int) Constant 5
|
||||||
@ -46,104 +48,104 @@ Linked fragment stage:
|
|||||||
76: 11(float) Constant 1082130432
|
76: 11(float) Constant 1082130432
|
||||||
77: 72(fvec4) ConstantComposite 29 20 75 76
|
77: 72(fvec4) ConstantComposite 29 20 75 76
|
||||||
92: TypePointer Output 72(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(index): 8(ptr) Variable Function
|
9(index): 8(ptr) Variable Function
|
||||||
17(str): 16(ptr) Variable Function
|
17(str): 16(ptr) Variable Function
|
||||||
23(t): 21(ptr) Variable Function
|
23(t): 21(ptr) Variable Function
|
||||||
51(x): 21(ptr) Variable Function
|
51(x): 21(ptr) Variable Function
|
||||||
62(y): 21(ptr) Variable Function
|
62(y): 21(ptr) Variable Function
|
||||||
67(z): 21(ptr) Variable Function
|
67(z): 21(ptr) Variable Function
|
||||||
74(v): 73(ptr) Variable Function
|
74(v): 73(ptr) Variable Function
|
||||||
Store 9(index) 10
|
Store 9(index) 10
|
||||||
22: 21(ptr) AccessChain 17(str) 18 19
|
22: 21(ptr) AccessChain 17(str) 18 19
|
||||||
Store 22 20
|
Store 22 20
|
||||||
24: 7(int) Load 9(index)
|
24: 7(int) Load 9(index)
|
||||||
26: 7(int) ISub 24 25
|
26: 7(int) ISub 24 25
|
||||||
Store 9(index) 26
|
Store 9(index) 26
|
||||||
27: 21(ptr) AccessChain 17(str) 18 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
|
30: 11(float) FAdd 28 29
|
||||||
Store 27 30
|
Store 27 30
|
||||||
Store 23(t) 30
|
Store 23(t) 30
|
||||||
31: 11(float) Load 23(t)
|
31: 11(float) Load 23(t)
|
||||||
32: 21(ptr) AccessChain 17(str) 18 19
|
32: 21(ptr) AccessChain 17(str) 18 19
|
||||||
33: 11(float) Load 32
|
33: 11(float) Load 32
|
||||||
34: 11(float) FAdd 33 31
|
34: 11(float) FAdd 33 31
|
||||||
35: 21(ptr) AccessChain 17(str) 18 19
|
35: 21(ptr) AccessChain 17(str) 18 19
|
||||||
Store 35 34
|
Store 35 34
|
||||||
36: 21(ptr) AccessChain 17(str) 18 19
|
36: 21(ptr) AccessChain 17(str) 18 19
|
||||||
37: 11(float) Load 36
|
37: 11(float) Load 36
|
||||||
38: 11(float) FSub 37 29
|
38: 11(float) FSub 37 29
|
||||||
Store 36 38
|
Store 36 38
|
||||||
Store 23(t) 37
|
Store 23(t) 37
|
||||||
39: 7(int) Load 9(index)
|
39: 7(int) Load 9(index)
|
||||||
40: 7(int) IAdd 39 25
|
40: 7(int) IAdd 39 25
|
||||||
Store 9(index) 40
|
Store 9(index) 40
|
||||||
41: 11(float) Load 23(t)
|
41: 11(float) Load 23(t)
|
||||||
42: 21(ptr) AccessChain 17(str) 18 39
|
42: 21(ptr) AccessChain 17(str) 18 39
|
||||||
43: 11(float) Load 42
|
43: 11(float) Load 42
|
||||||
44: 11(float) FAdd 43 41
|
44: 11(float) FAdd 43 41
|
||||||
45: 21(ptr) AccessChain 17(str) 18 39
|
45: 21(ptr) AccessChain 17(str) 18 39
|
||||||
Store 45 44
|
Store 45 44
|
||||||
46: 7(int) Load 9(index)
|
46: 7(int) Load 9(index)
|
||||||
47: 7(int) ISub 46 25
|
47: 7(int) ISub 46 25
|
||||||
Store 9(index) 47
|
Store 9(index) 47
|
||||||
48: 21(ptr) AccessChain 17(str) 18 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
|
50: 11(float) FSub 49 29
|
||||||
Store 48 50
|
Store 48 50
|
||||||
52: 21(ptr) AccessChain 17(str) 18 19
|
52: 21(ptr) AccessChain 17(str) 18 19
|
||||||
53: 11(float) Load 52
|
53: 11(float) Load 52
|
||||||
Store 51(x) 53
|
Store 51(x) 53
|
||||||
54: 11(float) Load 51(x)
|
54: 11(float) Load 51(x)
|
||||||
55: 11(float) FAdd 54 29
|
55: 11(float) FAdd 54 29
|
||||||
Store 51(x) 55
|
Store 51(x) 55
|
||||||
56: 11(float) Load 51(x)
|
56: 11(float) Load 51(x)
|
||||||
57: 11(float) FSub 56 29
|
57: 11(float) FSub 56 29
|
||||||
Store 51(x) 57
|
Store 51(x) 57
|
||||||
58: 11(float) Load 51(x)
|
58: 11(float) Load 51(x)
|
||||||
59: 11(float) FAdd 58 29
|
59: 11(float) FAdd 58 29
|
||||||
Store 51(x) 59
|
Store 51(x) 59
|
||||||
60: 11(float) Load 51(x)
|
60: 11(float) Load 51(x)
|
||||||
61: 11(float) FSub 60 29
|
61: 11(float) FSub 60 29
|
||||||
Store 51(x) 61
|
Store 51(x) 61
|
||||||
63: 11(float) Load 51(x)
|
63: 11(float) Load 51(x)
|
||||||
64: 11(float) Load 51(x)
|
64: 11(float) Load 51(x)
|
||||||
65: 11(float) FAdd 64 29
|
65: 11(float) FAdd 64 29
|
||||||
Store 51(x) 65
|
Store 51(x) 65
|
||||||
66: 11(float) FMul 63 65
|
66: 11(float) FMul 63 65
|
||||||
Store 62(y) 66
|
Store 62(y) 66
|
||||||
68: 11(float) Load 62(y)
|
68: 11(float) Load 62(y)
|
||||||
69: 11(float) Load 51(x)
|
69: 11(float) Load 51(x)
|
||||||
70: 11(float) FSub 69 29
|
70: 11(float) FSub 69 29
|
||||||
Store 51(x) 70
|
Store 51(x) 70
|
||||||
71: 11(float) FMul 68 69
|
71: 11(float) FMul 68 69
|
||||||
Store 67(z) 71
|
Store 67(z) 71
|
||||||
Store 74(v) 77
|
Store 74(v) 77
|
||||||
78: 72(fvec4) Load 74(v)
|
78: 72(fvec4) Load 74(v)
|
||||||
79: 11(float) CompositeExtract 78 2
|
79: 11(float) CompositeExtract 78 2
|
||||||
80: 11(float) FSub 79 29
|
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
|
82: 72(fvec4) CompositeInsert 80 81 2
|
||||||
Store 74(v) 82
|
Store 74(v) 82
|
||||||
83: 72(fvec4) Load 74(v)
|
83: 72(fvec4) Load 74(v)
|
||||||
84: 72(fvec4) CompositeInsert 79 83 1
|
84: 72(fvec4) CompositeInsert 79 83 1
|
||||||
Store 74(v) 84
|
Store 74(v) 84
|
||||||
85: 72(fvec4) Load 74(v)
|
85: 72(fvec4) Load 74(v)
|
||||||
86: 11(float) CompositeExtract 85 3
|
86: 11(float) CompositeExtract 85 3
|
||||||
87: 11(float) FSub 86 29
|
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
|
89: 72(fvec4) CompositeInsert 87 88 3
|
||||||
Store 74(v) 89
|
Store 74(v) 89
|
||||||
90: 72(fvec4) Load 74(v)
|
90: 72(fvec4) Load 74(v)
|
||||||
91: 72(fvec4) CompositeInsert 87 90 0
|
91: 72(fvec4) CompositeInsert 87 90 0
|
||||||
Store 74(v) 91
|
Store 74(v) 91
|
||||||
94: 11(float) Load 67(z)
|
94: 11(float) Load 67(z)
|
||||||
95: 72(fvec4) Load 74(v)
|
95: 72(fvec4) Load 74(v)
|
||||||
96: 72(fvec4) VectorTimesScalar 95 94
|
96: 72(fvec4) VectorTimesScalar 95 94
|
||||||
Store 93(gl_FragColor) 96
|
Store 93(gl_FragColor) 96
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 26
|
||||||
|
|
||||||
Source GLSL 430
|
Source GLSL 430
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "outVc"
|
Name 10 "outVc"
|
||||||
Name 12 "inV"
|
Name 12 "inV"
|
||||||
@ -22,43 +23,43 @@ Linked vertex stage:
|
|||||||
Name 20 "outVcn"
|
Name 20 "outVcn"
|
||||||
Name 24 "gl_VertexID"
|
Name 24 "gl_VertexID"
|
||||||
Name 25 "gl_InstanceID"
|
Name 25 "gl_InstanceID"
|
||||||
Decorate 10(outVc) Smooth
|
Decorate 10(outVc) Smooth
|
||||||
Decorate 14(outVs) Smooth
|
Decorate 14(outVs) Smooth
|
||||||
Decorate 16(outVf) Flat
|
Decorate 16(outVf) Flat
|
||||||
Decorate 18(outVn) Noperspective
|
Decorate 18(outVn) Noperspective
|
||||||
Decorate 20(outVcn) Noperspective
|
Decorate 20(outVcn) Noperspective
|
||||||
Decorate 24(gl_VertexID) BuiltIn VertexId
|
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) BuiltIn InstanceId
|
||||||
Decorate 25(gl_InstanceID) NoStaticUse
|
Decorate 25(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Output 8(fvec4)
|
9: TypePointer Output 8(fvec4)
|
||||||
10(outVc): 9(ptr) Variable Output
|
10(outVc): 9(ptr) Variable Output
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(inV): 11(ptr) Variable Input
|
12(inV): 11(ptr) Variable Input
|
||||||
14(outVs): 9(ptr) Variable Output
|
14(outVs): 9(ptr) Variable Output
|
||||||
16(outVf): 9(ptr) Variable Output
|
16(outVf): 9(ptr) Variable Output
|
||||||
18(outVn): 9(ptr) Variable Output
|
18(outVn): 9(ptr) Variable Output
|
||||||
20(outVcn): 9(ptr) Variable Output
|
20(outVcn): 9(ptr) Variable Output
|
||||||
22: TypeInt 32 1
|
22: TypeInt 32 1
|
||||||
23: TypePointer Input 22(int)
|
23: TypePointer Input 22(int)
|
||||||
24(gl_VertexID): 23(ptr) Variable Input
|
24(gl_VertexID): 23(ptr) Variable Input
|
||||||
25(gl_InstanceID): 23(ptr) Variable Input
|
25(gl_InstanceID): 23(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
13: 8(fvec4) Load 12(inV)
|
13: 8(fvec4) Load 12(inV)
|
||||||
Store 10(outVc) 13
|
Store 10(outVc) 13
|
||||||
15: 8(fvec4) Load 12(inV)
|
15: 8(fvec4) Load 12(inV)
|
||||||
Store 14(outVs) 15
|
Store 14(outVs) 15
|
||||||
17: 8(fvec4) Load 12(inV)
|
17: 8(fvec4) Load 12(inV)
|
||||||
Store 16(outVf) 17
|
Store 16(outVf) 17
|
||||||
19: 8(fvec4) Load 12(inV)
|
19: 8(fvec4) Load 12(inV)
|
||||||
Store 18(outVn) 19
|
Store 18(outVn) 19
|
||||||
21: 8(fvec4) Load 12(inV)
|
21: 8(fvec4) Load 12(inV)
|
||||||
Store 20(outVcn) 21
|
Store 20(outVcn) 21
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 25
|
// Id's are bound by 26
|
||||||
|
|
||||||
Source GLSL 450
|
Source GLSL 450
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 11 "setBuf"
|
Name 11 "setBuf"
|
||||||
MemberName 11(setBuf) 0 "color"
|
MemberName 11(setBuf) 0 "color"
|
||||||
Name 13 "setBufInst"
|
Name 13 "setBufInst"
|
||||||
Name 21 "sampler"
|
Name 22 "sampler"
|
||||||
Name 23 "gl_VertexID"
|
Name 24 "gl_VertexID"
|
||||||
Name 24 "gl_InstanceID"
|
Name 25 "gl_InstanceID"
|
||||||
Decorate 10(color) Smooth
|
Decorate 10(color) Smooth
|
||||||
Decorate 11(setBuf) GLSLShared
|
Decorate 11(setBuf) GLSLShared
|
||||||
Decorate 11(setBuf) BufferBlock
|
Decorate 11(setBuf) BufferBlock
|
||||||
Decorate 13(setBufInst) DescriptorSet 0
|
Decorate 13(setBufInst) DescriptorSet 0
|
||||||
Decorate 13(setBufInst) Binding 8
|
Decorate 13(setBufInst) Binding 8
|
||||||
Decorate 21(sampler) DescriptorSet 4
|
Decorate 22(sampler) DescriptorSet 4
|
||||||
Decorate 21(sampler) Binding 7
|
Decorate 22(sampler) Binding 7
|
||||||
Decorate 21(sampler) NoStaticUse
|
Decorate 22(sampler) NoStaticUse
|
||||||
Decorate 23(gl_VertexID) BuiltIn VertexId
|
Decorate 24(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 23(gl_VertexID) NoStaticUse
|
Decorate 24(gl_VertexID) NoStaticUse
|
||||||
Decorate 24(gl_InstanceID) BuiltIn InstanceId
|
Decorate 25(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 24(gl_InstanceID) NoStaticUse
|
Decorate 25(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Output 8(fvec4)
|
9: TypePointer Output 8(fvec4)
|
||||||
10(color): 9(ptr) Variable Output
|
10(color): 9(ptr) Variable Output
|
||||||
11(setBuf): TypeStruct 8(fvec4)
|
11(setBuf): TypeStruct 8(fvec4)
|
||||||
12: TypePointer Uniform 11(setBuf)
|
12: TypePointer Uniform 11(setBuf)
|
||||||
13(setBufInst): 12(ptr) Variable Uniform
|
13(setBufInst): 12(ptr) Variable Uniform
|
||||||
14: TypeInt 32 1
|
14: TypeInt 32 1
|
||||||
15: 14(int) Constant 0
|
15: 14(int) Constant 0
|
||||||
16: TypePointer Uniform 8(fvec4)
|
16: TypePointer Uniform 8(fvec4)
|
||||||
19: TypeSampler7(float) 2D filter+texture
|
19: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
20: TypePointer UniformConstant 19
|
20: TypeSampledImage 19
|
||||||
21(sampler): 20(ptr) Variable UniformConstant
|
21: TypePointer UniformConstant 20
|
||||||
22: TypePointer Input 14(int)
|
22(sampler): 21(ptr) Variable UniformConstant
|
||||||
23(gl_VertexID): 22(ptr) Variable Input
|
23: TypePointer Input 14(int)
|
||||||
24(gl_InstanceID): 22(ptr) Variable Input
|
24(gl_VertexID): 23(ptr) Variable Input
|
||||||
|
25(gl_InstanceID): 23(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
17: 16(ptr) AccessChain 13(setBufInst) 15
|
17: 16(ptr) AccessChain 13(setBufInst) 15
|
||||||
18: 8(fvec4) Load 17
|
18: 8(fvec4) Load 17
|
||||||
Store 10(color) 18
|
Store 10(color) 18
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 23
|
||||||
|
|
||||||
Source GLSL 150
|
Source GLSL 150
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "foo("
|
Name 10 "foo("
|
||||||
Name 13 "BaseColor"
|
Name 13 "BaseColor"
|
||||||
Name 17 "gl_FragColor"
|
Name 17 "gl_FragColor"
|
||||||
Name 20 "bigColor"
|
Name 20 "bigColor"
|
||||||
Name 22 "d"
|
Name 22 "d"
|
||||||
Decorate 13(BaseColor) Smooth
|
Decorate 13(BaseColor) Smooth
|
||||||
Decorate 17(gl_FragColor) BuiltIn FragColor
|
Decorate 17(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 20(bigColor) NoStaticUse
|
Decorate 20(bigColor) NoStaticUse
|
||||||
Decorate 22(d) NoStaticUse
|
Decorate 22(d) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypeFunction 8(fvec4)
|
9: TypeFunction 8(fvec4)
|
||||||
12: TypePointer Input 8(fvec4)
|
12: TypePointer Input 8(fvec4)
|
||||||
13(BaseColor): 12(ptr) Variable Input
|
13(BaseColor): 12(ptr) Variable Input
|
||||||
16: TypePointer Output 8(fvec4)
|
16: TypePointer Output 8(fvec4)
|
||||||
17(gl_FragColor): 16(ptr) Variable Output
|
17(gl_FragColor): 16(ptr) Variable Output
|
||||||
19: TypePointer UniformConstant 8(fvec4)
|
19: TypePointer UniformConstant 8(fvec4)
|
||||||
20(bigColor): 19(ptr) Variable UniformConstant
|
20(bigColor): 19(ptr) Variable UniformConstant
|
||||||
21: TypePointer UniformConstant 7(float)
|
21: TypePointer UniformConstant 7(float)
|
||||||
22(d): 21(ptr) Variable UniformConstant
|
22(d): 21(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
18: 8(fvec4) FunctionCall 10(foo()
|
18: 8(fvec4) FunctionCall 10(foo()
|
||||||
Store 17(gl_FragColor) 18
|
Store 17(gl_FragColor) 18
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
10(foo(): 8(fvec4) Function None 9
|
10(foo(): 8(fvec4) Function None 9
|
||||||
11: Label
|
11: Label
|
||||||
14: 8(fvec4) Load 13(BaseColor)
|
14: 8(fvec4) Load 13(BaseColor)
|
||||||
ReturnValue 14
|
ReturnValue 14
|
||||||
FunctionEnd
|
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
|
// Id's are bound by 44
|
||||||
|
|
||||||
Source GLSL 330
|
Source GLSL 330
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "glPos"
|
Name 10 "glPos"
|
||||||
Name 13 "mvp"
|
Name 13 "mvp"
|
||||||
@ -20,29 +21,29 @@ Linked vertex stage:
|
|||||||
Name 35 "arraym"
|
Name 35 "arraym"
|
||||||
Name 42 "gl_VertexID"
|
Name 42 "gl_VertexID"
|
||||||
Name 43 "gl_InstanceID"
|
Name 43 "gl_InstanceID"
|
||||||
Decorate 10(glPos) Smooth
|
Decorate 10(glPos) Smooth
|
||||||
Decorate 20(f) Smooth
|
Decorate 20(f) Smooth
|
||||||
Decorate 42(gl_VertexID) BuiltIn VertexId
|
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) BuiltIn InstanceId
|
||||||
Decorate 43(gl_InstanceID) NoStaticUse
|
Decorate 43(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Output 8(fvec4)
|
9: TypePointer Output 8(fvec4)
|
||||||
10(glPos): 9(ptr) Variable Output
|
10(glPos): 9(ptr) Variable Output
|
||||||
11: TypeMatrix 8(fvec4) 4
|
11: TypeMatrix 8(fvec4) 4
|
||||||
12: TypePointer UniformConstant 11
|
12: TypePointer UniformConstant 11
|
||||||
13(mvp): 12(ptr) Variable UniformConstant
|
13(mvp): 12(ptr) Variable UniformConstant
|
||||||
15: TypePointer Input 8(fvec4)
|
15: TypePointer Input 8(fvec4)
|
||||||
16(v): 15(ptr) Variable Input
|
16(v): 15(ptr) Variable Input
|
||||||
19: TypePointer Output 7(float)
|
19: TypePointer Output 7(float)
|
||||||
20(f): 19(ptr) Variable Output
|
20(f): 19(ptr) Variable Output
|
||||||
21: TypeVector 7(float) 3
|
21: TypeVector 7(float) 3
|
||||||
22: TypeMatrix 21(fvec3) 3
|
22: TypeMatrix 21(fvec3) 3
|
||||||
23: TypePointer Input 22
|
23: TypePointer Input 22
|
||||||
24(am3): 23(ptr) Variable Input
|
24(am3): 23(ptr) Variable Input
|
||||||
25: TypeInt 32 1
|
25: TypeInt 32 1
|
||||||
26: 25(int) Constant 2
|
26: 25(int) Constant 2
|
||||||
27: TypePointer Input 21(fvec3)
|
27: TypePointer Input 21(fvec3)
|
||||||
@ -50,25 +51,25 @@ Linked vertex stage:
|
|||||||
32: 31(int) Constant 3
|
32: 31(int) Constant 3
|
||||||
33: TypeArray 11 32
|
33: TypeArray 11 32
|
||||||
34: TypePointer Input 33
|
34: TypePointer Input 33
|
||||||
35(arraym): 34(ptr) Variable Input
|
35(arraym): 34(ptr) Variable Input
|
||||||
36: 25(int) Constant 1
|
36: 25(int) Constant 1
|
||||||
41: TypePointer Input 25(int)
|
41: TypePointer Input 25(int)
|
||||||
42(gl_VertexID): 41(ptr) Variable Input
|
42(gl_VertexID): 41(ptr) Variable Input
|
||||||
43(gl_InstanceID): 41(ptr) Variable Input
|
43(gl_InstanceID): 41(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
14: 11 Load 13(mvp)
|
14: 11 Load 13(mvp)
|
||||||
17: 8(fvec4) Load 16(v)
|
17: 8(fvec4) Load 16(v)
|
||||||
18: 8(fvec4) MatrixTimesVector 14 17
|
18: 8(fvec4) MatrixTimesVector 14 17
|
||||||
Store 10(glPos) 18
|
Store 10(glPos) 18
|
||||||
28: 27(ptr) AccessChain 24(am3) 26
|
28: 27(ptr) AccessChain 24(am3) 26
|
||||||
29: 21(fvec3) Load 28
|
29: 21(fvec3) Load 28
|
||||||
30: 7(float) CompositeExtract 29 1
|
30: 7(float) CompositeExtract 29 1
|
||||||
37: 15(ptr) AccessChain 35(arraym) 36 26
|
37: 15(ptr) AccessChain 35(arraym) 36 26
|
||||||
38: 8(fvec4) Load 37
|
38: 8(fvec4) Load 37
|
||||||
39: 7(float) CompositeExtract 38 3
|
39: 7(float) CompositeExtract 38 3
|
||||||
40: 7(float) FAdd 30 39
|
40: 7(float) FAdd 30 39
|
||||||
Store 20(f) 40
|
Store 20(f) 40
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 50
|
// Id's are bound by 51
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "lunarStruct1"
|
Name 9 "lunarStruct1"
|
||||||
MemberName 9(lunarStruct1) 0 "i"
|
MemberName 9(lunarStruct1) 0 "i"
|
||||||
@ -30,66 +32,67 @@ Linked fragment stage:
|
|||||||
Name 23 "locals2"
|
Name 23 "locals2"
|
||||||
Name 28 "foo2"
|
Name 28 "foo2"
|
||||||
Name 32 "gl_FragColor"
|
Name 32 "gl_FragColor"
|
||||||
Name 40 "sampler"
|
Name 41 "sampler"
|
||||||
Name 44 "coord"
|
Name 45 "coord"
|
||||||
Name 49 "foo"
|
Name 50 "foo"
|
||||||
Decorate 32(gl_FragColor) BuiltIn FragColor
|
Decorate 32(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 44(coord) Smooth
|
Decorate 45(coord) Smooth
|
||||||
Decorate 49(foo) NoStaticUse
|
Decorate 50(foo) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9(lunarStruct1): TypeStruct 7(int) 8(float)
|
9(lunarStruct1): TypeStruct 7(int) 8(float)
|
||||||
10(lunarStruct2): TypeStruct 7(int) 8(float) 9(lunarStruct1)
|
10(lunarStruct2): TypeStruct 7(int) 8(float) 9(lunarStruct1)
|
||||||
11(lunarStruct3): TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1)
|
11(lunarStruct3): TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1)
|
||||||
12: TypePointer UniformConstant 11(lunarStruct3)
|
12: TypePointer UniformConstant 11(lunarStruct3)
|
||||||
13(foo3): 12(ptr) Variable UniformConstant
|
13(foo3): 12(ptr) Variable UniformConstant
|
||||||
14: 7(int) Constant 0
|
14: 7(int) Constant 0
|
||||||
15: TypePointer UniformConstant 7(int)
|
15: TypePointer UniformConstant 7(int)
|
||||||
18: TypeBool
|
18: TypeBool
|
||||||
22: TypePointer Function 10(lunarStruct2)
|
22: TypePointer Function 10(lunarStruct2)
|
||||||
24: TypePointer UniformConstant 10(lunarStruct2)
|
24: TypePointer UniformConstant 10(lunarStruct2)
|
||||||
28(foo2): 24(ptr) Variable UniformConstant
|
28(foo2): 24(ptr) Variable UniformConstant
|
||||||
30: TypeVector 8(float) 4
|
30: TypeVector 8(float) 4
|
||||||
31: TypePointer Output 30(fvec4)
|
31: TypePointer Output 30(fvec4)
|
||||||
32(gl_FragColor): 31(ptr) Variable Output
|
32(gl_FragColor): 31(ptr) Variable Output
|
||||||
33: 7(int) Constant 2
|
33: 7(int) Constant 2
|
||||||
34: 7(int) Constant 1
|
34: 7(int) Constant 1
|
||||||
35: TypePointer Function 8(float)
|
35: TypePointer Function 8(float)
|
||||||
38: TypeSampler8(float) 2D filter+texture
|
38: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
39: TypePointer UniformConstant 38
|
39: TypeSampledImage 38
|
||||||
40(sampler): 39(ptr) Variable UniformConstant
|
40: TypePointer UniformConstant 39
|
||||||
42: TypeVector 8(float) 2
|
41(sampler): 40(ptr) Variable UniformConstant
|
||||||
43: TypePointer Input 42(fvec2)
|
43: TypeVector 8(float) 2
|
||||||
44(coord): 43(ptr) Variable Input
|
44: TypePointer Input 43(fvec2)
|
||||||
48: TypePointer UniformConstant 9(lunarStruct1)
|
45(coord): 44(ptr) Variable Input
|
||||||
49(foo): 48(ptr) Variable UniformConstant
|
49: TypePointer UniformConstant 9(lunarStruct1)
|
||||||
|
50(foo): 49(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
23(locals2): 22(ptr) Variable Function
|
23(locals2): 22(ptr) Variable Function
|
||||||
16: 15(ptr) AccessChain 13(foo3) 14 14
|
16: 15(ptr) AccessChain 13(foo3) 14 14
|
||||||
17: 7(int) Load 16
|
17: 7(int) Load 16
|
||||||
19: 18(bool) SGreaterThan 17 14
|
19: 18(bool) SGreaterThan 17 14
|
||||||
SelectionMerge 21 None
|
SelectionMerge 21 None
|
||||||
BranchConditional 19 20 27
|
BranchConditional 19 20 27
|
||||||
20: Label
|
20: Label
|
||||||
25: 24(ptr) AccessChain 13(foo3) 14
|
25: 24(ptr) AccessChain 13(foo3) 14
|
||||||
26:10(lunarStruct2) Load 25
|
26:10(lunarStruct2) Load 25
|
||||||
Store 23(locals2) 26
|
Store 23(locals2) 26
|
||||||
Branch 21
|
Branch 21
|
||||||
27: Label
|
27: Label
|
||||||
29:10(lunarStruct2) Load 28(foo2)
|
29:10(lunarStruct2) Load 28(foo2)
|
||||||
Store 23(locals2) 29
|
Store 23(locals2) 29
|
||||||
Branch 21
|
Branch 21
|
||||||
21: Label
|
21: Label
|
||||||
36: 35(ptr) AccessChain 23(locals2) 33 34
|
36: 35(ptr) AccessChain 23(locals2) 33 34
|
||||||
37: 8(float) Load 36
|
37: 8(float) Load 36
|
||||||
41: 38 Load 40(sampler)
|
42: 39 Load 41(sampler)
|
||||||
45: 42(fvec2) Load 44(coord)
|
46: 43(fvec2) Load 45(coord)
|
||||||
46: 30(fvec4) TextureSample 41 45
|
47: 30(fvec4) ImageSampleImplicitLod 42 46
|
||||||
47: 30(fvec4) VectorTimesScalar 46 37
|
48: 30(fvec4) VectorTimesScalar 47 37
|
||||||
Store 32(gl_FragColor) 47
|
Store 32(gl_FragColor) 48
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 120
|
// Id's are bound by 121
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "s0"
|
Name 9 "s0"
|
||||||
MemberName 9(s0) 0 "i"
|
MemberName 9(s0) 0 "i"
|
||||||
@ -42,13 +44,13 @@ Linked fragment stage:
|
|||||||
Name 69 "foo0"
|
Name 69 "foo0"
|
||||||
Name 84 "foo00"
|
Name 84 "foo00"
|
||||||
Name 97 "gl_FragColor"
|
Name 97 "gl_FragColor"
|
||||||
Name 113 "sampler"
|
Name 114 "sampler"
|
||||||
Name 119 "foo2"
|
Name 120 "foo2"
|
||||||
Decorate 62(coord) Smooth
|
Decorate 62(coord) Smooth
|
||||||
Decorate 97(gl_FragColor) BuiltIn FragColor
|
Decorate 97(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 119(foo2) NoStaticUse
|
Decorate 120(foo2) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypeFloat 32
|
8: TypeFloat 32
|
||||||
9(s0): TypeStruct 7(int)
|
9(s0): TypeStruct 7(int)
|
||||||
@ -59,7 +61,7 @@ Linked fragment stage:
|
|||||||
14: TypeArray 11(s2) 13
|
14: TypeArray 11(s2) 13
|
||||||
15(s3): TypeStruct 14 7(int) 8(float) 10(s1)
|
15(s3): TypeStruct 14 7(int) 8(float) 10(s1)
|
||||||
16: TypePointer UniformConstant 15(s3)
|
16: TypePointer UniformConstant 15(s3)
|
||||||
17(foo3): 16(ptr) Variable UniformConstant
|
17(foo3): 16(ptr) Variable UniformConstant
|
||||||
18: 7(int) Constant 0
|
18: 7(int) Constant 0
|
||||||
19: 7(int) Constant 9
|
19: 7(int) Constant 9
|
||||||
20: TypePointer UniformConstant 7(int)
|
20: TypePointer UniformConstant 7(int)
|
||||||
@ -82,109 +84,110 @@ Linked fragment stage:
|
|||||||
46: TypePointer Function 45
|
46: TypePointer Function 45
|
||||||
48: 7(int) Constant 6
|
48: 7(int) Constant 6
|
||||||
49: TypePointer UniformConstant 10(s1)
|
49: TypePointer UniformConstant 10(s1)
|
||||||
50(foo1): 49(ptr) Variable UniformConstant
|
50(foo1): 49(ptr) Variable UniformConstant
|
||||||
53: TypePointer Function 9(s0)
|
53: TypePointer Function 9(s0)
|
||||||
55(s00): TypeStruct 9(s0)
|
55(s00): TypeStruct 9(s0)
|
||||||
56: TypePointer Function 55(s00)
|
56: TypePointer Function 55(s00)
|
||||||
58: 55(s00) ConstantComposite 34
|
58: 55(s00) ConstantComposite 34
|
||||||
60: TypeVector 8(float) 2
|
60: TypeVector 8(float) 2
|
||||||
61: TypePointer Input 60(fvec2)
|
61: TypePointer Input 60(fvec2)
|
||||||
62(coord): 61(ptr) Variable Input
|
62(coord): 61(ptr) Variable Input
|
||||||
68: TypePointer UniformConstant 9(s0)
|
68: TypePointer UniformConstant 9(s0)
|
||||||
69(foo0): 68(ptr) Variable UniformConstant
|
69(foo0): 68(ptr) Variable UniformConstant
|
||||||
73: 8(float) Constant 1073741824
|
73: 8(float) Constant 1073741824
|
||||||
74: 8(float) Constant 1077936128
|
74: 8(float) Constant 1077936128
|
||||||
75: 8(float) Constant 1082130432
|
75: 8(float) Constant 1082130432
|
||||||
76: 8(float) Constant 1084227584
|
76: 8(float) Constant 1084227584
|
||||||
77: 39 ConstantComposite 42 30 73 74 75 76
|
77: 39 ConstantComposite 42 30 73 74 75 76
|
||||||
83: TypePointer UniformConstant 55(s00)
|
83: TypePointer UniformConstant 55(s00)
|
||||||
84(foo00): 83(ptr) Variable UniformConstant
|
84(foo00): 83(ptr) Variable UniformConstant
|
||||||
86: TypePointer Function 7(int)
|
86: TypePointer Function 7(int)
|
||||||
89: 7(int) Constant 5
|
89: 7(int) Constant 5
|
||||||
95: TypeVector 8(float) 4
|
95: TypeVector 8(float) 4
|
||||||
96: TypePointer Output 95(fvec4)
|
96: TypePointer Output 95(fvec4)
|
||||||
97(gl_FragColor): 96(ptr) Variable Output
|
97(gl_FragColor): 96(ptr) Variable Output
|
||||||
104: 7(int) Constant 3
|
104: 7(int) Constant 3
|
||||||
111: TypeSampler8(float) 2D filter+texture
|
111: TypeImage 8(float) 2D sampled format:Unknown
|
||||||
112: TypePointer UniformConstant 111
|
112: TypeSampledImage 111
|
||||||
113(sampler): 112(ptr) Variable UniformConstant
|
113: TypePointer UniformConstant 112
|
||||||
118: TypePointer UniformConstant 11(s2)
|
114(sampler): 113(ptr) Variable UniformConstant
|
||||||
119(foo2): 118(ptr) Variable UniformConstant
|
119: TypePointer UniformConstant 11(s2)
|
||||||
|
120(foo2): 119(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
28(locals2): 27(ptr) Variable Function
|
28(locals2): 27(ptr) Variable Function
|
||||||
41(fArray): 40(ptr) Variable Function
|
41(fArray): 40(ptr) Variable Function
|
||||||
47(locals1Array): 46(ptr) Variable Function
|
47(locals1Array): 46(ptr) Variable Function
|
||||||
54(locals0): 53(ptr) Variable Function
|
54(locals0): 53(ptr) Variable Function
|
||||||
57(locals00): 56(ptr) Variable Function
|
57(locals00): 56(ptr) Variable Function
|
||||||
21: 20(ptr) AccessChain 17(foo3) 18 19 18
|
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
|
24: 23(bool) SGreaterThan 22 18
|
||||||
SelectionMerge 26 None
|
SelectionMerge 26 None
|
||||||
BranchConditional 24 25 59
|
BranchConditional 24 25 59
|
||||||
25: Label
|
25: Label
|
||||||
32: 31(ptr) AccessChain 28(locals2) 29
|
32: 31(ptr) AccessChain 28(locals2) 29
|
||||||
Store 32 30
|
Store 32 30
|
||||||
37: 36(ptr) AccessChain 28(locals2) 33
|
37: 36(ptr) AccessChain 28(locals2) 33
|
||||||
Store 37 35
|
Store 37 35
|
||||||
Store 41(fArray) 43
|
Store 41(fArray) 43
|
||||||
51: 10(s1) Load 50(foo1)
|
51: 10(s1) Load 50(foo1)
|
||||||
52: 36(ptr) AccessChain 47(locals1Array) 48
|
52: 36(ptr) AccessChain 47(locals1Array) 48
|
||||||
Store 52 51
|
Store 52 51
|
||||||
Store 54(locals0) 34
|
Store 54(locals0) 34
|
||||||
Store 57(locals00) 58
|
Store 57(locals00) 58
|
||||||
Branch 26
|
Branch 26
|
||||||
59: Label
|
59: Label
|
||||||
63: 60(fvec2) Load 62(coord)
|
63: 60(fvec2) Load 62(coord)
|
||||||
64: 8(float) CompositeExtract 63 0
|
64: 8(float) CompositeExtract 63 0
|
||||||
65: 31(ptr) AccessChain 28(locals2) 29
|
65: 31(ptr) AccessChain 28(locals2) 29
|
||||||
Store 65 64
|
Store 65 64
|
||||||
66: 60(fvec2) Load 62(coord)
|
66: 60(fvec2) Load 62(coord)
|
||||||
67: 8(float) CompositeExtract 66 1
|
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
|
71: 10(s1) CompositeConstruct 29 67 70
|
||||||
72: 36(ptr) AccessChain 28(locals2) 33
|
72: 36(ptr) AccessChain 28(locals2) 33
|
||||||
Store 72 71
|
Store 72 71
|
||||||
Store 41(fArray) 77
|
Store 41(fArray) 77
|
||||||
78: 36(ptr) AccessChain 28(locals2) 33
|
78: 36(ptr) AccessChain 28(locals2) 33
|
||||||
79: 10(s1) Load 78
|
79: 10(s1) Load 78
|
||||||
80: 36(ptr) AccessChain 47(locals1Array) 48
|
80: 36(ptr) AccessChain 47(locals1Array) 48
|
||||||
Store 80 79
|
Store 80 79
|
||||||
81: 68(ptr) AccessChain 50(foo1) 33
|
81: 68(ptr) AccessChain 50(foo1) 33
|
||||||
82: 9(s0) Load 81
|
82: 9(s0) Load 81
|
||||||
Store 54(locals0) 82
|
Store 54(locals0) 82
|
||||||
85: 55(s00) Load 84(foo00)
|
85: 55(s00) Load 84(foo00)
|
||||||
Store 57(locals00) 85
|
Store 57(locals00) 85
|
||||||
Branch 26
|
Branch 26
|
||||||
26: Label
|
26: Label
|
||||||
87: 86(ptr) AccessChain 54(locals0) 18
|
87: 86(ptr) AccessChain 54(locals0) 18
|
||||||
88: 7(int) Load 87
|
88: 7(int) Load 87
|
||||||
90: 23(bool) SGreaterThan 88 89
|
90: 23(bool) SGreaterThan 88 89
|
||||||
SelectionMerge 92 None
|
SelectionMerge 92 None
|
||||||
BranchConditional 90 91 92
|
BranchConditional 90 91 92
|
||||||
91: Label
|
91: Label
|
||||||
93: 53(ptr) AccessChain 57(locals00) 18
|
93: 53(ptr) AccessChain 57(locals00) 18
|
||||||
94: 9(s0) Load 93
|
94: 9(s0) Load 93
|
||||||
Store 54(locals0) 94
|
Store 54(locals0) 94
|
||||||
Branch 92
|
Branch 92
|
||||||
92: Label
|
92: Label
|
||||||
98: 86(ptr) AccessChain 54(locals0) 18
|
98: 86(ptr) AccessChain 54(locals0) 18
|
||||||
99: 7(int) Load 98
|
99: 7(int) Load 98
|
||||||
100: 8(float) ConvertSToF 99
|
100: 8(float) ConvertSToF 99
|
||||||
101: 31(ptr) AccessChain 47(locals1Array) 48 29
|
101: 31(ptr) AccessChain 47(locals1Array) 48 29
|
||||||
102: 8(float) Load 101
|
102: 8(float) Load 101
|
||||||
103: 8(float) FAdd 100 102
|
103: 8(float) FAdd 100 102
|
||||||
105: 31(ptr) AccessChain 41(fArray) 104
|
105: 31(ptr) AccessChain 41(fArray) 104
|
||||||
106: 8(float) Load 105
|
106: 8(float) Load 105
|
||||||
107: 8(float) FAdd 103 106
|
107: 8(float) FAdd 103 106
|
||||||
108: 31(ptr) AccessChain 28(locals2) 33 29
|
108: 31(ptr) AccessChain 28(locals2) 33 29
|
||||||
109: 8(float) Load 108
|
109: 8(float) Load 108
|
||||||
110: 8(float) FAdd 107 109
|
110: 8(float) FAdd 107 109
|
||||||
114: 111 Load 113(sampler)
|
115: 112 Load 114(sampler)
|
||||||
115: 60(fvec2) Load 62(coord)
|
116: 60(fvec2) Load 62(coord)
|
||||||
116: 95(fvec4) TextureSample 114 115
|
117: 95(fvec4) ImageSampleImplicitLod 115 116
|
||||||
117: 95(fvec4) VectorTimesScalar 116 110
|
118: 95(fvec4) VectorTimesScalar 117 110
|
||||||
Store 97(gl_FragColor) 117
|
Store 97(gl_FragColor) 118
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 61
|
// Id's are bound by 62
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "scale"
|
Name 9 "scale"
|
||||||
Name 19 "lunarStruct1"
|
Name 19 "lunarStruct1"
|
||||||
@ -25,14 +27,14 @@ Linked fragment stage:
|
|||||||
MemberName 22(lunarStruct2) 2 "s1_1"
|
MemberName 22(lunarStruct2) 2 "s1_1"
|
||||||
Name 25 "foo2"
|
Name 25 "foo2"
|
||||||
Name 47 "gl_FragColor"
|
Name 47 "gl_FragColor"
|
||||||
Name 51 "sampler"
|
Name 52 "sampler"
|
||||||
Name 55 "coord"
|
Name 56 "coord"
|
||||||
Name 60 "foo"
|
Name 61 "foo"
|
||||||
Decorate 47(gl_FragColor) BuiltIn FragColor
|
Decorate 47(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 55(coord) Smooth
|
Decorate 56(coord) Smooth
|
||||||
Decorate 60(foo) NoStaticUse
|
Decorate 61(foo) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypePointer Function 7(float)
|
8: TypePointer Function 7(float)
|
||||||
10: 7(float) Constant 0
|
10: 7(float) Constant 0
|
||||||
@ -50,7 +52,7 @@ Linked fragment stage:
|
|||||||
22(lunarStruct2): TypeStruct 14 7(float) 21
|
22(lunarStruct2): TypeStruct 14 7(float) 21
|
||||||
23: TypeArray 22(lunarStruct2) 13
|
23: TypeArray 22(lunarStruct2) 13
|
||||||
24: TypePointer UniformConstant 23
|
24: TypePointer UniformConstant 23
|
||||||
25(foo2): 24(ptr) Variable UniformConstant
|
25(foo2): 24(ptr) Variable UniformConstant
|
||||||
26: 11(int) Constant 3
|
26: 11(int) Constant 3
|
||||||
27: 11(int) Constant 0
|
27: 11(int) Constant 0
|
||||||
28: 11(int) Constant 4
|
28: 11(int) Constant 4
|
||||||
@ -61,42 +63,43 @@ Linked fragment stage:
|
|||||||
42: 11(int) Constant 1
|
42: 11(int) Constant 1
|
||||||
43: TypePointer UniformConstant 7(float)
|
43: TypePointer UniformConstant 7(float)
|
||||||
46: TypePointer Output 17(fvec4)
|
46: TypePointer Output 17(fvec4)
|
||||||
47(gl_FragColor): 46(ptr) Variable Output
|
47(gl_FragColor): 46(ptr) Variable Output
|
||||||
49: TypeSampler7(float) 2D filter+texture
|
49: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
50: TypePointer UniformConstant 49
|
50: TypeSampledImage 49
|
||||||
51(sampler): 50(ptr) Variable UniformConstant
|
51: TypePointer UniformConstant 50
|
||||||
53: TypeVector 7(float) 2
|
52(sampler): 51(ptr) Variable UniformConstant
|
||||||
54: TypePointer Input 53(fvec2)
|
54: TypeVector 7(float) 2
|
||||||
55(coord): 54(ptr) Variable Input
|
55: TypePointer Input 54(fvec2)
|
||||||
59: TypePointer UniformConstant 19(lunarStruct1)
|
56(coord): 55(ptr) Variable Input
|
||||||
60(foo): 59(ptr) Variable UniformConstant
|
60: TypePointer UniformConstant 19(lunarStruct1)
|
||||||
|
61(foo): 60(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(scale): 8(ptr) Variable Function
|
9(scale): 8(ptr) Variable Function
|
||||||
Store 9(scale) 10
|
Store 9(scale) 10
|
||||||
30: 29(ptr) AccessChain 25(foo2) 26 27 28
|
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
|
33: 32(bool) SGreaterThan 31 27
|
||||||
SelectionMerge 35 None
|
SelectionMerge 35 None
|
||||||
BranchConditional 33 34 41
|
BranchConditional 33 34 41
|
||||||
34: Label
|
34: Label
|
||||||
38: 37(ptr) AccessChain 25(foo2) 26 36 36 36 26
|
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
|
40: 7(float) CompositeExtract 39 0
|
||||||
Store 9(scale) 40
|
Store 9(scale) 40
|
||||||
Branch 35
|
Branch 35
|
||||||
41: Label
|
41: Label
|
||||||
44: 43(ptr) AccessChain 25(foo2) 26 36 36 42 26
|
44: 43(ptr) AccessChain 25(foo2) 26 36 36 42 26
|
||||||
45: 7(float) Load 44
|
45: 7(float) Load 44
|
||||||
Store 9(scale) 45
|
Store 9(scale) 45
|
||||||
Branch 35
|
Branch 35
|
||||||
35: Label
|
35: Label
|
||||||
48: 7(float) Load 9(scale)
|
48: 7(float) Load 9(scale)
|
||||||
52: 49 Load 51(sampler)
|
53: 50 Load 52(sampler)
|
||||||
56: 53(fvec2) Load 55(coord)
|
57: 54(fvec2) Load 56(coord)
|
||||||
57: 17(fvec4) TextureSample 52 56
|
58: 17(fvec4) ImageSampleImplicitLod 53 57
|
||||||
58: 17(fvec4) VectorTimesScalar 57 48
|
59: 17(fvec4) VectorTimesScalar 58 48
|
||||||
Store 47(gl_FragColor) 58
|
Store 47(gl_FragColor) 59
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 261
|
||||||
|
|
||||||
Source ESSL 310
|
Source ESSL 310
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 16 "foo1(vf4;vf4;i1;"
|
Name 16 "foo1(vf4;vf4;i1;"
|
||||||
Name 13 "v1"
|
Name 13 "v1"
|
||||||
@ -40,18 +42,18 @@ Linked fragment stage:
|
|||||||
Name 239 "param"
|
Name 239 "param"
|
||||||
Name 241 "param"
|
Name 241 "param"
|
||||||
Name 243 "param"
|
Name 243 "param"
|
||||||
Decorate 59(local) PrecisionMedium
|
Decorate 59(local) RelaxedPrecision
|
||||||
Decorate 61(c) PrecisionMedium
|
Decorate 61(c) RelaxedPrecision
|
||||||
Decorate 72(f) PrecisionMedium
|
Decorate 72(f) RelaxedPrecision
|
||||||
Decorate 74(x) PrecisionMedium
|
Decorate 74(x) RelaxedPrecision
|
||||||
Decorate 74(x) Smooth
|
Decorate 74(x) Smooth
|
||||||
Decorate 128(d) PrecisionMedium
|
Decorate 128(d) RelaxedPrecision
|
||||||
Decorate 154(i) PrecisionMedium
|
Decorate 154(i) RelaxedPrecision
|
||||||
Decorate 172(j) PrecisionMedium
|
Decorate 172(j) RelaxedPrecision
|
||||||
Decorate 222(color) PrecisionMedium
|
Decorate 222(color) RelaxedPrecision
|
||||||
Decorate 228(v) PrecisionMedium
|
Decorate 228(v) RelaxedPrecision
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
@ -63,12 +65,12 @@ Linked fragment stage:
|
|||||||
48: 7(float) Constant 1065353216
|
48: 7(float) Constant 1065353216
|
||||||
49: 8(fvec4) ConstantComposite 48 48 48 48
|
49: 8(fvec4) ConstantComposite 48 48 48 48
|
||||||
60: TypePointer UniformConstant 10(int)
|
60: TypePointer UniformConstant 10(int)
|
||||||
61(c): 60(ptr) Variable UniformConstant
|
61(c): 60(ptr) Variable UniformConstant
|
||||||
64: 10(int) Constant 1
|
64: 10(int) Constant 1
|
||||||
71: TypePointer Function 7(float)
|
71: TypePointer Function 7(float)
|
||||||
73: TypePointer Input 7(float)
|
73: TypePointer Input 7(float)
|
||||||
74(x): 73(ptr) Variable Input
|
74(x): 73(ptr) Variable Input
|
||||||
128(d): 60(ptr) Variable UniformConstant
|
128(d): 60(ptr) Variable UniformConstant
|
||||||
155: 10(int) Constant 0
|
155: 10(int) Constant 0
|
||||||
160: 10(int) Constant 10
|
160: 10(int) Constant 10
|
||||||
161: TypeBool
|
161: TypeBool
|
||||||
@ -77,253 +79,253 @@ Linked fragment stage:
|
|||||||
183: 7(float) Constant 1120429670
|
183: 7(float) Constant 1120429670
|
||||||
203: 7(float) Constant 1079739679
|
203: 7(float) Constant 1079739679
|
||||||
221: TypePointer Output 7(float)
|
221: TypePointer Output 7(float)
|
||||||
222(color): 221(ptr) Variable Output
|
222(color): 221(ptr) Variable Output
|
||||||
227: TypePointer UniformConstant 8(fvec4)
|
227: TypePointer UniformConstant 8(fvec4)
|
||||||
228(v): 227(ptr) Variable UniformConstant
|
228(v): 227(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
59(local): 11(ptr) Variable Function
|
59(local): 11(ptr) Variable Function
|
||||||
72(f): 71(ptr) Variable Function
|
72(f): 71(ptr) Variable Function
|
||||||
154(i): 11(ptr) Variable Function
|
154(i): 11(ptr) Variable Function
|
||||||
172(j): 11(ptr) Variable Function
|
172(j): 11(ptr) Variable Function
|
||||||
229(param): 9(ptr) Variable Function
|
229(param): 9(ptr) Variable Function
|
||||||
231(param): 9(ptr) Variable Function
|
231(param): 9(ptr) Variable Function
|
||||||
233(param): 11(ptr) Variable Function
|
233(param): 11(ptr) Variable Function
|
||||||
239(param): 9(ptr) Variable Function
|
239(param): 9(ptr) Variable Function
|
||||||
241(param): 9(ptr) Variable Function
|
241(param): 9(ptr) Variable Function
|
||||||
243(param): 11(ptr) Variable Function
|
243(param): 11(ptr) Variable Function
|
||||||
62: 10(int) Load 61(c)
|
62: 10(int) Load 61(c)
|
||||||
Store 59(local) 62
|
Store 59(local) 62
|
||||||
63: 10(int) Load 59(local)
|
63: 10(int) Load 59(local)
|
||||||
65: 10(int) IAdd 63 64
|
65: 10(int) IAdd 63 64
|
||||||
Store 59(local) 65
|
Store 59(local) 65
|
||||||
66: 10(int) Load 61(c)
|
66: 10(int) Load 61(c)
|
||||||
SelectionMerge 70 None
|
SelectionMerge 70 None
|
||||||
Switch 66 69
|
Switch 66 69
|
||||||
case 1: 67
|
case 1: 67
|
||||||
case 2: 68
|
case 2: 68
|
||||||
67: Label
|
67: Label
|
||||||
75: 7(float) Load 74(x)
|
75: 7(float) Load 74(x)
|
||||||
76: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 75
|
76: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 75
|
||||||
Store 72(f) 76
|
Store 72(f) 76
|
||||||
Branch 70
|
Branch 70
|
||||||
68: Label
|
68: Label
|
||||||
78: 7(float) Load 74(x)
|
78: 7(float) Load 74(x)
|
||||||
79: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 78
|
79: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 78
|
||||||
Store 72(f) 79
|
Store 72(f) 79
|
||||||
Branch 70
|
Branch 70
|
||||||
69: Label
|
69: Label
|
||||||
81: 7(float) Load 74(x)
|
81: 7(float) Load 74(x)
|
||||||
82: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 81
|
82: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 81
|
||||||
Store 72(f) 82
|
Store 72(f) 82
|
||||||
Branch 70
|
Branch 70
|
||||||
70: Label
|
70: Label
|
||||||
84: 10(int) Load 61(c)
|
84: 10(int) Load 61(c)
|
||||||
SelectionMerge 88 None
|
SelectionMerge 88 None
|
||||||
Switch 84 87
|
Switch 84 87
|
||||||
case 1: 85
|
case 1: 85
|
||||||
case 2: 86
|
case 2: 86
|
||||||
85: Label
|
85: Label
|
||||||
89: 7(float) Load 74(x)
|
89: 7(float) Load 74(x)
|
||||||
90: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 89
|
90: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 89
|
||||||
91: 7(float) Load 72(f)
|
91: 7(float) Load 72(f)
|
||||||
92: 7(float) FAdd 91 90
|
92: 7(float) FAdd 91 90
|
||||||
Store 72(f) 92
|
Store 72(f) 92
|
||||||
Branch 86
|
Branch 86
|
||||||
86: Label
|
86: Label
|
||||||
93: 7(float) Load 74(x)
|
93: 7(float) Load 74(x)
|
||||||
94: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 93
|
94: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 93
|
||||||
95: 7(float) Load 72(f)
|
95: 7(float) Load 72(f)
|
||||||
96: 7(float) FAdd 95 94
|
96: 7(float) FAdd 95 94
|
||||||
Store 72(f) 96
|
Store 72(f) 96
|
||||||
Branch 88
|
Branch 88
|
||||||
87: Label
|
87: Label
|
||||||
98: 7(float) Load 74(x)
|
98: 7(float) Load 74(x)
|
||||||
99: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 98
|
99: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 98
|
||||||
100: 7(float) Load 72(f)
|
100: 7(float) Load 72(f)
|
||||||
101: 7(float) FAdd 100 99
|
101: 7(float) FAdd 100 99
|
||||||
Store 72(f) 101
|
Store 72(f) 101
|
||||||
Branch 88
|
Branch 88
|
||||||
88: Label
|
88: Label
|
||||||
103: 10(int) Load 61(c)
|
103: 10(int) Load 61(c)
|
||||||
SelectionMerge 106 None
|
SelectionMerge 106 None
|
||||||
Switch 103 106
|
Switch 103 106
|
||||||
case 1: 104
|
case 1: 104
|
||||||
case 2: 105
|
case 2: 105
|
||||||
104: Label
|
104: Label
|
||||||
107: 7(float) Load 74(x)
|
107: 7(float) Load 74(x)
|
||||||
108: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 107
|
108: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 107
|
||||||
109: 7(float) Load 72(f)
|
109: 7(float) Load 72(f)
|
||||||
110: 7(float) FAdd 109 108
|
110: 7(float) FAdd 109 108
|
||||||
Store 72(f) 110
|
Store 72(f) 110
|
||||||
Branch 106
|
Branch 106
|
||||||
105: Label
|
105: Label
|
||||||
112: 7(float) Load 74(x)
|
112: 7(float) Load 74(x)
|
||||||
113: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 112
|
113: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 112
|
||||||
114: 7(float) Load 72(f)
|
114: 7(float) Load 72(f)
|
||||||
115: 7(float) FAdd 114 113
|
115: 7(float) FAdd 114 113
|
||||||
Store 72(f) 115
|
Store 72(f) 115
|
||||||
Branch 106
|
Branch 106
|
||||||
106: Label
|
106: Label
|
||||||
118: 10(int) Load 61(c)
|
118: 10(int) Load 61(c)
|
||||||
SelectionMerge 122 None
|
SelectionMerge 122 None
|
||||||
Switch 118 121
|
Switch 118 121
|
||||||
case 1: 119
|
case 1: 119
|
||||||
case 2: 120
|
case 2: 120
|
||||||
119: Label
|
119: Label
|
||||||
123: 7(float) Load 74(x)
|
123: 7(float) Load 74(x)
|
||||||
124: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 123
|
124: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 123
|
||||||
125: 7(float) Load 72(f)
|
125: 7(float) Load 72(f)
|
||||||
126: 7(float) FAdd 125 124
|
126: 7(float) FAdd 125 124
|
||||||
Store 72(f) 126
|
Store 72(f) 126
|
||||||
Branch 122
|
Branch 122
|
||||||
120: Label
|
120: Label
|
||||||
129: 10(int) Load 128(d)
|
129: 10(int) Load 128(d)
|
||||||
SelectionMerge 132 None
|
SelectionMerge 132 None
|
||||||
Switch 129 132
|
Switch 129 132
|
||||||
case 1: 130
|
case 1: 130
|
||||||
case 2: 131
|
case 2: 131
|
||||||
130: Label
|
130: Label
|
||||||
133: 7(float) Load 74(x)
|
133: 7(float) Load 74(x)
|
||||||
134: 7(float) Load 74(x)
|
134: 7(float) Load 74(x)
|
||||||
135: 7(float) FMul 133 134
|
135: 7(float) FMul 133 134
|
||||||
136: 7(float) Load 74(x)
|
136: 7(float) Load 74(x)
|
||||||
137: 7(float) FMul 135 136
|
137: 7(float) FMul 135 136
|
||||||
138: 7(float) Load 72(f)
|
138: 7(float) Load 72(f)
|
||||||
139: 7(float) FAdd 138 137
|
139: 7(float) FAdd 138 137
|
||||||
Store 72(f) 139
|
Store 72(f) 139
|
||||||
Branch 132
|
Branch 132
|
||||||
131: Label
|
131: Label
|
||||||
141: 7(float) Load 74(x)
|
141: 7(float) Load 74(x)
|
||||||
142: 7(float) Load 74(x)
|
142: 7(float) Load 74(x)
|
||||||
143: 7(float) FMul 141 142
|
143: 7(float) FMul 141 142
|
||||||
144: 7(float) Load 72(f)
|
144: 7(float) Load 72(f)
|
||||||
145: 7(float) FAdd 144 143
|
145: 7(float) FAdd 144 143
|
||||||
Store 72(f) 145
|
Store 72(f) 145
|
||||||
Branch 132
|
Branch 132
|
||||||
132: Label
|
132: Label
|
||||||
Branch 122
|
Branch 122
|
||||||
121: Label
|
121: Label
|
||||||
149: 7(float) Load 74(x)
|
149: 7(float) Load 74(x)
|
||||||
150: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 149
|
150: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 149
|
||||||
151: 7(float) Load 72(f)
|
151: 7(float) Load 72(f)
|
||||||
152: 7(float) FAdd 151 150
|
152: 7(float) FAdd 151 150
|
||||||
Store 72(f) 152
|
Store 72(f) 152
|
||||||
Branch 122
|
Branch 122
|
||||||
122: Label
|
122: Label
|
||||||
Store 154(i) 155
|
Store 154(i) 155
|
||||||
Branch 156
|
Branch 156
|
||||||
156: Label
|
156: Label
|
||||||
159: 10(int) Load 154(i)
|
159: 10(int) Load 154(i)
|
||||||
162: 161(bool) SLessThan 159 160
|
162: 161(bool) SLessThan 159 160
|
||||||
LoopMerge 157 None
|
LoopMerge 157 None
|
||||||
BranchConditional 162 158 157
|
BranchConditional 162 158 157
|
||||||
158: Label
|
158: Label
|
||||||
163: 10(int) Load 61(c)
|
163: 10(int) Load 61(c)
|
||||||
SelectionMerge 167 None
|
SelectionMerge 167 None
|
||||||
Switch 163 166
|
Switch 163 166
|
||||||
case 1: 164
|
case 1: 164
|
||||||
case 2: 165
|
case 2: 165
|
||||||
164: Label
|
164: Label
|
||||||
168: 7(float) Load 74(x)
|
168: 7(float) Load 74(x)
|
||||||
169: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 168
|
169: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 168
|
||||||
170: 7(float) Load 72(f)
|
170: 7(float) Load 72(f)
|
||||||
171: 7(float) FAdd 170 169
|
171: 7(float) FAdd 170 169
|
||||||
Store 72(f) 171
|
Store 72(f) 171
|
||||||
Store 172(j) 173
|
Store 172(j) 173
|
||||||
Branch 174
|
Branch 174
|
||||||
174: Label
|
174: Label
|
||||||
177: 10(int) Load 172(j)
|
177: 10(int) Load 172(j)
|
||||||
179: 161(bool) SLessThan 177 178
|
179: 161(bool) SLessThan 177 178
|
||||||
LoopMerge 175 None
|
LoopMerge 175 None
|
||||||
BranchConditional 179 176 175
|
BranchConditional 179 176 175
|
||||||
176: Label
|
176: Label
|
||||||
180: 7(float) Load 72(f)
|
180: 7(float) Load 72(f)
|
||||||
181: 7(float) FAdd 180 48
|
181: 7(float) FAdd 180 48
|
||||||
Store 72(f) 181
|
Store 72(f) 181
|
||||||
182: 7(float) Load 72(f)
|
182: 7(float) Load 72(f)
|
||||||
184: 161(bool) FOrdLessThan 182 183
|
184: 161(bool) FOrdLessThan 182 183
|
||||||
SelectionMerge 186 None
|
SelectionMerge 186 None
|
||||||
BranchConditional 184 185 186
|
BranchConditional 184 185 186
|
||||||
185: Label
|
185: Label
|
||||||
Branch 175
|
Branch 175
|
||||||
186: Label
|
186: Label
|
||||||
188: 10(int) Load 172(j)
|
188: 10(int) Load 172(j)
|
||||||
189: 10(int) IAdd 188 64
|
189: 10(int) IAdd 188 64
|
||||||
Store 172(j) 189
|
Store 172(j) 189
|
||||||
Branch 174
|
Branch 174
|
||||||
175: Label
|
175: Label
|
||||||
Branch 167
|
Branch 167
|
||||||
165: Label
|
165: Label
|
||||||
191: 7(float) Load 74(x)
|
191: 7(float) Load 74(x)
|
||||||
192: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 191
|
192: 7(float) ExtInst 1(GLSL.std.450) 14(Cos) 191
|
||||||
193: 7(float) Load 72(f)
|
193: 7(float) Load 72(f)
|
||||||
194: 7(float) FAdd 193 192
|
194: 7(float) FAdd 193 192
|
||||||
Store 72(f) 194
|
Store 72(f) 194
|
||||||
Branch 167
|
Branch 167
|
||||||
166: Label
|
166: Label
|
||||||
197: 7(float) Load 74(x)
|
197: 7(float) Load 74(x)
|
||||||
198: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 197
|
198: 7(float) ExtInst 1(GLSL.std.450) 15(Tan) 197
|
||||||
199: 7(float) Load 72(f)
|
199: 7(float) Load 72(f)
|
||||||
200: 7(float) FAdd 199 198
|
200: 7(float) FAdd 199 198
|
||||||
Store 72(f) 200
|
Store 72(f) 200
|
||||||
Branch 167
|
Branch 167
|
||||||
167: Label
|
167: Label
|
||||||
202: 7(float) Load 72(f)
|
202: 7(float) Load 72(f)
|
||||||
204: 161(bool) FOrdLessThan 202 203
|
204: 161(bool) FOrdLessThan 202 203
|
||||||
SelectionMerge 206 None
|
SelectionMerge 206 None
|
||||||
BranchConditional 204 205 206
|
BranchConditional 204 205 206
|
||||||
205: Label
|
205: Label
|
||||||
Branch 157
|
Branch 157
|
||||||
206: Label
|
206: Label
|
||||||
208: 10(int) Load 154(i)
|
208: 10(int) Load 154(i)
|
||||||
209: 10(int) IAdd 208 64
|
209: 10(int) IAdd 208 64
|
||||||
Store 154(i) 209
|
Store 154(i) 209
|
||||||
Branch 156
|
Branch 156
|
||||||
157: Label
|
157: Label
|
||||||
210: 10(int) Load 61(c)
|
210: 10(int) Load 61(c)
|
||||||
SelectionMerge 213 None
|
SelectionMerge 213 None
|
||||||
Switch 210 213
|
Switch 210 213
|
||||||
case 1: 211
|
case 1: 211
|
||||||
case 2: 212
|
case 2: 212
|
||||||
211: Label
|
211: Label
|
||||||
214: 7(float) Load 74(x)
|
214: 7(float) Load 74(x)
|
||||||
215: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 214
|
215: 7(float) ExtInst 1(GLSL.std.450) 13(Sin) 214
|
||||||
216: 7(float) Load 72(f)
|
216: 7(float) Load 72(f)
|
||||||
217: 7(float) FAdd 216 215
|
217: 7(float) FAdd 216 215
|
||||||
Store 72(f) 217
|
Store 72(f) 217
|
||||||
Branch 213
|
Branch 213
|
||||||
212: Label
|
212: Label
|
||||||
Branch 213
|
Branch 213
|
||||||
213: Label
|
213: Label
|
||||||
223: 7(float) Load 72(f)
|
223: 7(float) Load 72(f)
|
||||||
224: 10(int) Load 59(local)
|
224: 10(int) Load 59(local)
|
||||||
225: 7(float) ConvertSToF 224
|
225: 7(float) ConvertSToF 224
|
||||||
226: 7(float) FAdd 223 225
|
226: 7(float) FAdd 223 225
|
||||||
Store 222(color) 226
|
Store 222(color) 226
|
||||||
230: 8(fvec4) Load 228(v)
|
230: 8(fvec4) Load 228(v)
|
||||||
Store 229(param) 230
|
Store 229(param) 230
|
||||||
232: 8(fvec4) Load 228(v)
|
232: 8(fvec4) Load 228(v)
|
||||||
Store 231(param) 232
|
Store 231(param) 232
|
||||||
234: 10(int) Load 61(c)
|
234: 10(int) Load 61(c)
|
||||||
Store 233(param) 234
|
Store 233(param) 234
|
||||||
235: 8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)
|
235: 8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)
|
||||||
236: 7(float) CompositeExtract 235 1
|
236: 7(float) CompositeExtract 235 1
|
||||||
237: 7(float) Load 222(color)
|
237: 7(float) Load 222(color)
|
||||||
238: 7(float) FAdd 237 236
|
238: 7(float) FAdd 237 236
|
||||||
Store 222(color) 238
|
Store 222(color) 238
|
||||||
240: 8(fvec4) Load 228(v)
|
240: 8(fvec4) Load 228(v)
|
||||||
Store 239(param) 240
|
Store 239(param) 240
|
||||||
242: 8(fvec4) Load 228(v)
|
242: 8(fvec4) Load 228(v)
|
||||||
Store 241(param) 242
|
Store 241(param) 242
|
||||||
244: 10(int) Load 61(c)
|
244: 10(int) Load 61(c)
|
||||||
Store 243(param) 244
|
Store 243(param) 244
|
||||||
245: 8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)
|
245: 8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)
|
||||||
246: 7(float) CompositeExtract 245 2
|
246: 7(float) CompositeExtract 245 2
|
||||||
247: 7(float) Load 222(color)
|
247: 7(float) Load 222(color)
|
||||||
248: 7(float) FAdd 247 246
|
248: 7(float) FAdd 247 246
|
||||||
Store 222(color) 248
|
Store 222(color) 248
|
||||||
249: 10(int) Load 61(c)
|
249: 10(int) Load 61(c)
|
||||||
SelectionMerge 252 None
|
SelectionMerge 252 None
|
||||||
Switch 249 251
|
Switch 249 251
|
||||||
case 0: 250
|
case 0: 250
|
||||||
@ -332,9 +334,9 @@ Linked fragment stage:
|
|||||||
251: Label
|
251: Label
|
||||||
Branch 252
|
Branch 252
|
||||||
252: Label
|
252: Label
|
||||||
256: 10(int) Load 61(c)
|
256: 10(int) Load 61(c)
|
||||||
SelectionMerge 258 None
|
SelectionMerge 258 None
|
||||||
Switch 256 257
|
Switch 256 257
|
||||||
257: Label
|
257: Label
|
||||||
Branch 258
|
Branch 258
|
||||||
258: Label
|
258: Label
|
||||||
@ -347,7 +349,7 @@ Linked fragment stage:
|
|||||||
14(v2): 9(ptr) FunctionParameter
|
14(v2): 9(ptr) FunctionParameter
|
||||||
15(i1): 11(ptr) FunctionParameter
|
15(i1): 11(ptr) FunctionParameter
|
||||||
17: Label
|
17: Label
|
||||||
23: 10(int) Load 15(i1)
|
23: 10(int) Load 15(i1)
|
||||||
SelectionMerge 27 None
|
SelectionMerge 27 None
|
||||||
Switch 23 27
|
Switch 23 27
|
||||||
case 0: 24
|
case 0: 24
|
||||||
@ -355,14 +357,14 @@ Linked fragment stage:
|
|||||||
case 1: 25
|
case 1: 25
|
||||||
case 3: 26
|
case 3: 26
|
||||||
24: Label
|
24: Label
|
||||||
28: 8(fvec4) Load 13(v1)
|
28: 8(fvec4) Load 13(v1)
|
||||||
ReturnValue 28
|
ReturnValue 28
|
||||||
25: Label
|
25: Label
|
||||||
30: 8(fvec4) Load 14(v2)
|
30: 8(fvec4) Load 14(v2)
|
||||||
ReturnValue 30
|
ReturnValue 30
|
||||||
26: Label
|
26: Label
|
||||||
32: 8(fvec4) Load 13(v1)
|
32: 8(fvec4) Load 13(v1)
|
||||||
33: 8(fvec4) Load 14(v2)
|
33: 8(fvec4) Load 14(v2)
|
||||||
34: 8(fvec4) FMul 32 33
|
34: 8(fvec4) FMul 32 33
|
||||||
ReturnValue 34
|
ReturnValue 34
|
||||||
27: Label
|
27: Label
|
||||||
@ -373,7 +375,7 @@ Linked fragment stage:
|
|||||||
19(v2): 9(ptr) FunctionParameter
|
19(v2): 9(ptr) FunctionParameter
|
||||||
20(i1): 11(ptr) FunctionParameter
|
20(i1): 11(ptr) FunctionParameter
|
||||||
22: Label
|
22: Label
|
||||||
40: 10(int) Load 20(i1)
|
40: 10(int) Load 20(i1)
|
||||||
SelectionMerge 45 None
|
SelectionMerge 45 None
|
||||||
Switch 40 45
|
Switch 40 45
|
||||||
case 0: 41
|
case 0: 41
|
||||||
@ -381,16 +383,16 @@ Linked fragment stage:
|
|||||||
case 1: 43
|
case 1: 43
|
||||||
case 3: 44
|
case 3: 44
|
||||||
41: Label
|
41: Label
|
||||||
46: 8(fvec4) Load 18(v1)
|
46: 8(fvec4) Load 18(v1)
|
||||||
ReturnValue 46
|
ReturnValue 46
|
||||||
42: Label
|
42: Label
|
||||||
ReturnValue 49
|
ReturnValue 49
|
||||||
43: Label
|
43: Label
|
||||||
51: 8(fvec4) Load 19(v2)
|
51: 8(fvec4) Load 19(v2)
|
||||||
ReturnValue 51
|
ReturnValue 51
|
||||||
44: Label
|
44: Label
|
||||||
53: 8(fvec4) Load 18(v1)
|
53: 8(fvec4) Load 18(v1)
|
||||||
54: 8(fvec4) Load 19(v2)
|
54: 8(fvec4) Load 19(v2)
|
||||||
55: 8(fvec4) FMul 53 54
|
55: 8(fvec4) FMul 53 54
|
||||||
ReturnValue 55
|
ReturnValue 55
|
||||||
45: Label
|
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
|
// Id's are bound by 112
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "blendscale"
|
Name 9 "blendscale"
|
||||||
Name 13 "w"
|
Name 13 "w"
|
||||||
@ -26,26 +28,26 @@ Linked fragment stage:
|
|||||||
Name 82 "c"
|
Name 82 "c"
|
||||||
Name 84 "rep"
|
Name 84 "rep"
|
||||||
Name 111 "blend"
|
Name 111 "blend"
|
||||||
Decorate 30(t) Smooth
|
Decorate 30(t) Smooth
|
||||||
Decorate 70(gl_FragColor) BuiltIn FragColor
|
Decorate 70(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 111(blend) NoStaticUse
|
Decorate 111(blend) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypePointer Function 7(float)
|
8: TypePointer Function 7(float)
|
||||||
10: 7(float) Constant 1071971828
|
10: 7(float) Constant 1071971828
|
||||||
11: TypeVector 7(float) 4
|
11: TypeVector 7(float) 4
|
||||||
12: TypePointer Function 11(fvec4)
|
12: TypePointer Function 11(fvec4)
|
||||||
14: TypePointer UniformConstant 11(fvec4)
|
14: TypePointer UniformConstant 11(fvec4)
|
||||||
15(u): 14(ptr) Variable UniformConstant
|
15(u): 14(ptr) Variable UniformConstant
|
||||||
28: TypeVector 7(float) 2
|
28: TypeVector 7(float) 2
|
||||||
29: TypePointer Input 28(fvec2)
|
29: TypePointer Input 28(fvec2)
|
||||||
30(t): 29(ptr) Variable Input
|
30(t): 29(ptr) Variable Input
|
||||||
54: TypeBool
|
54: TypeBool
|
||||||
55: TypePointer UniformConstant 54(bool)
|
55: TypePointer UniformConstant 54(bool)
|
||||||
56(p): 55(ptr) Variable UniformConstant
|
56(p): 55(ptr) Variable UniformConstant
|
||||||
69: TypePointer Output 11(fvec4)
|
69: TypePointer Output 11(fvec4)
|
||||||
70(gl_FragColor): 69(ptr) Variable Output
|
70(gl_FragColor): 69(ptr) Variable Output
|
||||||
81: TypePointer Function 28(fvec2)
|
81: TypePointer Function 28(fvec2)
|
||||||
85: 7(float) Constant 0
|
85: 7(float) Constant 0
|
||||||
86: 7(float) Constant 1065353216
|
86: 7(float) Constant 1065353216
|
||||||
@ -53,123 +55,123 @@ Linked fragment stage:
|
|||||||
93: 7(float) Constant 3212836864
|
93: 7(float) Constant 3212836864
|
||||||
104: 7(float) Constant 1079613850
|
104: 7(float) Constant 1079613850
|
||||||
110: TypePointer UniformConstant 7(float)
|
110: TypePointer UniformConstant 7(float)
|
||||||
111(blend): 110(ptr) Variable UniformConstant
|
111(blend): 110(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(blendscale): 8(ptr) Variable Function
|
9(blendscale): 8(ptr) Variable Function
|
||||||
13(w): 12(ptr) Variable Function
|
13(w): 12(ptr) Variable Function
|
||||||
17(w_dep): 12(ptr) Variable Function
|
17(w_dep): 12(ptr) Variable Function
|
||||||
19(w_reorder): 12(ptr) Variable Function
|
19(w_reorder): 12(ptr) Variable Function
|
||||||
21(w2): 12(ptr) Variable Function
|
21(w2): 12(ptr) Variable Function
|
||||||
23(w_flow): 12(ptr) Variable Function
|
23(w_flow): 12(ptr) Variable Function
|
||||||
49(w_undef): 12(ptr) Variable Function
|
49(w_undef): 12(ptr) Variable Function
|
||||||
82(c): 81(ptr) Variable Function
|
82(c): 81(ptr) Variable Function
|
||||||
84(rep): 12(ptr) Variable Function
|
84(rep): 12(ptr) Variable Function
|
||||||
Store 9(blendscale) 10
|
Store 9(blendscale) 10
|
||||||
16: 11(fvec4) Load 15(u)
|
16: 11(fvec4) Load 15(u)
|
||||||
Store 13(w) 16
|
Store 13(w) 16
|
||||||
18: 11(fvec4) Load 15(u)
|
18: 11(fvec4) Load 15(u)
|
||||||
Store 17(w_dep) 18
|
Store 17(w_dep) 18
|
||||||
20: 11(fvec4) Load 15(u)
|
20: 11(fvec4) Load 15(u)
|
||||||
Store 19(w_reorder) 20
|
Store 19(w_reorder) 20
|
||||||
22: 11(fvec4) Load 15(u)
|
22: 11(fvec4) Load 15(u)
|
||||||
Store 21(w2) 22
|
Store 21(w2) 22
|
||||||
24: 11(fvec4) Load 15(u)
|
24: 11(fvec4) Load 15(u)
|
||||||
Store 23(w_flow) 24
|
Store 23(w_flow) 24
|
||||||
25: 7(float) Load 9(blendscale)
|
25: 7(float) Load 9(blendscale)
|
||||||
26: 11(fvec4) Load 19(w_reorder)
|
26: 11(fvec4) Load 19(w_reorder)
|
||||||
27: 11(fvec4) CompositeInsert 25 26 2
|
27: 11(fvec4) CompositeInsert 25 26 2
|
||||||
Store 19(w_reorder) 27
|
Store 19(w_reorder) 27
|
||||||
31: 28(fvec2) Load 30(t)
|
31: 28(fvec2) Load 30(t)
|
||||||
32: 11(fvec4) Load 13(w)
|
32: 11(fvec4) Load 13(w)
|
||||||
33: 11(fvec4) VectorShuffle 32 31 0 5 2 4
|
33: 11(fvec4) VectorShuffle 32 31 0 5 2 4
|
||||||
Store 13(w) 33
|
Store 13(w) 33
|
||||||
34: 7(float) Load 9(blendscale)
|
34: 7(float) Load 9(blendscale)
|
||||||
35: 11(fvec4) Load 19(w_reorder)
|
35: 11(fvec4) Load 19(w_reorder)
|
||||||
36: 11(fvec4) CompositeInsert 34 35 0
|
36: 11(fvec4) CompositeInsert 34 35 0
|
||||||
Store 19(w_reorder) 36
|
Store 19(w_reorder) 36
|
||||||
37: 11(fvec4) Load 15(u)
|
37: 11(fvec4) Load 15(u)
|
||||||
38: 11(fvec4) VectorShuffle 37 37 2 3 0 1
|
38: 11(fvec4) VectorShuffle 37 37 2 3 0 1
|
||||||
Store 21(w2) 38
|
Store 21(w2) 38
|
||||||
39: 7(float) Load 9(blendscale)
|
39: 7(float) Load 9(blendscale)
|
||||||
40: 11(fvec4) Load 19(w_reorder)
|
40: 11(fvec4) Load 19(w_reorder)
|
||||||
41: 11(fvec4) CompositeInsert 39 40 1
|
41: 11(fvec4) CompositeInsert 39 40 1
|
||||||
Store 19(w_reorder) 41
|
Store 19(w_reorder) 41
|
||||||
42: 11(fvec4) Load 21(w2)
|
42: 11(fvec4) Load 21(w2)
|
||||||
43: 28(fvec2) VectorShuffle 42 42 0 2
|
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
|
45: 11(fvec4) VectorShuffle 44 43 4 5 2 3
|
||||||
Store 17(w_dep) 45
|
Store 17(w_dep) 45
|
||||||
46: 28(fvec2) Load 30(t)
|
46: 28(fvec2) Load 30(t)
|
||||||
47: 11(fvec4) Load 17(w_dep)
|
47: 11(fvec4) Load 17(w_dep)
|
||||||
48: 11(fvec4) VectorShuffle 47 46 0 1 4 5
|
48: 11(fvec4) VectorShuffle 47 46 0 1 4 5
|
||||||
Store 17(w_dep) 48
|
Store 17(w_dep) 48
|
||||||
50: 11(fvec4) Load 15(u)
|
50: 11(fvec4) Load 15(u)
|
||||||
51: 28(fvec2) VectorShuffle 50 50 2 3
|
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
|
53: 11(fvec4) VectorShuffle 52 51 4 5 2 3
|
||||||
Store 49(w_undef) 53
|
Store 49(w_undef) 53
|
||||||
57: 54(bool) Load 56(p)
|
57: 54(bool) Load 56(p)
|
||||||
SelectionMerge 59 None
|
SelectionMerge 59 None
|
||||||
BranchConditional 57 58 64
|
BranchConditional 57 58 64
|
||||||
58: Label
|
58: Label
|
||||||
60: 28(fvec2) Load 30(t)
|
60: 28(fvec2) Load 30(t)
|
||||||
61: 7(float) CompositeExtract 60 0
|
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
|
63: 11(fvec4) CompositeInsert 61 62 0
|
||||||
Store 23(w_flow) 63
|
Store 23(w_flow) 63
|
||||||
Branch 59
|
Branch 59
|
||||||
64: Label
|
64: Label
|
||||||
65: 28(fvec2) Load 30(t)
|
65: 28(fvec2) Load 30(t)
|
||||||
66: 7(float) CompositeExtract 65 1
|
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
|
68: 11(fvec4) CompositeInsert 66 67 0
|
||||||
Store 23(w_flow) 68
|
Store 23(w_flow) 68
|
||||||
Branch 59
|
Branch 59
|
||||||
59: Label
|
59: Label
|
||||||
71: 11(fvec4) Load 19(w_reorder)
|
71: 11(fvec4) Load 19(w_reorder)
|
||||||
72: 11(fvec4) Load 49(w_undef)
|
72: 11(fvec4) Load 49(w_undef)
|
||||||
73: 11(fvec4) Load 13(w)
|
73: 11(fvec4) Load 13(w)
|
||||||
74: 11(fvec4) Load 21(w2)
|
74: 11(fvec4) Load 21(w2)
|
||||||
75: 11(fvec4) FMul 73 74
|
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
|
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
|
79: 11(fvec4) FMul 77 78
|
||||||
80: 11(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 71 72 79
|
80: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 71 72 79
|
||||||
Store 70(gl_FragColor) 80
|
Store 70(gl_FragColor) 80
|
||||||
83: 28(fvec2) Load 30(t)
|
83: 28(fvec2) Load 30(t)
|
||||||
Store 82(c) 83
|
Store 82(c) 83
|
||||||
Store 84(rep) 87
|
Store 84(rep) 87
|
||||||
88: 28(fvec2) Load 82(c)
|
88: 28(fvec2) Load 82(c)
|
||||||
89: 7(float) CompositeExtract 88 0
|
89: 7(float) CompositeExtract 88 0
|
||||||
90: 54(bool) FOrdLessThan 89 85
|
90: 54(bool) FOrdLessThan 89 85
|
||||||
SelectionMerge 92 None
|
SelectionMerge 92 None
|
||||||
BranchConditional 90 91 92
|
BranchConditional 90 91 92
|
||||||
91: Label
|
91: Label
|
||||||
94: 28(fvec2) Load 82(c)
|
94: 28(fvec2) Load 82(c)
|
||||||
95: 7(float) CompositeExtract 94 0
|
95: 7(float) CompositeExtract 94 0
|
||||||
96: 7(float) FMul 95 93
|
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
|
98: 28(fvec2) CompositeInsert 96 97 0
|
||||||
Store 82(c) 98
|
Store 82(c) 98
|
||||||
Branch 92
|
Branch 92
|
||||||
92: Label
|
92: Label
|
||||||
99: 28(fvec2) Load 82(c)
|
99: 28(fvec2) Load 82(c)
|
||||||
100: 7(float) CompositeExtract 99 0
|
100: 7(float) CompositeExtract 99 0
|
||||||
101: 54(bool) FOrdLessThanEqual 100 86
|
101: 54(bool) FOrdLessThanEqual 100 86
|
||||||
SelectionMerge 103 None
|
SelectionMerge 103 None
|
||||||
BranchConditional 101 102 103
|
BranchConditional 101 102 103
|
||||||
102: Label
|
102: Label
|
||||||
105: 11(fvec4) Load 84(rep)
|
105: 11(fvec4) Load 84(rep)
|
||||||
106: 11(fvec4) CompositeInsert 104 105 0
|
106: 11(fvec4) CompositeInsert 104 105 0
|
||||||
Store 84(rep) 106
|
Store 84(rep) 106
|
||||||
Branch 103
|
Branch 103
|
||||||
103: Label
|
103: Label
|
||||||
107: 11(fvec4) Load 84(rep)
|
107: 11(fvec4) Load 84(rep)
|
||||||
108: 11(fvec4) Load 70(gl_FragColor)
|
108: 11(fvec4) Load 70(gl_FragColor)
|
||||||
109: 11(fvec4) FAdd 108 107
|
109: 11(fvec4) FAdd 108 107
|
||||||
Store 70(gl_FragColor) 109
|
Store 70(gl_FragColor) 109
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 54
|
// Id's are bound by 56
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "blendscale"
|
Name 9 "blendscale"
|
||||||
Name 13 "v"
|
Name 13 "v"
|
||||||
Name 16 "texSampler2D"
|
Name 17 "texSampler2D"
|
||||||
Name 20 "t"
|
Name 21 "t"
|
||||||
Name 23 "scale"
|
Name 24 "scale"
|
||||||
Name 30 "w"
|
Name 31 "w"
|
||||||
Name 33 "texSampler3D"
|
Name 35 "texSampler3D"
|
||||||
Name 37 "coords"
|
Name 39 "coords"
|
||||||
Name 43 "gl_FragColor"
|
Name 45 "gl_FragColor"
|
||||||
Name 46 "u"
|
Name 48 "u"
|
||||||
Name 49 "blend"
|
Name 51 "blend"
|
||||||
Decorate 20(t) Smooth
|
Decorate 21(t) Smooth
|
||||||
Decorate 37(coords) Smooth
|
Decorate 39(coords) Smooth
|
||||||
Decorate 43(gl_FragColor) BuiltIn FragColor
|
Decorate 45(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypePointer Function 7(float)
|
8: TypePointer Function 7(float)
|
||||||
10: 7(float) Constant 1071971828
|
10: 7(float) Constant 1071971828
|
||||||
11: TypeVector 7(float) 4
|
11: TypeVector 7(float) 4
|
||||||
12: TypePointer Function 11(fvec4)
|
12: TypePointer Function 11(fvec4)
|
||||||
14: TypeSampler7(float) 2D filter+texture
|
14: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
15: TypePointer UniformConstant 14
|
15: TypeSampledImage 14
|
||||||
16(texSampler2D): 15(ptr) Variable UniformConstant
|
16: TypePointer UniformConstant 15
|
||||||
18: TypeVector 7(float) 2
|
17(texSampler2D): 16(ptr) Variable UniformConstant
|
||||||
19: TypePointer Input 18(fvec2)
|
19: TypeVector 7(float) 2
|
||||||
20(t): 19(ptr) Variable Input
|
20: TypePointer Input 19(fvec2)
|
||||||
22: TypePointer UniformConstant 18(fvec2)
|
21(t): 20(ptr) Variable Input
|
||||||
23(scale): 22(ptr) Variable UniformConstant
|
23: TypePointer UniformConstant 19(fvec2)
|
||||||
31: TypeSampler7(float) 3D filter+texture
|
24(scale): 23(ptr) Variable UniformConstant
|
||||||
32: TypePointer UniformConstant 31
|
32: TypeImage 7(float) 3D sampled format:Unknown
|
||||||
33(texSampler3D): 32(ptr) Variable UniformConstant
|
33: TypeSampledImage 32
|
||||||
35: TypeVector 7(float) 3
|
34: TypePointer UniformConstant 33
|
||||||
36: TypePointer Input 35(fvec3)
|
35(texSampler3D): 34(ptr) Variable UniformConstant
|
||||||
37(coords): 36(ptr) Variable Input
|
37: TypeVector 7(float) 3
|
||||||
42: TypePointer Output 11(fvec4)
|
38: TypePointer Input 37(fvec3)
|
||||||
43(gl_FragColor): 42(ptr) Variable Output
|
39(coords): 38(ptr) Variable Input
|
||||||
45: TypePointer UniformConstant 11(fvec4)
|
44: TypePointer Output 11(fvec4)
|
||||||
46(u): 45(ptr) Variable UniformConstant
|
45(gl_FragColor): 44(ptr) Variable Output
|
||||||
48: TypePointer UniformConstant 7(float)
|
47: TypePointer UniformConstant 11(fvec4)
|
||||||
49(blend): 48(ptr) Variable UniformConstant
|
48(u): 47(ptr) Variable UniformConstant
|
||||||
|
50: TypePointer UniformConstant 7(float)
|
||||||
|
51(blend): 50(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(blendscale): 8(ptr) Variable Function
|
9(blendscale): 8(ptr) Variable Function
|
||||||
13(v): 12(ptr) Variable Function
|
13(v): 12(ptr) Variable Function
|
||||||
30(w): 12(ptr) Variable Function
|
31(w): 12(ptr) Variable Function
|
||||||
Store 9(blendscale) 10
|
Store 9(blendscale) 10
|
||||||
17: 14 Load 16(texSampler2D)
|
18: 15 Load 17(texSampler2D)
|
||||||
21: 18(fvec2) Load 20(t)
|
22: 19(fvec2) Load 21(t)
|
||||||
24: 18(fvec2) Load 23(scale)
|
25: 19(fvec2) Load 24(scale)
|
||||||
25: 18(fvec2) FAdd 21 24
|
26: 19(fvec2) FAdd 22 25
|
||||||
26: 18(fvec2) Load 23(scale)
|
27: 19(fvec2) Load 24(scale)
|
||||||
27: 18(fvec2) FDiv 25 26
|
28: 19(fvec2) FDiv 26 27
|
||||||
28: 11(fvec4) TextureSample 17 27
|
29: 11(fvec4) ImageSampleImplicitLod 18 28
|
||||||
29: 11(fvec4) VectorShuffle 28 28 3 2 1 0
|
30: 11(fvec4) VectorShuffle 29 29 3 2 1 0
|
||||||
Store 13(v) 29
|
Store 13(v) 30
|
||||||
34: 31 Load 33(texSampler3D)
|
36: 33 Load 35(texSampler3D)
|
||||||
38: 35(fvec3) Load 37(coords)
|
40: 37(fvec3) Load 39(coords)
|
||||||
39: 11(fvec4) TextureSample 34 38
|
41: 11(fvec4) ImageSampleImplicitLod 36 40
|
||||||
40: 11(fvec4) Load 13(v)
|
42: 11(fvec4) Load 13(v)
|
||||||
41: 11(fvec4) FAdd 39 40
|
43: 11(fvec4) FAdd 41 42
|
||||||
Store 30(w) 41
|
Store 31(w) 43
|
||||||
44: 11(fvec4) Load 30(w)
|
46: 11(fvec4) Load 31(w)
|
||||||
47: 11(fvec4) Load 46(u)
|
49: 11(fvec4) Load 48(u)
|
||||||
50: 7(float) Load 49(blend)
|
52: 7(float) Load 51(blend)
|
||||||
51: 7(float) Load 9(blendscale)
|
53: 7(float) Load 9(blendscale)
|
||||||
52: 7(float) FMul 50 51
|
54: 7(float) FMul 52 53
|
||||||
53: 11(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 44 47 52
|
55: 11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 46 49 54
|
||||||
Store 43(gl_FragColor) 53
|
Store 45(gl_FragColor) 55
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 132
|
// Id's are bound by 142
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "lod"
|
Name 9 "lod"
|
||||||
Name 11 "coords1D"
|
Name 11 "coords1D"
|
||||||
Name 15 "coords3D"
|
Name 15 "coords3D"
|
||||||
Name 21 "coords4D"
|
Name 21 "coords4D"
|
||||||
Name 24 "color"
|
Name 24 "color"
|
||||||
Name 29 "texSampler1D"
|
Name 30 "texSampler1D"
|
||||||
Name 39 "coords2D"
|
Name 40 "coords2D"
|
||||||
Name 53 "texSampler2D"
|
Name 55 "texSampler2D"
|
||||||
Name 74 "texSampler3D"
|
Name 77 "texSampler3D"
|
||||||
Name 89 "texSamplerCube"
|
Name 93 "texSamplerCube"
|
||||||
Name 98 "shadowSampler1D"
|
Name 103 "shadowSampler1D"
|
||||||
Name 107 "shadowSampler2D"
|
Name 114 "shadowSampler2D"
|
||||||
Name 127 "gl_Position"
|
Name 137 "gl_Position"
|
||||||
Name 131 "gl_VertexID"
|
Name 141 "gl_VertexID"
|
||||||
Decorate 127(gl_Position) BuiltIn Position
|
Decorate 137(gl_Position) BuiltIn Position
|
||||||
Decorate 131(gl_VertexID) BuiltIn VertexId
|
Decorate 141(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 131(gl_VertexID) NoStaticUse
|
Decorate 141(gl_VertexID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypePointer Function 7(float)
|
8: TypePointer Function 7(float)
|
||||||
10: 7(float) Constant 1077936128
|
10: 7(float) Constant 1077936128
|
||||||
@ -46,137 +47,147 @@ Linked vertex stage:
|
|||||||
23: 19(fvec4) ConstantComposite 12 16 17 22
|
23: 19(fvec4) ConstantComposite 12 16 17 22
|
||||||
25: 7(float) Constant 0
|
25: 7(float) Constant 0
|
||||||
26: 19(fvec4) ConstantComposite 25 25 25 25
|
26: 19(fvec4) ConstantComposite 25 25 25 25
|
||||||
27: TypeSampler7(float) 1D filter+texture
|
27: TypeImage 7(float) 1D sampled format:Unknown
|
||||||
28: TypePointer UniformConstant 27
|
28: TypeSampledImage 27
|
||||||
29(texSampler1D): 28(ptr) Variable UniformConstant
|
29: TypePointer UniformConstant 28
|
||||||
37: TypeVector 7(float) 2
|
30(texSampler1D): 29(ptr) Variable UniformConstant
|
||||||
38: TypePointer Input 37(fvec2)
|
38: TypeVector 7(float) 2
|
||||||
39(coords2D): 38(ptr) Variable Input
|
39: TypePointer Input 38(fvec2)
|
||||||
51: TypeSampler7(float) 2D filter+texture
|
40(coords2D): 39(ptr) Variable Input
|
||||||
52: TypePointer UniformConstant 51
|
52: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
53(texSampler2D): 52(ptr) Variable UniformConstant
|
53: TypeSampledImage 52
|
||||||
72: TypeSampler7(float) 3D filter+texture
|
54: TypePointer UniformConstant 53
|
||||||
73: TypePointer UniformConstant 72
|
55(texSampler2D): 54(ptr) Variable UniformConstant
|
||||||
74(texSampler3D): 73(ptr) Variable UniformConstant
|
74: TypeImage 7(float) 3D sampled format:Unknown
|
||||||
87: TypeSampler7(float) Cube filter+texture
|
75: TypeSampledImage 74
|
||||||
88: TypePointer UniformConstant 87
|
76: TypePointer UniformConstant 75
|
||||||
89(texSamplerCube): 88(ptr) Variable UniformConstant
|
77(texSampler3D): 76(ptr) Variable UniformConstant
|
||||||
96: TypeSampler7(float) 1D filter+texture depth
|
90: TypeImage 7(float) Cube sampled format:Unknown
|
||||||
97: TypePointer UniformConstant 96
|
91: TypeSampledImage 90
|
||||||
98(shadowSampler1D): 97(ptr) Variable UniformConstant
|
92: TypePointer UniformConstant 91
|
||||||
105: TypeSampler7(float) 2D filter+texture depth
|
93(texSamplerCube): 92(ptr) Variable UniformConstant
|
||||||
106: TypePointer UniformConstant 105
|
100: TypeImage 7(float) 1D depth sampled format:Unknown
|
||||||
107(shadowSampler2D): 106(ptr) Variable UniformConstant
|
101: TypeSampledImage 100
|
||||||
126: TypePointer Output 19(fvec4)
|
102: TypePointer UniformConstant 101
|
||||||
127(gl_Position): 126(ptr) Variable Output
|
103(shadowSampler1D): 102(ptr) Variable UniformConstant
|
||||||
129: TypeInt 32 1
|
111: TypeImage 7(float) 2D depth sampled format:Unknown
|
||||||
130: TypePointer Input 129(int)
|
112: TypeSampledImage 111
|
||||||
131(gl_VertexID): 130(ptr) Variable Input
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(lod): 8(ptr) Variable Function
|
9(lod): 8(ptr) Variable Function
|
||||||
11(coords1D): 8(ptr) Variable Function
|
11(coords1D): 8(ptr) Variable Function
|
||||||
15(coords3D): 14(ptr) Variable Function
|
15(coords3D): 14(ptr) Variable Function
|
||||||
21(coords4D): 20(ptr) Variable Function
|
21(coords4D): 20(ptr) Variable Function
|
||||||
24(color): 20(ptr) Variable Function
|
24(color): 20(ptr) Variable Function
|
||||||
Store 9(lod) 10
|
Store 9(lod) 10
|
||||||
Store 11(coords1D) 12
|
Store 11(coords1D) 12
|
||||||
Store 15(coords3D) 18
|
Store 15(coords3D) 18
|
||||||
Store 21(coords4D) 23
|
Store 21(coords4D) 23
|
||||||
Store 24(color) 26
|
Store 24(color) 26
|
||||||
30: 27 Load 29(texSampler1D)
|
31: 28 Load 30(texSampler1D)
|
||||||
31: 7(float) Load 11(coords1D)
|
32: 7(float) Load 11(coords1D)
|
||||||
32: 7(float) Load 9(lod)
|
33: 7(float) Load 9(lod)
|
||||||
33: 19(fvec4) TextureSampleLod 30 31 32
|
34: 19(fvec4) ImageSampleExplicitLod 31 32 33
|
||||||
34: 19(fvec4) Load 24(color)
|
35: 19(fvec4) Load 24(color)
|
||||||
35: 19(fvec4) FAdd 34 33
|
36: 19(fvec4) FAdd 35 34
|
||||||
Store 24(color) 35
|
Store 24(color) 36
|
||||||
36: 27 Load 29(texSampler1D)
|
37: 28 Load 30(texSampler1D)
|
||||||
40: 37(fvec2) Load 39(coords2D)
|
41: 38(fvec2) Load 40(coords2D)
|
||||||
41: 7(float) Load 9(lod)
|
42: 7(float) Load 9(lod)
|
||||||
42: 19(fvec4) TextureSampleProjLod 36 40 41
|
43: 19(fvec4) ImageSampleProjExplicitLod 37 41 42
|
||||||
43: 19(fvec4) Load 24(color)
|
44: 19(fvec4) Load 24(color)
|
||||||
44: 19(fvec4) FAdd 43 42
|
45: 19(fvec4) FAdd 44 43
|
||||||
Store 24(color) 44
|
Store 24(color) 45
|
||||||
45: 27 Load 29(texSampler1D)
|
46: 28 Load 30(texSampler1D)
|
||||||
46: 19(fvec4) Load 21(coords4D)
|
47: 19(fvec4) Load 21(coords4D)
|
||||||
47: 7(float) Load 9(lod)
|
48: 7(float) Load 9(lod)
|
||||||
48: 19(fvec4) TextureSampleProjLod 45 46 47
|
49: 19(fvec4) ImageSampleProjExplicitLod 46 47 48
|
||||||
49: 19(fvec4) Load 24(color)
|
50: 19(fvec4) Load 24(color)
|
||||||
50: 19(fvec4) FAdd 49 48
|
51: 19(fvec4) FAdd 50 49
|
||||||
Store 24(color) 50
|
Store 24(color) 51
|
||||||
54: 51 Load 53(texSampler2D)
|
56: 53 Load 55(texSampler2D)
|
||||||
55: 37(fvec2) Load 39(coords2D)
|
57: 38(fvec2) Load 40(coords2D)
|
||||||
56: 7(float) Load 9(lod)
|
58: 7(float) Load 9(lod)
|
||||||
57: 19(fvec4) TextureSampleLod 54 55 56
|
59: 19(fvec4) ImageSampleExplicitLod 56 57 58
|
||||||
58: 19(fvec4) Load 24(color)
|
60: 19(fvec4) Load 24(color)
|
||||||
59: 19(fvec4) FAdd 58 57
|
61: 19(fvec4) FAdd 60 59
|
||||||
Store 24(color) 59
|
Store 24(color) 61
|
||||||
60: 51 Load 53(texSampler2D)
|
62: 53 Load 55(texSampler2D)
|
||||||
61: 13(fvec3) Load 15(coords3D)
|
63: 13(fvec3) Load 15(coords3D)
|
||||||
62: 7(float) Load 9(lod)
|
64: 7(float) Load 9(lod)
|
||||||
63: 19(fvec4) TextureSampleProjLod 60 61 62
|
65: 19(fvec4) ImageSampleProjExplicitLod 62 63 64
|
||||||
64: 19(fvec4) Load 24(color)
|
66: 19(fvec4) Load 24(color)
|
||||||
65: 19(fvec4) FAdd 64 63
|
67: 19(fvec4) FAdd 66 65
|
||||||
Store 24(color) 65
|
Store 24(color) 67
|
||||||
66: 51 Load 53(texSampler2D)
|
68: 53 Load 55(texSampler2D)
|
||||||
67: 19(fvec4) Load 21(coords4D)
|
69: 19(fvec4) Load 21(coords4D)
|
||||||
68: 7(float) Load 9(lod)
|
70: 7(float) Load 9(lod)
|
||||||
69: 19(fvec4) TextureSampleProjLod 66 67 68
|
71: 19(fvec4) ImageSampleProjExplicitLod 68 69 70
|
||||||
70: 19(fvec4) Load 24(color)
|
72: 19(fvec4) Load 24(color)
|
||||||
71: 19(fvec4) FAdd 70 69
|
73: 19(fvec4) FAdd 72 71
|
||||||
Store 24(color) 71
|
Store 24(color) 73
|
||||||
75: 72 Load 74(texSampler3D)
|
78: 75 Load 77(texSampler3D)
|
||||||
76: 13(fvec3) Load 15(coords3D)
|
79: 13(fvec3) Load 15(coords3D)
|
||||||
77: 7(float) Load 9(lod)
|
80: 7(float) Load 9(lod)
|
||||||
78: 19(fvec4) TextureSampleLod 75 76 77
|
81: 19(fvec4) ImageSampleExplicitLod 78 79 80
|
||||||
79: 19(fvec4) Load 24(color)
|
82: 19(fvec4) Load 24(color)
|
||||||
80: 19(fvec4) FAdd 79 78
|
83: 19(fvec4) FAdd 82 81
|
||||||
Store 24(color) 80
|
Store 24(color) 83
|
||||||
81: 72 Load 74(texSampler3D)
|
84: 75 Load 77(texSampler3D)
|
||||||
82: 19(fvec4) Load 21(coords4D)
|
85: 19(fvec4) Load 21(coords4D)
|
||||||
83: 7(float) Load 9(lod)
|
86: 7(float) Load 9(lod)
|
||||||
84: 19(fvec4) TextureSampleProjLod 81 82 83
|
87: 19(fvec4) ImageSampleProjExplicitLod 84 85 86
|
||||||
85: 19(fvec4) Load 24(color)
|
88: 19(fvec4) Load 24(color)
|
||||||
86: 19(fvec4) FAdd 85 84
|
89: 19(fvec4) FAdd 88 87
|
||||||
Store 24(color) 86
|
Store 24(color) 89
|
||||||
90: 87 Load 89(texSamplerCube)
|
94: 91 Load 93(texSamplerCube)
|
||||||
91: 13(fvec3) Load 15(coords3D)
|
95: 13(fvec3) Load 15(coords3D)
|
||||||
92: 7(float) Load 9(lod)
|
96: 7(float) Load 9(lod)
|
||||||
93: 19(fvec4) TextureSampleLod 90 91 92
|
97: 19(fvec4) ImageSampleExplicitLod 94 95 96
|
||||||
94: 19(fvec4) Load 24(color)
|
98: 19(fvec4) Load 24(color)
|
||||||
95: 19(fvec4) FAdd 94 93
|
99: 19(fvec4) FAdd 98 97
|
||||||
Store 24(color) 95
|
Store 24(color) 99
|
||||||
99: 96 Load 98(shadowSampler1D)
|
104: 101 Load 103(shadowSampler1D)
|
||||||
100: 13(fvec3) Load 15(coords3D)
|
105: 13(fvec3) Load 15(coords3D)
|
||||||
101: 7(float) Load 9(lod)
|
106: 7(float) Load 9(lod)
|
||||||
102: 19(fvec4) TextureSampleLod 99 100 101
|
107: 7(float) CompositeExtract 105 2
|
||||||
103: 19(fvec4) Load 24(color)
|
108: 19(fvec4) ImageSampleDrefExplicitLod 104 105 107 106
|
||||||
104: 19(fvec4) FAdd 103 102
|
109: 19(fvec4) Load 24(color)
|
||||||
Store 24(color) 104
|
110: 19(fvec4) FAdd 109 108
|
||||||
108: 105 Load 107(shadowSampler2D)
|
Store 24(color) 110
|
||||||
109: 13(fvec3) Load 15(coords3D)
|
115: 112 Load 114(shadowSampler2D)
|
||||||
110: 7(float) Load 9(lod)
|
116: 13(fvec3) Load 15(coords3D)
|
||||||
111: 19(fvec4) TextureSampleLod 108 109 110
|
117: 7(float) Load 9(lod)
|
||||||
112: 19(fvec4) Load 24(color)
|
118: 7(float) CompositeExtract 116 2
|
||||||
113: 19(fvec4) FAdd 112 111
|
119: 19(fvec4) ImageSampleDrefExplicitLod 115 116 118 117
|
||||||
Store 24(color) 113
|
120: 19(fvec4) Load 24(color)
|
||||||
114: 96 Load 98(shadowSampler1D)
|
121: 19(fvec4) FAdd 120 119
|
||||||
115: 19(fvec4) Load 21(coords4D)
|
Store 24(color) 121
|
||||||
116: 7(float) Load 9(lod)
|
122: 101 Load 103(shadowSampler1D)
|
||||||
117: 19(fvec4) TextureSampleProjLod 114 115 116
|
123: 19(fvec4) Load 21(coords4D)
|
||||||
118: 19(fvec4) Load 24(color)
|
124: 7(float) Load 9(lod)
|
||||||
119: 19(fvec4) FAdd 118 117
|
125: 7(float) CompositeExtract 123 3
|
||||||
Store 24(color) 119
|
126: 19(fvec4) ImageSampleProjDrefExplicitLod 122 123 125 124
|
||||||
120: 105 Load 107(shadowSampler2D)
|
127: 19(fvec4) Load 24(color)
|
||||||
121: 19(fvec4) Load 21(coords4D)
|
128: 19(fvec4) FAdd 127 126
|
||||||
122: 7(float) Load 9(lod)
|
Store 24(color) 128
|
||||||
123: 19(fvec4) TextureSampleProjLod 120 121 122
|
129: 112 Load 114(shadowSampler2D)
|
||||||
124: 19(fvec4) Load 24(color)
|
130: 19(fvec4) Load 21(coords4D)
|
||||||
125: 19(fvec4) FAdd 124 123
|
131: 7(float) Load 9(lod)
|
||||||
Store 24(color) 125
|
132: 7(float) CompositeExtract 130 3
|
||||||
128: 19(fvec4) Load 24(color)
|
133: 19(fvec4) ImageSampleProjDrefExplicitLod 129 130 132 131
|
||||||
Store 127(gl_Position) 128
|
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
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 264
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "b"
|
Name 9 "b"
|
||||||
Name 11 "u_b"
|
Name 11 "u_b"
|
||||||
@ -49,295 +51,295 @@ Linked fragment stage:
|
|||||||
Name 162 "u_f4"
|
Name 162 "u_f4"
|
||||||
Name 165 "i_f4"
|
Name 165 "i_f4"
|
||||||
Name 169 "gl_FragColor"
|
Name 169 "gl_FragColor"
|
||||||
Decorate 95(i_i) Flat
|
Decorate 95(i_i) Flat
|
||||||
Decorate 105(i_i2) Flat
|
Decorate 105(i_i2) Flat
|
||||||
Decorate 115(i_i3) Flat
|
Decorate 115(i_i3) Flat
|
||||||
Decorate 125(i_i4) Flat
|
Decorate 125(i_i4) Flat
|
||||||
Decorate 135(i_f) Smooth
|
Decorate 135(i_f) Smooth
|
||||||
Decorate 145(i_f2) Smooth
|
Decorate 145(i_f2) Smooth
|
||||||
Decorate 155(i_f3) Smooth
|
Decorate 155(i_f3) Smooth
|
||||||
Decorate 165(i_f4) Smooth
|
Decorate 165(i_f4) Smooth
|
||||||
Decorate 169(gl_FragColor) BuiltIn FragColor
|
Decorate 169(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeBool
|
7: TypeBool
|
||||||
8: TypePointer Function 7(bool)
|
8: TypePointer Function 7(bool)
|
||||||
10: TypePointer UniformConstant 7(bool)
|
10: TypePointer UniformConstant 7(bool)
|
||||||
11(u_b): 10(ptr) Variable UniformConstant
|
11(u_b): 10(ptr) Variable UniformConstant
|
||||||
13(i_b): 10(ptr) Variable UniformConstant
|
13(i_b): 10(ptr) Variable UniformConstant
|
||||||
16: TypeVector 7(bool) 2
|
16: TypeVector 7(bool) 2
|
||||||
17: TypePointer Function 16(bvec2)
|
17: TypePointer Function 16(bvec2)
|
||||||
19: TypePointer UniformConstant 16(bvec2)
|
19: TypePointer UniformConstant 16(bvec2)
|
||||||
20(u_b2): 19(ptr) Variable UniformConstant
|
20(u_b2): 19(ptr) Variable UniformConstant
|
||||||
23(i_b2): 19(ptr) Variable UniformConstant
|
23(i_b2): 19(ptr) Variable UniformConstant
|
||||||
34: TypeVector 7(bool) 3
|
34: TypeVector 7(bool) 3
|
||||||
35: TypePointer Function 34(bvec3)
|
35: TypePointer Function 34(bvec3)
|
||||||
37: TypePointer UniformConstant 34(bvec3)
|
37: TypePointer UniformConstant 34(bvec3)
|
||||||
38(u_b3): 37(ptr) Variable UniformConstant
|
38(u_b3): 37(ptr) Variable UniformConstant
|
||||||
41(i_b3): 37(ptr) Variable UniformConstant
|
41(i_b3): 37(ptr) Variable UniformConstant
|
||||||
58: TypeVector 7(bool) 4
|
58: TypeVector 7(bool) 4
|
||||||
59: TypePointer Function 58(bvec4)
|
59: TypePointer Function 58(bvec4)
|
||||||
61: TypePointer UniformConstant 58(bvec4)
|
61: TypePointer UniformConstant 58(bvec4)
|
||||||
62(u_b4): 61(ptr) Variable UniformConstant
|
62(u_b4): 61(ptr) Variable UniformConstant
|
||||||
65(i_b4): 61(ptr) Variable UniformConstant
|
65(i_b4): 61(ptr) Variable UniformConstant
|
||||||
88: TypeInt 32 1
|
88: TypeInt 32 1
|
||||||
89: TypePointer Function 88(int)
|
89: TypePointer Function 88(int)
|
||||||
91: TypePointer UniformConstant 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)
|
94: TypePointer Input 88(int)
|
||||||
95(i_i): 94(ptr) Variable Input
|
95(i_i): 94(ptr) Variable Input
|
||||||
98: TypeVector 88(int) 2
|
98: TypeVector 88(int) 2
|
||||||
99: TypePointer Function 98(ivec2)
|
99: TypePointer Function 98(ivec2)
|
||||||
101: TypePointer UniformConstant 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)
|
104: TypePointer Input 98(ivec2)
|
||||||
105(i_i2): 104(ptr) Variable Input
|
105(i_i2): 104(ptr) Variable Input
|
||||||
108: TypeVector 88(int) 3
|
108: TypeVector 88(int) 3
|
||||||
109: TypePointer Function 108(ivec3)
|
109: TypePointer Function 108(ivec3)
|
||||||
111: TypePointer UniformConstant 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)
|
114: TypePointer Input 108(ivec3)
|
||||||
115(i_i3): 114(ptr) Variable Input
|
115(i_i3): 114(ptr) Variable Input
|
||||||
118: TypeVector 88(int) 4
|
118: TypeVector 88(int) 4
|
||||||
119: TypePointer Function 118(ivec4)
|
119: TypePointer Function 118(ivec4)
|
||||||
121: TypePointer UniformConstant 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)
|
124: TypePointer Input 118(ivec4)
|
||||||
125(i_i4): 124(ptr) Variable Input
|
125(i_i4): 124(ptr) Variable Input
|
||||||
128: TypeFloat 32
|
128: TypeFloat 32
|
||||||
129: TypePointer Function 128(float)
|
129: TypePointer Function 128(float)
|
||||||
131: TypePointer UniformConstant 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)
|
134: TypePointer Input 128(float)
|
||||||
135(i_f): 134(ptr) Variable Input
|
135(i_f): 134(ptr) Variable Input
|
||||||
138: TypeVector 128(float) 2
|
138: TypeVector 128(float) 2
|
||||||
139: TypePointer Function 138(fvec2)
|
139: TypePointer Function 138(fvec2)
|
||||||
141: TypePointer UniformConstant 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)
|
144: TypePointer Input 138(fvec2)
|
||||||
145(i_f2): 144(ptr) Variable Input
|
145(i_f2): 144(ptr) Variable Input
|
||||||
148: TypeVector 128(float) 3
|
148: TypeVector 128(float) 3
|
||||||
149: TypePointer Function 148(fvec3)
|
149: TypePointer Function 148(fvec3)
|
||||||
151: TypePointer UniformConstant 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)
|
154: TypePointer Input 148(fvec3)
|
||||||
155(i_f3): 154(ptr) Variable Input
|
155(i_f3): 154(ptr) Variable Input
|
||||||
158: TypeVector 128(float) 4
|
158: TypeVector 128(float) 4
|
||||||
159: TypePointer Function 158(fvec4)
|
159: TypePointer Function 158(fvec4)
|
||||||
161: TypePointer UniformConstant 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)
|
164: TypePointer Input 158(fvec4)
|
||||||
165(i_f4): 164(ptr) Variable Input
|
165(i_f4): 164(ptr) Variable Input
|
||||||
168: TypePointer Output 158(fvec4)
|
168: TypePointer Output 158(fvec4)
|
||||||
169(gl_FragColor): 168(ptr) Variable Output
|
169(gl_FragColor): 168(ptr) Variable Output
|
||||||
261: 128(float) Constant 1065353216
|
261: 128(float) Constant 1065353216
|
||||||
262: 158(fvec4) ConstantComposite 261 261 261 261
|
262: 158(fvec4) ConstantComposite 261 261 261 261
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(b): 8(ptr) Variable Function
|
9(b): 8(ptr) Variable Function
|
||||||
18(b2): 17(ptr) Variable Function
|
18(b2): 17(ptr) Variable Function
|
||||||
36(b3): 35(ptr) Variable Function
|
36(b3): 35(ptr) Variable Function
|
||||||
60(b4): 59(ptr) Variable Function
|
60(b4): 59(ptr) Variable Function
|
||||||
90(i): 89(ptr) Variable Function
|
90(i): 89(ptr) Variable Function
|
||||||
100(i2): 99(ptr) Variable Function
|
100(i2): 99(ptr) Variable Function
|
||||||
110(i3): 109(ptr) Variable Function
|
110(i3): 109(ptr) Variable Function
|
||||||
120(i4): 119(ptr) Variable Function
|
120(i4): 119(ptr) Variable Function
|
||||||
130(f): 129(ptr) Variable Function
|
130(f): 129(ptr) Variable Function
|
||||||
140(f2): 139(ptr) Variable Function
|
140(f2): 139(ptr) Variable Function
|
||||||
150(f3): 149(ptr) Variable Function
|
150(f3): 149(ptr) Variable Function
|
||||||
160(f4): 159(ptr) Variable Function
|
160(f4): 159(ptr) Variable Function
|
||||||
170: 159(ptr) Variable Function
|
170: 159(ptr) Variable Function
|
||||||
12: 7(bool) Load 11(u_b)
|
12: 7(bool) Load 11(u_b)
|
||||||
14: 7(bool) Load 13(i_b)
|
14: 7(bool) Load 13(i_b)
|
||||||
15: 7(bool) LogicalAnd 12 14
|
15: 7(bool) LogicalAnd 12 14
|
||||||
Store 9(b) 15
|
Store 9(b) 15
|
||||||
21: 16(bvec2) Load 20(u_b2)
|
21: 16(bvec2) Load 20(u_b2)
|
||||||
22: 7(bool) CompositeExtract 21 0
|
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
|
25: 7(bool) CompositeExtract 24 0
|
||||||
26: 7(bool) LogicalAnd 22 25
|
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
|
28: 7(bool) CompositeExtract 27 1
|
||||||
29: 7(bool) LogicalAnd 26 28
|
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
|
31: 7(bool) CompositeExtract 30 1
|
||||||
32: 7(bool) LogicalAnd 29 31
|
32: 7(bool) LogicalAnd 29 31
|
||||||
33: 16(bvec2) CompositeConstruct 32 32
|
33: 16(bvec2) CompositeConstruct 32 32
|
||||||
Store 18(b2) 33
|
Store 18(b2) 33
|
||||||
39: 34(bvec3) Load 38(u_b3)
|
39: 34(bvec3) Load 38(u_b3)
|
||||||
40: 7(bool) CompositeExtract 39 0
|
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
|
43: 7(bool) CompositeExtract 42 0
|
||||||
44: 7(bool) LogicalAnd 40 43
|
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
|
46: 7(bool) CompositeExtract 45 1
|
||||||
47: 7(bool) LogicalAnd 44 46
|
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
|
49: 7(bool) CompositeExtract 48 1
|
||||||
50: 7(bool) LogicalAnd 47 49
|
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
|
52: 7(bool) CompositeExtract 51 2
|
||||||
53: 7(bool) LogicalAnd 50 52
|
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
|
55: 7(bool) CompositeExtract 54 2
|
||||||
56: 7(bool) LogicalAnd 53 55
|
56: 7(bool) LogicalAnd 53 55
|
||||||
57: 34(bvec3) CompositeConstruct 56 56 56
|
57: 34(bvec3) CompositeConstruct 56 56 56
|
||||||
Store 36(b3) 57
|
Store 36(b3) 57
|
||||||
63: 58(bvec4) Load 62(u_b4)
|
63: 58(bvec4) Load 62(u_b4)
|
||||||
64: 7(bool) CompositeExtract 63 0
|
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
|
67: 7(bool) CompositeExtract 66 0
|
||||||
68: 7(bool) LogicalAnd 64 67
|
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
|
70: 7(bool) CompositeExtract 69 1
|
||||||
71: 7(bool) LogicalAnd 68 70
|
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
|
73: 7(bool) CompositeExtract 72 1
|
||||||
74: 7(bool) LogicalAnd 71 73
|
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
|
76: 7(bool) CompositeExtract 75 2
|
||||||
77: 7(bool) LogicalAnd 74 76
|
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
|
79: 7(bool) CompositeExtract 78 2
|
||||||
80: 7(bool) LogicalAnd 77 79
|
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
|
82: 7(bool) CompositeExtract 81 3
|
||||||
83: 7(bool) LogicalAnd 80 82
|
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
|
85: 7(bool) CompositeExtract 84 3
|
||||||
86: 7(bool) LogicalAnd 83 85
|
86: 7(bool) LogicalAnd 83 85
|
||||||
87: 58(bvec4) CompositeConstruct 86 86 86 86
|
87: 58(bvec4) CompositeConstruct 86 86 86 86
|
||||||
Store 60(b4) 87
|
Store 60(b4) 87
|
||||||
93: 88(int) Load 92(u_i)
|
93: 88(int) Load 92(u_i)
|
||||||
96: 88(int) Load 95(i_i)
|
96: 88(int) Load 95(i_i)
|
||||||
97: 88(int) IAdd 93 96
|
97: 88(int) IAdd 93 96
|
||||||
Store 90(i) 97
|
Store 90(i) 97
|
||||||
103: 98(ivec2) Load 102(u_i2)
|
103: 98(ivec2) Load 102(u_i2)
|
||||||
106: 98(ivec2) Load 105(i_i2)
|
106: 98(ivec2) Load 105(i_i2)
|
||||||
107: 98(ivec2) IAdd 103 106
|
107: 98(ivec2) IAdd 103 106
|
||||||
Store 100(i2) 107
|
Store 100(i2) 107
|
||||||
113: 108(ivec3) Load 112(u_i3)
|
113: 108(ivec3) Load 112(u_i3)
|
||||||
116: 108(ivec3) Load 115(i_i3)
|
116: 108(ivec3) Load 115(i_i3)
|
||||||
117: 108(ivec3) IAdd 113 116
|
117: 108(ivec3) IAdd 113 116
|
||||||
Store 110(i3) 117
|
Store 110(i3) 117
|
||||||
123: 118(ivec4) Load 122(u_i4)
|
123: 118(ivec4) Load 122(u_i4)
|
||||||
126: 118(ivec4) Load 125(i_i4)
|
126: 118(ivec4) Load 125(i_i4)
|
||||||
127: 118(ivec4) IAdd 123 126
|
127: 118(ivec4) IAdd 123 126
|
||||||
Store 120(i4) 127
|
Store 120(i4) 127
|
||||||
133: 128(float) Load 132(u_f)
|
133: 128(float) Load 132(u_f)
|
||||||
136: 128(float) Load 135(i_f)
|
136: 128(float) Load 135(i_f)
|
||||||
137: 128(float) FAdd 133 136
|
137: 128(float) FAdd 133 136
|
||||||
Store 130(f) 137
|
Store 130(f) 137
|
||||||
143: 138(fvec2) Load 142(u_f2)
|
143: 138(fvec2) Load 142(u_f2)
|
||||||
146: 138(fvec2) Load 145(i_f2)
|
146: 138(fvec2) Load 145(i_f2)
|
||||||
147: 138(fvec2) FAdd 143 146
|
147: 138(fvec2) FAdd 143 146
|
||||||
Store 140(f2) 147
|
Store 140(f2) 147
|
||||||
153: 148(fvec3) Load 152(u_f3)
|
153: 148(fvec3) Load 152(u_f3)
|
||||||
156: 148(fvec3) Load 155(i_f3)
|
156: 148(fvec3) Load 155(i_f3)
|
||||||
157: 148(fvec3) FAdd 153 156
|
157: 148(fvec3) FAdd 153 156
|
||||||
Store 150(f3) 157
|
Store 150(f3) 157
|
||||||
163: 158(fvec4) Load 162(u_f4)
|
163: 158(fvec4) Load 162(u_f4)
|
||||||
166: 158(fvec4) Load 165(i_f4)
|
166: 158(fvec4) Load 165(i_f4)
|
||||||
167: 158(fvec4) FAdd 163 166
|
167: 158(fvec4) FAdd 163 166
|
||||||
Store 160(f4) 167
|
Store 160(f4) 167
|
||||||
171: 7(bool) Load 9(b)
|
171: 7(bool) Load 9(b)
|
||||||
172: 16(bvec2) Load 18(b2)
|
172: 16(bvec2) Load 18(b2)
|
||||||
173: 7(bool) CompositeExtract 172 0
|
173: 7(bool) CompositeExtract 172 0
|
||||||
174: 7(bool) LogicalOr 171 173
|
174: 7(bool) LogicalOr 171 173
|
||||||
175: 16(bvec2) Load 18(b2)
|
175: 16(bvec2) Load 18(b2)
|
||||||
176: 7(bool) CompositeExtract 175 1
|
176: 7(bool) CompositeExtract 175 1
|
||||||
177: 7(bool) LogicalOr 174 176
|
177: 7(bool) LogicalOr 174 176
|
||||||
178: 34(bvec3) Load 36(b3)
|
178: 34(bvec3) Load 36(b3)
|
||||||
179: 7(bool) CompositeExtract 178 0
|
179: 7(bool) CompositeExtract 178 0
|
||||||
180: 7(bool) LogicalOr 177 179
|
180: 7(bool) LogicalOr 177 179
|
||||||
181: 34(bvec3) Load 36(b3)
|
181: 34(bvec3) Load 36(b3)
|
||||||
182: 7(bool) CompositeExtract 181 1
|
182: 7(bool) CompositeExtract 181 1
|
||||||
183: 7(bool) LogicalOr 180 182
|
183: 7(bool) LogicalOr 180 182
|
||||||
184: 34(bvec3) Load 36(b3)
|
184: 34(bvec3) Load 36(b3)
|
||||||
185: 7(bool) CompositeExtract 184 2
|
185: 7(bool) CompositeExtract 184 2
|
||||||
186: 7(bool) LogicalOr 183 185
|
186: 7(bool) LogicalOr 183 185
|
||||||
187: 58(bvec4) Load 60(b4)
|
187: 58(bvec4) Load 60(b4)
|
||||||
188: 7(bool) CompositeExtract 187 0
|
188: 7(bool) CompositeExtract 187 0
|
||||||
189: 7(bool) LogicalOr 186 188
|
189: 7(bool) LogicalOr 186 188
|
||||||
190: 58(bvec4) Load 60(b4)
|
190: 58(bvec4) Load 60(b4)
|
||||||
191: 7(bool) CompositeExtract 190 1
|
191: 7(bool) CompositeExtract 190 1
|
||||||
192: 7(bool) LogicalOr 189 191
|
192: 7(bool) LogicalOr 189 191
|
||||||
193: 58(bvec4) Load 60(b4)
|
193: 58(bvec4) Load 60(b4)
|
||||||
194: 7(bool) CompositeExtract 193 2
|
194: 7(bool) CompositeExtract 193 2
|
||||||
195: 7(bool) LogicalOr 192 194
|
195: 7(bool) LogicalOr 192 194
|
||||||
196: 58(bvec4) Load 60(b4)
|
196: 58(bvec4) Load 60(b4)
|
||||||
197: 7(bool) CompositeExtract 196 3
|
197: 7(bool) CompositeExtract 196 3
|
||||||
198: 7(bool) LogicalOr 195 197
|
198: 7(bool) LogicalOr 195 197
|
||||||
SelectionMerge 200 None
|
SelectionMerge 200 None
|
||||||
BranchConditional 198 199 260
|
BranchConditional 198 199 260
|
||||||
199: Label
|
199: Label
|
||||||
201: 88(int) Load 90(i)
|
201: 88(int) Load 90(i)
|
||||||
202: 98(ivec2) Load 100(i2)
|
202: 98(ivec2) Load 100(i2)
|
||||||
203: 88(int) CompositeExtract 202 0
|
203: 88(int) CompositeExtract 202 0
|
||||||
204: 88(int) IAdd 201 203
|
204: 88(int) IAdd 201 203
|
||||||
205: 98(ivec2) Load 100(i2)
|
205: 98(ivec2) Load 100(i2)
|
||||||
206: 88(int) CompositeExtract 205 1
|
206: 88(int) CompositeExtract 205 1
|
||||||
207: 88(int) IAdd 204 206
|
207: 88(int) IAdd 204 206
|
||||||
208: 108(ivec3) Load 110(i3)
|
208: 108(ivec3) Load 110(i3)
|
||||||
209: 88(int) CompositeExtract 208 0
|
209: 88(int) CompositeExtract 208 0
|
||||||
210: 88(int) IAdd 207 209
|
210: 88(int) IAdd 207 209
|
||||||
211: 108(ivec3) Load 110(i3)
|
211: 108(ivec3) Load 110(i3)
|
||||||
212: 88(int) CompositeExtract 211 1
|
212: 88(int) CompositeExtract 211 1
|
||||||
213: 88(int) IAdd 210 212
|
213: 88(int) IAdd 210 212
|
||||||
214: 108(ivec3) Load 110(i3)
|
214: 108(ivec3) Load 110(i3)
|
||||||
215: 88(int) CompositeExtract 214 2
|
215: 88(int) CompositeExtract 214 2
|
||||||
216: 88(int) IAdd 213 215
|
216: 88(int) IAdd 213 215
|
||||||
217: 118(ivec4) Load 120(i4)
|
217: 118(ivec4) Load 120(i4)
|
||||||
218: 88(int) CompositeExtract 217 0
|
218: 88(int) CompositeExtract 217 0
|
||||||
219: 88(int) IAdd 216 218
|
219: 88(int) IAdd 216 218
|
||||||
220: 118(ivec4) Load 120(i4)
|
220: 118(ivec4) Load 120(i4)
|
||||||
221: 88(int) CompositeExtract 220 1
|
221: 88(int) CompositeExtract 220 1
|
||||||
222: 88(int) IAdd 219 221
|
222: 88(int) IAdd 219 221
|
||||||
223: 118(ivec4) Load 120(i4)
|
223: 118(ivec4) Load 120(i4)
|
||||||
224: 88(int) CompositeExtract 223 2
|
224: 88(int) CompositeExtract 223 2
|
||||||
225: 88(int) IAdd 222 224
|
225: 88(int) IAdd 222 224
|
||||||
226: 118(ivec4) Load 120(i4)
|
226: 118(ivec4) Load 120(i4)
|
||||||
227: 88(int) CompositeExtract 226 3
|
227: 88(int) CompositeExtract 226 3
|
||||||
228: 88(int) IAdd 225 227
|
228: 88(int) IAdd 225 227
|
||||||
229: 128(float) ConvertSToF 228
|
229: 128(float) ConvertSToF 228
|
||||||
230: 128(float) Load 130(f)
|
230: 128(float) Load 130(f)
|
||||||
231: 128(float) FAdd 229 230
|
231: 128(float) FAdd 229 230
|
||||||
232: 138(fvec2) Load 140(f2)
|
232: 138(fvec2) Load 140(f2)
|
||||||
233: 128(float) CompositeExtract 232 0
|
233: 128(float) CompositeExtract 232 0
|
||||||
234: 128(float) FAdd 231 233
|
234: 128(float) FAdd 231 233
|
||||||
235: 138(fvec2) Load 140(f2)
|
235: 138(fvec2) Load 140(f2)
|
||||||
236: 128(float) CompositeExtract 235 1
|
236: 128(float) CompositeExtract 235 1
|
||||||
237: 128(float) FAdd 234 236
|
237: 128(float) FAdd 234 236
|
||||||
238: 148(fvec3) Load 150(f3)
|
238: 148(fvec3) Load 150(f3)
|
||||||
239: 128(float) CompositeExtract 238 0
|
239: 128(float) CompositeExtract 238 0
|
||||||
240: 128(float) FAdd 237 239
|
240: 128(float) FAdd 237 239
|
||||||
241: 148(fvec3) Load 150(f3)
|
241: 148(fvec3) Load 150(f3)
|
||||||
242: 128(float) CompositeExtract 241 1
|
242: 128(float) CompositeExtract 241 1
|
||||||
243: 128(float) FAdd 240 242
|
243: 128(float) FAdd 240 242
|
||||||
244: 148(fvec3) Load 150(f3)
|
244: 148(fvec3) Load 150(f3)
|
||||||
245: 128(float) CompositeExtract 244 2
|
245: 128(float) CompositeExtract 244 2
|
||||||
246: 128(float) FAdd 243 245
|
246: 128(float) FAdd 243 245
|
||||||
247: 158(fvec4) Load 160(f4)
|
247: 158(fvec4) Load 160(f4)
|
||||||
248: 128(float) CompositeExtract 247 0
|
248: 128(float) CompositeExtract 247 0
|
||||||
249: 128(float) FAdd 246 248
|
249: 128(float) FAdd 246 248
|
||||||
250: 158(fvec4) Load 160(f4)
|
250: 158(fvec4) Load 160(f4)
|
||||||
251: 128(float) CompositeExtract 250 1
|
251: 128(float) CompositeExtract 250 1
|
||||||
252: 128(float) FAdd 249 251
|
252: 128(float) FAdd 249 251
|
||||||
253: 158(fvec4) Load 160(f4)
|
253: 158(fvec4) Load 160(f4)
|
||||||
254: 128(float) CompositeExtract 253 2
|
254: 128(float) CompositeExtract 253 2
|
||||||
255: 128(float) FAdd 252 254
|
255: 128(float) FAdd 252 254
|
||||||
256: 158(fvec4) Load 160(f4)
|
256: 158(fvec4) Load 160(f4)
|
||||||
257: 128(float) CompositeExtract 256 3
|
257: 128(float) CompositeExtract 256 3
|
||||||
258: 128(float) FAdd 255 257
|
258: 128(float) FAdd 255 257
|
||||||
259: 158(fvec4) CompositeConstruct 258 258 258 258
|
259: 158(fvec4) CompositeConstruct 258 258 258 258
|
||||||
Store 170 259
|
Store 170 259
|
||||||
Branch 200
|
Branch 200
|
||||||
260: Label
|
260: Label
|
||||||
Store 170 262
|
Store 170 262
|
||||||
Branch 200
|
Branch 200
|
||||||
200: Label
|
200: Label
|
||||||
263: 158(fvec4) Load 170
|
263: 158(fvec4) Load 170
|
||||||
Store 169(gl_FragColor) 263
|
Store 169(gl_FragColor) 263
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 206
|
// Id's are bound by 207
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "count"
|
Name 9 "count"
|
||||||
Name 13 "u"
|
Name 13 "u"
|
||||||
@ -20,47 +22,47 @@ Linked fragment stage:
|
|||||||
Name 58 "shiftediu"
|
Name 58 "shiftediu"
|
||||||
Name 59 "shifteduu"
|
Name 59 "shifteduu"
|
||||||
Name 67 "c"
|
Name 67 "c"
|
||||||
Name 70 "usampler"
|
Name 71 "usampler"
|
||||||
Name 75 "tc"
|
Name 76 "tc"
|
||||||
Name 108 "af"
|
Name 109 "af"
|
||||||
Name 112 "ab"
|
Name 113 "ab"
|
||||||
Name 116 "ai"
|
Name 117 "ai"
|
||||||
Name 151 "mask1"
|
Name 152 "mask1"
|
||||||
Name 153 "mask2"
|
Name 154 "mask2"
|
||||||
Name 155 "mask3"
|
Name 156 "mask3"
|
||||||
Name 159 "mask4"
|
Name 160 "mask4"
|
||||||
Name 199 "f"
|
Name 200 "f"
|
||||||
Name 201 "v"
|
Name 202 "v"
|
||||||
Name 203 "i"
|
Name 204 "i"
|
||||||
Name 205 "b"
|
Name 206 "b"
|
||||||
Decorate 9(count) PrecisionMedium
|
Decorate 9(count) RelaxedPrecision
|
||||||
Decorate 13(u) PrecisionMedium
|
Decorate 13(u) RelaxedPrecision
|
||||||
Decorate 16(t) PrecisionMedium
|
Decorate 16(t) RelaxedPrecision
|
||||||
Decorate 16(t) Flat
|
Decorate 16(t) Flat
|
||||||
Decorate 54(shiftedii) PrecisionMedium
|
Decorate 54(shiftedii) RelaxedPrecision
|
||||||
Decorate 56(shiftedui) PrecisionMedium
|
Decorate 56(shiftedui) RelaxedPrecision
|
||||||
Decorate 58(shiftediu) PrecisionMedium
|
Decorate 58(shiftediu) RelaxedPrecision
|
||||||
Decorate 59(shifteduu) PrecisionMedium
|
Decorate 59(shifteduu) RelaxedPrecision
|
||||||
Decorate 67(c) PrecisionMedium
|
Decorate 67(c) RelaxedPrecision
|
||||||
Decorate 70(usampler) PrecisionMedium
|
Decorate 71(usampler) RelaxedPrecision
|
||||||
Decorate 75(tc) PrecisionMedium
|
Decorate 76(tc) RelaxedPrecision
|
||||||
Decorate 75(tc) Smooth
|
Decorate 76(tc) Smooth
|
||||||
Decorate 108(af) PrecisionMedium
|
Decorate 109(af) RelaxedPrecision
|
||||||
Decorate 116(ai) PrecisionMedium
|
Decorate 117(ai) RelaxedPrecision
|
||||||
Decorate 151(mask1) PrecisionMedium
|
Decorate 152(mask1) RelaxedPrecision
|
||||||
Decorate 153(mask2) PrecisionMedium
|
Decorate 154(mask2) RelaxedPrecision
|
||||||
Decorate 155(mask3) PrecisionMedium
|
Decorate 156(mask3) RelaxedPrecision
|
||||||
Decorate 159(mask4) PrecisionMedium
|
Decorate 160(mask4) RelaxedPrecision
|
||||||
Decorate 199(f) PrecisionMedium
|
Decorate 200(f) RelaxedPrecision
|
||||||
Decorate 199(f) Smooth
|
Decorate 200(f) Smooth
|
||||||
Decorate 199(f) NoStaticUse
|
Decorate 200(f) NoStaticUse
|
||||||
Decorate 201(v) PrecisionMedium
|
Decorate 202(v) RelaxedPrecision
|
||||||
Decorate 201(v) NoStaticUse
|
Decorate 202(v) NoStaticUse
|
||||||
Decorate 203(i) PrecisionMedium
|
Decorate 204(i) RelaxedPrecision
|
||||||
Decorate 203(i) NoStaticUse
|
Decorate 204(i) NoStaticUse
|
||||||
Decorate 205(b) NoStaticUse
|
Decorate 206(b) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 1
|
10: 7(int) Constant 1
|
||||||
@ -68,7 +70,7 @@ Linked fragment stage:
|
|||||||
12: TypePointer Function 11(int)
|
12: TypePointer Function 11(int)
|
||||||
14: TypeVector 11(int) 2
|
14: TypeVector 11(int) 2
|
||||||
15: TypePointer Input 14(ivec2)
|
15: TypePointer Input 14(ivec2)
|
||||||
16(t): 15(ptr) Variable Input
|
16(t): 15(ptr) Variable Input
|
||||||
19: 11(int) Constant 3
|
19: 11(int) Constant 3
|
||||||
21: TypeBool
|
21: TypeBool
|
||||||
22: 21(bool) ConstantTrue
|
22: 21(bool) ConstantTrue
|
||||||
@ -83,271 +85,272 @@ Linked fragment stage:
|
|||||||
57: 11(int) Constant 4194303
|
57: 11(int) Constant 4194303
|
||||||
65: TypeVector 11(int) 4
|
65: TypeVector 11(int) 4
|
||||||
66: TypePointer Output 65(ivec4)
|
66: TypePointer Output 65(ivec4)
|
||||||
67(c): 66(ptr) Variable Output
|
67(c): 66(ptr) Variable Output
|
||||||
68: TypeSampler11(int) 2D filter+texture
|
68: TypeImage 11(int) 2D sampled format:Unknown
|
||||||
69: TypePointer UniformConstant 68
|
69: TypeSampledImage 68
|
||||||
70(usampler): 69(ptr) Variable UniformConstant
|
70: TypePointer UniformConstant 69
|
||||||
72: TypeFloat 32
|
71(usampler): 70(ptr) Variable UniformConstant
|
||||||
73: TypeVector 72(float) 2
|
73: TypeFloat 32
|
||||||
74: TypePointer Input 73(fvec2)
|
74: TypeVector 73(float) 2
|
||||||
75(tc): 74(ptr) Variable Input
|
75: TypePointer Input 74(fvec2)
|
||||||
85: 72(float) Constant 1065353216
|
76(tc): 75(ptr) Variable Input
|
||||||
97: 72(float) Constant 1073741824
|
86: 73(float) Constant 1065353216
|
||||||
98: 73(fvec2) ConstantComposite 97 97
|
98: 73(float) Constant 1073741824
|
||||||
103: 11(int) Constant 4
|
99: 74(fvec2) ConstantComposite 98 98
|
||||||
107: TypePointer Function 72(float)
|
104: 11(int) Constant 4
|
||||||
111: TypePointer Function 21(bool)
|
108: TypePointer Function 73(float)
|
||||||
114: 11(int) Constant 0
|
112: TypePointer Function 21(bool)
|
||||||
122: 11(int) Constant 1
|
115: 11(int) Constant 0
|
||||||
133: 7(int) Constant 17
|
123: 11(int) Constant 1
|
||||||
138: 7(int) Constant 19
|
134: 7(int) Constant 17
|
||||||
143: 7(int) Constant 23
|
139: 7(int) Constant 19
|
||||||
148: 7(int) Constant 27
|
144: 7(int) Constant 23
|
||||||
152: 11(int) Constant 161
|
149: 7(int) Constant 27
|
||||||
154: 11(int) Constant 2576
|
153: 11(int) Constant 161
|
||||||
157: 7(int) Constant 4
|
155: 11(int) Constant 2576
|
||||||
160: 11(int) Constant 2737
|
158: 7(int) Constant 4
|
||||||
198: TypePointer Input 72(float)
|
161: 11(int) Constant 2737
|
||||||
199(f): 198(ptr) Variable Input
|
199: TypePointer Input 73(float)
|
||||||
200: TypePointer UniformConstant 65(ivec4)
|
200(f): 199(ptr) Variable Input
|
||||||
201(v): 200(ptr) Variable UniformConstant
|
201: TypePointer UniformConstant 65(ivec4)
|
||||||
202: TypePointer UniformConstant 7(int)
|
202(v): 201(ptr) Variable UniformConstant
|
||||||
203(i): 202(ptr) Variable UniformConstant
|
203: TypePointer UniformConstant 7(int)
|
||||||
204: TypePointer UniformConstant 21(bool)
|
204(i): 203(ptr) Variable UniformConstant
|
||||||
205(b): 204(ptr) Variable UniformConstant
|
205: TypePointer UniformConstant 21(bool)
|
||||||
|
206(b): 205(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(count): 8(ptr) Variable Function
|
9(count): 8(ptr) Variable Function
|
||||||
13(u): 12(ptr) Variable Function
|
13(u): 12(ptr) Variable Function
|
||||||
54(shiftedii): 8(ptr) Variable Function
|
54(shiftedii): 8(ptr) Variable Function
|
||||||
56(shiftedui): 12(ptr) Variable Function
|
56(shiftedui): 12(ptr) Variable Function
|
||||||
58(shiftediu): 8(ptr) Variable Function
|
58(shiftediu): 8(ptr) Variable Function
|
||||||
59(shifteduu): 12(ptr) Variable Function
|
59(shifteduu): 12(ptr) Variable Function
|
||||||
108(af): 107(ptr) Variable Function
|
109(af): 108(ptr) Variable Function
|
||||||
112(ab): 111(ptr) Variable Function
|
113(ab): 112(ptr) Variable Function
|
||||||
116(ai): 8(ptr) Variable Function
|
117(ai): 8(ptr) Variable Function
|
||||||
151(mask1): 12(ptr) Variable Function
|
152(mask1): 12(ptr) Variable Function
|
||||||
153(mask2): 12(ptr) Variable Function
|
154(mask2): 12(ptr) Variable Function
|
||||||
155(mask3): 12(ptr) Variable Function
|
156(mask3): 12(ptr) Variable Function
|
||||||
159(mask4): 12(ptr) Variable Function
|
160(mask4): 12(ptr) Variable Function
|
||||||
Store 9(count) 10
|
Store 9(count) 10
|
||||||
17: 14(ivec2) Load 16(t)
|
17: 14(ivec2) Load 16(t)
|
||||||
18: 11(int) CompositeExtract 17 1
|
18: 11(int) CompositeExtract 17 1
|
||||||
20: 11(int) IAdd 18 19
|
20: 11(int) IAdd 18 19
|
||||||
Store 13(u) 20
|
Store 13(u) 20
|
||||||
SelectionMerge 24 None
|
SelectionMerge 24 None
|
||||||
BranchConditional 22 23 24
|
BranchConditional 22 23 24
|
||||||
23: Label
|
23: Label
|
||||||
26: 7(int) Load 9(count)
|
26: 7(int) Load 9(count)
|
||||||
27: 7(int) IMul 26 25
|
27: 7(int) IMul 26 25
|
||||||
Store 9(count) 27
|
Store 9(count) 27
|
||||||
Branch 24
|
Branch 24
|
||||||
24: Label
|
24: Label
|
||||||
SelectionMerge 29 None
|
SelectionMerge 29 None
|
||||||
BranchConditional 22 28 29
|
BranchConditional 22 28 29
|
||||||
28: Label
|
28: Label
|
||||||
31: 7(int) Load 9(count)
|
31: 7(int) Load 9(count)
|
||||||
32: 7(int) IMul 31 30
|
32: 7(int) IMul 31 30
|
||||||
Store 9(count) 32
|
Store 9(count) 32
|
||||||
Branch 29
|
Branch 29
|
||||||
29: Label
|
29: Label
|
||||||
SelectionMerge 35 None
|
SelectionMerge 35 None
|
||||||
BranchConditional 33 34 35
|
BranchConditional 33 34 35
|
||||||
34: Label
|
34: Label
|
||||||
37: 7(int) Load 9(count)
|
37: 7(int) Load 9(count)
|
||||||
38: 7(int) IMul 37 36
|
38: 7(int) IMul 37 36
|
||||||
Store 9(count) 38
|
Store 9(count) 38
|
||||||
Branch 35
|
Branch 35
|
||||||
35: Label
|
35: Label
|
||||||
SelectionMerge 40 None
|
SelectionMerge 40 None
|
||||||
BranchConditional 22 39 40
|
BranchConditional 22 39 40
|
||||||
39: Label
|
39: Label
|
||||||
42: 7(int) Load 9(count)
|
42: 7(int) Load 9(count)
|
||||||
43: 7(int) IMul 42 41
|
43: 7(int) IMul 42 41
|
||||||
Store 9(count) 43
|
Store 9(count) 43
|
||||||
Branch 40
|
Branch 40
|
||||||
40: Label
|
40: Label
|
||||||
SelectionMerge 45 None
|
SelectionMerge 45 None
|
||||||
BranchConditional 22 44 45
|
BranchConditional 22 44 45
|
||||||
44: Label
|
44: Label
|
||||||
47: 7(int) Load 9(count)
|
47: 7(int) Load 9(count)
|
||||||
48: 7(int) IMul 47 46
|
48: 7(int) IMul 47 46
|
||||||
Store 9(count) 48
|
Store 9(count) 48
|
||||||
Branch 45
|
Branch 45
|
||||||
45: Label
|
45: Label
|
||||||
SelectionMerge 50 None
|
SelectionMerge 50 None
|
||||||
BranchConditional 33 49 50
|
BranchConditional 33 49 50
|
||||||
49: Label
|
49: Label
|
||||||
52: 7(int) Load 9(count)
|
52: 7(int) Load 9(count)
|
||||||
53: 7(int) IMul 52 51
|
53: 7(int) IMul 52 51
|
||||||
Store 9(count) 53
|
Store 9(count) 53
|
||||||
Branch 50
|
Branch 50
|
||||||
50: Label
|
50: Label
|
||||||
Store 54(shiftedii) 55
|
Store 54(shiftedii) 55
|
||||||
Store 56(shiftedui) 57
|
Store 56(shiftedui) 57
|
||||||
Store 58(shiftediu) 55
|
Store 58(shiftediu) 55
|
||||||
Store 59(shifteduu) 57
|
Store 59(shifteduu) 57
|
||||||
60: 7(int) Load 54(shiftedii)
|
60: 7(int) Load 54(shiftedii)
|
||||||
61: 7(int) Load 58(shiftediu)
|
61: 7(int) Load 58(shiftediu)
|
||||||
62: 21(bool) IEqual 60 61
|
62: 21(bool) IEqual 60 61
|
||||||
SelectionMerge 64 None
|
SelectionMerge 64 None
|
||||||
BranchConditional 62 63 64
|
BranchConditional 62 63 64
|
||||||
63: Label
|
63: Label
|
||||||
71: 68 Load 70(usampler)
|
72: 69 Load 71(usampler)
|
||||||
76: 73(fvec2) Load 75(tc)
|
77: 74(fvec2) Load 76(tc)
|
||||||
77: 65(ivec4) TextureSample 71 76
|
78: 65(ivec4) ImageSampleImplicitLod 72 77
|
||||||
Store 67(c) 77
|
Store 67(c) 78
|
||||||
Branch 64
|
Branch 64
|
||||||
64: Label
|
64: Label
|
||||||
78: 11(int) Load 56(shiftedui)
|
79: 11(int) Load 56(shiftedui)
|
||||||
79: 11(int) Load 59(shifteduu)
|
80: 11(int) Load 59(shifteduu)
|
||||||
80: 21(bool) IEqual 78 79
|
81: 21(bool) IEqual 79 80
|
||||||
SelectionMerge 82 None
|
SelectionMerge 83 None
|
||||||
BranchConditional 80 81 82
|
BranchConditional 81 82 83
|
||||||
81: Label
|
82: Label
|
||||||
83: 68 Load 70(usampler)
|
84: 69 Load 71(usampler)
|
||||||
84: 73(fvec2) Load 75(tc)
|
85: 74(fvec2) Load 76(tc)
|
||||||
86: 73(fvec2) CompositeConstruct 85 85
|
87: 74(fvec2) CompositeConstruct 86 86
|
||||||
87: 73(fvec2) FAdd 84 86
|
88: 74(fvec2) FAdd 85 87
|
||||||
88: 65(ivec4) TextureSample 83 87
|
89: 65(ivec4) ImageSampleImplicitLod 84 88
|
||||||
Store 67(c) 88
|
Store 67(c) 89
|
||||||
Branch 82
|
Branch 83
|
||||||
82: Label
|
83: Label
|
||||||
89: 7(int) Load 54(shiftedii)
|
90: 7(int) Load 54(shiftedii)
|
||||||
90: 11(int) Load 56(shiftedui)
|
91: 11(int) Load 56(shiftedui)
|
||||||
91: 7(int) Bitcast 90
|
92: 7(int) Bitcast 91
|
||||||
92: 21(bool) IEqual 89 91
|
93: 21(bool) IEqual 90 92
|
||||||
SelectionMerge 94 None
|
SelectionMerge 95 None
|
||||||
BranchConditional 92 93 94
|
BranchConditional 93 94 95
|
||||||
93: Label
|
94: Label
|
||||||
95: 68 Load 70(usampler)
|
96: 69 Load 71(usampler)
|
||||||
96: 73(fvec2) Load 75(tc)
|
97: 74(fvec2) Load 76(tc)
|
||||||
99: 73(fvec2) FSub 96 98
|
100: 74(fvec2) FSub 97 99
|
||||||
100: 65(ivec4) TextureSample 95 99
|
101: 65(ivec4) ImageSampleImplicitLod 96 100
|
||||||
Store 67(c) 100
|
Store 67(c) 101
|
||||||
Branch 94
|
Branch 95
|
||||||
94: Label
|
95: Label
|
||||||
101: 14(ivec2) Load 16(t)
|
102: 14(ivec2) Load 16(t)
|
||||||
102: 11(int) CompositeExtract 101 0
|
103: 11(int) CompositeExtract 102 0
|
||||||
104: 21(bool) UGreaterThan 102 103
|
105: 21(bool) UGreaterThan 103 104
|
||||||
SelectionMerge 106 None
|
SelectionMerge 107 None
|
||||||
BranchConditional 104 105 106
|
BranchConditional 105 106 107
|
||||||
105: Label
|
106: Label
|
||||||
109: 11(int) Load 13(u)
|
110: 11(int) Load 13(u)
|
||||||
110: 72(float) ConvertUToF 109
|
111: 73(float) ConvertUToF 110
|
||||||
Store 108(af) 110
|
Store 109(af) 111
|
||||||
113: 11(int) Load 13(u)
|
114: 11(int) Load 13(u)
|
||||||
115: 21(bool) INotEqual 113 114
|
116: 21(bool) INotEqual 114 115
|
||||||
Store 112(ab) 115
|
Store 113(ab) 116
|
||||||
117: 11(int) Load 13(u)
|
118: 11(int) Load 13(u)
|
||||||
118: 7(int) Bitcast 117
|
119: 7(int) Bitcast 118
|
||||||
Store 116(ai) 118
|
Store 117(ai) 119
|
||||||
119: 72(float) Load 108(af)
|
120: 73(float) Load 109(af)
|
||||||
120: 11(int) ConvertFToU 119
|
121: 11(int) ConvertFToU 120
|
||||||
121: 21(bool) Load 112(ab)
|
122: 21(bool) Load 113(ab)
|
||||||
123: 11(int) Select 121 122 114
|
124: 11(int) Select 122 123 115
|
||||||
124: 7(int) Load 116(ai)
|
125: 7(int) Load 117(ai)
|
||||||
125: 11(int) Bitcast 124
|
126: 11(int) Bitcast 125
|
||||||
126: 7(int) Load 9(count)
|
127: 7(int) Load 9(count)
|
||||||
127: 11(int) Bitcast 126
|
128: 11(int) Bitcast 127
|
||||||
128: 65(ivec4) CompositeConstruct 120 123 125 127
|
129: 65(ivec4) CompositeConstruct 121 124 126 128
|
||||||
129: 65(ivec4) Load 67(c)
|
130: 65(ivec4) Load 67(c)
|
||||||
130: 65(ivec4) IAdd 129 128
|
131: 65(ivec4) IAdd 130 129
|
||||||
Store 67(c) 130
|
Store 67(c) 131
|
||||||
Branch 106
|
Branch 107
|
||||||
106: Label
|
107: Label
|
||||||
SelectionMerge 132 None
|
SelectionMerge 133 None
|
||||||
BranchConditional 22 131 132
|
BranchConditional 22 132 133
|
||||||
131: Label
|
132: Label
|
||||||
134: 7(int) Load 9(count)
|
135: 7(int) Load 9(count)
|
||||||
135: 7(int) IMul 134 133
|
136: 7(int) IMul 135 134
|
||||||
Store 9(count) 135
|
Store 9(count) 136
|
||||||
Branch 132
|
Branch 133
|
||||||
132: Label
|
133: Label
|
||||||
SelectionMerge 137 None
|
SelectionMerge 138 None
|
||||||
BranchConditional 33 136 137
|
BranchConditional 33 137 138
|
||||||
136: Label
|
137: Label
|
||||||
139: 7(int) Load 9(count)
|
140: 7(int) Load 9(count)
|
||||||
140: 7(int) IMul 139 138
|
141: 7(int) IMul 140 139
|
||||||
Store 9(count) 140
|
Store 9(count) 141
|
||||||
Branch 137
|
Branch 138
|
||||||
137: Label
|
138: Label
|
||||||
SelectionMerge 142 None
|
SelectionMerge 143 None
|
||||||
BranchConditional 22 141 142
|
BranchConditional 22 142 143
|
||||||
141: Label
|
142: Label
|
||||||
144: 7(int) Load 9(count)
|
145: 7(int) Load 9(count)
|
||||||
145: 7(int) IMul 144 143
|
146: 7(int) IMul 145 144
|
||||||
Store 9(count) 145
|
Store 9(count) 146
|
||||||
Branch 142
|
Branch 143
|
||||||
142: Label
|
143: Label
|
||||||
SelectionMerge 147 None
|
SelectionMerge 148 None
|
||||||
BranchConditional 22 146 147
|
BranchConditional 22 147 148
|
||||||
146: Label
|
147: Label
|
||||||
149: 7(int) Load 9(count)
|
150: 7(int) Load 9(count)
|
||||||
150: 7(int) IMul 149 148
|
151: 7(int) IMul 150 149
|
||||||
Store 9(count) 150
|
Store 9(count) 151
|
||||||
Branch 147
|
Branch 148
|
||||||
147: Label
|
148: Label
|
||||||
Store 151(mask1) 152
|
Store 152(mask1) 153
|
||||||
Store 153(mask2) 154
|
Store 154(mask2) 155
|
||||||
156: 11(int) Load 151(mask1)
|
157: 11(int) Load 152(mask1)
|
||||||
158: 11(int) ShiftLeftLogical 156 157
|
159: 11(int) ShiftLeftLogical 157 158
|
||||||
Store 155(mask3) 158
|
Store 156(mask3) 159
|
||||||
Store 159(mask4) 160
|
Store 160(mask4) 161
|
||||||
161: 11(int) Load 155(mask3)
|
162: 11(int) Load 156(mask3)
|
||||||
162: 11(int) Load 153(mask2)
|
163: 11(int) Load 154(mask2)
|
||||||
163: 21(bool) IEqual 161 162
|
164: 21(bool) IEqual 162 163
|
||||||
SelectionMerge 165 None
|
SelectionMerge 166 None
|
||||||
BranchConditional 163 164 165
|
BranchConditional 164 165 166
|
||||||
164: Label
|
165: Label
|
||||||
166: 7(int) Load 9(count)
|
167: 7(int) Load 9(count)
|
||||||
167: 7(int) IMul 166 25
|
168: 7(int) IMul 167 25
|
||||||
Store 9(count) 167
|
Store 9(count) 168
|
||||||
Branch 165
|
Branch 166
|
||||||
165: Label
|
166: Label
|
||||||
168: 11(int) Load 155(mask3)
|
169: 11(int) Load 156(mask3)
|
||||||
169: 11(int) Load 151(mask1)
|
170: 11(int) Load 152(mask1)
|
||||||
170: 11(int) BitwiseAnd 168 169
|
171: 11(int) BitwiseAnd 169 170
|
||||||
171: 21(bool) INotEqual 170 114
|
172: 21(bool) INotEqual 171 115
|
||||||
SelectionMerge 173 None
|
SelectionMerge 174 None
|
||||||
BranchConditional 171 172 173
|
BranchConditional 172 173 174
|
||||||
172: Label
|
173: Label
|
||||||
174: 7(int) Load 9(count)
|
175: 7(int) Load 9(count)
|
||||||
175: 7(int) IMul 174 30
|
176: 7(int) IMul 175 30
|
||||||
Store 9(count) 175
|
Store 9(count) 176
|
||||||
Branch 173
|
Branch 174
|
||||||
173: Label
|
174: Label
|
||||||
176: 11(int) Load 151(mask1)
|
177: 11(int) Load 152(mask1)
|
||||||
177: 11(int) Load 155(mask3)
|
178: 11(int) Load 156(mask3)
|
||||||
178: 11(int) BitwiseOr 176 177
|
179: 11(int) BitwiseOr 177 178
|
||||||
179: 11(int) Load 159(mask4)
|
180: 11(int) Load 160(mask4)
|
||||||
180: 21(bool) IEqual 178 179
|
181: 21(bool) IEqual 179 180
|
||||||
SelectionMerge 182 None
|
SelectionMerge 183 None
|
||||||
BranchConditional 180 181 182
|
BranchConditional 181 182 183
|
||||||
181: Label
|
182: Label
|
||||||
183: 7(int) Load 9(count)
|
184: 7(int) Load 9(count)
|
||||||
184: 7(int) IMul 183 36
|
185: 7(int) IMul 184 36
|
||||||
Store 9(count) 184
|
Store 9(count) 185
|
||||||
Branch 182
|
Branch 183
|
||||||
182: Label
|
183: Label
|
||||||
185: 11(int) Load 151(mask1)
|
186: 11(int) Load 152(mask1)
|
||||||
186: 11(int) Load 159(mask4)
|
187: 11(int) Load 160(mask4)
|
||||||
187: 11(int) BitwiseXor 185 186
|
188: 11(int) BitwiseXor 186 187
|
||||||
188: 21(bool) IEqual 187 154
|
189: 21(bool) IEqual 188 155
|
||||||
SelectionMerge 190 None
|
SelectionMerge 191 None
|
||||||
BranchConditional 188 189 190
|
BranchConditional 189 190 191
|
||||||
189: Label
|
190: Label
|
||||||
191: 7(int) Load 9(count)
|
192: 7(int) Load 9(count)
|
||||||
192: 7(int) IMul 191 41
|
193: 7(int) IMul 192 41
|
||||||
Store 9(count) 192
|
Store 9(count) 193
|
||||||
Branch 190
|
Branch 191
|
||||||
190: Label
|
191: Label
|
||||||
193: 7(int) Load 9(count)
|
194: 7(int) Load 9(count)
|
||||||
194: 11(int) Bitcast 193
|
195: 11(int) Bitcast 194
|
||||||
195: 65(ivec4) CompositeConstruct 194 194 194 194
|
196: 65(ivec4) CompositeConstruct 195 195 195 195
|
||||||
196: 65(ivec4) Load 67(c)
|
197: 65(ivec4) Load 67(c)
|
||||||
197: 65(ivec4) IAdd 196 195
|
198: 65(ivec4) IAdd 197 196
|
||||||
Store 67(c) 197
|
Store 67(c) 198
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 52
|
// Id's are bound by 53
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "texColor"
|
Name 10 "texColor"
|
||||||
Name 15 "color"
|
Name 15 "color"
|
||||||
Name 26 "inColor"
|
Name 26 "inColor"
|
||||||
Name 36 "alpha"
|
Name 36 "alpha"
|
||||||
Name 47 "gl_FragColor"
|
Name 47 "gl_FragColor"
|
||||||
Name 51 "texSampler2D"
|
Name 52 "texSampler2D"
|
||||||
Decorate 47(gl_FragColor) BuiltIn FragColor
|
Decorate 47(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 51(texSampler2D) NoStaticUse
|
Decorate 52(texSampler2D) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
@ -29,50 +31,51 @@ Linked fragment stage:
|
|||||||
12: 11(int) Constant 6
|
12: 11(int) Constant 6
|
||||||
13: TypeArray 8(fvec4) 12
|
13: TypeArray 8(fvec4) 12
|
||||||
14: TypePointer UniformConstant 13
|
14: TypePointer UniformConstant 13
|
||||||
15(color): 14(ptr) Variable UniformConstant
|
15(color): 14(ptr) Variable UniformConstant
|
||||||
16: TypeInt 32 1
|
16: TypeInt 32 1
|
||||||
17: 16(int) Constant 1
|
17: 16(int) Constant 1
|
||||||
18: TypePointer UniformConstant 8(fvec4)
|
18: TypePointer UniformConstant 8(fvec4)
|
||||||
24: TypeVector 7(float) 3
|
24: TypeVector 7(float) 3
|
||||||
25: TypePointer UniformConstant 24(fvec3)
|
25: TypePointer UniformConstant 24(fvec3)
|
||||||
26(inColor): 25(ptr) Variable UniformConstant
|
26(inColor): 25(ptr) Variable UniformConstant
|
||||||
33: 11(int) Constant 16
|
33: 11(int) Constant 16
|
||||||
34: TypeArray 7(float) 33
|
34: TypeArray 7(float) 33
|
||||||
35: TypePointer UniformConstant 34
|
35: TypePointer UniformConstant 34
|
||||||
36(alpha): 35(ptr) Variable UniformConstant
|
36(alpha): 35(ptr) Variable UniformConstant
|
||||||
37: 16(int) Constant 12
|
37: 16(int) Constant 12
|
||||||
38: TypePointer UniformConstant 7(float)
|
38: TypePointer UniformConstant 7(float)
|
||||||
46: TypePointer Output 8(fvec4)
|
46: TypePointer Output 8(fvec4)
|
||||||
47(gl_FragColor): 46(ptr) Variable Output
|
47(gl_FragColor): 46(ptr) Variable Output
|
||||||
49: TypeSampler7(float) 2D filter+texture
|
49: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
50: TypePointer UniformConstant 49
|
50: TypeSampledImage 49
|
||||||
51(texSampler2D): 50(ptr) Variable UniformConstant
|
51: TypePointer UniformConstant 50
|
||||||
|
52(texSampler2D): 51(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(texColor): 9(ptr) Variable Function
|
10(texColor): 9(ptr) Variable Function
|
||||||
19: 18(ptr) AccessChain 15(color) 17
|
19: 18(ptr) AccessChain 15(color) 17
|
||||||
20: 8(fvec4) Load 19
|
20: 8(fvec4) Load 19
|
||||||
21: 18(ptr) AccessChain 15(color) 17
|
21: 18(ptr) AccessChain 15(color) 17
|
||||||
22: 8(fvec4) Load 21
|
22: 8(fvec4) Load 21
|
||||||
23: 8(fvec4) FAdd 20 22
|
23: 8(fvec4) FAdd 20 22
|
||||||
Store 10(texColor) 23
|
Store 10(texColor) 23
|
||||||
27: 24(fvec3) Load 26(inColor)
|
27: 24(fvec3) Load 26(inColor)
|
||||||
28: 8(fvec4) Load 10(texColor)
|
28: 8(fvec4) Load 10(texColor)
|
||||||
29: 24(fvec3) VectorShuffle 28 28 0 1 2
|
29: 24(fvec3) VectorShuffle 28 28 0 1 2
|
||||||
30: 24(fvec3) FAdd 29 27
|
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
|
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
|
39: 38(ptr) AccessChain 36(alpha) 37
|
||||||
40: 7(float) Load 39
|
40: 7(float) Load 39
|
||||||
41: 8(fvec4) Load 10(texColor)
|
41: 8(fvec4) Load 10(texColor)
|
||||||
42: 7(float) CompositeExtract 41 3
|
42: 7(float) CompositeExtract 41 3
|
||||||
43: 7(float) FAdd 42 40
|
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
|
45: 8(fvec4) CompositeInsert 43 44 3
|
||||||
Store 10(texColor) 45
|
Store 10(texColor) 45
|
||||||
48: 8(fvec4) Load 10(texColor)
|
48: 8(fvec4) Load 10(texColor)
|
||||||
Store 47(gl_FragColor) 48
|
Store 47(gl_FragColor) 48
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 93
|
// Id's are bound by 94
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "iLocal"
|
Name 9 "iLocal"
|
||||||
Name 11 "Count"
|
Name 11 "Count"
|
||||||
@ -33,17 +35,17 @@ Linked fragment stage:
|
|||||||
Name 35 "foo2"
|
Name 35 "foo2"
|
||||||
Name 37 "foo"
|
Name 37 "foo"
|
||||||
Name 55 "gl_FragColor"
|
Name 55 "gl_FragColor"
|
||||||
Name 59 "sampler"
|
Name 60 "sampler"
|
||||||
Name 63 "coord"
|
Name 64 "coord"
|
||||||
Name 69 "constructed"
|
Name 70 "constructed"
|
||||||
Decorate 55(gl_FragColor) BuiltIn FragColor
|
Decorate 55(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 63(coord) Smooth
|
Decorate 64(coord) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: TypePointer UniformConstant 7(int)
|
10: TypePointer UniformConstant 7(int)
|
||||||
11(Count): 10(ptr) Variable UniformConstant
|
11(Count): 10(ptr) Variable UniformConstant
|
||||||
13: TypeFloat 32
|
13: TypeFloat 32
|
||||||
14(lunarStruct1): TypeStruct 7(int) 13(float)
|
14(lunarStruct1): TypeStruct 7(int) 13(float)
|
||||||
15(lunarStruct2): TypeStruct 7(int) 13(float) 14(lunarStruct1)
|
15(lunarStruct2): TypeStruct 7(int) 13(float) 14(lunarStruct1)
|
||||||
@ -52,7 +54,7 @@ Linked fragment stage:
|
|||||||
18: TypeArray 15(lunarStruct2) 17
|
18: TypeArray 15(lunarStruct2) 17
|
||||||
19(lunarStruct3): TypeStruct 18 7(int) 13(float) 14(lunarStruct1)
|
19(lunarStruct3): TypeStruct 18 7(int) 13(float) 14(lunarStruct1)
|
||||||
20: TypePointer UniformConstant 19(lunarStruct3)
|
20: TypePointer UniformConstant 19(lunarStruct3)
|
||||||
21(foo3): 20(ptr) Variable UniformConstant
|
21(foo3): 20(ptr) Variable UniformConstant
|
||||||
22: 7(int) Constant 0
|
22: 7(int) Constant 0
|
||||||
23: 7(int) Constant 1
|
23: 7(int) Constant 1
|
||||||
26: TypeBool
|
26: TypeBool
|
||||||
@ -60,85 +62,86 @@ Linked fragment stage:
|
|||||||
32: 16(int) Constant 5
|
32: 16(int) Constant 5
|
||||||
33: TypeArray 15(lunarStruct2) 32
|
33: TypeArray 15(lunarStruct2) 32
|
||||||
34: TypePointer UniformConstant 33
|
34: TypePointer UniformConstant 33
|
||||||
35(foo2): 34(ptr) Variable UniformConstant
|
35(foo2): 34(ptr) Variable UniformConstant
|
||||||
36: TypePointer UniformConstant 14(lunarStruct1)
|
36: TypePointer UniformConstant 14(lunarStruct1)
|
||||||
37(foo): 36(ptr) Variable UniformConstant
|
37(foo): 36(ptr) Variable UniformConstant
|
||||||
42: 7(int) Constant 2
|
42: 7(int) Constant 2
|
||||||
47: TypePointer UniformConstant 13(float)
|
47: TypePointer UniformConstant 13(float)
|
||||||
53: TypeVector 13(float) 4
|
53: TypeVector 13(float) 4
|
||||||
54: TypePointer Output 53(fvec4)
|
54: TypePointer Output 53(fvec4)
|
||||||
55(gl_FragColor): 54(ptr) Variable Output
|
55(gl_FragColor): 54(ptr) Variable Output
|
||||||
57: TypeSampler13(float) 2D filter+texture
|
57: TypeImage 13(float) 2D sampled format:Unknown
|
||||||
58: TypePointer UniformConstant 57
|
58: TypeSampledImage 57
|
||||||
59(sampler): 58(ptr) Variable UniformConstant
|
59: TypePointer UniformConstant 58
|
||||||
61: TypeVector 13(float) 2
|
60(sampler): 59(ptr) Variable UniformConstant
|
||||||
62: TypePointer Input 61(fvec2)
|
62: TypeVector 13(float) 2
|
||||||
63(coord): 62(ptr) Variable Input
|
63: TypePointer Input 62(fvec2)
|
||||||
67: TypeArray 61(fvec2) 17
|
64(coord): 63(ptr) Variable Input
|
||||||
68: TypePointer Function 67
|
68: TypeArray 62(fvec2) 17
|
||||||
73: 13(float) Constant 1065353216
|
69: TypePointer Function 68
|
||||||
74: 13(float) Constant 1073741824
|
74: 13(float) Constant 1065353216
|
||||||
75: 61(fvec2) ConstantComposite 73 74
|
75: 13(float) Constant 1073741824
|
||||||
79: TypePointer Function 61(fvec2)
|
76: 62(fvec2) ConstantComposite 74 75
|
||||||
|
80: TypePointer Function 62(fvec2)
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(iLocal): 8(ptr) Variable Function
|
9(iLocal): 8(ptr) Variable Function
|
||||||
31(scale): 30(ptr) Variable Function
|
31(scale): 30(ptr) Variable Function
|
||||||
69(constructed): 68(ptr) Variable Function
|
70(constructed): 69(ptr) Variable Function
|
||||||
12: 7(int) Load 11(Count)
|
12: 7(int) Load 11(Count)
|
||||||
Store 9(iLocal) 12
|
Store 9(iLocal) 12
|
||||||
24: 10(ptr) AccessChain 21(foo3) 22 23 22
|
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
|
27: 26(bool) SGreaterThan 25 22
|
||||||
SelectionMerge 29 None
|
SelectionMerge 29 None
|
||||||
BranchConditional 27 28 50
|
BranchConditional 27 28 50
|
||||||
28: Label
|
28: Label
|
||||||
38: 10(ptr) AccessChain 37(foo) 22
|
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
|
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
|
43: 7(int) IAdd 41 42
|
||||||
44: 7(int) Load 9(iLocal)
|
44: 7(int) Load 9(iLocal)
|
||||||
45: 7(int) IAdd 44 23
|
45: 7(int) IAdd 44 23
|
||||||
Store 9(iLocal) 45
|
Store 9(iLocal) 45
|
||||||
46: 7(int) IAdd 43 45
|
46: 7(int) IAdd 43 45
|
||||||
48: 47(ptr) AccessChain 35(foo2) 46 42 23
|
48: 47(ptr) AccessChain 35(foo2) 46 42 23
|
||||||
49: 13(float) Load 48
|
49: 13(float) Load 48
|
||||||
Store 31(scale) 49
|
Store 31(scale) 49
|
||||||
Branch 29
|
Branch 29
|
||||||
50: Label
|
50: Label
|
||||||
51: 47(ptr) AccessChain 21(foo3) 22 22 42 23
|
51: 47(ptr) AccessChain 21(foo3) 22 22 42 23
|
||||||
52: 13(float) Load 51
|
52: 13(float) Load 51
|
||||||
Store 31(scale) 52
|
Store 31(scale) 52
|
||||||
Branch 29
|
Branch 29
|
||||||
29: Label
|
29: Label
|
||||||
56: 13(float) Load 31(scale)
|
56: 13(float) Load 31(scale)
|
||||||
60: 57 Load 59(sampler)
|
61: 58 Load 60(sampler)
|
||||||
64: 61(fvec2) Load 63(coord)
|
65: 62(fvec2) Load 64(coord)
|
||||||
65: 53(fvec4) TextureSample 60 64
|
66: 53(fvec4) ImageSampleImplicitLod 61 65
|
||||||
66: 53(fvec4) VectorTimesScalar 65 56
|
67: 53(fvec4) VectorTimesScalar 66 56
|
||||||
Store 55(gl_FragColor) 66
|
Store 55(gl_FragColor) 67
|
||||||
70: 61(fvec2) Load 63(coord)
|
71: 62(fvec2) Load 64(coord)
|
||||||
71: 13(float) Load 31(scale)
|
72: 13(float) Load 31(scale)
|
||||||
72: 61(fvec2) CompositeConstruct 71 71
|
73: 62(fvec2) CompositeConstruct 72 72
|
||||||
76: 67 CompositeConstruct 70 72 75
|
77: 68 CompositeConstruct 71 73 76
|
||||||
Store 69(constructed) 76
|
Store 70(constructed) 77
|
||||||
77: 10(ptr) AccessChain 37(foo) 22
|
78: 10(ptr) AccessChain 37(foo) 22
|
||||||
78: 7(int) Load 77
|
79: 7(int) Load 78
|
||||||
80: 79(ptr) AccessChain 69(constructed) 78
|
81: 80(ptr) AccessChain 70(constructed) 79
|
||||||
81: 61(fvec2) Load 80
|
82: 62(fvec2) Load 81
|
||||||
82: 10(ptr) AccessChain 37(foo) 22
|
83: 10(ptr) AccessChain 37(foo) 22
|
||||||
83: 7(int) Load 82
|
84: 7(int) Load 83
|
||||||
84: 79(ptr) AccessChain 69(constructed) 83
|
85: 80(ptr) AccessChain 70(constructed) 84
|
||||||
85: 61(fvec2) Load 84
|
86: 62(fvec2) Load 85
|
||||||
86: 13(float) CompositeExtract 81 0
|
87: 13(float) CompositeExtract 82 0
|
||||||
87: 13(float) CompositeExtract 81 1
|
88: 13(float) CompositeExtract 82 1
|
||||||
88: 13(float) CompositeExtract 85 0
|
89: 13(float) CompositeExtract 86 0
|
||||||
89: 13(float) CompositeExtract 85 1
|
90: 13(float) CompositeExtract 86 1
|
||||||
90: 53(fvec4) CompositeConstruct 86 87 88 89
|
91: 53(fvec4) CompositeConstruct 87 88 89 90
|
||||||
91: 53(fvec4) Load 55(gl_FragColor)
|
92: 53(fvec4) Load 55(gl_FragColor)
|
||||||
92: 53(fvec4) FAdd 91 90
|
93: 53(fvec4) FAdd 92 91
|
||||||
Store 55(gl_FragColor) 92
|
Store 55(gl_FragColor) 93
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 61
|
// Id's are bound by 62
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "texColor"
|
Name 10 "texColor"
|
||||||
Name 13 "texSampler2D"
|
Name 14 "texSampler2D"
|
||||||
Name 19 "gl_TexCoord"
|
Name 20 "gl_TexCoord"
|
||||||
Name 34 "color"
|
Name 35 "color"
|
||||||
Name 39 "alpha"
|
Name 40 "alpha"
|
||||||
Name 44 "gl_FragColor"
|
Name 45 "gl_FragColor"
|
||||||
Name 48 "foo"
|
Name 49 "foo"
|
||||||
Decorate 19(gl_TexCoord) Smooth
|
Decorate 20(gl_TexCoord) Smooth
|
||||||
Decorate 34(color) Smooth
|
Decorate 35(color) Smooth
|
||||||
Decorate 39(alpha) Smooth
|
Decorate 40(alpha) Smooth
|
||||||
Decorate 44(gl_FragColor) BuiltIn FragColor
|
Decorate 45(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 48(foo) Smooth
|
Decorate 49(foo) Smooth
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypeSampler7(float) 2D filter+texture
|
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
12: TypePointer UniformConstant 11
|
12: TypeSampledImage 11
|
||||||
13(texSampler2D): 12(ptr) Variable UniformConstant
|
13: TypePointer UniformConstant 12
|
||||||
15: TypeInt 32 0
|
14(texSampler2D): 13(ptr) Variable UniformConstant
|
||||||
16: 15(int) Constant 6
|
16: TypeInt 32 0
|
||||||
17: TypeArray 8(fvec4) 16
|
17: 16(int) Constant 6
|
||||||
18: TypePointer Input 17
|
18: TypeArray 8(fvec4) 17
|
||||||
19(gl_TexCoord): 18(ptr) Variable Input
|
19: TypePointer Input 18
|
||||||
20: TypeInt 32 1
|
20(gl_TexCoord): 19(ptr) Variable Input
|
||||||
21: 20(int) Constant 4
|
21: TypeInt 32 1
|
||||||
22: TypePointer Input 8(fvec4)
|
22: 21(int) Constant 4
|
||||||
25: 20(int) Constant 5
|
23: TypePointer Input 8(fvec4)
|
||||||
29: TypeVector 7(float) 2
|
26: 21(int) Constant 5
|
||||||
34(color): 22(ptr) Variable Input
|
30: TypeVector 7(float) 2
|
||||||
38: TypePointer Input 7(float)
|
35(color): 23(ptr) Variable Input
|
||||||
39(alpha): 38(ptr) Variable Input
|
39: TypePointer Input 7(float)
|
||||||
43: TypePointer Output 8(fvec4)
|
40(alpha): 39(ptr) Variable Input
|
||||||
44(gl_FragColor): 43(ptr) Variable Output
|
44: TypePointer Output 8(fvec4)
|
||||||
45: 15(int) Constant 3
|
45(gl_FragColor): 44(ptr) Variable Output
|
||||||
46: TypeArray 8(fvec4) 45
|
46: 16(int) Constant 3
|
||||||
47: TypePointer Input 46
|
47: TypeArray 8(fvec4) 46
|
||||||
48(foo): 47(ptr) Variable Input
|
48: TypePointer Input 47
|
||||||
49: 20(int) Constant 1
|
49(foo): 48(ptr) Variable Input
|
||||||
52: 20(int) Constant 0
|
50: 21(int) Constant 1
|
||||||
|
53: 21(int) Constant 0
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(texColor): 9(ptr) Variable Function
|
10(texColor): 9(ptr) Variable Function
|
||||||
14: 11 Load 13(texSampler2D)
|
15: 12 Load 14(texSampler2D)
|
||||||
23: 22(ptr) AccessChain 19(gl_TexCoord) 21
|
24: 23(ptr) AccessChain 20(gl_TexCoord) 22
|
||||||
24: 8(fvec4) Load 23
|
25: 8(fvec4) Load 24
|
||||||
26: 22(ptr) AccessChain 19(gl_TexCoord) 25
|
27: 23(ptr) AccessChain 20(gl_TexCoord) 26
|
||||||
27: 8(fvec4) Load 26
|
28: 8(fvec4) Load 27
|
||||||
28: 8(fvec4) FAdd 24 27
|
29: 8(fvec4) FAdd 25 28
|
||||||
30: 7(float) CompositeExtract 28 0
|
31: 7(float) CompositeExtract 29 0
|
||||||
31: 7(float) CompositeExtract 28 1
|
32: 7(float) CompositeExtract 29 1
|
||||||
32: 29(fvec2) CompositeConstruct 30 31
|
33: 30(fvec2) CompositeConstruct 31 32
|
||||||
33: 8(fvec4) TextureSample 14 32
|
34: 8(fvec4) ImageSampleImplicitLod 15 33
|
||||||
Store 10(texColor) 33
|
Store 10(texColor) 34
|
||||||
35: 8(fvec4) Load 34(color)
|
36: 8(fvec4) Load 35(color)
|
||||||
36: 8(fvec4) Load 10(texColor)
|
37: 8(fvec4) Load 10(texColor)
|
||||||
37: 8(fvec4) FAdd 36 35
|
38: 8(fvec4) FAdd 37 36
|
||||||
Store 10(texColor) 37
|
Store 10(texColor) 38
|
||||||
40: 7(float) Load 39(alpha)
|
41: 7(float) Load 40(alpha)
|
||||||
41: 8(fvec4) Load 10(texColor)
|
42: 8(fvec4) Load 10(texColor)
|
||||||
42: 8(fvec4) CompositeInsert 40 41 3
|
43: 8(fvec4) CompositeInsert 41 42 3
|
||||||
Store 10(texColor) 42
|
Store 10(texColor) 43
|
||||||
50: 22(ptr) AccessChain 48(foo) 49
|
51: 23(ptr) AccessChain 49(foo) 50
|
||||||
51: 8(fvec4) Load 50
|
52: 8(fvec4) Load 51
|
||||||
53: 22(ptr) AccessChain 19(gl_TexCoord) 52
|
54: 23(ptr) AccessChain 20(gl_TexCoord) 53
|
||||||
54: 8(fvec4) Load 53
|
55: 8(fvec4) Load 54
|
||||||
55: 8(fvec4) FAdd 51 54
|
56: 8(fvec4) FAdd 52 55
|
||||||
56: 22(ptr) AccessChain 19(gl_TexCoord) 21
|
57: 23(ptr) AccessChain 20(gl_TexCoord) 22
|
||||||
57: 8(fvec4) Load 56
|
58: 8(fvec4) Load 57
|
||||||
58: 8(fvec4) FAdd 55 57
|
59: 8(fvec4) FAdd 56 58
|
||||||
59: 8(fvec4) Load 10(texColor)
|
60: 8(fvec4) Load 10(texColor)
|
||||||
60: 8(fvec4) FAdd 58 59
|
61: 8(fvec4) FAdd 59 60
|
||||||
Store 44(gl_FragColor) 60
|
Store 45(gl_FragColor) 61
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Module Version 99
|
||||||
// Generated by (magic number): 51a00bb
|
// Generated by (magic number): 51a00bb
|
||||||
// Id's are bound by 69
|
// Id's are bound by 70
|
||||||
|
|
||||||
Source GLSL 130
|
Source GLSL 130
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "texColor"
|
Name 10 "texColor"
|
||||||
Name 13 "texSampler2D"
|
Name 14 "texSampler2D"
|
||||||
Name 19 "userIn"
|
Name 20 "userIn"
|
||||||
Name 22 "b"
|
Name 23 "b"
|
||||||
Name 30 "gl_TexCoord"
|
Name 31 "gl_TexCoord"
|
||||||
Name 31 "a"
|
Name 32 "a"
|
||||||
Name 45 "color"
|
Name 46 "color"
|
||||||
Name 50 "alpha"
|
Name 51 "alpha"
|
||||||
Name 55 "gl_FragColor"
|
Name 56 "gl_FragColor"
|
||||||
Decorate 19(userIn) Smooth
|
Decorate 20(userIn) Smooth
|
||||||
Decorate 30(gl_TexCoord) Smooth
|
Decorate 31(gl_TexCoord) Smooth
|
||||||
Decorate 45(color) Smooth
|
Decorate 46(color) Smooth
|
||||||
Decorate 50(alpha) Smooth
|
Decorate 51(alpha) Smooth
|
||||||
Decorate 55(gl_FragColor) BuiltIn FragColor
|
Decorate 56(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypeSampler7(float) 2D filter+texture
|
11: TypeImage 7(float) 2D sampled format:Unknown
|
||||||
12: TypePointer UniformConstant 11
|
12: TypeSampledImage 11
|
||||||
13(texSampler2D): 12(ptr) Variable UniformConstant
|
13: TypePointer UniformConstant 12
|
||||||
15: TypeInt 32 0
|
14(texSampler2D): 13(ptr) Variable UniformConstant
|
||||||
16: 15(int) Constant 2
|
16: TypeInt 32 0
|
||||||
17: TypeArray 8(fvec4) 16
|
17: 16(int) Constant 2
|
||||||
18: TypePointer Input 17
|
18: TypeArray 8(fvec4) 17
|
||||||
19(userIn): 18(ptr) Variable Input
|
19: TypePointer Input 18
|
||||||
20: TypeInt 32 1
|
20(userIn): 19(ptr) Variable Input
|
||||||
21: TypePointer UniformConstant 20(int)
|
21: TypeInt 32 1
|
||||||
22(b): 21(ptr) Variable UniformConstant
|
22: TypePointer UniformConstant 21(int)
|
||||||
24: TypePointer Input 8(fvec4)
|
23(b): 22(ptr) Variable UniformConstant
|
||||||
27: 15(int) Constant 6
|
25: TypePointer Input 8(fvec4)
|
||||||
28: TypeArray 8(fvec4) 27
|
28: 16(int) Constant 6
|
||||||
29: TypePointer Input 28
|
29: TypeArray 8(fvec4) 28
|
||||||
30(gl_TexCoord): 29(ptr) Variable Input
|
30: TypePointer Input 29
|
||||||
31(a): 21(ptr) Variable UniformConstant
|
31(gl_TexCoord): 30(ptr) Variable Input
|
||||||
36: 20(int) Constant 5
|
32(a): 22(ptr) Variable UniformConstant
|
||||||
40: TypeVector 7(float) 2
|
37: 21(int) Constant 5
|
||||||
45(color): 24(ptr) Variable Input
|
41: TypeVector 7(float) 2
|
||||||
49: TypePointer Input 7(float)
|
46(color): 25(ptr) Variable Input
|
||||||
50(alpha): 49(ptr) Variable Input
|
50: TypePointer Input 7(float)
|
||||||
54: TypePointer Output 8(fvec4)
|
51(alpha): 50(ptr) Variable Input
|
||||||
55(gl_FragColor): 54(ptr) Variable Output
|
55: TypePointer Output 8(fvec4)
|
||||||
56: 20(int) Constant 0
|
56(gl_FragColor): 55(ptr) Variable Output
|
||||||
|
57: 21(int) Constant 0
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(texColor): 9(ptr) Variable Function
|
10(texColor): 9(ptr) Variable Function
|
||||||
14: 11 Load 13(texSampler2D)
|
15: 12 Load 14(texSampler2D)
|
||||||
23: 20(int) Load 22(b)
|
24: 21(int) Load 23(b)
|
||||||
25: 24(ptr) AccessChain 19(userIn) 23
|
26: 25(ptr) AccessChain 20(userIn) 24
|
||||||
26: 8(fvec4) Load 25
|
27: 8(fvec4) Load 26
|
||||||
32: 20(int) Load 31(a)
|
33: 21(int) Load 32(a)
|
||||||
33: 24(ptr) AccessChain 30(gl_TexCoord) 32
|
34: 25(ptr) AccessChain 31(gl_TexCoord) 33
|
||||||
34: 8(fvec4) Load 33
|
35: 8(fvec4) Load 34
|
||||||
35: 8(fvec4) FAdd 26 34
|
36: 8(fvec4) FAdd 27 35
|
||||||
37: 24(ptr) AccessChain 30(gl_TexCoord) 36
|
38: 25(ptr) AccessChain 31(gl_TexCoord) 37
|
||||||
38: 8(fvec4) Load 37
|
39: 8(fvec4) Load 38
|
||||||
39: 8(fvec4) FAdd 35 38
|
40: 8(fvec4) FAdd 36 39
|
||||||
41: 7(float) CompositeExtract 39 0
|
42: 7(float) CompositeExtract 40 0
|
||||||
42: 7(float) CompositeExtract 39 1
|
43: 7(float) CompositeExtract 40 1
|
||||||
43: 40(fvec2) CompositeConstruct 41 42
|
44: 41(fvec2) CompositeConstruct 42 43
|
||||||
44: 8(fvec4) TextureSample 14 43
|
45: 8(fvec4) ImageSampleImplicitLod 15 44
|
||||||
Store 10(texColor) 44
|
Store 10(texColor) 45
|
||||||
46: 8(fvec4) Load 45(color)
|
47: 8(fvec4) Load 46(color)
|
||||||
47: 8(fvec4) Load 10(texColor)
|
48: 8(fvec4) Load 10(texColor)
|
||||||
48: 8(fvec4) FAdd 47 46
|
49: 8(fvec4) FAdd 48 47
|
||||||
Store 10(texColor) 48
|
Store 10(texColor) 49
|
||||||
51: 7(float) Load 50(alpha)
|
52: 7(float) Load 51(alpha)
|
||||||
52: 8(fvec4) Load 10(texColor)
|
53: 8(fvec4) Load 10(texColor)
|
||||||
53: 8(fvec4) CompositeInsert 51 52 3
|
54: 8(fvec4) CompositeInsert 52 53 3
|
||||||
Store 10(texColor) 53
|
Store 10(texColor) 54
|
||||||
57: 24(ptr) AccessChain 30(gl_TexCoord) 56
|
58: 25(ptr) AccessChain 31(gl_TexCoord) 57
|
||||||
58: 8(fvec4) Load 57
|
59: 8(fvec4) Load 58
|
||||||
59: 20(int) Load 22(b)
|
60: 21(int) Load 23(b)
|
||||||
60: 24(ptr) AccessChain 30(gl_TexCoord) 59
|
61: 25(ptr) AccessChain 31(gl_TexCoord) 60
|
||||||
61: 8(fvec4) Load 60
|
62: 8(fvec4) Load 61
|
||||||
62: 8(fvec4) FAdd 58 61
|
63: 8(fvec4) FAdd 59 62
|
||||||
63: 8(fvec4) Load 10(texColor)
|
64: 8(fvec4) Load 10(texColor)
|
||||||
64: 8(fvec4) FAdd 62 63
|
65: 8(fvec4) FAdd 63 64
|
||||||
65: 20(int) Load 31(a)
|
66: 21(int) Load 32(a)
|
||||||
66: 24(ptr) AccessChain 19(userIn) 65
|
67: 25(ptr) AccessChain 20(userIn) 66
|
||||||
67: 8(fvec4) Load 66
|
68: 8(fvec4) Load 67
|
||||||
68: 8(fvec4) FAdd 64 67
|
69: 8(fvec4) FAdd 65 68
|
||||||
Store 55(gl_FragColor) 68
|
Store 56(gl_FragColor) 69
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 43
|
||||||
|
|
||||||
Source GLSL 120
|
Source GLSL 120
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 7 "foo("
|
Name 7 "foo("
|
||||||
Name 9 "foo2("
|
Name 9 "foo2("
|
||||||
@ -21,58 +23,58 @@ Linked fragment stage:
|
|||||||
Name 40 "BaseColor"
|
Name 40 "BaseColor"
|
||||||
Name 42 "d"
|
Name 42 "d"
|
||||||
Decorate 36(gl_FragColor) BuiltIn FragColor
|
Decorate 36(gl_FragColor) BuiltIn FragColor
|
||||||
Decorate 40(BaseColor) Smooth
|
Decorate 40(BaseColor) Smooth
|
||||||
Decorate 40(BaseColor) NoStaticUse
|
Decorate 40(BaseColor) NoStaticUse
|
||||||
Decorate 42(d) NoStaticUse
|
Decorate 42(d) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
11: TypeFloat 32
|
11: TypeFloat 32
|
||||||
12: TypePointer PrivateGlobal 11(float)
|
12: TypePointer PrivateGlobal 11(float)
|
||||||
13(bar): 12(ptr) Variable PrivateGlobal
|
13(bar): 12(ptr) Variable PrivateGlobal
|
||||||
14: 11(float) Constant 1073741824
|
14: 11(float) Constant 1073741824
|
||||||
16: 11(float) Constant 1065353216
|
16: 11(float) Constant 1065353216
|
||||||
21: TypeVector 11(float) 4
|
21: TypeVector 11(float) 4
|
||||||
22: TypePointer Function 21(fvec4)
|
22: TypePointer Function 21(fvec4)
|
||||||
24: TypePointer UniformConstant 21(fvec4)
|
24: TypePointer UniformConstant 21(fvec4)
|
||||||
25(bigColor): 24(ptr) Variable UniformConstant
|
25(bigColor): 24(ptr) Variable UniformConstant
|
||||||
35: TypePointer Output 21(fvec4)
|
35: TypePointer Output 21(fvec4)
|
||||||
36(gl_FragColor): 35(ptr) Variable Output
|
36(gl_FragColor): 35(ptr) Variable Output
|
||||||
39: TypePointer Input 21(fvec4)
|
39: TypePointer Input 21(fvec4)
|
||||||
40(BaseColor): 39(ptr) Variable Input
|
40(BaseColor): 39(ptr) Variable Input
|
||||||
41: TypePointer UniformConstant 11(float)
|
41: TypePointer UniformConstant 11(float)
|
||||||
42(d): 41(ptr) Variable UniformConstant
|
42(d): 41(ptr) Variable UniformConstant
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
23(outColor): 22(ptr) Variable Function
|
23(outColor): 22(ptr) Variable Function
|
||||||
Store 13(bar) 14
|
Store 13(bar) 14
|
||||||
26: 21(fvec4) Load 25(bigColor)
|
26: 21(fvec4) Load 25(bigColor)
|
||||||
Store 23(outColor) 26
|
Store 23(outColor) 26
|
||||||
27: 2 FunctionCall 7(foo()
|
27: 2 FunctionCall 7(foo()
|
||||||
28: 2 FunctionCall 9(foo2()
|
28: 2 FunctionCall 9(foo2()
|
||||||
29: 11(float) Load 13(bar)
|
29: 11(float) Load 13(bar)
|
||||||
30: 21(fvec4) Load 23(outColor)
|
30: 21(fvec4) Load 23(outColor)
|
||||||
31: 11(float) CompositeExtract 30 0
|
31: 11(float) CompositeExtract 30 0
|
||||||
32: 11(float) FAdd 31 29
|
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
|
34: 21(fvec4) CompositeInsert 32 33 0
|
||||||
Store 23(outColor) 34
|
Store 23(outColor) 34
|
||||||
37: 21(fvec4) Load 23(outColor)
|
37: 21(fvec4) Load 23(outColor)
|
||||||
Store 36(gl_FragColor) 37
|
Store 36(gl_FragColor) 37
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
7(foo(): 2 Function None 3
|
7(foo(): 2 Function None 3
|
||||||
8: Label
|
8: Label
|
||||||
15: 11(float) Load 13(bar)
|
15: 11(float) Load 13(bar)
|
||||||
17: 11(float) FAdd 15 16
|
17: 11(float) FAdd 15 16
|
||||||
Store 13(bar) 17
|
Store 13(bar) 17
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
9(foo2(): 2 Function None 3
|
9(foo2(): 2 Function None 3
|
||||||
10: Label
|
10: Label
|
||||||
19: 11(float) Load 13(bar)
|
19: 11(float) Load 13(bar)
|
||||||
20: 11(float) FAdd 19 16
|
20: 11(float) FAdd 19 16
|
||||||
Store 13(bar) 20
|
Store 13(bar) 20
|
||||||
Return
|
Return
|
||||||
FunctionEnd
|
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
|
// Id's are bound by 43
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 18 "A"
|
Name 18 "A"
|
||||||
@ -19,19 +20,12 @@ Linked vertex stage:
|
|||||||
Name 38 "D"
|
Name 38 "D"
|
||||||
Name 41 "gl_VertexID"
|
Name 41 "gl_VertexID"
|
||||||
Name 42 "gl_InstanceID"
|
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) BuiltIn VertexId
|
||||||
Decorate 41(gl_VertexID) NoStaticUse
|
Decorate 41(gl_VertexID) NoStaticUse
|
||||||
Decorate 42(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 42(gl_InstanceID) BuiltIn InstanceId
|
Decorate 42(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 42(gl_InstanceID) NoStaticUse
|
Decorate 42(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 0
|
10: 7(int) Constant 0
|
||||||
@ -42,54 +36,54 @@ Linked vertex stage:
|
|||||||
30: 7(int) Constant 5
|
30: 7(int) Constant 5
|
||||||
39: 7(int) Constant 3
|
39: 7(int) Constant 3
|
||||||
40: TypePointer Input 7(int)
|
40: TypePointer Input 7(int)
|
||||||
41(gl_VertexID): 40(ptr) Variable Input
|
41(gl_VertexID): 40(ptr) Variable Input
|
||||||
42(gl_InstanceID): 40(ptr) Variable Input
|
42(gl_InstanceID): 40(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
18(A): 8(ptr) Variable Function
|
18(A): 8(ptr) Variable Function
|
||||||
26(B): 8(ptr) Variable Function
|
26(B): 8(ptr) Variable Function
|
||||||
28(C): 8(ptr) Variable Function
|
28(C): 8(ptr) Variable Function
|
||||||
38(D): 8(ptr) Variable Function
|
38(D): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 7(int) Load 9(i)
|
14: 7(int) Load 9(i)
|
||||||
17: 16(bool) SLessThan 14 15
|
17: 16(bool) SLessThan 14 15
|
||||||
LoopMerge 12 None
|
LoopMerge 12 None
|
||||||
BranchConditional 17 13 12
|
BranchConditional 17 13 12
|
||||||
13: Label
|
13: Label
|
||||||
Store 18(A) 19
|
Store 18(A) 19
|
||||||
20: 7(int) Load 9(i)
|
20: 7(int) Load 9(i)
|
||||||
22: 7(int) SMod 20 21
|
22: 7(int) SMod 20 21
|
||||||
23: 16(bool) IEqual 22 10
|
23: 16(bool) IEqual 22 10
|
||||||
SelectionMerge 25 None
|
SelectionMerge 25 None
|
||||||
BranchConditional 23 24 25
|
BranchConditional 23 24 25
|
||||||
24: Label
|
24: Label
|
||||||
Store 26(B) 21
|
Store 26(B) 21
|
||||||
Branch 11
|
Branch 11
|
||||||
27: Label
|
27: Label
|
||||||
Store 28(C) 21
|
Store 28(C) 21
|
||||||
Branch 25
|
Branch 25
|
||||||
25: Label
|
25: Label
|
||||||
29: 7(int) Load 9(i)
|
29: 7(int) Load 9(i)
|
||||||
31: 7(int) SMod 29 30
|
31: 7(int) SMod 29 30
|
||||||
32: 16(bool) IEqual 31 10
|
32: 16(bool) IEqual 31 10
|
||||||
SelectionMerge 34 None
|
SelectionMerge 34 None
|
||||||
BranchConditional 32 33 34
|
BranchConditional 32 33 34
|
||||||
33: Label
|
33: Label
|
||||||
Store 26(B) 21
|
Store 26(B) 21
|
||||||
Branch 12
|
Branch 12
|
||||||
35: Label
|
35: Label
|
||||||
Store 28(C) 21
|
Store 28(C) 21
|
||||||
Branch 34
|
Branch 34
|
||||||
34: Label
|
34: Label
|
||||||
36: 7(int) Load 9(i)
|
36: 7(int) Load 9(i)
|
||||||
37: 7(int) IAdd 36 19
|
37: 7(int) IAdd 36 19
|
||||||
Store 9(i) 37
|
Store 9(i) 37
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
Store 38(D) 39
|
Store 38(D) 39
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
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
|
// Id's are bound by 24
|
||||||
|
|
||||||
Source ESSL 300
|
Source ESSL 300
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Vertex 4
|
EntryPoint Vertex 4 "main"
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 9 "i"
|
Name 9 "i"
|
||||||
Name 22 "gl_VertexID"
|
Name 22 "gl_VertexID"
|
||||||
Name 23 "gl_InstanceID"
|
Name 23 "gl_InstanceID"
|
||||||
Decorate 9(i) PrecisionHigh
|
|
||||||
Decorate 22(gl_VertexID) PrecisionHigh
|
|
||||||
Decorate 22(gl_VertexID) BuiltIn VertexId
|
Decorate 22(gl_VertexID) BuiltIn VertexId
|
||||||
Decorate 22(gl_VertexID) NoStaticUse
|
Decorate 22(gl_VertexID) NoStaticUse
|
||||||
Decorate 23(gl_InstanceID) PrecisionHigh
|
|
||||||
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
Decorate 23(gl_InstanceID) BuiltIn InstanceId
|
||||||
Decorate 23(gl_InstanceID) NoStaticUse
|
Decorate 23(gl_InstanceID) NoStaticUse
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeInt 32 1
|
7: TypeInt 32 1
|
||||||
8: TypePointer Function 7(int)
|
8: TypePointer Function 7(int)
|
||||||
10: 7(int) Constant 0
|
10: 7(int) Constant 0
|
||||||
@ -31,22 +29,22 @@ Linked vertex stage:
|
|||||||
16: TypeBool
|
16: TypeBool
|
||||||
19: 7(int) Constant 1
|
19: 7(int) Constant 1
|
||||||
21: TypePointer Input 7(int)
|
21: TypePointer Input 7(int)
|
||||||
22(gl_VertexID): 21(ptr) Variable Input
|
22(gl_VertexID): 21(ptr) Variable Input
|
||||||
23(gl_InstanceID): 21(ptr) Variable Input
|
23(gl_InstanceID): 21(ptr) Variable Input
|
||||||
4(main): 2 Function None 3
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
9(i): 8(ptr) Variable Function
|
9(i): 8(ptr) Variable Function
|
||||||
Store 9(i) 10
|
Store 9(i) 10
|
||||||
Branch 11
|
Branch 11
|
||||||
11: Label
|
11: Label
|
||||||
14: 7(int) Load 9(i)
|
14: 7(int) Load 9(i)
|
||||||
17: 16(bool) SLessThan 14 15
|
17: 16(bool) SLessThan 14 15
|
||||||
LoopMerge 12 None
|
LoopMerge 12 None
|
||||||
BranchConditional 17 13 12
|
BranchConditional 17 13 12
|
||||||
13: Label
|
13: Label
|
||||||
18: 7(int) Load 9(i)
|
18: 7(int) Load 9(i)
|
||||||
20: 7(int) IAdd 18 19
|
20: 7(int) IAdd 18 19
|
||||||
Store 9(i) 20
|
Store 9(i) 20
|
||||||
Branch 11
|
Branch 11
|
||||||
12: Label
|
12: Label
|
||||||
Branch 6
|
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
|
// Id's are bound by 32
|
||||||
|
|
||||||
Source GLSL 110
|
Source GLSL 110
|
||||||
|
Capability Shader
|
||||||
1: ExtInstImport "GLSL.std.450"
|
1: ExtInstImport "GLSL.std.450"
|
||||||
MemoryModel Logical GLSL450
|
MemoryModel Logical GLSL450
|
||||||
EntryPoint Fragment 4
|
EntryPoint Fragment 4 "main"
|
||||||
|
ExecutionMode 4 OriginLowerLeft
|
||||||
Name 4 "main"
|
Name 4 "main"
|
||||||
Name 10 "color"
|
Name 10 "color"
|
||||||
Name 12 "BaseColor"
|
Name 12 "BaseColor"
|
||||||
Name 20 "d"
|
Name 20 "d"
|
||||||
Name 25 "bigColor"
|
Name 25 "bigColor"
|
||||||
Name 30 "gl_FragColor"
|
Name 30 "gl_FragColor"
|
||||||
Decorate 12(BaseColor) Smooth
|
Decorate 12(BaseColor) Smooth
|
||||||
Decorate 30(gl_FragColor) BuiltIn FragColor
|
Decorate 30(gl_FragColor) BuiltIn FragColor
|
||||||
2: TypeVoid
|
2: TypeVoid
|
||||||
3: TypeFunction 2
|
3: TypeFunction 2
|
||||||
7: TypeFloat 32
|
7: TypeFloat 32
|
||||||
8: TypeVector 7(float) 4
|
8: TypeVector 7(float) 4
|
||||||
9: TypePointer Function 8(fvec4)
|
9: TypePointer Function 8(fvec4)
|
||||||
11: TypePointer Input 8(fvec4)
|
11: TypePointer Input 8(fvec4)
|
||||||
12(BaseColor): 11(ptr) Variable Input
|
12(BaseColor): 11(ptr) Variable Input
|
||||||
19: TypePointer UniformConstant 7(float)
|
19: TypePointer UniformConstant 7(float)
|
||||||
20(d): 19(ptr) Variable UniformConstant
|
20(d): 19(ptr) Variable UniformConstant
|
||||||
22: TypeBool
|
22: TypeBool
|
||||||
24: TypePointer UniformConstant 8(fvec4)
|
24: TypePointer UniformConstant 8(fvec4)
|
||||||
25(bigColor): 24(ptr) Variable UniformConstant
|
25(bigColor): 24(ptr) Variable UniformConstant
|
||||||
29: TypePointer Output 8(fvec4)
|
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
|
4(main): 2 Function None 3
|
||||||
5: Label
|
5: Label
|
||||||
10(color): 9(ptr) Variable Function
|
10(color): 9(ptr) Variable Function
|
||||||
13: 8(fvec4) Load 12(BaseColor)
|
13: 8(fvec4) Load 12(BaseColor)
|
||||||
Store 10(color) 13
|
Store 10(color) 13
|
||||||
Branch 14
|
Branch 14
|
||||||
14: Label
|
14: Label
|
||||||
17: 8(fvec4) Load 10(color)
|
17: 8(fvec4) Load 10(color)
|
||||||
18: 7(float) CompositeExtract 17 0
|
18: 7(float) CompositeExtract 17 0
|
||||||
21: 7(float) Load 20(d)
|
21: 7(float) Load 20(d)
|
||||||
23: 22(bool) FOrdLessThan 18 21
|
23: 22(bool) FOrdLessThan 18 21
|
||||||
LoopMerge 15 None
|
LoopMerge 15 None
|
||||||
BranchConditional 23 16 15
|
BranchConditional 23 16 15
|
||||||
16: Label
|
16: Label
|
||||||
26: 8(fvec4) Load 25(bigColor)
|
26: 8(fvec4) Load 25(bigColor)
|
||||||
27: 8(fvec4) Load 10(color)
|
27: 8(fvec4) Load 10(color)
|
||||||
28: 8(fvec4) FAdd 27 26
|
28: 8(fvec4) FAdd 27 26
|
||||||
Store 10(color) 28
|
Store 10(color) 28
|
||||||
Branch 14
|
Branch 14
|
||||||
15: Label
|
15: Label
|
||||||
31: 8(fvec4) Load 10(color)
|
31: 8(fvec4) Load 10(color)
|
||||||
Store 30(gl_FragColor) 31
|
Store 30(gl_FragColor) 31
|
||||||
Branch 6
|
Branch 6
|
||||||
6: Label
|
6: Label
|
||||||
Return
|
Return
|
||||||
|
|||||||
@ -2,5 +2,5 @@
|
|||||||
// For the version, it uses the latest git tag followed by the number of commits.
|
// 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).
|
// 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"
|
#define GLSLANG_DATE "06-Aug-2015"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user