SPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).

This commit is contained in:
John Kessenich 2016-02-15 20:58:50 -07:00
parent 019f08fcd8
commit 6c292d3ba7
200 changed files with 7841 additions and 5577 deletions

View File

@ -1,5 +1,5 @@
/*
** Copyright (c) 2014-2015 The Khronos Group Inc.
** Copyright (c) 2014-2016 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"),
@ -27,8 +27,8 @@
#ifndef GLSLstd450_H
#define GLSLstd450_H
const int GLSLstd450Version = 99;
const int GLSLstd450Revision = 3;
static const int GLSLstd450Version = 100;
static const int GLSLstd450Revision = 1;
enum GLSLstd450 {
GLSLstd450Bad = 0, // Don't use
@ -83,7 +83,7 @@ enum GLSLstd450 {
GLSLstd450UClamp = 44,
GLSLstd450SClamp = 45,
GLSLstd450FMix = 46,
GLSLstd450IMix = 47,
GLSLstd450IMix = 47, // Reserved
GLSLstd450Step = 48,
GLSLstd450SmoothStep = 49,
@ -121,6 +121,10 @@ enum GLSLstd450 {
GLSLstd450InterpolateAtSample = 77,
GLSLstd450InterpolateAtOffset = 78,
GLSLstd450NMin = 79,
GLSLstd450NMax = 80,
GLSLstd450NClamp = 81,
GLSLstd450Count
};

View File

@ -1,5 +1,6 @@
//
//Copyright (C) 2014 LunarG, Inc.
//Copyright (C) 2014-2015 LunarG, Inc.
//Copyright (C) 2015-2016 Google, Inc.
//
//All rights reserved.
//
@ -95,6 +96,7 @@ protected:
spv::Id getSampledType(const glslang::TSampler&);
spv::Id convertGlslangToSpvType(const glslang::TType& type);
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&);
spv::Id makeArraySizeId(const glslang::TArraySizes&, int dim);
spv::Id accessChainLoad(const glslang::TType& type);
glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const;
int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
@ -195,6 +197,8 @@ spv::StorageClass TranslateStorageClass(const glslang::TType& type)
else if (type.getQualifier().isPipeOutput())
return spv::StorageClassOutput;
else if (type.getQualifier().isUniformOrBuffer()) {
if (type.getQualifier().layoutPushConstant)
return spv::StorageClassPushConstant;
if (type.getBasicType() == glslang::EbtBlock)
return spv::StorageClassUniform;
else if (type.getBasicType() == glslang::EbtAtomicUint)
@ -225,6 +229,7 @@ spv::Dim TranslateDimensionality(const glslang::TSampler& sampler)
case glslang::EsdCube: return spv::DimCube;
case glslang::EsdRect: return spv::DimRect;
case glslang::EsdBuffer: return spv::DimBuffer;
case glslang::EsdSubpass: return spv::DimSubpassData;
default:
assert(0);
return spv::Dim2D;
@ -376,6 +381,8 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
case glslang::EbvPosition: return spv::BuiltInPosition;
case glslang::EbvVertexId: return spv::BuiltInVertexId;
case glslang::EbvInstanceId: return spv::BuiltInInstanceId;
case glslang::EbvVertexIndex: return spv::BuiltInVertexIndex;
case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex;
case glslang::EbvBaseVertex:
case glslang::EbvBaseInstance:
case glslang::EbvDrawId:
@ -492,6 +499,25 @@ spv::ImageFormat TGlslangToSpvTraverser::TranslateImageFormat(const glslang::TTy
}
}
// Return whether or not the given type is something that should be tied to a
// descriptor set.
bool IsDescriptorResource(const glslang::TType& type)
{
// uniform and buffer blocks are included
if (type.getBasicType() == glslang::EbtBlock)
return type.getQualifier().isUniformOrBuffer();
// non block...
// basically samplerXXX/subpass/sampler/texture are all included
// if they are the global-scope-class, not the function parameter
// (or local, if they ever exist) class.
if (type.getBasicType() == glslang::EbtSampler)
return type.getQualifier().isUniformOrBuffer();
// None of the above.
return false;
}
void InheritQualifiers(glslang::TQualifier& child, const glslang::TQualifier& parent)
{
if (child.layoutMatrix == glslang::ElmNone)
@ -708,7 +734,7 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
}
// Only process non-linkage-only nodes for generating actual static uses
if (! linkageOnly) {
if (! linkageOnly || symbol->getQualifier().isSpecConstant()) {
// Prepare to generate code for the access
// L-value chains will be computed left to right. We're on the symbol now,
@ -717,10 +743,14 @@ void TGlslangToSpvTraverser::visitSymbol(glslang::TIntermSymbol* symbol)
builder.clearAccessChain();
// For now, we consider all user variables as being in memory, so they are pointers,
// except for "const in" arguments to a function, which are an intermediate object.
// except for
// A) "const in" arguments to a function, which are an intermediate object.
// See comments in handleUserFunctionCall().
glslang::TStorageQualifier qualifier = symbol->getQualifier().storage;
if (qualifier == glslang::EvqConstReadOnly && constReadOnlyParameters.find(symbol->getId()) != constReadOnlyParameters.end())
// B) Specialization constants (normal constant don't even come in as a variable),
// These are also pure R-values.
glslang::TQualifier qualifier = symbol->getQualifier();
if ((qualifier.storage == glslang::EvqConstReadOnly && constReadOnlyParameters.find(symbol->getId()) != constReadOnlyParameters.end()) ||
qualifier.isSpecConstant())
builder.setAccessChainRValue(id);
else
builder.setAccessChainLValue(id);
@ -1110,9 +1140,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
{
if (node->isUserDefined())
result = handleUserFunctionCall(node);
assert(result);
//assert(result); // this can happen for bad shaders because the call graph completeness checking is not yet done
if (result) {
builder.clearAccessChain();
builder.setAccessChainRValue(result);
} else
spv::MissingFunctionality("missing user function; linker needs to catch that");
return false;
}
@ -1157,12 +1190,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpConstructUVec3:
case glslang::EOpConstructUVec4:
case glslang::EOpConstructStruct:
case glslang::EOpConstructTextureSampler:
{
std::vector<spv::Id> arguments;
translateArguments(*node, arguments);
spv::Id resultTypeId = convertGlslangToSpvType(node->getType());
spv::Id constructed;
if (node->getOp() == glslang::EOpConstructStruct || node->getType().isArray()) {
if (node->getOp() == glslang::EOpConstructTextureSampler)
constructed = builder.createOp(spv::OpSampledImage, resultTypeId, arguments);
else if (node->getOp() == glslang::EOpConstructStruct || node->getType().isArray()) {
std::vector<spv::Id> constituents;
for (int c = 0; c < (int)arguments.size(); ++c)
constituents.push_back(arguments[c]);
@ -1640,13 +1676,19 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
case glslang::EbtSampler:
{
const glslang::TSampler& sampler = type.getSampler();
if (sampler.sampler) {
// pure sampler
spvType = builder.makeSamplerType();
} else {
// an image is present, make its type
spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), sampler.shadow, sampler.arrayed, sampler.ms,
sampler.image ? 2 : 1, TranslateImageFormat(type));
if (! sampler.image) {
if (sampler.combined) {
// already has both image and sampler, make the combined type
spvType = builder.makeSampledImageType(spvType);
}
}
}
break;
case glslang::EbtStruct:
case glslang::EbtBlock:
@ -1790,12 +1832,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
// make the arrays
for (int dim = type.getArraySizes()->getNumDims() - 1; dim > 0; --dim) {
int size = type.getArraySizes()->getDimSize(dim);
assert(size > 0);
spvType = builder.makeArrayType(spvType, size, stride);
spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), dim), stride);
if (stride > 0)
builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
stride *= size;
stride *= type.getArraySizes()->getDimSize(dim);
}
} else {
// single-dimensional array, and don't yet have stride
@ -1810,7 +1850,7 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
spvType = builder.makeRuntimeArray(spvType);
} else {
assert(type.getOuterArraySize() > 0);
spvType = builder.makeArrayType(spvType, type.getOuterArraySize(), stride);
spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride);
}
if (stride > 0)
builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
@ -1819,6 +1859,26 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
return spvType;
}
// Turn the expression forming the array size into an id.
// This is not quite trivial, because of specialization constants.
// Sometimes, a raw constant is turned into an Id, and sometimes
// a specialization constant expression is.
spv::Id TGlslangToSpvTraverser::makeArraySizeId(const glslang::TArraySizes& arraySizes, int dim)
{
// First, see if this is sized with a node, meaning a specialization constant:
glslang::TIntermTyped* specNode = arraySizes.getDimNode(dim);
if (specNode != nullptr) {
builder.clearAccessChain();
specNode->traverse(this);
return accessChainLoad(specNode->getAsTyped()->getType());
}
// Otherwise, need a compile-time (front end) size, get it:
int size = arraySizes.getDimSize(dim);
assert(size > 0);
return builder.makeUintConstant(size);
}
// Wrap the builder's accessChainLoad to:
// - localize handling of RelaxedPrecision
// - use the SPIR-V inferred type instead of another conversion of the glslang type
@ -1891,7 +1951,7 @@ int TGlslangToSpvTraverser::getMatrixStride(const glslang::TType& matrixType, gl
// 'currentOffset' should be passed in already initialized, ready to modify, and reflecting
// the migration of data from nextOffset -> currentOffset. It should be -1 on the first call.
// -1 means a non-forced member offset (no decoration needed).
void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& structType, const glslang::TType& memberType, int& currentOffset, int& nextOffset,
void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structType*/, const glslang::TType& memberType, int& currentOffset, int& nextOffset,
glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout)
{
// this will get a positive value when deemed necessary
@ -2169,6 +2229,24 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
std::vector<spv::Id> operands;
auto opIt = arguments.begin();
operands.push_back(*(opIt++));
// Handle subpass operations
// TODO: GLSL should change to have the "MS" only on the type rather than the
// built-in function.
if (cracked.subpass) {
// add on the (0,0) coordinate
spv::Id zero = builder.makeIntConstant(0);
std::vector<spv::Id> comps;
comps.push_back(zero);
comps.push_back(zero);
operands.push_back(builder.makeCompositeConstant(builder.makeVectorType(builder.makeIntType(32), 2), comps));
if (sampler.ms) {
operands.push_back(spv::ImageOperandsSampleMask);
operands.push_back(*(opIt++));
}
return builder.createOp(spv::OpImageRead, convertGlslangToSpvType(node->getType()), operands);
}
operands.push_back(*(opIt++));
if (node->getOp() == glslang::EOpImageLoad) {
if (sampler.ms) {
@ -3109,7 +3187,7 @@ spv::Id TGlslangToSpvTraverser::makeSmearedConstant(spv::Id constant, int vector
}
// For glslang ops that map to SPV atomic opCodes
spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv::Decoration /*precision*/, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
{
spv::Op opCode = spv::OpNop;
@ -3244,8 +3322,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpMix:
if (isFloat)
libCall = spv::GLSLstd450FMix;
else
libCall = spv::GLSLstd450IMix;
else {
opCode = spv::OpSelect;
spv::MissingFunctionality("translating integer mix to OpSelect");
}
builder.promoteScalar(precision, operands.front(), operands.back());
break;
case glslang::EOpStep:
@ -3439,6 +3519,8 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
if (! symbol->getType().isStruct()) {
addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
if (symbol->getType().getQualifier().hasSpecConstantId())
addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId);
if (symbol->getQualifier().hasLocation())
builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
if (symbol->getQualifier().hasIndex())
@ -3463,8 +3545,14 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
}
if (symbol->getQualifier().hasSet())
builder.addDecoration(id, spv::DecorationDescriptorSet, symbol->getQualifier().layoutSet);
else if (IsDescriptorResource(symbol->getType())) {
// default to 0
builder.addDecoration(id, spv::DecorationDescriptorSet, 0);
}
if (symbol->getQualifier().hasBinding())
builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding);
if (symbol->getQualifier().hasAttachment())
builder.addDecoration(id, spv::DecorationInputAttachmentIndex, symbol->getQualifier().layoutAttachment);
if (glslangIntermediate->getXfbMode()) {
builder.addCapability(spv::CapabilityTransformFeedback);
if (symbol->getQualifier().hasXfbStride())
@ -3510,7 +3598,7 @@ void TGlslangToSpvTraverser::addMemberDecoration(spv::Id id, int member, spv::De
}
// Make a full tree of instructions to build a SPIR-V specialization constant,
// or regularly constant if possible.
// or regular constant if possible.
//
// TBD: this is not yet done, nor verified to be the best design, it does do the leaf symbols though
//
@ -3523,10 +3611,38 @@ spv::Id TGlslangToSpvTraverser::createSpvSpecConstant(const glslang::TIntermType
{
assert(node.getQualifier().storage == glslang::EvqConst);
if (! node.getQualifier().specConstant) {
// hand off to the non-spec-constant path
assert(node.getAsConstantUnion() != nullptr || node.getAsSymbolNode() != nullptr);
int nextConst = 0;
return createSpvConstant(node.getType(), node.getAsConstantUnion() ? node.getAsConstantUnion()->getConstArray() : node.getAsSymbolNode()->getConstArray(), nextConst, false);
return createSpvConstant(node.getType(), node.getAsConstantUnion() ? node.getAsConstantUnion()->getConstArray() : node.getAsSymbolNode()->getConstArray(),
nextConst, false);
}
// We now know we have a specialization constant to build
if (node.getAsSymbolNode() && node.getQualifier().hasSpecConstantId()) {
// this is a direct literal assigned to a layout(constant_id=) declaration
int nextConst = 0;
return createSpvConstant(node.getType(), node.getAsConstantUnion() ? node.getAsConstantUnion()->getConstArray() : node.getAsSymbolNode()->getConstArray(),
nextConst, true);
} else {
// gl_WorkgroupSize is a special case until the front-end handles hierarchical specialization constants,
// even then, it's specialization ids are handled by special case syntax in GLSL: layout(local_size_x = ...
if (node.getType().getQualifier().builtIn == glslang::EbvWorkGroupSize) {
std::vector<spv::Id> dimConstId;
for (int dim = 0; dim < 3; ++dim) {
bool specConst = (glslangIntermediate->getLocalSizeSpecId(dim) != glslang::TQualifier::layoutNotSet);
dimConstId.push_back(builder.makeUintConstant(glslangIntermediate->getLocalSize(dim), specConst));
if (specConst)
addDecoration(dimConstId.back(), spv::DecorationSpecId, glslangIntermediate->getLocalSizeSpecId(dim));
}
return builder.makeCompositeConstant(builder.makeVectorType(builder.makeUintType(32), 3), dimConstId, true);
} else {
spv::MissingFunctionality("specialization-constant expression trees");
return spv::NoResult;
}
}
}
// Use 'consts' as the flattened glslang source of scalar constants to recursively

View File

@ -437,7 +437,7 @@ namespace spv {
}
// Store IDs from instruction in our map
for (int op = 0; op < spv::InstructionDesc[opCode].operands.getNum(); ++op, --numOperands) {
for (int op = 0; numOperands > 0; ++op, --numOperands) {
switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
case spv::OperandId:
idFn(asId(word++));

View File

@ -1,5 +1,6 @@
//
//Copyright (C) 2014 LunarG, Inc.
//Copyright (C) 2014-2015 LunarG, Inc.
//Copyright (C) 2015-2016 Google, Inc.
//
//All rights reserved.
//
@ -308,11 +309,9 @@ Id Builder::makeMatrixType(Id component, int cols, int rows)
// TODO: performance: track arrays per stride
// If a stride is supplied (non-zero) make an array.
// If no stride (0), reuse previous array types.
Id Builder::makeArrayType(Id element, unsigned size, int stride)
// 'size' is an Id of a constant or specialization constant of the array size
Id Builder::makeArrayType(Id element, Id sizeId, int stride)
{
// First, we need a constant instruction for the size
Id sizeId = makeUintConstant(size);
Instruction* type;
if (stride == 0) {
// try to find existing type
@ -518,8 +517,12 @@ int Builder::getNumTypeConstituents(Id typeId) const
return 1;
case OpTypeVector:
case OpTypeMatrix:
case OpTypeArray:
return instr->getImmediateOperand(1);
case OpTypeArray:
{
Id lengthId = instr->getImmediateOperand(1);
return module.getInstruction(lengthId)->getImmediateOperand(0);
}
case OpTypeStruct:
return instr->getNumOperands();
default:
@ -647,7 +650,9 @@ Id Builder::makeBoolConstant(bool b, bool specConstant)
Instruction* constant;
Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) : (b ? OpConstantTrue : OpConstantFalse);
// See if we already made it
// See if we already made it. Applies only to regular constants, because specialization constants
// must remain distinct for the purpose of applying a SpecId decoration.
if (! specConstant) {
Id existing = 0;
for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) {
constant = groupedConstants[OpTypeBool][i];
@ -657,6 +662,7 @@ Id Builder::makeBoolConstant(bool b, bool specConstant)
if (existing)
return existing;
}
// Make it
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
@ -670,9 +676,14 @@ Id Builder::makeBoolConstant(bool b, bool specConstant)
Id Builder::makeIntConstant(Id typeId, unsigned value, bool specConstant)
{
Op opcode = specConstant ? OpSpecConstant : OpConstant;
// See if we already made it. Applies only to regular constants, because specialization constants
// must remain distinct for the purpose of applying a SpecId decoration.
if (! specConstant) {
Id existing = findScalarConstant(OpTypeInt, opcode, typeId, value);
if (existing)
return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(value);
@ -688,9 +699,14 @@ Id Builder::makeFloatConstant(float f, bool specConstant)
Op opcode = specConstant ? OpSpecConstant : OpConstant;
Id typeId = makeFloatType(32);
unsigned value = *(unsigned int*)&f;
// See if we already made it. Applies only to regular constants, because specialization constants
// must remain distinct for the purpose of applying a SpecId decoration.
if (! specConstant) {
Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value);
if (existing)
return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(value);
@ -708,9 +724,14 @@ Id Builder::makeDoubleConstant(double d, bool specConstant)
unsigned long long value = *(unsigned long long*)&d;
unsigned op1 = value & 0xFFFFFFFF;
unsigned op2 = value >> 32;
// See if we already made it. Applies only to regular constants, because specialization constants
// must remain distinct for the purpose of applying a SpecId decoration.
if (! specConstant) {
Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, op1, op2);
if (existing)
return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(op1);
@ -751,8 +772,9 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector<Id>& comps) const
}
// Comments in header
Id Builder::makeCompositeConstant(Id typeId, std::vector<Id>& members)
Id Builder::makeCompositeConstant(Id typeId, std::vector<Id>& members, bool specConstant)
{
Op opcode = specConstant ? OpSpecConstantComposite : OpConstantComposite;
assert(typeId);
Op typeClass = getTypeClass(typeId);
@ -767,11 +789,13 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector<Id>& members)
return makeFloatConstant(0.0);
}
if (! specConstant) {
Id existing = findCompositeConstant(typeClass, members);
if (existing)
return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, OpConstantComposite);
Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
for (int op = 0; op < (int)members.size(); ++op)
c->addIdOperand(members[op]);
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c));

View File

@ -1,5 +1,6 @@
//
//Copyright (C) 2014 LunarG, Inc.
//Copyright (C) 2014-2015 LunarG, Inc.
//Copyright (C) 2015-2016 Google, Inc.
//
//All rights reserved.
//
@ -104,7 +105,7 @@ public:
Id makeStructResultType(Id type0, Id type1);
Id makeVectorType(Id component, int size);
Id makeMatrixType(Id component, int cols, int rows);
Id makeArrayType(Id element, unsigned size, int stride); // 0 means no stride decoration
Id makeArrayType(Id element, Id sizeId, int stride); // 0 stride means no stride decoration
Id makeRuntimeArray(Id element);
Id makeFunctionType(Id returnType, const std::vector<Id>& paramTypes);
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format);
@ -189,7 +190,7 @@ public:
Id makeDoubleConstant(double d, bool specConstant = false);
// Turn the array of constants into a proper spv constant of the requested type.
Id makeCompositeConstant(Id type, std::vector<Id>& comps);
Id makeCompositeConstant(Id type, std::vector<Id>& comps, bool specConst = false);
// Methods for adding information outside the CFG.
Instruction* addEntryPoint(ExecutionModel, Function*, const char* name);

View File

@ -473,6 +473,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
else
out << OperandClassParams[operandClass].getName(stream[word++]);
--numOperands;
break;
}
}
@ -531,7 +532,6 @@ void GLSLstd450GetDebugNames(const char** names)
names[GLSLstd450SClamp] = "SClamp";
names[GLSLstd450UClamp] = "UClamp";
names[GLSLstd450FMix] = "FMix";
names[GLSLstd450IMix] = "IMix";
names[GLSLstd450Step] = "Step";
names[GLSLstd450SmoothStep] = "SmoothStep";
names[GLSLstd450Fma] = "Fma";

View File

@ -712,7 +712,7 @@ const char* KernelProfilingInfoString(int info)
}
}
const int CapabilityCeiling = 57;
const int CapabilityCeiling = 58;
const char* CapabilityString(int info)
{
@ -775,6 +775,7 @@ const char* CapabilityString(int info)
case 54: return "GeometryStreams";
case 55: return "StorageImageReadWithoutFormat";
case 56: return "StorageImageWriteWithoutFormat";
case 57: return "MultiViewport";
case CapabilityCeiling:
default: return "Bad";
@ -1104,6 +1105,7 @@ const char* OpcodeString(int op)
case 317: return "OpNoLine";
case 318: return "OpAtomicFlagTestAndSet";
case 319: return "OpAtomicFlagClear";
case 320: return "OpImageSparseRead";
case OpcodeCeiling:
default:
@ -1311,7 +1313,6 @@ void Parameterize()
CapabilityParams[CapabilityTessellation].caps.push_back(CapabilityShader);
CapabilityParams[CapabilityVector16].caps.push_back(CapabilityKernel);
CapabilityParams[CapabilityFloat16Buffer].caps.push_back(CapabilityKernel);
CapabilityParams[CapabilityFloat16].caps.push_back(CapabilityFloat16Buffer);
CapabilityParams[CapabilityInt64Atomics].caps.push_back(CapabilityInt64);
CapabilityParams[CapabilityImageBasic].caps.push_back(CapabilityKernel);
CapabilityParams[CapabilityImageReadWrite].caps.push_back(CapabilityImageBasic);
@ -1353,6 +1354,7 @@ void Parameterize()
CapabilityParams[CapabilityGeometryStreams].caps.push_back(CapabilityGeometry);
CapabilityParams[CapabilityStorageImageReadWithoutFormat].caps.push_back(CapabilityShader);
CapabilityParams[CapabilityStorageImageWriteWithoutFormat].caps.push_back(CapabilityShader);
CapabilityParams[CapabilityMultiViewport].caps.push_back(CapabilityGeometry);
AddressingParams[AddressingModelPhysical32].caps.push_back(CapabilityAddresses);
AddressingParams[AddressingModelPhysical64].caps.push_back(CapabilityAddresses);
@ -1362,7 +1364,7 @@ void Parameterize()
MemoryParams[MemoryModelOpenCL].caps.push_back(CapabilityKernel);
MemorySemanticsParams[MemorySemanticsUniformMemoryShift].caps.push_back(CapabilityShader);
MemorySemanticsParams[MemorySemanticsAtomicCounterMemoryShift].caps.push_back(CapabilityShader);
MemorySemanticsParams[MemorySemanticsAtomicCounterMemoryShift].caps.push_back(CapabilityAtomicStorage);
ExecutionModelParams[ExecutionModelVertex].caps.push_back(CapabilityShader);
ExecutionModelParams[ExecutionModelTessellationControl].caps.push_back(CapabilityTessellation);
@ -1528,7 +1530,7 @@ void Parameterize()
DecorationParams[DecorationFlat].caps.push_back(CapabilityShader);
DecorationParams[DecorationPatch].caps.push_back(CapabilityTessellation);
DecorationParams[DecorationCentroid].caps.push_back(CapabilityShader);
DecorationParams[DecorationSample].caps.push_back(CapabilityShader);
DecorationParams[DecorationSample].caps.push_back(CapabilitySampleRateShading);
DecorationParams[DecorationInvariant].caps.push_back(CapabilityShader);
DecorationParams[DecorationConstant].caps.push_back(CapabilityKernel);
DecorationParams[DecorationUniform].caps.push_back(CapabilityShader);
@ -1537,14 +1539,14 @@ void Parameterize()
DecorationParams[DecorationStream].caps.push_back(CapabilityGeometryStreams);
DecorationParams[DecorationLocation].caps.push_back(CapabilityShader);
DecorationParams[DecorationComponent].caps.push_back(CapabilityShader);
DecorationParams[DecorationOffset].caps.push_back(CapabilityShader);
DecorationParams[DecorationIndex].caps.push_back(CapabilityShader);
DecorationParams[DecorationBinding].caps.push_back(CapabilityShader);
DecorationParams[DecorationDescriptorSet].caps.push_back(CapabilityShader);
DecorationParams[DecorationXfbBuffer].caps.push_back(CapabilityTransformFeedback);
DecorationParams[DecorationXfbStride].caps.push_back(CapabilityTransformFeedback);
DecorationParams[DecorationArrayStride].caps.push_back(CapabilityShader);
DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityShader);
DecorationParams[DecorationBuiltIn].caps.push_back(CapabilityShader);
DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityMatrix);
DecorationParams[DecorationFuncParamAttr].caps.push_back(CapabilityKernel);
DecorationParams[DecorationFPRoundingMode].caps.push_back(CapabilityKernel);
DecorationParams[DecorationFPFastMathMode].caps.push_back(CapabilityKernel);
@ -1556,8 +1558,8 @@ void Parameterize()
BuiltInParams[BuiltInPosition].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInPointSize].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityClipDistance);
BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityCullDistance);
BuiltInParams[BuiltInVertexId].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInVertexId].desc = "Vertex ID, which takes on values 0, 1, 2, . . . .";
@ -1576,7 +1578,7 @@ void Parameterize()
BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityGeometry);
BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityTessellation);
BuiltInParams[BuiltInLayer].caps.push_back(CapabilityGeometry);
BuiltInParams[BuiltInViewportIndex].caps.push_back(CapabilityGeometry);
BuiltInParams[BuiltInViewportIndex].caps.push_back(CapabilityMultiViewport);
BuiltInParams[BuiltInTessLevelOuter].caps.push_back(CapabilityTessellation);
BuiltInParams[BuiltInTessLevelInner].caps.push_back(CapabilityTessellation);
BuiltInParams[BuiltInTessCoord].caps.push_back(CapabilityTessellation);
@ -1584,9 +1586,9 @@ void Parameterize()
BuiltInParams[BuiltInFragCoord].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInPointCoord].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInFrontFacing].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInSampleId].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInSampleId].caps.push_back(CapabilitySampleRateShading);
BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilitySampleRateShading);
BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilitySampleRateShading);
BuiltInParams[BuiltInFragDepth].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInHelperInvocation].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInWorkDim].caps.push_back(CapabilityKernel);
@ -1962,6 +1964,12 @@ void Parameterize()
InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "", true);
InstructionDesc[OpImageSparseDrefGather].capabilities.push_back(CapabilitySparseResidency);
InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Image'");
InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Coordinate'");
InstructionDesc[OpImageSparseRead].operands.push(OperandImageOperands, "", true);
InstructionDesc[OpImageSparseRead].operands.push(OperandVariableIds, "", true);
InstructionDesc[OpImageSparseRead].capabilities.push_back(CapabilitySparseResidency);
InstructionDesc[OpImageSparseTexelsResident].operands.push(OperandId, "'Resident Code'");
InstructionDesc[OpImageSparseTexelsResident].capabilities.push_back(CapabilitySparseResidency);

View File

@ -243,7 +243,7 @@ protected:
int resultPresent : 1;
};
const int OpcodeCeiling = 320;
const int OpcodeCeiling = 321;
// The set of objects that hold all the instruction/operand
// parameterization information.

View File

@ -1,4 +1,4 @@
// Copyright (c) 2014-2015 The Khronos Group Inc.
// Copyright (c) 2014-2016 The Khronos Group Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
@ -46,12 +46,12 @@ namespace spv {
typedef unsigned int Id;
#define SPV_VERSION 10000
#define SPV_REVISION 2
#define SPV_VERSION 0x10000
#define SPV_REVISION 3
static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010000;
static const unsigned int Revision = 2;
static const unsigned int Revision = 3;
static const unsigned int OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16;
@ -563,6 +563,7 @@ enum Capability {
CapabilityGeometryStreams = 54,
CapabilityStorageImageReadWithoutFormat = 55,
CapabilityStorageImageWriteWithoutFormat = 56,
CapabilityMultiViewport = 57,
};
enum Op {
@ -859,6 +860,7 @@ enum Op {
OpNoLine = 317,
OpAtomicFlagTestAndSet = 318,
OpAtomicFlagClear = 319,
OpImageSparseRead = 320,
};
// Overload operator| for mask bit combining

View File

@ -8,7 +8,7 @@ ERROR: 0:39: 'location qualifier on input' : not supported in this stage: comput
ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader
ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable
ERROR: 0:44: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:44: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
ERROR: 0:45: 'shared' : cannot initialize this type of qualifier
ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:47: 'local_size' : can only apply to 'in'

View File

@ -9,7 +9,6 @@ ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sa
ERROR: 0:13: 'uniform' : too many storage qualifiers
ERROR: 0:18: '=' : global const initializers must be constant 'const int'
ERROR: 0:20: 'const' : no qualifiers allowed for function return
ERROR: 0:27: '' : constant expression required
ERROR: 0:27: '' : array size must be a constant integer expression
ERROR: 0:38: 'j' : undeclared identifier
ERROR: 0:38: '=' : cannot convert from 'temp float' to 'temp int'
@ -33,7 +32,6 @@ ERROR: 0:85: 'patch' : not supported in this stage: vertex
ERROR: 0:85: '' : vertex input cannot be further qualified
ERROR: 0:86: 'patch' : not supported in this stage: vertex
ERROR: 0:100: '=' : global const initializers must be constant 'const int'
ERROR: 0:101: '' : constant expression required
ERROR: 0:101: '' : array size must be a constant integer expression
ERROR: 0:107: '' : image variables not declared 'writeonly' must have a format layout qualifier
ERROR: 0:114: 'imageAtomicMin' : only supported on image with format r32i or r32ui
@ -53,7 +51,7 @@ ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:157: 'assign' : cannot convert from 'const float' to 'temp int'
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int'
ERROR: 52 compilation errors. No code generated.
ERROR: 50 compilation errors. No code generated.
Shader version: 420

View File

@ -7,7 +7,7 @@ ERROR: 0:43: 'location qualifier on input' : not supported in this stage: comput
ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader
ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable
ERROR: 0:48: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:48: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
ERROR: 0:49: 'shared' : cannot initialize this type of qualifier
ERROR: 0:51: 'local_size' : can only apply to 'in'
ERROR: 0:51: 'local_size' : can only apply to 'in'

View File

@ -1,6 +1,6 @@
430.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:3: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
ERROR: 0:7: 'input block' : not supported in this stage: vertex
ERROR: 0:7: 'location qualifier on in/out block' : not supported for this version or the enabled extensions
ERROR: 0:8: 'location qualifier on in/out block' : not supported for this version or the enabled extensions

View File

@ -1,14 +1,11 @@
constErrors.frag
ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions
ERROR: 0:17: '' : constant expression required
ERROR: 0:17: '' : array size must be a constant integer expression
ERROR: 0:18: '' : constant expression required
ERROR: 0:18: '' : array size must be a constant integer expression
ERROR: 0:19: '' : constant expression required
ERROR: 0:19: '' : array size must be a constant integer expression
ERROR: 0:27: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2}'
ERROR: 0:33: '=' : global const initializers must be constant 'const structure{global 3-component vector of float v3, global 2-component vector of int iv2, global 2X4 matrix of float m}'
ERROR: 9 compilation errors. No code generated.
ERROR: 6 compilation errors. No code generated.
Shader version: 330

View File

@ -0,0 +1,30 @@
nonVulkan.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:3: 'constant_id' : only allowed when generating SPIR-V
ERROR: 0:4: 'input_attachment_index' : only allowed when using GLSL for Vulkan
ERROR: 0:4: 'input_attachment_index' : can only be used with a subpass
ERROR: 0:5: 'push_constant' : only allowed when using GLSL for Vulkan
ERROR: 4 compilation errors. No code generated.
Shader version: 450
ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'arraySize' (specialization-constant const int)
0:? 12 (const int)
0:? 'foo' (temp int)
0:? 'ubi' (layout(column_major std430 push_constant ) uniform block{layout(column_major std430 offset=0 ) uniform int a})
Linked fragment stage:
ERROR: Linking fragment stage: Missing entry point: Each stage requires one "void main()" entry point
Shader version: 450
ERROR: node is still EOpNull!
0:? Linker Objects
0:? 'arraySize' (specialization-constant const int)
0:? 12 (const int)
0:? 'foo' (temp int)
0:? 'ubi' (layout(column_major std430 push_constant ) uniform block{layout(column_major std430 offset=0 ) uniform int a})

View File

@ -1,6 +1,6 @@
specExamples.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0:29: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:29: 'location' : can only apply to uniform, buffer, in, or out storage qualifiers
ERROR: 0:31: 'triangles' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:31: 'invocations' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:33: 'lines' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)

View File

@ -7,13 +7,13 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 48
// Id's are bound by 49
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 36
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 21 26 37
ExecutionMode 4 OriginUpperLeft
Source ESSL 310
Name 4 "main"
Name 8 "foo("
@ -22,7 +22,7 @@ Linked fragment stage:
Name 17 "z"
Name 21 "low"
Name 26 "high"
Name 36 "Color"
Name 37 "Color"
Decorate 8(foo() RelaxedPrecision
Decorate 11(face1) RelaxedPrecision
Decorate 13(face2) RelaxedPrecision
@ -34,9 +34,8 @@ Linked fragment stage:
Decorate 26(high) RelaxedPrecision
Decorate 27 RelaxedPrecision
Decorate 32 RelaxedPrecision
Decorate 33 RelaxedPrecision
Decorate 36(Color) RelaxedPrecision
Decorate 37 RelaxedPrecision
Decorate 34 RelaxedPrecision
Decorate 37(Color) RelaxedPrecision
Decorate 38 RelaxedPrecision
Decorate 39 RelaxedPrecision
Decorate 40 RelaxedPrecision
@ -45,6 +44,7 @@ Linked fragment stage:
Decorate 43 RelaxedPrecision
Decorate 44 RelaxedPrecision
Decorate 45 RelaxedPrecision
Decorate 46 RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -57,47 +57,48 @@ Linked fragment stage:
15: TypeInt 32 1
16: TypePointer Function 15(int)
18: 15(int) Constant 3
19: 15(int) Constant 2
20: TypePointer UniformConstant 15(int)
21(low): 20(ptr) Variable UniformConstant
24: 15(int) Constant 1
26(high): 20(ptr) Variable UniformConstant
19: 6(float) Constant 1073741824
20: TypePointer Input 6(float)
21(low): 20(ptr) Variable Input
24: 6(float) Constant 1065353216
26(high): 20(ptr) Variable Input
28: TypeBool
34: TypeVector 6(float) 4
35: TypePointer Output 34(fvec4)
36(Color): 35(ptr) Variable Output
33: 15(int) Constant 1
35: TypeVector 6(float) 4
36: TypePointer Output 35(fvec4)
37(Color): 36(ptr) Variable Output
4(main): 2 Function None 3
5: Label
17(z): 16(ptr) Variable Function
Store 11(face1) 12
Store 13(face2) 14
Store 17(z) 18
22: 15(int) Load 21(low)
23: 15(int) IMul 19 22
25: 15(int) IAdd 23 24
27: 15(int) Load 26(high)
29: 28(bool) SLessThan 25 27
22: 6(float) Load 21(low)
23: 6(float) FMul 19 22
25: 6(float) FAdd 23 24
27: 6(float) Load 26(high)
29: 28(bool) FOrdLessThan 25 27
SelectionMerge 31 None
BranchConditional 29 30 31
30: Label
32: 15(int) Load 17(z)
33: 15(int) IAdd 32 24
Store 17(z) 33
34: 15(int) IAdd 32 33
Store 17(z) 34
Branch 31
31: Label
37: 6(float) Load 11(face1)
38: 15(int) Load 17(z)
39: 6(float) ConvertSToF 38
40: 34(fvec4) CompositeConstruct 39 39 39 39
41: 34(fvec4) VectorTimesScalar 40 37
42: 6(float) FunctionCall 8(foo()
43: 34(fvec4) CompositeConstruct 42 42 42 42
44: 34(fvec4) FAdd 41 43
Store 36(Color) 44
38: 6(float) Load 11(face1)
39: 15(int) Load 17(z)
40: 6(float) ConvertSToF 39
41: 35(fvec4) CompositeConstruct 40 40 40 40
42: 35(fvec4) VectorTimesScalar 41 38
43: 6(float) FunctionCall 8(foo()
44: 35(fvec4) CompositeConstruct 43 43 43 43
45: 35(fvec4) FAdd 42 44
Store 37(Color) 45
Return
FunctionEnd
8(foo(): 6(float) Function None 7
9: Label
45: 6(float) Load 13(face2)
ReturnValue 45
46: 6(float) Load 13(face2)
ReturnValue 46
FunctionEnd

View File

@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 213
// Id's are bound by 205
Capability Shader
Capability ClipDistance
@ -18,7 +18,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
SourceExtension "GL_ARB_gpu_shader5"
SourceExtension "GL_ARB_shader_texture_lod"
@ -61,14 +61,25 @@ Linked fragment stage:
Name 199 "s2DRS"
Name 203 "s1D"
Name 204 "s2DS"
Name 206 "f"
Name 208 "v2"
Name 210 "v3"
Name 212 "v4"
Decorate 21(samp2D) DescriptorSet 0
Decorate 37(samp2DA) DescriptorSet 0
Decorate 47(samp2DR) DescriptorSet 0
Decorate 55(samp2DS) DescriptorSet 0
Decorate 72(Sca) DescriptorSet 0
Decorate 87(Isca) DescriptorSet 0
Decorate 103(Usca) DescriptorSet 0
Decorate 118(Scas) DescriptorSet 0
Decorate 167(sampC) DescriptorSet 0
Decorate 173(gl_ClipDistance) BuiltIn ClipDistance
Decorate 184(fflat) Flat
Decorate 186(fnop) NoPerspective
Decorate 193(bounds) DescriptorSet 0
Decorate 193(bounds) Binding 0
Decorate 194(s2D) DescriptorSet 0
Decorate 195(s2DR) DescriptorSet 0
Decorate 199(s2DRS) DescriptorSet 0
Decorate 203(s1D) DescriptorSet 0
Decorate 204(s2DS) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
14: TypeFloat 32
@ -177,14 +188,6 @@ Linked fragment stage:
202: TypePointer UniformConstant 201
203(s1D): 202(ptr) Variable UniformConstant
204(s2DS): 54(ptr) Variable UniformConstant
205: TypePointer UniformConstant 14(float)
206(f): 205(ptr) Variable UniformConstant
207: TypePointer UniformConstant 23(fvec2)
208(v2): 207(ptr) Variable UniformConstant
209: TypePointer UniformConstant 39(fvec3)
210(v3): 209(ptr) Variable UniformConstant
211: TypePointer UniformConstant 15(fvec4)
212(v4): 211(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
168: 165 Load 167(sampC)

View File

@ -15,7 +15,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 16 28 33 43
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "foo("
@ -40,6 +40,9 @@ Linked fragment stage:
Name 100 "bname"
Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
Decorate 55(sampR) DescriptorSet 0
Decorate 63(sampB) DescriptorSet 0
Decorate 87(samp2Da) DescriptorSet 0
Decorate 90 ArrayStride 64
Decorate 91 ArrayStride 64
MemberDecorate 92(bn) 0 RowMajor
@ -58,9 +61,11 @@ Linked fragment stage:
MemberDecorate 92(bn) 4 Offset 640
MemberDecorate 92(bn) 4 MatrixStride 16
Decorate 92(bn) Block
Decorate 94 DescriptorSet 0
Decorate 96 ArrayStride 16
MemberDecorate 97(bi) 0 Offset 0
Decorate 97(bi) Block
Decorate 100(bname) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32

View File

@ -5,13 +5,13 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 67
// Id's are bound by 63
Capability Shader
Capability ClipDistance
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 13 17 39 65 66
EntryPoint Vertex 4 "main" 13 17 23 38 62
Source GLSL 150
Name 4 "main"
Name 11 "gl_PerVertex"
@ -21,26 +21,23 @@ Linked vertex stage:
Name 13 ""
Name 17 "iv4"
Name 23 "ps"
Name 35 "s1"
MemberName 35(s1) 0 "a"
MemberName 35(s1) 1 "a2"
MemberName 35(s1) 2 "b"
Name 37 "s2"
MemberName 37(s2) 0 "c"
MemberName 37(s2) 1 "d"
Name 39 "s2out"
Name 41 "i"
Name 48 "s2D"
Name 63 "ui"
Name 65 "gl_VertexID"
Name 66 "gl_InstanceID"
Name 34 "s1"
MemberName 34(s1) 0 "a"
MemberName 34(s1) 1 "a2"
MemberName 34(s1) 2 "b"
Name 36 "s2"
MemberName 36(s2) 0 "c"
MemberName 36(s2) 1 "d"
Name 38 "s2out"
Name 40 "i"
Name 47 "s2D"
Name 62 "ui"
MemberDecorate 11(gl_PerVertex) 0 Invariant
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 11(gl_PerVertex) Block
Decorate 65(gl_VertexID) BuiltIn VertexId
Decorate 66(gl_InstanceID) BuiltIn InstanceId
Decorate 47(s2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -57,58 +54,54 @@ Linked vertex stage:
17(iv4): 16(ptr) Variable Input
19: TypePointer Output 7(fvec4)
21: 14(int) Constant 1
22: TypePointer UniformConstant 6(float)
23(ps): 22(ptr) Variable UniformConstant
22: TypePointer Input 6(float)
23(ps): 22(ptr) Variable Input
25: TypePointer Output 6(float)
27: 14(int) Constant 2
28: 8(int) Constant 0
29: TypePointer Input 6(float)
33: 8(int) Constant 3
34: TypeArray 7(fvec4) 33
35(s1): TypeStruct 14(int) 14(int) 34
36: TypeArray 35(s1) 9
37(s2): TypeStruct 14(int) 36
38: TypePointer Output 37(s2)
39(s2out): 38(ptr) Variable Output
40: TypePointer Function 14(int)
45: TypeImage 6(float) 2D sampled format:Unknown
46: TypeSampledImage 45
47: TypePointer UniformConstant 46
48(s2D): 47(ptr) Variable UniformConstant
50: TypeVector 6(float) 2
51: 6(float) Constant 1056964608
52: 50(fvec2) ConstantComposite 51 51
53: 6(float) Constant 0
56: TypeVector 6(float) 3
57: 56(fvec3) ConstantComposite 51 51 51
60: 6(float) Constant 1078774989
62: TypePointer UniformConstant 14(int)
63(ui): 62(ptr) Variable UniformConstant
64: TypePointer Input 14(int)
65(gl_VertexID): 64(ptr) Variable Input
66(gl_InstanceID): 64(ptr) Variable Input
32: 8(int) Constant 3
33: TypeArray 7(fvec4) 32
34(s1): TypeStruct 14(int) 14(int) 33
35: TypeArray 34(s1) 9
36(s2): TypeStruct 14(int) 35
37: TypePointer Output 36(s2)
38(s2out): 37(ptr) Variable Output
39: TypePointer Function 14(int)
44: TypeImage 6(float) 2D sampled format:Unknown
45: TypeSampledImage 44
46: TypePointer UniformConstant 45
47(s2D): 46(ptr) Variable UniformConstant
49: TypeVector 6(float) 2
50: 6(float) Constant 1056964608
51: 49(fvec2) ConstantComposite 50 50
52: 6(float) Constant 0
55: TypeVector 6(float) 3
56: 55(fvec3) ConstantComposite 50 50 50
59: 6(float) Constant 1078774989
61: TypePointer Input 14(int)
62(ui): 61(ptr) Variable Input
4(main): 2 Function None 3
5: Label
41(i): 40(ptr) Variable Function
40(i): 39(ptr) Variable Function
18: 7(fvec4) Load 17(iv4)
20: 19(ptr) AccessChain 13 15
Store 20 18
24: 6(float) Load 23(ps)
26: 25(ptr) AccessChain 13 21
Store 26 24
30: 29(ptr) AccessChain 17(iv4) 28
31: 6(float) Load 30
32: 25(ptr) AccessChain 13 27 27
Store 32 31
42: 14(int) Load 41(i)
43: 6(float) Load 23(ps)
44: 25(ptr) AccessChain 39(s2out) 21 42 27 27 33
Store 44 43
49: 46 Load 48(s2D)
54: 7(fvec4) ImageSampleExplicitLod 49 52 Lod 53
55: 46 Load 48(s2D)
58: 7(fvec4) ImageSampleProjExplicitLod 55 57 Lod 53
59: 46 Load 48(s2D)
61: 7(fvec4) ImageSampleExplicitLod 59 52 Lod 60
29: 22(ptr) AccessChain 17(iv4) 28
30: 6(float) Load 29
31: 25(ptr) AccessChain 13 27 27
Store 31 30
41: 14(int) Load 40(i)
42: 6(float) Load 23(ps)
43: 25(ptr) AccessChain 38(s2out) 21 41 27 27 32
Store 43 42
48: 45 Load 47(s2D)
53: 7(fvec4) ImageSampleExplicitLod 48 51 Lod 52
54: 45 Load 47(s2D)
57: 7(fvec4) ImageSampleProjExplicitLod 54 56 Lod 52
58: 45 Load 47(s2D)
60: 7(fvec4) ImageSampleExplicitLod 58 51 Lod 59
Return
FunctionEnd

View File

@ -7,88 +7,73 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 49
// Id's are bound by 42
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 11 24 27 48
EntryPoint Vertex 4 "main" 10 14 21 34
Source ESSL 310
Name 4 "main"
Name 8 "i"
Name 11 "gl_VertexID"
Name 16 "j"
Name 22 "gl_PerVertex"
MemberName 22(gl_PerVertex) 0 "gl_Position"
MemberName 22(gl_PerVertex) 1 "gl_PointSize"
Name 24 ""
Name 27 "ps"
Name 48 "gl_InstanceID"
Decorate 8(i) RelaxedPrecision
Decorate 11(gl_VertexID) BuiltIn VertexId
Decorate 16(j) RelaxedPrecision
MemberDecorate 22(gl_PerVertex) 0 Invariant
MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize
Decorate 22(gl_PerVertex) Block
Decorate 27(ps) RelaxedPrecision
Decorate 28 RelaxedPrecision
Decorate 32 RelaxedPrecision
Decorate 39 RelaxedPrecision
Decorate 42 RelaxedPrecision
Decorate 48(gl_InstanceID) BuiltIn InstanceId
Name 8 "gl_PerVertex"
MemberName 8(gl_PerVertex) 0 "gl_Position"
MemberName 8(gl_PerVertex) 1 "gl_PointSize"
Name 10 ""
Name 14 "ps"
Name 21 "gl_VertexIndex"
Name 34 "gl_InstanceIndex"
MemberDecorate 8(gl_PerVertex) 0 Invariant
MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize
Decorate 8(gl_PerVertex) Block
Decorate 14(ps) RelaxedPrecision
Decorate 15 RelaxedPrecision
Decorate 21(gl_VertexIndex) BuiltIn VertexIndex
Decorate 30 RelaxedPrecision
Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 4
10: TypePointer Input 6(int)
11(gl_VertexID): 10(ptr) Variable Input
14: 6(int) Constant 10
20: TypeFloat 32
21: TypeVector 20(float) 4
22(gl_PerVertex): TypeStruct 21(fvec4) 20(float)
23: TypePointer Output 22(gl_PerVertex)
24: 23(ptr) Variable Output
25: 6(int) Constant 0
26: TypePointer Input 20(float)
27(ps): 26(ptr) Variable Input
30: TypePointer Output 21(fvec4)
38: 6(int) Constant 1
40: TypePointer Output 20(float)
48(gl_InstanceID): 10(ptr) Variable Input
6: TypeFloat 32
7: TypeVector 6(float) 4
8(gl_PerVertex): TypeStruct 7(fvec4) 6(float)
9: TypePointer Output 8(gl_PerVertex)
10: 9(ptr) Variable Output
11: TypeInt 32 1
12: 11(int) Constant 0
13: TypePointer Input 6(float)
14(ps): 13(ptr) Variable Input
17: TypePointer Output 7(fvec4)
19: 11(int) Constant 4
20: TypePointer Input 11(int)
21(gl_VertexIndex): 20(ptr) Variable Input
29: 11(int) Constant 1
31: TypePointer Output 6(float)
33: 11(int) Constant 5
34(gl_InstanceIndex): 20(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
16(j): 7(ptr) Variable Function
12: 6(int) Load 11(gl_VertexID)
13: 6(int) IMul 9 12
15: 6(int) ISub 13 14
Store 8(i) 15
17: 6(int) Load 11(gl_VertexID)
18: 6(int) IMul 9 17
19: 6(int) ISub 18 14
Store 16(j) 19
28: 20(float) Load 27(ps)
29: 21(fvec4) CompositeConstruct 28 28 28 28
31: 30(ptr) AccessChain 24 25
Store 31 29
32: 6(int) Load 8(i)
33: 20(float) ConvertSToF 32
34: 30(ptr) AccessChain 24 25
35: 21(fvec4) Load 34
36: 21(fvec4) VectorTimesScalar 35 33
37: 30(ptr) AccessChain 24 25
Store 37 36
39: 20(float) Load 27(ps)
41: 40(ptr) AccessChain 24 38
Store 41 39
42: 6(int) Load 16(j)
43: 20(float) ConvertSToF 42
44: 40(ptr) AccessChain 24 38
45: 20(float) Load 44
46: 20(float) FMul 45 43
47: 40(ptr) AccessChain 24 38
Store 47 46
15: 6(float) Load 14(ps)
16: 7(fvec4) CompositeConstruct 15 15 15 15
18: 17(ptr) AccessChain 10 12
Store 18 16
22: 11(int) Load 21(gl_VertexIndex)
23: 11(int) ISub 19 22
24: 6(float) ConvertSToF 23
25: 17(ptr) AccessChain 10 12
26: 7(fvec4) Load 25
27: 7(fvec4) VectorTimesScalar 26 24
28: 17(ptr) AccessChain 10 12
Store 28 27
30: 6(float) Load 14(ps)
32: 31(ptr) AccessChain 10 29
Store 32 30
35: 11(int) Load 34(gl_InstanceIndex)
36: 11(int) ISub 33 35
37: 6(float) ConvertSToF 36
38: 31(ptr) AccessChain 10 29
39: 6(float) Load 38
40: 6(float) FMul 39 37
41: 31(ptr) AccessChain 10 29
Store 41 40
Return
FunctionEnd

View File

@ -13,7 +13,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 9 11 15 26 29
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source ESSL 310
Name 4 "main"
Name 9 "c"

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 165
// Id's are bound by 163
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 11 99 101 109 121 129 163 164
EntryPoint Vertex 4 "main" 9 11 98 100 108 114 120 128
Source ESSL 310
Name 4 "main"
Name 9 "pos"
@ -29,21 +29,19 @@ Linked vertex stage:
MemberName 45(T3) 2 "N2"
MemberName 45(T3) 3 "uv3a"
Name 47 ""
Name 79 "T2"
MemberName 79(T2) 0 "b"
MemberName 79(T2) 1 "t2m"
Name 81 ""
Name 99 "color"
Name 101 "c"
Name 109 "iout"
Name 115 "uiuin"
Name 121 "aiv2"
Name 127 "S"
MemberName 127(S) 0 "c"
MemberName 127(S) 1 "f"
Name 129 "s"
Name 163 "gl_VertexID"
Name 164 "gl_InstanceID"
Name 78 "T2"
MemberName 78(T2) 0 "b"
MemberName 78(T2) 1 "t2m"
Name 80 ""
Name 98 "color"
Name 100 "c"
Name 108 "iout"
Name 114 "uiuin"
Name 120 "aiv2"
Name 126 "S"
MemberName 126(S) 0 "c"
MemberName 126(S) 1 "f"
Name 128 "s"
Decorate 11(p) Location 3
MemberDecorate 17(Transform) 0 RowMajor
MemberDecorate 17(Transform) 0 Offset 0
@ -56,19 +54,29 @@ Linked vertex stage:
MemberDecorate 17(Transform) 2 MatrixStride 16
MemberDecorate 17(Transform) 3 Offset 176
Decorate 17(Transform) Block
Decorate 19(tblock) DescriptorSet 0
Decorate 44 ArrayStride 16
MemberDecorate 45(T3) 0 ColMajor
MemberDecorate 45(T3) 0 Offset 0
MemberDecorate 45(T3) 0 MatrixStride 16
MemberDecorate 45(T3) 1 RowMajor
MemberDecorate 45(T3) 1 Offset 64
MemberDecorate 45(T3) 1 MatrixStride 16
MemberDecorate 45(T3) 2 ColMajor
Decorate 45(T3) GLSLShared
MemberDecorate 45(T3) 2 Offset 128
MemberDecorate 45(T3) 2 MatrixStride 16
MemberDecorate 45(T3) 3 Offset 160
Decorate 45(T3) Block
MemberDecorate 79(T2) 1 RowMajor
Decorate 79(T2) GLSLShared
Decorate 79(T2) Block
Decorate 101(c) Location 7
Decorate 109(iout) Flat
Decorate 121(aiv2) Location 9
Decorate 163(gl_VertexID) BuiltIn VertexId
Decorate 164(gl_InstanceID) BuiltIn InstanceId
Decorate 47 DescriptorSet 0
MemberDecorate 78(T2) 0 Offset 0
MemberDecorate 78(T2) 1 RowMajor
MemberDecorate 78(T2) 1 Offset 16
MemberDecorate 78(T2) 1 MatrixStride 16
Decorate 78(T2) Block
Decorate 80 DescriptorSet 0
Decorate 100(c) Location 7
Decorate 108(iout) Flat
Decorate 120(aiv2) Location 9
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -95,42 +103,40 @@ Linked vertex stage:
45(T3): TypeStruct 13 13 40 44
46: TypePointer Uniform 45(T3)
47: 46(ptr) Variable Uniform
78: TypeBool
79(T2): TypeStruct 78(bool) 13
80: TypePointer Uniform 79(T2)
81: 80(ptr) Variable Uniform
98: TypePointer Output 14(fvec3)
99(color): 98(ptr) Variable Output
100: TypePointer Input 14(fvec3)
101(c): 100(ptr) Variable Input
103: 16(int) Constant 2
104: TypePointer Uniform 15
108: TypePointer Output 16(int)
109(iout): 108(ptr) Variable Output
110: 16(int) Constant 3
111: TypePointer Uniform 16(int)
114: TypePointer UniformConstant 41(int)
115(uiuin): 114(ptr) Variable UniformConstant
119: TypeVector 16(int) 2
120: TypePointer Input 119(ivec2)
121(aiv2): 120(ptr) Variable Input
122: 41(int) Constant 1
123: TypePointer Input 16(int)
127(S): TypeStruct 14(fvec3) 6(float)
128: TypePointer Output 127(S)
129(s): 128(ptr) Variable Output
132: 41(int) Constant 0
133: TypePointer Input 6(float)
136: TypePointer Output 6(float)
78(T2): TypeStruct 41(int) 13
79: TypePointer Uniform 78(T2)
80: 79(ptr) Variable Uniform
97: TypePointer Output 14(fvec3)
98(color): 97(ptr) Variable Output
99: TypePointer Input 14(fvec3)
100(c): 99(ptr) Variable Input
102: 16(int) Constant 2
103: TypePointer Uniform 15
107: TypePointer Output 16(int)
108(iout): 107(ptr) Variable Output
109: 16(int) Constant 3
110: TypePointer Uniform 16(int)
113: TypePointer Input 41(int)
114(uiuin): 113(ptr) Variable Input
118: TypeVector 16(int) 2
119: TypePointer Input 118(ivec2)
120(aiv2): 119(ptr) Variable Input
121: 41(int) Constant 1
122: TypePointer Input 16(int)
126(S): TypeStruct 14(fvec3) 6(float)
127: TypePointer Output 126(S)
128(s): 127(ptr) Variable Output
131: 41(int) Constant 0
132: TypePointer Input 6(float)
135: TypePointer Output 6(float)
137: TypeBool
138: TypePointer Uniform 14(fvec3)
141: 6(float) Constant 1065353216
142: 14(fvec3) ConstantComposite 141 141 141
143: TypeVector 78(bool) 3
143: TypeVector 137(bool) 3
149: TypePointer Uniform 42(ivec3)
152: 41(int) Constant 5
153: 42(ivec3) ConstantComposite 152 152 152
163(gl_VertexID): 123(ptr) Variable Input
164(gl_InstanceID): 123(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(p)
@ -181,63 +187,63 @@ Linked vertex stage:
75: 7(fvec4) CompositeExtract 64 3
76: 7(fvec4) FAdd 74 75
77: 13 CompositeConstruct 67 70 73 76
82: 21(ptr) AccessChain 81 24
83: 13 Load 82
84: 7(fvec4) CompositeExtract 77 0
85: 7(fvec4) CompositeExtract 83 0
86: 7(fvec4) FAdd 84 85
87: 7(fvec4) CompositeExtract 77 1
88: 7(fvec4) CompositeExtract 83 1
89: 7(fvec4) FAdd 87 88
90: 7(fvec4) CompositeExtract 77 2
91: 7(fvec4) CompositeExtract 83 2
92: 7(fvec4) FAdd 90 91
93: 7(fvec4) CompositeExtract 77 3
94: 7(fvec4) CompositeExtract 83 3
95: 7(fvec4) FAdd 93 94
96: 13 CompositeConstruct 86 89 92 95
97: 7(fvec4) VectorTimesMatrix 12 96
Store 9(pos) 97
102: 14(fvec3) Load 101(c)
105: 104(ptr) AccessChain 19(tblock) 103
106: 15 Load 105
107: 14(fvec3) VectorTimesMatrix 102 106
Store 99(color) 107
112: 111(ptr) AccessChain 19(tblock) 110
113: 16(int) Load 112
116: 41(int) Load 115(uiuin)
117: 16(int) Bitcast 116
118: 16(int) IAdd 113 117
124: 123(ptr) AccessChain 121(aiv2) 122
125: 16(int) Load 124
126: 16(int) IAdd 118 125
Store 109(iout) 126
130: 14(fvec3) Load 101(c)
131: 98(ptr) AccessChain 129(s) 20
Store 131 130
134: 133(ptr) AccessChain 11(p) 132
135: 6(float) Load 134
137: 136(ptr) AccessChain 129(s) 24
Store 137 135
139: 138(ptr) AccessChain 47 103 24
81: 21(ptr) AccessChain 80 24
82: 13 Load 81
83: 7(fvec4) CompositeExtract 77 0
84: 7(fvec4) CompositeExtract 82 0
85: 7(fvec4) FAdd 83 84
86: 7(fvec4) CompositeExtract 77 1
87: 7(fvec4) CompositeExtract 82 1
88: 7(fvec4) FAdd 86 87
89: 7(fvec4) CompositeExtract 77 2
90: 7(fvec4) CompositeExtract 82 2
91: 7(fvec4) FAdd 89 90
92: 7(fvec4) CompositeExtract 77 3
93: 7(fvec4) CompositeExtract 82 3
94: 7(fvec4) FAdd 92 93
95: 13 CompositeConstruct 85 88 91 94
96: 7(fvec4) VectorTimesMatrix 12 95
Store 9(pos) 96
101: 14(fvec3) Load 100(c)
104: 103(ptr) AccessChain 19(tblock) 102
105: 15 Load 104
106: 14(fvec3) VectorTimesMatrix 101 105
Store 98(color) 106
111: 110(ptr) AccessChain 19(tblock) 109
112: 16(int) Load 111
115: 41(int) Load 114(uiuin)
116: 16(int) Bitcast 115
117: 16(int) IAdd 112 116
123: 122(ptr) AccessChain 120(aiv2) 121
124: 16(int) Load 123
125: 16(int) IAdd 117 124
Store 108(iout) 125
129: 14(fvec3) Load 100(c)
130: 97(ptr) AccessChain 128(s) 20
Store 130 129
133: 132(ptr) AccessChain 11(p) 131
134: 6(float) Load 133
136: 135(ptr) AccessChain 128(s) 24
Store 136 134
139: 138(ptr) AccessChain 47 102 24
140: 14(fvec3) Load 139
144: 143(bvec3) FOrdNotEqual 140 142
145: 78(bool) Any 144
146: 78(bool) LogicalNot 145
145: 137(bool) Any 144
146: 137(bool) LogicalNot 145
SelectionMerge 148 None
BranchConditional 146 147 148
147: Label
150: 149(ptr) AccessChain 47 110 103
150: 149(ptr) AccessChain 47 109 102
151: 42(ivec3) Load 150
154: 143(bvec3) INotEqual 151 153
155: 78(bool) Any 154
155: 137(bool) Any 154
Branch 148
148: Label
156: 78(bool) Phi 145 5 155 147
156: 137(bool) Phi 145 5 155 147
SelectionMerge 158 None
BranchConditional 156 157 158
157: Label
159: 98(ptr) AccessChain 129(s) 20
159: 97(ptr) AccessChain 128(s) 20
160: 14(fvec3) Load 159
161: 14(fvec3) CompositeConstruct 141 141 141
162: 14(fvec3) FAdd 160 161

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 117
// Id's are bound by 115
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 11 51 53 61 73 81 115 116
EntryPoint Vertex 4 "main" 9 11 50 52 60 72 80
Source ESSL 310
Name 4 "main"
Name 9 "pos"
@ -29,21 +29,19 @@ Linked vertex stage:
MemberName 33(T3) 2 "N2"
MemberName 33(T3) 3 "uv3a"
Name 35 ""
Name 43 "T2"
MemberName 43(T2) 0 "b"
MemberName 43(T2) 1 "t2m"
Name 45 ""
Name 51 "color"
Name 53 "c"
Name 61 "iout"
Name 67 "uiuin"
Name 73 "aiv2"
Name 79 "S"
MemberName 79(S) 0 "c"
MemberName 79(S) 1 "f"
Name 81 "s"
Name 115 "gl_VertexID"
Name 116 "gl_InstanceID"
Name 42 "T2"
MemberName 42(T2) 0 "b"
MemberName 42(T2) 1 "t2m"
Name 44 ""
Name 50 "color"
Name 52 "c"
Name 60 "iout"
Name 66 "uiuin"
Name 72 "aiv2"
Name 78 "S"
MemberName 78(S) 0 "c"
MemberName 78(S) 1 "f"
Name 80 "s"
Decorate 11(p) Location 3
MemberDecorate 17(Transform) 0 RowMajor
MemberDecorate 17(Transform) 0 Offset 0
@ -56,19 +54,29 @@ Linked vertex stage:
MemberDecorate 17(Transform) 2 MatrixStride 16
MemberDecorate 17(Transform) 3 Offset 176
Decorate 17(Transform) Block
Decorate 19(tblock) DescriptorSet 0
Decorate 32 ArrayStride 16
MemberDecorate 33(T3) 0 ColMajor
MemberDecorate 33(T3) 0 Offset 0
MemberDecorate 33(T3) 0 MatrixStride 16
MemberDecorate 33(T3) 1 RowMajor
MemberDecorate 33(T3) 1 Offset 64
MemberDecorate 33(T3) 1 MatrixStride 16
MemberDecorate 33(T3) 2 ColMajor
Decorate 33(T3) GLSLShared
MemberDecorate 33(T3) 2 Offset 128
MemberDecorate 33(T3) 2 MatrixStride 16
MemberDecorate 33(T3) 3 Offset 160
Decorate 33(T3) Block
MemberDecorate 43(T2) 1 RowMajor
Decorate 43(T2) GLSLShared
Decorate 43(T2) Block
Decorate 53(c) Location 7
Decorate 61(iout) Flat
Decorate 73(aiv2) Location 9
Decorate 115(gl_VertexID) BuiltIn VertexId
Decorate 116(gl_InstanceID) BuiltIn InstanceId
Decorate 35 DescriptorSet 0
MemberDecorate 42(T2) 0 Offset 0
MemberDecorate 42(T2) 1 RowMajor
MemberDecorate 42(T2) 1 Offset 16
MemberDecorate 42(T2) 1 MatrixStride 16
Decorate 42(T2) Block
Decorate 44 DescriptorSet 0
Decorate 52(c) Location 7
Decorate 60(iout) Flat
Decorate 72(aiv2) Location 9
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -95,42 +103,40 @@ Linked vertex stage:
33(T3): TypeStruct 13 13 28 32
34: TypePointer Uniform 33(T3)
35: 34(ptr) Variable Uniform
42: TypeBool
43(T2): TypeStruct 42(bool) 13
44: TypePointer Uniform 43(T2)
45: 44(ptr) Variable Uniform
50: TypePointer Output 14(fvec3)
51(color): 50(ptr) Variable Output
52: TypePointer Input 14(fvec3)
53(c): 52(ptr) Variable Input
55: 16(int) Constant 2
56: TypePointer Uniform 15
60: TypePointer Output 16(int)
61(iout): 60(ptr) Variable Output
62: 16(int) Constant 3
63: TypePointer Uniform 16(int)
66: TypePointer UniformConstant 29(int)
67(uiuin): 66(ptr) Variable UniformConstant
71: TypeVector 16(int) 2
72: TypePointer Input 71(ivec2)
73(aiv2): 72(ptr) Variable Input
74: 29(int) Constant 1
75: TypePointer Input 16(int)
79(S): TypeStruct 14(fvec3) 6(float)
80: TypePointer Output 79(S)
81(s): 80(ptr) Variable Output
84: 29(int) Constant 0
85: TypePointer Input 6(float)
88: TypePointer Output 6(float)
42(T2): TypeStruct 29(int) 13
43: TypePointer Uniform 42(T2)
44: 43(ptr) Variable Uniform
49: TypePointer Output 14(fvec3)
50(color): 49(ptr) Variable Output
51: TypePointer Input 14(fvec3)
52(c): 51(ptr) Variable Input
54: 16(int) Constant 2
55: TypePointer Uniform 15
59: TypePointer Output 16(int)
60(iout): 59(ptr) Variable Output
61: 16(int) Constant 3
62: TypePointer Uniform 16(int)
65: TypePointer Private 29(int)
66(uiuin): 65(ptr) Variable Private
70: TypeVector 16(int) 2
71: TypePointer Input 70(ivec2)
72(aiv2): 71(ptr) Variable Input
73: 29(int) Constant 1
74: TypePointer Input 16(int)
78(S): TypeStruct 14(fvec3) 6(float)
79: TypePointer Output 78(S)
80(s): 79(ptr) Variable Output
83: 29(int) Constant 0
84: TypePointer Input 6(float)
87: TypePointer Output 6(float)
89: TypeBool
90: TypePointer Uniform 14(fvec3)
93: 6(float) Constant 1065353216
94: 14(fvec3) ConstantComposite 93 93 93
95: TypeVector 42(bool) 3
95: TypeVector 89(bool) 3
101: TypePointer Uniform 30(ivec3)
104: 29(int) Constant 5
105: 30(ivec3) ConstantComposite 104 104 104
115(gl_VertexID): 75(ptr) Variable Input
116(gl_InstanceID): 75(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(p)
@ -145,51 +151,51 @@ Linked vertex stage:
39: 21(ptr) AccessChain 35 20
40: 13 Load 39
41: 13 MatrixTimesMatrix 38 40
46: 21(ptr) AccessChain 45 24
47: 13 Load 46
48: 13 MatrixTimesMatrix 41 47
49: 7(fvec4) VectorTimesMatrix 12 48
Store 9(pos) 49
54: 14(fvec3) Load 53(c)
57: 56(ptr) AccessChain 19(tblock) 55
58: 15 Load 57
59: 14(fvec3) VectorTimesMatrix 54 58
Store 51(color) 59
64: 63(ptr) AccessChain 19(tblock) 62
65: 16(int) Load 64
68: 29(int) Load 67(uiuin)
69: 16(int) Bitcast 68
70: 16(int) IAdd 65 69
76: 75(ptr) AccessChain 73(aiv2) 74
77: 16(int) Load 76
78: 16(int) IAdd 70 77
Store 61(iout) 78
82: 14(fvec3) Load 53(c)
83: 50(ptr) AccessChain 81(s) 20
Store 83 82
86: 85(ptr) AccessChain 11(p) 84
87: 6(float) Load 86
89: 88(ptr) AccessChain 81(s) 24
Store 89 87
91: 90(ptr) AccessChain 35 55 24
45: 21(ptr) AccessChain 44 24
46: 13 Load 45
47: 13 MatrixTimesMatrix 41 46
48: 7(fvec4) VectorTimesMatrix 12 47
Store 9(pos) 48
53: 14(fvec3) Load 52(c)
56: 55(ptr) AccessChain 19(tblock) 54
57: 15 Load 56
58: 14(fvec3) VectorTimesMatrix 53 57
Store 50(color) 58
63: 62(ptr) AccessChain 19(tblock) 61
64: 16(int) Load 63
67: 29(int) Load 66(uiuin)
68: 16(int) Bitcast 67
69: 16(int) IAdd 64 68
75: 74(ptr) AccessChain 72(aiv2) 73
76: 16(int) Load 75
77: 16(int) IAdd 69 76
Store 60(iout) 77
81: 14(fvec3) Load 52(c)
82: 49(ptr) AccessChain 80(s) 20
Store 82 81
85: 84(ptr) AccessChain 11(p) 83
86: 6(float) Load 85
88: 87(ptr) AccessChain 80(s) 24
Store 88 86
91: 90(ptr) AccessChain 35 54 24
92: 14(fvec3) Load 91
96: 95(bvec3) FOrdNotEqual 92 94
97: 42(bool) Any 96
98: 42(bool) LogicalNot 97
97: 89(bool) Any 96
98: 89(bool) LogicalNot 97
SelectionMerge 100 None
BranchConditional 98 99 100
99: Label
102: 101(ptr) AccessChain 35 62 55
102: 101(ptr) AccessChain 35 61 54
103: 30(ivec3) Load 102
106: 95(bvec3) INotEqual 103 105
107: 42(bool) Any 106
107: 89(bool) Any 106
Branch 100
100: Label
108: 42(bool) Phi 97 5 107 99
108: 89(bool) Phi 97 5 107 99
SelectionMerge 110 None
BranchConditional 108 109 110
109: Label
111: 50(ptr) AccessChain 81(s) 20
111: 49(ptr) AccessChain 80(s) 20
112: 14(fvec3) Load 111
113: 14(fvec3) CompositeConstruct 93 93 93
114: 14(fvec3) FAdd 112 113

View File

@ -33,12 +33,22 @@ Linked compute stage:
MemberName 48(outs) 1 "va"
Name 50 "outnames"
Name 53 "gl_LocalInvocationID"
Decorate 13(outb) GLSLShared
Decorate 12 ArrayStride 16
MemberDecorate 13(outb) 0 Offset 0
MemberDecorate 13(outb) 1 Offset 4
MemberDecorate 13(outb) 2 Offset 8
MemberDecorate 13(outb) 3 Offset 16
Decorate 13(outb) BufferBlock
Decorate 24(outbna) GLSLShared
Decorate 15(outbname) DescriptorSet 0
MemberDecorate 24(outbna) 0 Offset 0
MemberDecorate 24(outbna) 1 Offset 16
Decorate 24(outbna) BufferBlock
Decorate 48(outs) GLSLShared
Decorate 26(outbnamena) DescriptorSet 0
Decorate 47 ArrayStride 16
MemberDecorate 48(outs) 0 Offset 0
MemberDecorate 48(outs) 1 Offset 16
Decorate 48(outs) BufferBlock
Decorate 50(outnames) DescriptorSet 0
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 66 BuiltIn WorkgroupSize
2: TypeVoid

View File

@ -16,7 +16,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 1025 1031 1036 1048 1074 1095 1097
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
@ -52,8 +52,12 @@ Linked fragment stage:
Name 1078 "isamp2DA"
Name 1095 "gl_FragCoord"
Name 1097 "vl2"
Decorate 17(u2drs) DescriptorSet 0
Decorate 1023(arrayedSampler) DescriptorSet 0
Decorate 1025(i) Flat
Decorate 1036(gl_ClipDistance) BuiltIn ClipDistance
Decorate 1052(samp2dr) DescriptorSet 0
Decorate 1078(isamp2DA) DescriptorSet 0
Decorate 1095(gl_FragCoord) BuiltIn FragCoord
Decorate 1097(vl2) Location 6
2: TypeVoid

View File

@ -7,7 +7,7 @@ Linked geometry stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 74
// Id's are bound by 72
Capability Geometry
Capability GeometryPointSize
@ -36,7 +36,6 @@ Linked geometry stage:
Name 46 "coord"
Name 64 "i"
Name 67 "indexable"
Name 73 "v4"
MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize
Decorate 9(gl_PerVertex) Block
MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize
@ -46,6 +45,7 @@ Linked geometry stage:
Decorate 28(gl_ViewportIndex) Stream 0
Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex
Decorate 33(gl_InvocationID) BuiltIn InvocationId
Decorate 41(s2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -94,12 +94,10 @@ Linked geometry stage:
60: 15(int) Constant 2
61: 50(ivec2) ConstantComposite 60 16
62: 52 ConstantComposite 53 55 57 59 61
63: TypePointer UniformConstant 15(int)
64(i): 63(ptr) Variable UniformConstant
63: TypePointer Private 15(int)
64(i): 63(ptr) Variable Private
66: TypePointer Function 52
68: TypePointer Function 50(ivec2)
72: TypePointer UniformConstant 35(fvec4)
73(v4): 72(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(p): 7(ptr) Variable Function

View File

@ -7,13 +7,13 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 69
// Id's are bound by 63
Capability Shader
Capability ClipDistance
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 12 23 34 44 45 65 67 68
EntryPoint Vertex 4 "main" 12 23 34 38 41 42 62
Source GLSL 430
Name 4 "main"
Name 10 "gl_PerVertex"
@ -21,58 +21,57 @@ Linked vertex stage:
Name 12 ""
Name 23 "bad"
Name 34 "badorder3"
Name 39 "f"
Name 43 "uv4"
Name 44 "badorder"
Name 45 "badorder2"
Name 46 "boundblock"
MemberName 46(boundblock) 0 "aoeu"
Name 48 "boundInst"
Name 49 "anonblock"
MemberName 49(anonblock) 0 "aoeu"
Name 51 ""
Name 55 "sampb1"
Name 58 "sampb2"
Name 59 "sampb4"
Name 62 "S"
MemberName 62(S) 0 "a"
MemberName 62(S) 1 "b"
MemberName 62(S) 2 "c"
Name 63 "SS"
MemberName 63(SS) 0 "b"
MemberName 63(SS) 1 "s"
MemberName 63(SS) 2 "c"
Name 65 "var"
Name 67 "gl_VertexID"
Name 68 "gl_InstanceID"
Name 38 "f"
Name 41 "badorder"
Name 42 "badorder2"
Name 43 "boundblock"
MemberName 43(boundblock) 0 "aoeu"
Name 45 "boundInst"
Name 46 "anonblock"
MemberName 46(anonblock) 0 "aoeu"
Name 48 ""
Name 52 "sampb1"
Name 55 "sampb2"
Name 56 "sampb4"
Name 59 "S"
MemberName 59(S) 0 "a"
MemberName 59(S) 1 "b"
MemberName 59(S) 2 "c"
Name 60 "SS"
MemberName 60(SS) 0 "b"
MemberName 60(SS) 1 "s"
MemberName 60(SS) 2 "c"
Name 62 "var"
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
Decorate 10(gl_PerVertex) Block
Decorate 34(badorder3) Flat
Decorate 43(uv4) Location 4
Decorate 45(badorder2) Invariant
Decorate 46(boundblock) GLSLShared
Decorate 46(boundblock) Block
Decorate 48(boundInst) Binding 3
Decorate 49(anonblock) GLSLShared
Decorate 49(anonblock) Block
Decorate 51 Binding 7
Decorate 55(sampb1) Binding 4
Decorate 58(sampb2) Binding 5
Decorate 59(sampb4) Binding 31
MemberDecorate 62(S) 0 Flat
MemberDecorate 62(S) 0 Location 1
MemberDecorate 62(S) 1 Flat
MemberDecorate 62(S) 1 Location 2
MemberDecorate 62(S) 2 Flat
MemberDecorate 62(S) 2 Location 3
MemberDecorate 63(SS) 0 Flat
MemberDecorate 63(SS) 0 Location 0
MemberDecorate 63(SS) 1 Flat
MemberDecorate 63(SS) 1 Location 1
MemberDecorate 63(SS) 2 Flat
MemberDecorate 63(SS) 2 Location 4
Decorate 67(gl_VertexID) BuiltIn VertexId
Decorate 68(gl_InstanceID) BuiltIn InstanceId
Decorate 42(badorder2) Invariant
MemberDecorate 43(boundblock) 0 Offset 0
Decorate 43(boundblock) Block
Decorate 45(boundInst) DescriptorSet 0
Decorate 45(boundInst) Binding 3
MemberDecorate 46(anonblock) 0 Offset 0
Decorate 46(anonblock) Block
Decorate 48 DescriptorSet 0
Decorate 48 Binding 7
Decorate 52(sampb1) DescriptorSet 0
Decorate 52(sampb1) Binding 4
Decorate 55(sampb2) DescriptorSet 0
Decorate 55(sampb2) Binding 5
Decorate 56(sampb4) DescriptorSet 0
Decorate 56(sampb4) Binding 31
MemberDecorate 59(S) 0 Flat
MemberDecorate 59(S) 0 Location 1
MemberDecorate 59(S) 1 Flat
MemberDecorate 59(S) 1 Location 2
MemberDecorate 59(S) 2 Flat
MemberDecorate 59(S) 2 Location 3
MemberDecorate 60(SS) 0 Flat
MemberDecorate 60(SS) 0 Location 0
MemberDecorate 60(SS) 1 Flat
MemberDecorate 60(SS) 1 Location 1
MemberDecorate 60(SS) 2 Flat
MemberDecorate 60(SS) 2 Location 4
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -99,35 +98,29 @@ Linked vertex stage:
33: TypePointer Output 19(fvec4)
34(badorder3): 33(ptr) Variable Output
35: TypePointer Input 19(fvec4)
38: TypePointer UniformConstant 6(float)
39(f): 38(ptr) Variable UniformConstant
42: TypePointer UniformConstant 19(fvec4)
43(uv4): 42(ptr) Variable UniformConstant
44(badorder): 35(ptr) Variable Input
45(badorder2): 33(ptr) Variable Output
46(boundblock): TypeStruct 13(int)
47: TypePointer Uniform 46(boundblock)
48(boundInst): 47(ptr) Variable Uniform
49(anonblock): TypeStruct 13(int)
50: TypePointer Uniform 49(anonblock)
51: 50(ptr) Variable Uniform
52: TypeImage 6(float) 2D sampled format:Unknown
53: TypeSampledImage 52
38(f): 25(ptr) Variable Input
41(badorder): 35(ptr) Variable Input
42(badorder2): 33(ptr) Variable Output
43(boundblock): TypeStruct 13(int)
44: TypePointer Uniform 43(boundblock)
45(boundInst): 44(ptr) Variable Uniform
46(anonblock): TypeStruct 13(int)
47: TypePointer Uniform 46(anonblock)
48: 47(ptr) Variable Uniform
49: TypeImage 6(float) 2D sampled format:Unknown
50: TypeSampledImage 49
51: TypePointer UniformConstant 50
52(sampb1): 51(ptr) Variable UniformConstant
53: TypeArray 50 20
54: TypePointer UniformConstant 53
55(sampb1): 54(ptr) Variable UniformConstant
56: TypeArray 53 20
57: TypePointer UniformConstant 56
58(sampb2): 57(ptr) Variable UniformConstant
59(sampb4): 54(ptr) Variable UniformConstant
60: TypeVector 7(int) 2
61: TypeVector 6(float) 3
62(S): TypeStruct 6(float) 60(ivec2) 61(fvec3)
63(SS): TypeStruct 19(fvec4) 62(S) 19(fvec4)
64: TypePointer Output 63(SS)
65(var): 64(ptr) Variable Output
66: TypePointer Input 13(int)
67(gl_VertexID): 66(ptr) Variable Input
68(gl_InstanceID): 66(ptr) Variable Input
55(sampb2): 54(ptr) Variable UniformConstant
56(sampb4): 51(ptr) Variable UniformConstant
57: TypeVector 7(int) 2
58: TypeVector 6(float) 3
59(S): TypeStruct 6(float) 57(ivec2) 58(fvec3)
60(SS): TypeStruct 19(fvec4) 59(S) 19(fvec4)
61: TypePointer Output 60(SS)
62(var): 61(ptr) Variable Output
4(main): 2 Function None 3
5: Label
18: 17(ptr) AccessChain 12 14 15
@ -143,8 +136,8 @@ Linked vertex stage:
Store 34(badorder3) 37
Branch 32
32: Label
40: 6(float) Load 39(f)
41: 17(ptr) AccessChain 12 14 14
Store 41 40
39: 6(float) Load 38(f)
40: 17(ptr) AccessChain 12 14 14
Store 40 39
Return
FunctionEnd

View File

@ -12,8 +12,8 @@ Linked fragment stage:
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 39 44 78
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 39 44 68 70 72 78
ExecutionMode 4 OriginUpperLeft
Source GLSL 430
Name 4 "main"
Name 17 "foo(f1[5][7];"
@ -33,8 +33,14 @@ Linked fragment stage:
Name 94 "uAofA"
MemberName 94(uAofA) 0 "f"
Name 98 "nameAofA"
Decorate 94(uAofA) GLSLShared
Decorate 68(i) Flat
Decorate 70(j) Flat
Decorate 72(k) Flat
Decorate 92 ArrayStride 16
Decorate 93 ArrayStride 64
MemberDecorate 94(uAofA) 0 Offset 0
Decorate 94(uAofA) Block
Decorate 98(nameAofA) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -74,10 +80,10 @@ Linked fragment stage:
64: TypeArray 62 63
65: TypePointer Private 64
66(many): 65(ptr) Variable Private
67: TypePointer UniformConstant 21(int)
68(i): 67(ptr) Variable UniformConstant
70(j): 67(ptr) Variable UniformConstant
72(k): 67(ptr) Variable UniformConstant
67: TypePointer Input 21(int)
68(i): 67(ptr) Variable Input
70(j): 67(ptr) Variable Input
72(k): 67(ptr) Variable Input
77: TypePointer Input 6(float)
78(infloat): 77(ptr) Variable Input
80: TypePointer Private 6(float)

View File

@ -7,13 +7,13 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 507
// Id's are bound by 509
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 483
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 11 22 212 288 485 503 508
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "v"
@ -27,52 +27,56 @@ Linked fragment stage:
Name 288 "uui"
Name 305 "b"
Name 342 "ub42"
Name 483 "FragColor"
Name 501 "uiv4"
Name 503 "ub"
Name 506 "uuv4"
Name 485 "FragColor"
Name 503 "uiv4"
Name 505 "ub"
Name 508 "uuv4"
Decorate 22(ui) Flat
Decorate 288(uui) Flat
Decorate 503(uiv4) Flat
Decorate 508(uuv4) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypePointer UniformConstant 7(fvec4)
11(uv4): 10(ptr) Variable UniformConstant
10: TypePointer Input 7(fvec4)
11(uv4): 10(ptr) Variable Input
18: TypeInt 32 1
19: TypePointer Function 18(int)
21: TypePointer UniformConstant 18(int)
22(ui): 21(ptr) Variable UniformConstant
21: TypePointer Input 18(int)
22(ui): 21(ptr) Variable Input
141: TypeInt 32 0
142: 141(int) Constant 0
143: TypePointer Function 6(float)
178: TypeBool
179: TypeVector 178(bool) 4
180: TypePointer UniformConstant 179(bvec4)
181(ub41): 180(ptr) Variable UniformConstant
211: TypePointer UniformConstant 6(float)
212(uf): 211(ptr) Variable UniformConstant
180: TypePointer Private 179(bvec4)
181(ub41): 180(ptr) Variable Private
211: TypePointer Input 6(float)
212(uf): 211(ptr) Variable Input
284: TypePointer Function 141(int)
287: TypePointer UniformConstant 141(int)
288(uui): 287(ptr) Variable UniformConstant
287: TypePointer Input 141(int)
288(uui): 287(ptr) Variable Input
304: TypePointer Function 178(bool)
342(ub42): 180(ptr) Variable UniformConstant
396: 18(int) Constant 2
403: 18(int) Constant 1
433: TypeVector 6(float) 3
452: 6(float) Constant 1073741824
459: 6(float) Constant 1065353216
464: 18(int) Constant 66
470: 18(int) Constant 17
482: TypePointer Output 7(fvec4)
483(FragColor): 482(ptr) Variable Output
499: TypeVector 18(int) 4
500: TypePointer UniformConstant 499(ivec4)
501(uiv4): 500(ptr) Variable UniformConstant
502: TypePointer UniformConstant 178(bool)
503(ub): 502(ptr) Variable UniformConstant
504: TypeVector 141(int) 4
505: TypePointer UniformConstant 504(ivec4)
506(uuv4): 505(ptr) Variable UniformConstant
342(ub42): 180(ptr) Variable Private
398: 18(int) Constant 2
405: 18(int) Constant 1
435: TypeVector 6(float) 3
454: 6(float) Constant 1073741824
461: 6(float) Constant 1065353216
466: 18(int) Constant 66
472: 18(int) Constant 17
484: TypePointer Output 7(fvec4)
485(FragColor): 484(ptr) Variable Output
501: TypeVector 18(int) 4
502: TypePointer Input 501(ivec4)
503(uiv4): 502(ptr) Variable Input
504: TypePointer Private 178(bool)
505(ub): 504(ptr) Variable Private
506: TypeVector 141(int) 4
507: TypePointer Input 506(ivec4)
508(uuv4): 507(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(v): 8(ptr) Variable Function
@ -80,7 +84,7 @@ Linked fragment stage:
188(f): 143(ptr) Variable Function
285(u): 284(ptr) Variable Function
305(b): 304(ptr) Variable Function
484: 8(ptr) Variable Function
486: 8(ptr) Variable Function
12: 7(fvec4) Load 11(uv4)
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
Store 9(v) 13
@ -529,137 +533,142 @@ Linked fragment stage:
388: 18(int) Load 20(i)
389: 18(int) Load 22(ui)
390: 178(bool) INotEqual 388 389
391: 18(int) Load 20(i)
392: 18(int) Load 22(ui)
393: 178(bool) IEqual 391 392
394: 178(bool) LogicalAnd 390 393
395: 18(int) Load 20(i)
397: 178(bool) INotEqual 395 396
398: 178(bool) LogicalNotEqual 394 397
SelectionMerge 392 None
BranchConditional 390 391 392
391: Label
393: 18(int) Load 20(i)
394: 18(int) Load 22(ui)
395: 178(bool) IEqual 393 394
Branch 392
392: Label
396: 178(bool) Phi 390 386 395 391
397: 18(int) Load 20(i)
399: 178(bool) INotEqual 397 398
400: 178(bool) LogicalNotEqual 396 399
Branch 387
387: Label
399: 178(bool) Phi 384 365 398 386
SelectionMerge 401 None
BranchConditional 399 400 401
400: Label
402: 18(int) Load 20(i)
404: 18(int) IAdd 402 403
Store 20(i) 404
Branch 401
401: Label
405: 6(float) Load 212(uf)
406: 6(float) Load 212(uf)
407: 6(float) FAdd 405 406
401: 178(bool) Phi 384 365 400 392
SelectionMerge 403 None
BranchConditional 401 402 403
402: Label
404: 18(int) Load 20(i)
406: 18(int) IAdd 404 405
Store 20(i) 406
Branch 403
403: Label
407: 6(float) Load 212(uf)
408: 6(float) Load 212(uf)
409: 6(float) FMul 407 408
409: 6(float) FAdd 407 408
410: 6(float) Load 212(uf)
411: 6(float) FSub 409 410
411: 6(float) FMul 409 410
412: 6(float) Load 212(uf)
413: 6(float) FDiv 411 412
Store 188(f) 413
414: 7(fvec4) Load 9(v)
415: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 414
416: 6(float) Load 188(f)
417: 6(float) FAdd 416 415
Store 188(f) 417
418: 7(fvec4) Load 9(v)
419: 7(fvec4) Load 9(v)
420: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 418 419
421: 6(float) Load 188(f)
422: 6(float) FAdd 421 420
Store 188(f) 422
423: 7(fvec4) Load 9(v)
424: 7(fvec4) Load 9(v)
425: 6(float) Dot 423 424
426: 6(float) Load 188(f)
427: 6(float) FAdd 426 425
Store 188(f) 427
413: 6(float) FSub 411 412
414: 6(float) Load 212(uf)
415: 6(float) FDiv 413 414
Store 188(f) 415
416: 7(fvec4) Load 9(v)
417: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 416
418: 6(float) Load 188(f)
419: 6(float) FAdd 418 417
Store 188(f) 419
420: 7(fvec4) Load 9(v)
421: 7(fvec4) Load 9(v)
422: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 420 421
423: 6(float) Load 188(f)
424: 6(float) FAdd 423 422
Store 188(f) 424
425: 7(fvec4) Load 9(v)
426: 7(fvec4) Load 9(v)
427: 6(float) Dot 425 426
428: 6(float) Load 188(f)
429: 6(float) Load 212(uf)
430: 6(float) FMul 428 429
431: 6(float) Load 188(f)
432: 6(float) FAdd 431 430
Store 188(f) 432
434: 7(fvec4) Load 9(v)
435: 433(fvec3) VectorShuffle 434 434 0 1 2
429: 6(float) FAdd 428 427
Store 188(f) 429
430: 6(float) Load 188(f)
431: 6(float) Load 212(uf)
432: 6(float) FMul 430 431
433: 6(float) Load 188(f)
434: 6(float) FAdd 433 432
Store 188(f) 434
436: 7(fvec4) Load 9(v)
437: 433(fvec3) VectorShuffle 436 436 0 1 2
438: 433(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 437
439: 6(float) CompositeExtract 438 0
440: 6(float) Load 188(f)
441: 6(float) FAdd 440 439
Store 188(f) 441
437: 435(fvec3) VectorShuffle 436 436 0 1 2
438: 7(fvec4) Load 9(v)
439: 435(fvec3) VectorShuffle 438 438 0 1 2
440: 435(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 437 439
441: 6(float) CompositeExtract 440 0
442: 6(float) Load 188(f)
443: 6(float) Load 212(uf)
444: 178(bool) FOrdEqual 442 443
445: 178(bool) LogicalNot 444
SelectionMerge 447 None
BranchConditional 445 446 447
446: Label
448: 6(float) Load 188(f)
449: 6(float) Load 212(uf)
450: 178(bool) FOrdNotEqual 448 449
451: 6(float) Load 188(f)
453: 178(bool) FOrdNotEqual 451 452
454: 178(bool) LogicalAnd 450 453
Branch 447
447: Label
455: 178(bool) Phi 444 401 454 446
SelectionMerge 457 None
BranchConditional 455 456 457
456: Label
458: 6(float) Load 188(f)
460: 6(float) FAdd 458 459
Store 188(f) 460
Branch 457
457: Label
461: 18(int) Load 22(ui)
462: 18(int) Load 20(i)
463: 18(int) BitwiseAnd 462 461
Store 20(i) 463
465: 18(int) Load 20(i)
466: 18(int) BitwiseOr 465 464
Store 20(i) 466
467: 18(int) Load 22(ui)
468: 18(int) Load 20(i)
469: 18(int) BitwiseXor 468 467
Store 20(i) 469
471: 18(int) Load 20(i)
472: 18(int) SMod 471 470
Store 20(i) 472
443: 6(float) FAdd 442 441
Store 188(f) 443
444: 6(float) Load 188(f)
445: 6(float) Load 212(uf)
446: 178(bool) FOrdEqual 444 445
447: 178(bool) LogicalNot 446
SelectionMerge 449 None
BranchConditional 447 448 449
448: Label
450: 6(float) Load 188(f)
451: 6(float) Load 212(uf)
452: 178(bool) FOrdNotEqual 450 451
453: 6(float) Load 188(f)
455: 178(bool) FOrdNotEqual 453 454
456: 178(bool) LogicalAnd 452 455
Branch 449
449: Label
457: 178(bool) Phi 446 403 456 448
SelectionMerge 459 None
BranchConditional 457 458 459
458: Label
460: 6(float) Load 188(f)
462: 6(float) FAdd 460 461
Store 188(f) 462
Branch 459
459: Label
463: 18(int) Load 22(ui)
464: 18(int) Load 20(i)
465: 18(int) BitwiseAnd 464 463
Store 20(i) 465
467: 18(int) Load 20(i)
468: 18(int) BitwiseOr 467 466
Store 20(i) 468
469: 18(int) Load 22(ui)
470: 18(int) Load 20(i)
471: 18(int) BitwiseXor 470 469
Store 20(i) 471
473: 18(int) Load 20(i)
474: 18(int) ShiftRightArithmetic 473 396
474: 18(int) SMod 473 472
Store 20(i) 474
475: 18(int) Load 22(ui)
476: 18(int) Load 20(i)
477: 18(int) ShiftLeftLogical 476 475
Store 20(i) 477
475: 18(int) Load 20(i)
476: 18(int) ShiftRightArithmetic 475 398
Store 20(i) 476
477: 18(int) Load 22(ui)
478: 18(int) Load 20(i)
479: 18(int) Not 478
479: 18(int) ShiftLeftLogical 478 477
Store 20(i) 479
480: 178(bool) Load 305(b)
481: 178(bool) LogicalNot 480
Store 305(b) 481
485: 178(bool) Load 305(b)
SelectionMerge 487 None
BranchConditional 485 486 496
486: Label
488: 18(int) Load 20(i)
489: 6(float) ConvertSToF 488
490: 7(fvec4) CompositeConstruct 489 489 489 489
491: 6(float) Load 188(f)
480: 18(int) Load 20(i)
481: 18(int) Not 480
Store 20(i) 481
482: 178(bool) Load 305(b)
483: 178(bool) LogicalNot 482
Store 305(b) 483
487: 178(bool) Load 305(b)
SelectionMerge 489 None
BranchConditional 487 488 498
488: Label
490: 18(int) Load 20(i)
491: 6(float) ConvertSToF 490
492: 7(fvec4) CompositeConstruct 491 491 491 491
493: 7(fvec4) FAdd 490 492
494: 7(fvec4) Load 9(v)
495: 7(fvec4) FAdd 493 494
Store 484 495
Branch 487
496: Label
497: 7(fvec4) Load 9(v)
Store 484 497
Branch 487
487: Label
498: 7(fvec4) Load 484
Store 483(FragColor) 498
493: 6(float) Load 188(f)
494: 7(fvec4) CompositeConstruct 493 493 493 493
495: 7(fvec4) FAdd 492 494
496: 7(fvec4) Load 9(v)
497: 7(fvec4) FAdd 495 496
Store 486 497
Branch 489
498: Label
499: 7(fvec4) Load 9(v)
Store 486 499
Branch 489
489: Label
500: 7(fvec4) Load 486
Store 485(FragColor) 500
Return
FunctionEnd

View File

@ -12,8 +12,8 @@ Linked fragment stage:
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 65
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 65 149
ExecutionMode 4 OriginUpperLeft
Source GLSL 420
Name 4 "main"
Name 8 "S"
@ -72,6 +72,7 @@ Linked fragment stage:
Name 190 "param"
Name 194 "param"
Decorate 65(OutColor) Location 0
Decorate 149(u) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -92,8 +93,8 @@ Linked fragment stage:
141: 6(float) Constant 0
142: 7(fvec3) ConstantComposite 141 141 141
143: TypePointer Function 8(S)
148: TypePointer UniformConstant 13(int)
149(u): 148(ptr) Variable UniformConstant
148: TypePointer Input 13(int)
149(u): 148(ptr) Variable Input
4(main): 2 Function None 3
5: Label
144(s): 143(ptr) Variable Function

View File

@ -7,13 +7,13 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 378
// Id's are bound by 215
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 16 41 90 374
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 16 41 101 213
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 8 "s1"
@ -23,34 +23,47 @@ Linked fragment stage:
Name 16 "u"
Name 37 "b"
Name 41 "w"
Name 55 "s2"
MemberName 55(s2) 0 "i"
MemberName 55(s2) 1 "f"
MemberName 55(s2) 2 "s1_1"
Name 57 "foo2a"
Name 59 "foo2b"
Name 82 "v"
Name 86 "samp2D"
Name 90 "coord"
Name 341 "s1"
MemberName 341(s1) 0 "i"
MemberName 341(s1) 1 "f"
Name 342 "s2"
MemberName 342(s2) 0 "i"
MemberName 342(s2) 1 "f"
MemberName 342(s2) 2 "s1_1"
Name 343 "bn"
MemberName 343(bn) 0 "foo2a"
Name 345 "bi"
Name 374 "color"
Name 377 "foo1"
MemberDecorate 341(s1) 0 Offset 0
MemberDecorate 341(s1) 1 Offset 4
MemberDecorate 342(s2) 0 Offset 0
MemberDecorate 342(s2) 1 Offset 4
MemberDecorate 342(s2) 2 Offset 16
MemberDecorate 343(bn) 0 Offset 0
Decorate 343(bn) Block
Name 55 "s1"
MemberName 55(s1) 0 "i"
MemberName 55(s1) 1 "f"
Name 56 "s2"
MemberName 56(s2) 0 "i"
MemberName 56(s2) 1 "f"
MemberName 56(s2) 2 "s1_1"
Name 57 "ub1"
MemberName 57(ub1) 0 "foo2a"
Name 59 "uName1"
Name 64 "s1"
MemberName 64(s1) 0 "i"
MemberName 64(s1) 1 "f"
Name 65 "s2"
MemberName 65(s2) 0 "i"
MemberName 65(s2) 1 "f"
MemberName 65(s2) 2 "s1_1"
Name 66 "ub2"
MemberName 66(ub2) 0 "foo2b"
Name 68 "uName2"
Name 93 "v"
Name 97 "samp2D"
Name 101 "coord"
Name 213 "color"
MemberDecorate 55(s1) 0 Offset 0
MemberDecorate 55(s1) 1 Offset 4
MemberDecorate 56(s2) 0 Offset 0
MemberDecorate 56(s2) 1 Offset 4
MemberDecorate 56(s2) 2 Offset 16
MemberDecorate 57(ub1) 0 Offset 0
Decorate 57(ub1) Block
Decorate 59(uName1) DescriptorSet 0
MemberDecorate 64(s1) 0 Offset 0
MemberDecorate 64(s1) 1 Offset 4
MemberDecorate 65(s2) 0 Offset 0
MemberDecorate 65(s2) 1 Offset 4
MemberDecorate 65(s2) 2 Offset 8
MemberDecorate 66(ub2) 0 Offset 0
Decorate 66(ub2) BufferBlock
Decorate 68(uName2) DescriptorSet 0
Decorate 97(samp2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -74,44 +87,43 @@ Linked fragment stage:
39: 7(float) Constant 1099431936
40: 8(s1) ConstantComposite 38 39
41(w): 15(ptr) Variable Input
55(s2): TypeStruct 6(int) 7(float) 8(s1)
56: TypePointer UniformConstant 55(s2)
57(foo2a): 56(ptr) Variable UniformConstant
59(foo2b): 56(ptr) Variable UniformConstant
61: TypeBool
81: TypePointer Function 14(fvec4)
83: TypeImage 7(float) 2D sampled format:Unknown
84: TypeSampledImage 83
85: TypePointer UniformConstant 84
86(samp2D): 85(ptr) Variable UniformConstant
88: TypeVector 7(float) 2
89: TypePointer Input 88(fvec2)
90(coord): 89(ptr) Variable Input
95: 7(float) Constant 1073741824
101: TypeVector 61(bool) 4
106: 7(float) Constant 1077936128
115: 7(float) Constant 1082130432
121: TypeVector 61(bool) 2
126: 7(float) Constant 1084227584
232: 7(float) Constant 1086324736
338: 7(float) Constant 1088421888
341(s1): TypeStruct 6(int) 7(float)
342(s2): TypeStruct 6(int) 7(float) 341(s1)
343(bn): TypeStruct 342(s2)
344: TypePointer Uniform 343(bn)
345(bi): 344(ptr) Variable Uniform
346: 6(int) Constant 0
347: TypePointer Uniform 342(s2)
370: 7(float) Constant 1090519040
373: TypePointer Output 14(fvec4)
374(color): 373(ptr) Variable Output
376: TypePointer UniformConstant 8(s1)
377(foo1): 376(ptr) Variable UniformConstant
55(s1): TypeStruct 6(int) 7(float)
56(s2): TypeStruct 6(int) 7(float) 55(s1)
57(ub1): TypeStruct 56(s2)
58: TypePointer Uniform 57(ub1)
59(uName1): 58(ptr) Variable Uniform
60: 6(int) Constant 0
61: TypePointer Uniform 56(s2)
64(s1): TypeStruct 6(int) 7(float)
65(s2): TypeStruct 6(int) 7(float) 64(s1)
66(ub2): TypeStruct 65(s2)
67: TypePointer Uniform 66(ub2)
68(uName2): 67(ptr) Variable Uniform
69: TypePointer Uniform 65(s2)
72: TypeBool
92: TypePointer Function 14(fvec4)
94: TypeImage 7(float) 2D sampled format:Unknown
95: TypeSampledImage 94
96: TypePointer UniformConstant 95
97(samp2D): 96(ptr) Variable UniformConstant
99: TypeVector 7(float) 2
100: TypePointer Input 99(fvec2)
101(coord): 100(ptr) Variable Input
106: 7(float) Constant 1073741824
112: TypeVector 72(bool) 4
117: 7(float) Constant 1077936128
126: 7(float) Constant 1082130432
132: TypeVector 72(bool) 2
137: 7(float) Constant 1084227584
173: 7(float) Constant 1086324736
209: 7(float) Constant 1088421888
212: TypePointer Output 14(fvec4)
213(color): 212(ptr) Variable Output
4(main): 2 Function None 3
5: Label
13(a): 12(ptr) Variable Function
37(b): 12(ptr) Variable Function
82(v): 81(ptr) Variable Function
93(v): 92(ptr) Variable Function
19: 18(ptr) AccessChain 16(u) 17
20: 7(float) Load 19
21: 6(int) ConvertFToS 20
@ -140,325 +152,159 @@ Linked fragment stage:
53: 8(s1) CompositeConstruct 50 52
54: 11 CompositeConstruct 40 47 53
Store 37(b) 54
58: 55(s2) Load 57(foo2a)
60: 55(s2) Load 59(foo2b)
62: 6(int) CompositeExtract 58 0
63: 6(int) CompositeExtract 60 0
64: 61(bool) IEqual 62 63
65: 7(float) CompositeExtract 58 1
66: 7(float) CompositeExtract 60 1
67: 61(bool) FOrdEqual 65 66
68: 61(bool) LogicalAnd 64 67
69: 8(s1) CompositeExtract 58 2
70: 8(s1) CompositeExtract 60 2
71: 6(int) CompositeExtract 69 0
72: 6(int) CompositeExtract 70 0
73: 61(bool) IEqual 71 72
74: 7(float) CompositeExtract 69 1
75: 7(float) CompositeExtract 70 1
76: 61(bool) FOrdEqual 74 75
77: 61(bool) LogicalAnd 73 76
78: 61(bool) LogicalAnd 68 77
SelectionMerge 80 None
BranchConditional 78 79 93
79: Label
87: 84 Load 86(samp2D)
91: 88(fvec2) Load 90(coord)
92: 14(fvec4) ImageSampleImplicitLod 87 91
Store 82(v) 92
Branch 80
93: Label
94: 84 Load 86(samp2D)
96: 88(fvec2) Load 90(coord)
97: 88(fvec2) VectorTimesScalar 96 95
98: 14(fvec4) ImageSampleImplicitLod 94 97
Store 82(v) 98
Branch 80
80: Label
99: 14(fvec4) Load 16(u)
100: 14(fvec4) Load 82(v)
102: 101(bvec4) FOrdEqual 99 100
103: 61(bool) All 102
SelectionMerge 105 None
BranchConditional 103 104 105
62: 61(ptr) AccessChain 59(uName1) 60
63: 56(s2) Load 62
70: 69(ptr) AccessChain 68(uName2) 60
71: 65(s2) Load 70
73: 6(int) CompositeExtract 63 0
74: 6(int) CompositeExtract 71 0
75: 72(bool) IEqual 73 74
76: 7(float) CompositeExtract 63 1
77: 7(float) CompositeExtract 71 1
78: 72(bool) FOrdEqual 76 77
79: 72(bool) LogicalAnd 75 78
80: 55(s1) CompositeExtract 63 2
81: 64(s1) CompositeExtract 71 2
82: 6(int) CompositeExtract 80 0
83: 6(int) CompositeExtract 81 0
84: 72(bool) IEqual 82 83
85: 7(float) CompositeExtract 80 1
86: 7(float) CompositeExtract 81 1
87: 72(bool) FOrdEqual 85 86
88: 72(bool) LogicalAnd 84 87
89: 72(bool) LogicalAnd 79 88
SelectionMerge 91 None
BranchConditional 89 90 104
90: Label
98: 95 Load 97(samp2D)
102: 99(fvec2) Load 101(coord)
103: 14(fvec4) ImageSampleImplicitLod 98 102
Store 93(v) 103
Branch 91
104: Label
107: 14(fvec4) Load 82(v)
108: 14(fvec4) VectorTimesScalar 107 106
Store 82(v) 108
Branch 105
105: Label
109: 14(fvec4) Load 16(u)
110: 14(fvec4) Load 82(v)
111: 101(bvec4) FOrdNotEqual 109 110
112: 61(bool) Any 111
SelectionMerge 114 None
BranchConditional 112 113 114
113: Label
116: 14(fvec4) Load 82(v)
117: 14(fvec4) VectorTimesScalar 116 115
Store 82(v) 117
Branch 114
114: Label
118: 88(fvec2) Load 90(coord)
119: 14(fvec4) Load 82(v)
120: 88(fvec2) VectorShuffle 119 119 1 3
122: 121(bvec2) FOrdEqual 118 120
123: 61(bool) All 122
105: 95 Load 97(samp2D)
107: 99(fvec2) Load 101(coord)
108: 99(fvec2) VectorTimesScalar 107 106
109: 14(fvec4) ImageSampleImplicitLod 105 108
Store 93(v) 109
Branch 91
91: Label
110: 14(fvec4) Load 16(u)
111: 14(fvec4) Load 93(v)
113: 112(bvec4) FOrdEqual 110 111
114: 72(bool) All 113
SelectionMerge 116 None
BranchConditional 114 115 116
115: Label
118: 14(fvec4) Load 93(v)
119: 14(fvec4) VectorTimesScalar 118 117
Store 93(v) 119
Branch 116
116: Label
120: 14(fvec4) Load 16(u)
121: 14(fvec4) Load 93(v)
122: 112(bvec4) FOrdNotEqual 120 121
123: 72(bool) Any 122
SelectionMerge 125 None
BranchConditional 123 124 125
124: Label
127: 14(fvec4) Load 82(v)
127: 14(fvec4) Load 93(v)
128: 14(fvec4) VectorTimesScalar 127 126
Store 82(v) 128
Store 93(v) 128
Branch 125
125: Label
129: 11 Load 13(a)
130: 11 Load 37(b)
131: 8(s1) CompositeExtract 129 0
132: 8(s1) CompositeExtract 130 0
133: 6(int) CompositeExtract 131 0
134: 6(int) CompositeExtract 132 0
135: 61(bool) IEqual 133 134
136: 7(float) CompositeExtract 131 1
137: 7(float) CompositeExtract 132 1
138: 61(bool) FOrdEqual 136 137
139: 61(bool) LogicalAnd 135 138
140: 8(s1) CompositeExtract 129 1
141: 8(s1) CompositeExtract 130 1
142: 6(int) CompositeExtract 140 0
143: 6(int) CompositeExtract 141 0
144: 61(bool) IEqual 142 143
145: 7(float) CompositeExtract 140 1
146: 7(float) CompositeExtract 141 1
147: 61(bool) FOrdEqual 145 146
148: 61(bool) LogicalAnd 144 147
149: 61(bool) LogicalAnd 139 148
150: 8(s1) CompositeExtract 129 2
151: 8(s1) CompositeExtract 130 2
152: 6(int) CompositeExtract 150 0
129: 99(fvec2) Load 101(coord)
130: 14(fvec4) Load 93(v)
131: 99(fvec2) VectorShuffle 130 130 1 3
133: 132(bvec2) FOrdEqual 129 131
134: 72(bool) All 133
SelectionMerge 136 None
BranchConditional 134 135 136
135: Label
138: 14(fvec4) Load 93(v)
139: 14(fvec4) VectorTimesScalar 138 137
Store 93(v) 139
Branch 136
136: Label
140: 11 Load 13(a)
141: 11 Load 37(b)
142: 8(s1) CompositeExtract 140 0
143: 8(s1) CompositeExtract 141 0
144: 6(int) CompositeExtract 142 0
145: 6(int) CompositeExtract 143 0
146: 72(bool) IEqual 144 145
147: 7(float) CompositeExtract 142 1
148: 7(float) CompositeExtract 143 1
149: 72(bool) FOrdEqual 147 148
150: 72(bool) LogicalAnd 146 149
151: 8(s1) CompositeExtract 140 1
152: 8(s1) CompositeExtract 141 1
153: 6(int) CompositeExtract 151 0
154: 61(bool) IEqual 152 153
155: 7(float) CompositeExtract 150 1
154: 6(int) CompositeExtract 152 0
155: 72(bool) IEqual 153 154
156: 7(float) CompositeExtract 151 1
157: 61(bool) FOrdEqual 155 156
158: 61(bool) LogicalAnd 154 157
159: 61(bool) LogicalAnd 149 158
160: 8(s1) CompositeExtract 129 3
161: 8(s1) CompositeExtract 130 3
162: 6(int) CompositeExtract 160 0
157: 7(float) CompositeExtract 152 1
158: 72(bool) FOrdEqual 156 157
159: 72(bool) LogicalAnd 155 158
160: 72(bool) LogicalAnd 150 159
161: 8(s1) CompositeExtract 140 2
162: 8(s1) CompositeExtract 141 2
163: 6(int) CompositeExtract 161 0
164: 61(bool) IEqual 162 163
165: 7(float) CompositeExtract 160 1
164: 6(int) CompositeExtract 162 0
165: 72(bool) IEqual 163 164
166: 7(float) CompositeExtract 161 1
167: 61(bool) FOrdEqual 165 166
168: 61(bool) LogicalAnd 164 167
169: 61(bool) LogicalAnd 159 168
170: 8(s1) CompositeExtract 129 4
171: 8(s1) CompositeExtract 130 4
172: 6(int) CompositeExtract 170 0
173: 6(int) CompositeExtract 171 0
174: 61(bool) IEqual 172 173
175: 7(float) CompositeExtract 170 1
176: 7(float) CompositeExtract 171 1
177: 61(bool) FOrdEqual 175 176
178: 61(bool) LogicalAnd 174 177
179: 61(bool) LogicalAnd 169 178
180: 8(s1) CompositeExtract 129 5
181: 8(s1) CompositeExtract 130 5
182: 6(int) CompositeExtract 180 0
183: 6(int) CompositeExtract 181 0
184: 61(bool) IEqual 182 183
185: 7(float) CompositeExtract 180 1
186: 7(float) CompositeExtract 181 1
187: 61(bool) FOrdEqual 185 186
188: 61(bool) LogicalAnd 184 187
189: 61(bool) LogicalAnd 179 188
190: 8(s1) CompositeExtract 129 6
191: 8(s1) CompositeExtract 130 6
192: 6(int) CompositeExtract 190 0
193: 6(int) CompositeExtract 191 0
194: 61(bool) IEqual 192 193
195: 7(float) CompositeExtract 190 1
196: 7(float) CompositeExtract 191 1
197: 61(bool) FOrdEqual 195 196
198: 61(bool) LogicalAnd 194 197
199: 61(bool) LogicalAnd 189 198
200: 8(s1) CompositeExtract 129 7
201: 8(s1) CompositeExtract 130 7
202: 6(int) CompositeExtract 200 0
203: 6(int) CompositeExtract 201 0
204: 61(bool) IEqual 202 203
205: 7(float) CompositeExtract 200 1
206: 7(float) CompositeExtract 201 1
207: 61(bool) FOrdEqual 205 206
208: 61(bool) LogicalAnd 204 207
209: 61(bool) LogicalAnd 199 208
210: 8(s1) CompositeExtract 129 8
211: 8(s1) CompositeExtract 130 8
212: 6(int) CompositeExtract 210 0
213: 6(int) CompositeExtract 211 0
214: 61(bool) IEqual 212 213
215: 7(float) CompositeExtract 210 1
216: 7(float) CompositeExtract 211 1
217: 61(bool) FOrdEqual 215 216
218: 61(bool) LogicalAnd 214 217
219: 61(bool) LogicalAnd 209 218
220: 8(s1) CompositeExtract 129 9
221: 8(s1) CompositeExtract 130 9
222: 6(int) CompositeExtract 220 0
223: 6(int) CompositeExtract 221 0
224: 61(bool) IEqual 222 223
225: 7(float) CompositeExtract 220 1
226: 7(float) CompositeExtract 221 1
227: 61(bool) FOrdEqual 225 226
228: 61(bool) LogicalAnd 224 227
229: 61(bool) LogicalAnd 219 228
SelectionMerge 231 None
BranchConditional 229 230 231
230: Label
233: 14(fvec4) Load 82(v)
234: 14(fvec4) VectorTimesScalar 233 232
Store 82(v) 234
Branch 231
231: Label
235: 11 Load 13(a)
236: 11 Load 37(b)
237: 8(s1) CompositeExtract 235 0
238: 8(s1) CompositeExtract 236 0
239: 6(int) CompositeExtract 237 0
240: 6(int) CompositeExtract 238 0
241: 61(bool) INotEqual 239 240
242: 7(float) CompositeExtract 237 1
243: 7(float) CompositeExtract 238 1
244: 61(bool) FOrdNotEqual 242 243
245: 61(bool) LogicalOr 241 244
246: 8(s1) CompositeExtract 235 1
247: 8(s1) CompositeExtract 236 1
248: 6(int) CompositeExtract 246 0
249: 6(int) CompositeExtract 247 0
250: 61(bool) INotEqual 248 249
251: 7(float) CompositeExtract 246 1
252: 7(float) CompositeExtract 247 1
253: 61(bool) FOrdNotEqual 251 252
254: 61(bool) LogicalOr 250 253
255: 61(bool) LogicalOr 245 254
256: 8(s1) CompositeExtract 235 2
257: 8(s1) CompositeExtract 236 2
258: 6(int) CompositeExtract 256 0
259: 6(int) CompositeExtract 257 0
260: 61(bool) INotEqual 258 259
261: 7(float) CompositeExtract 256 1
262: 7(float) CompositeExtract 257 1
263: 61(bool) FOrdNotEqual 261 262
264: 61(bool) LogicalOr 260 263
265: 61(bool) LogicalOr 255 264
266: 8(s1) CompositeExtract 235 3
267: 8(s1) CompositeExtract 236 3
268: 6(int) CompositeExtract 266 0
269: 6(int) CompositeExtract 267 0
270: 61(bool) INotEqual 268 269
271: 7(float) CompositeExtract 266 1
272: 7(float) CompositeExtract 267 1
273: 61(bool) FOrdNotEqual 271 272
274: 61(bool) LogicalOr 270 273
275: 61(bool) LogicalOr 265 274
276: 8(s1) CompositeExtract 235 4
277: 8(s1) CompositeExtract 236 4
278: 6(int) CompositeExtract 276 0
279: 6(int) CompositeExtract 277 0
280: 61(bool) INotEqual 278 279
281: 7(float) CompositeExtract 276 1
282: 7(float) CompositeExtract 277 1
283: 61(bool) FOrdNotEqual 281 282
284: 61(bool) LogicalOr 280 283
285: 61(bool) LogicalOr 275 284
286: 8(s1) CompositeExtract 235 5
287: 8(s1) CompositeExtract 236 5
288: 6(int) CompositeExtract 286 0
289: 6(int) CompositeExtract 287 0
290: 61(bool) INotEqual 288 289
291: 7(float) CompositeExtract 286 1
292: 7(float) CompositeExtract 287 1
293: 61(bool) FOrdNotEqual 291 292
294: 61(bool) LogicalOr 290 293
295: 61(bool) LogicalOr 285 294
296: 8(s1) CompositeExtract 235 6
297: 8(s1) CompositeExtract 236 6
298: 6(int) CompositeExtract 296 0
299: 6(int) CompositeExtract 297 0
300: 61(bool) INotEqual 298 299
301: 7(float) CompositeExtract 296 1
302: 7(float) CompositeExtract 297 1
303: 61(bool) FOrdNotEqual 301 302
304: 61(bool) LogicalOr 300 303
305: 61(bool) LogicalOr 295 304
306: 8(s1) CompositeExtract 235 7
307: 8(s1) CompositeExtract 236 7
308: 6(int) CompositeExtract 306 0
309: 6(int) CompositeExtract 307 0
310: 61(bool) INotEqual 308 309
311: 7(float) CompositeExtract 306 1
312: 7(float) CompositeExtract 307 1
313: 61(bool) FOrdNotEqual 311 312
314: 61(bool) LogicalOr 310 313
315: 61(bool) LogicalOr 305 314
316: 8(s1) CompositeExtract 235 8
317: 8(s1) CompositeExtract 236 8
318: 6(int) CompositeExtract 316 0
319: 6(int) CompositeExtract 317 0
320: 61(bool) INotEqual 318 319
321: 7(float) CompositeExtract 316 1
322: 7(float) CompositeExtract 317 1
323: 61(bool) FOrdNotEqual 321 322
324: 61(bool) LogicalOr 320 323
325: 61(bool) LogicalOr 315 324
326: 8(s1) CompositeExtract 235 9
327: 8(s1) CompositeExtract 236 9
328: 6(int) CompositeExtract 326 0
329: 6(int) CompositeExtract 327 0
330: 61(bool) INotEqual 328 329
331: 7(float) CompositeExtract 326 1
332: 7(float) CompositeExtract 327 1
333: 61(bool) FOrdNotEqual 331 332
334: 61(bool) LogicalOr 330 333
335: 61(bool) LogicalOr 325 334
SelectionMerge 337 None
BranchConditional 335 336 337
336: Label
339: 14(fvec4) Load 82(v)
340: 14(fvec4) VectorTimesScalar 339 338
Store 82(v) 340
Branch 337
337: Label
348: 347(ptr) AccessChain 345(bi) 346
349: 342(s2) Load 348
350: 55(s2) Load 57(foo2a)
351: 6(int) CompositeExtract 349 0
352: 6(int) CompositeExtract 350 0
353: 61(bool) INotEqual 351 352
354: 7(float) CompositeExtract 349 1
355: 7(float) CompositeExtract 350 1
356: 61(bool) FOrdNotEqual 354 355
357: 61(bool) LogicalOr 353 356
358: 341(s1) CompositeExtract 349 2
359: 8(s1) CompositeExtract 350 2
360: 6(int) CompositeExtract 358 0
361: 6(int) CompositeExtract 359 0
362: 61(bool) INotEqual 360 361
363: 7(float) CompositeExtract 358 1
364: 7(float) CompositeExtract 359 1
365: 61(bool) FOrdNotEqual 363 364
366: 61(bool) LogicalOr 362 365
367: 61(bool) LogicalOr 357 366
SelectionMerge 369 None
BranchConditional 367 368 369
368: Label
371: 14(fvec4) Load 82(v)
372: 14(fvec4) VectorTimesScalar 371 370
Store 82(v) 372
Branch 369
369: Label
375: 14(fvec4) Load 82(v)
Store 374(color) 375
167: 7(float) CompositeExtract 162 1
168: 72(bool) FOrdEqual 166 167
169: 72(bool) LogicalAnd 165 168
170: 72(bool) LogicalAnd 160 169
SelectionMerge 172 None
BranchConditional 170 171 172
171: Label
174: 14(fvec4) Load 93(v)
175: 14(fvec4) VectorTimesScalar 174 173
Store 93(v) 175
Branch 172
172: Label
176: 11 Load 13(a)
177: 11 Load 37(b)
178: 8(s1) CompositeExtract 176 0
179: 8(s1) CompositeExtract 177 0
180: 6(int) CompositeExtract 178 0
181: 6(int) CompositeExtract 179 0
182: 72(bool) INotEqual 180 181
183: 7(float) CompositeExtract 178 1
184: 7(float) CompositeExtract 179 1
185: 72(bool) FOrdNotEqual 183 184
186: 72(bool) LogicalOr 182 185
187: 8(s1) CompositeExtract 176 1
188: 8(s1) CompositeExtract 177 1
189: 6(int) CompositeExtract 187 0
190: 6(int) CompositeExtract 188 0
191: 72(bool) INotEqual 189 190
192: 7(float) CompositeExtract 187 1
193: 7(float) CompositeExtract 188 1
194: 72(bool) FOrdNotEqual 192 193
195: 72(bool) LogicalOr 191 194
196: 72(bool) LogicalOr 186 195
197: 8(s1) CompositeExtract 176 2
198: 8(s1) CompositeExtract 177 2
199: 6(int) CompositeExtract 197 0
200: 6(int) CompositeExtract 198 0
201: 72(bool) INotEqual 199 200
202: 7(float) CompositeExtract 197 1
203: 7(float) CompositeExtract 198 1
204: 72(bool) FOrdNotEqual 202 203
205: 72(bool) LogicalOr 201 204
206: 72(bool) LogicalOr 196 205
SelectionMerge 208 None
BranchConditional 206 207 208
207: Label
210: 14(fvec4) Load 93(v)
211: 14(fvec4) VectorTimesScalar 210 209
Store 93(v) 211
Branch 208
208: Label
214: 14(fvec4) Load 93(v)
Store 213(color) 214
Return
FunctionEnd

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 21 59
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "white"

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 21 38
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "white"

View File

@ -1,132 +1,205 @@
spv.atomic.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 310
Requested GL_ARB_gl_spirv
local_size = (1, 1, 1)
0:? Sequence
0:14 Function Definition: func(au1; (global highp uint)
0:14 Function Parameters:
0:14 'c' (in highp atomic_uint)
0:16 Sequence
0:16 Branch: Return with expression
0:16 AtomicCounterIncrement (global highp uint)
0:16 'c' (in highp atomic_uint)
0:19 Function Definition: main( (global void)
0:19 Function Parameters:
0:21 Sequence
0:21 MemoryBarrierAtomicCounter (global void)
0:22 Function Call: func(au1; (global highp uint)
0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
0:23 Sequence
0:23 move second child to first child (temp highp uint)
0:23 'val' (temp highp uint)
0:23 AtomicCounter (global highp uint)
0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
0:23 Constant:
0:23 2 (const int)
0:24 AtomicCounterDecrement (global highp uint)
0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
0:36 Function Definition: atoms( (global void)
0:36 Function Parameters:
0:38 Sequence
0:38 Sequence
0:38 move second child to first child (temp highp int)
0:38 'origi' (temp highp int)
0:38 AtomicAdd (global highp int)
0:38 'atomi' (shared highp int)
0:38 Constant:
0:38 3 (const int)
0:39 Sequence
0:39 move second child to first child (temp highp uint)
0:39 'origu' (temp highp uint)
0:39 AtomicAnd (global highp uint)
0:39 'atomu' (shared highp uint)
0:39 'value' (shared highp uint)
0:40 move second child to first child (temp highp uint)
0:40 'origu' (temp highp uint)
0:40 AtomicOr (global highp uint)
0:40 'atomu' (shared highp uint)
0:40 Constant:
0:40 7 (const uint)
0:41 move second child to first child (temp highp uint)
0:41 'origu' (temp highp uint)
0:41 AtomicXor (global highp uint)
0:41 'atomu' (shared highp uint)
0:41 Constant:
0:41 7 (const uint)
0:42 move second child to first child (temp highp uint)
0:42 'origu' (temp highp uint)
0:42 AtomicMin (global highp uint)
0:42 'atomu' (shared highp uint)
0:42 'value' (shared highp uint)
0:43 move second child to first child (temp highp int)
0:43 'origi' (temp highp int)
0:43 AtomicMax (global highp int)
0:43 'atomi' (shared highp int)
0:43 Constant:
0:43 7 (const int)
0:44 move second child to first child (temp highp int)
0:44 'origi' (temp highp int)
0:44 AtomicExchange (global highp int)
0:44 'atomi' (shared highp int)
0:44 'origi' (temp highp int)
0:45 move second child to first child (temp highp uint)
0:45 'origu' (temp highp uint)
0:45 AtomicCompSwap (global highp uint)
0:45 'atomu' (shared highp uint)
0:45 Constant:
0:45 10 (const uint)
0:45 'value' (shared highp uint)
0:46 AtomicAdd (global highp int)
0:46 direct index (temp highp int)
0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
0:46 Constant:
0:46 1 (const int)
0:46 Constant:
0:46 2 (const int)
0:46 Constant:
0:46 1 (const int)
0:? Linker Objects
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
0:? 'value' (shared highp uint)
0:? 'arrX' (global 1-element array of highp int)
0:? 'arrY' (global 1-element array of highp int)
0:? 'arrZ' (global 1-element array of highp int)
0:? 'atomi' (shared highp int)
0:? 'atomu' (shared highp uint)
0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
Linked compute stage:
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 75
Shader version: 310
Requested GL_ARB_gl_spirv
local_size = (1, 1, 1)
0:? Sequence
0:14 Function Definition: func(au1; (global highp uint)
0:14 Function Parameters:
0:14 'c' (in highp atomic_uint)
0:16 Sequence
0:16 Branch: Return with expression
0:16 AtomicCounterIncrement (global highp uint)
0:16 'c' (in highp atomic_uint)
0:19 Function Definition: main( (global void)
0:19 Function Parameters:
0:21 Sequence
0:21 MemoryBarrierAtomicCounter (global void)
0:22 Function Call: func(au1; (global highp uint)
0:22 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
0:23 Sequence
0:23 move second child to first child (temp highp uint)
0:23 'val' (temp highp uint)
0:23 AtomicCounter (global highp uint)
0:23 direct index (layout(binding=0 offset=4 ) temp highp atomic_uint)
0:23 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
0:23 Constant:
0:23 2 (const int)
0:24 AtomicCounterDecrement (global highp uint)
0:24 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
0:36 Function Definition: atoms( (global void)
0:36 Function Parameters:
0:38 Sequence
0:38 Sequence
0:38 move second child to first child (temp highp int)
0:38 'origi' (temp highp int)
0:38 AtomicAdd (global highp int)
0:38 'atomi' (shared highp int)
0:38 Constant:
0:38 3 (const int)
0:39 Sequence
0:39 move second child to first child (temp highp uint)
0:39 'origu' (temp highp uint)
0:39 AtomicAnd (global highp uint)
0:39 'atomu' (shared highp uint)
0:39 'value' (shared highp uint)
0:40 move second child to first child (temp highp uint)
0:40 'origu' (temp highp uint)
0:40 AtomicOr (global highp uint)
0:40 'atomu' (shared highp uint)
0:40 Constant:
0:40 7 (const uint)
0:41 move second child to first child (temp highp uint)
0:41 'origu' (temp highp uint)
0:41 AtomicXor (global highp uint)
0:41 'atomu' (shared highp uint)
0:41 Constant:
0:41 7 (const uint)
0:42 move second child to first child (temp highp uint)
0:42 'origu' (temp highp uint)
0:42 AtomicMin (global highp uint)
0:42 'atomu' (shared highp uint)
0:42 'value' (shared highp uint)
0:43 move second child to first child (temp highp int)
0:43 'origi' (temp highp int)
0:43 AtomicMax (global highp int)
0:43 'atomi' (shared highp int)
0:43 Constant:
0:43 7 (const int)
0:44 move second child to first child (temp highp int)
0:44 'origi' (temp highp int)
0:44 AtomicExchange (global highp int)
0:44 'atomi' (shared highp int)
0:44 'origi' (temp highp int)
0:45 move second child to first child (temp highp uint)
0:45 'origu' (temp highp uint)
0:45 AtomicCompSwap (global highp uint)
0:45 'atomu' (shared highp uint)
0:45 Constant:
0:45 10 (const uint)
0:45 'value' (shared highp uint)
0:46 AtomicAdd (global highp int)
0:46 direct index (temp highp int)
0:46 n_frames_rendered: direct index for structure (layout(column_major std140 offset=16 ) buffer highp 4-component vector of int)
0:46 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
0:46 Constant:
0:46 1 (const int)
0:46 Constant:
0:46 2 (const int)
0:46 Constant:
0:46 1 (const int)
0:? Linker Objects
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
0:? 'countArr' (layout(binding=0 offset=4 ) uniform 4-element array of highp atomic_uint)
0:? 'value' (shared highp uint)
0:? 'arrX' (global 1-element array of highp int)
0:? 'arrY' (global 1-element array of highp int)
0:? 'arrZ' (global 1-element array of highp int)
0:? 'atomi' (shared highp int)
0:? 'atomu' (shared highp uint)
0:? 'result' (layout(binding=0 column_major std140 ) restrict buffer block{layout(column_major std140 offset=0 ) buffer highp float f, layout(column_major std140 offset=16 ) buffer highp 4-component vector of int n_frames_rendered})
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main"
ExecutionMode 4 LocalSize 1 1 1
Source ESSL 310
Name 4 "main"
Name 10 "func(au1;"
Name 9 "c"
Name 12 "atoms("
Name 21 "counter"
Name 22 "param"
Name 25 "val"
Name 29 "countArr"
Name 36 "origi"
Name 38 "atomi"
Name 41 "origu"
Name 43 "atomu"
Name 45 "value"
Name 62 "dataSSB"
MemberName 62(dataSSB) 0 "f"
MemberName 62(dataSSB) 1 "n_frames_rendered"
Name 64 "result"
Name 72 "arrX"
Name 73 "arrY"
Name 74 "arrZ"
Decorate 21(counter) Binding 0
Decorate 29(countArr) Binding 0
MemberDecorate 62(dataSSB) 0 Offset 0
MemberDecorate 62(dataSSB) 1 Offset 16
Decorate 62(dataSSB) BufferBlock
Decorate 64(result) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
8: TypeFunction 6(int) 7(ptr)
14: 6(int) Constant 1
15: 6(int) Constant 0
19: 6(int) Constant 1024
20: TypePointer AtomicCounter 6(int)
21(counter): 20(ptr) Variable AtomicCounter
26: 6(int) Constant 4
27: TypeArray 6(int) 26
28: TypePointer AtomicCounter 27
29(countArr): 28(ptr) Variable AtomicCounter
30: TypeInt 32 1
31: 30(int) Constant 2
35: TypePointer Function 30(int)
37: TypePointer Workgroup 30(int)
38(atomi): 37(ptr) Variable Workgroup
39: 30(int) Constant 3
42: TypePointer Workgroup 6(int)
43(atomu): 42(ptr) Variable Workgroup
44: TypePointer UniformConstant 6(int)
45(value): 44(ptr) Variable UniformConstant
48: 6(int) Constant 7
53: 30(int) Constant 7
57: 6(int) Constant 10
60: TypeFloat 32
61: TypeVector 30(int) 4
62(dataSSB): TypeStruct 60(float) 61(ivec4)
63: TypePointer Uniform 62(dataSSB)
64(result): 63(ptr) Variable Uniform
65: 30(int) Constant 1
66: 6(int) Constant 2
67: TypePointer Uniform 30(int)
70: TypeArray 30(int) 14
71: TypePointer Private 70
72(arrX): 71(ptr) Variable Private
73(arrY): 71(ptr) Variable Private
74(arrZ): 71(ptr) Variable Private
4(main): 2 Function None 3
5: Label
22(param): 7(ptr) Variable Function
25(val): 7(ptr) Variable Function
MemoryBarrier 14 19
23: 6(int) Load 21(counter)
Store 22(param) 23
24: 6(int) FunctionCall 10(func(au1;) 22(param)
32: 20(ptr) AccessChain 29(countArr) 31
33: 6(int) AtomicLoad 32 14 15
Store 25(val) 33
34: 6(int) AtomicIDecrement 21(counter) 14 15
Return
FunctionEnd
10(func(au1;): 6(int) Function None 8
9(c): 7(ptr) FunctionParameter
11: Label
16: 6(int) AtomicIIncrement 9(c) 14 15
ReturnValue 16
FunctionEnd
12(atoms(): 2 Function None 3
13: Label
36(origi): 35(ptr) Variable Function
41(origu): 7(ptr) Variable Function
40: 30(int) AtomicIAdd 38(atomi) 14 15 39
Store 36(origi) 40
46: 6(int) Load 45(value)
47: 6(int) AtomicAnd 43(atomu) 14 15 46
Store 41(origu) 47
49: 6(int) AtomicOr 43(atomu) 14 15 48
Store 41(origu) 49
50: 6(int) AtomicXor 43(atomu) 14 15 48
Store 41(origu) 50
51: 6(int) Load 45(value)
52: 6(int) AtomicUMin 43(atomu) 14 15 51
Store 41(origu) 52
54: 30(int) AtomicSMax 38(atomi) 14 15 53
Store 36(origi) 54
55: 30(int) Load 36(origi)
56: 30(int) AtomicExchange 38(atomi) 14 15 55
Store 36(origi) 56
58: 6(int) Load 45(value)
59: 6(int) AtomicCompareExchange 43(atomu) 14 15 15 58 57
Store 41(origu) 59
68: 67(ptr) AccessChain 64(result) 65 66
69: 30(int) AtomicIAdd 68 14 15 65
Return
FunctionEnd

View File

@ -12,8 +12,8 @@ Linked fragment stage:
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 154
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "idata"
@ -32,6 +32,14 @@ Linked fragment stage:
Name 139 "u3"
Name 148 "u4"
Name 154 "fragColor"
Decorate 89(i1) Flat
Decorate 98(i2) Flat
Decorate 107(i3) Flat
Decorate 116(i4) Flat
Decorate 122(u1) Flat
Decorate 130(u2) Flat
Decorate 139(u3) Flat
Decorate 148(u4) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -40,22 +48,22 @@ Linked fragment stage:
10: 6(int) Constant 0
11: 7(ivec4) ConstantComposite 10 10 10 10
12: TypeFloat 32
13: TypePointer UniformConstant 12(float)
14(f1): 13(ptr) Variable UniformConstant
13: TypePointer Input 12(float)
14(f1): 13(ptr) Variable Input
17: TypeInt 32 0
18: 17(int) Constant 0
19: TypePointer Function 6(int)
24: TypeVector 12(float) 2
25: TypePointer UniformConstant 24(fvec2)
26(f2): 25(ptr) Variable UniformConstant
25: TypePointer Input 24(fvec2)
26(f2): 25(ptr) Variable Input
28: TypeVector 6(int) 2
35: TypeVector 12(float) 3
36: TypePointer UniformConstant 35(fvec3)
37(f3): 36(ptr) Variable UniformConstant
36: TypePointer Input 35(fvec3)
37(f3): 36(ptr) Variable Input
39: TypeVector 6(int) 3
46: TypeVector 12(float) 4
47: TypePointer UniformConstant 46(fvec4)
48(f4): 47(ptr) Variable UniformConstant
47: TypePointer Input 46(fvec4)
48(f4): 47(ptr) Variable Input
53: TypeVector 17(int) 4
54: TypePointer Function 53(ivec4)
56: 53(ivec4) ConstantComposite 18 18 18 18
@ -65,23 +73,23 @@ Linked fragment stage:
84: TypePointer Function 46(fvec4)
86: 12(float) Constant 0
87: 46(fvec4) ConstantComposite 86 86 86 86
88: TypePointer UniformConstant 6(int)
89(i1): 88(ptr) Variable UniformConstant
88: TypePointer Input 6(int)
89(i1): 88(ptr) Variable Input
92: TypePointer Function 12(float)
97: TypePointer UniformConstant 28(ivec2)
98(i2): 97(ptr) Variable UniformConstant
106: TypePointer UniformConstant 39(ivec3)
107(i3): 106(ptr) Variable UniformConstant
115: TypePointer UniformConstant 7(ivec4)
116(i4): 115(ptr) Variable UniformConstant
121: TypePointer UniformConstant 17(int)
122(u1): 121(ptr) Variable UniformConstant
129: TypePointer UniformConstant 65(ivec2)
130(u2): 129(ptr) Variable UniformConstant
138: TypePointer UniformConstant 73(ivec3)
139(u3): 138(ptr) Variable UniformConstant
147: TypePointer UniformConstant 53(ivec4)
148(u4): 147(ptr) Variable UniformConstant
97: TypePointer Input 28(ivec2)
98(i2): 97(ptr) Variable Input
106: TypePointer Input 39(ivec3)
107(i3): 106(ptr) Variable Input
115: TypePointer Input 7(ivec4)
116(i4): 115(ptr) Variable Input
121: TypePointer Input 17(int)
122(u1): 121(ptr) Variable Input
129: TypePointer Input 65(ivec2)
130(u2): 129(ptr) Variable Input
138: TypePointer Input 73(ivec3)
139(u3): 138(ptr) Variable Input
147: TypePointer Input 53(ivec4)
148(u4): 147(ptr) Variable Input
153: TypePointer Output 46(fvec4)
154(fragColor): 153(ptr) Variable Output
159: TypeBool

View File

@ -7,14 +7,14 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 50
// Id's are bound by 49
Capability Shader
Capability ClipDistance
Capability CullDistance
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 24 48 49
EntryPoint Vertex 4 "main" 24
Source GLSL 450
Name 4 "main"
Name 10 "foo(b1;"
@ -29,17 +29,14 @@ Linked vertex stage:
MemberName 29(ubname) 0 "b"
Name 31 "ubinst"
Name 32 "param"
Name 48 "gl_VertexID"
Name 49 "gl_InstanceID"
MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance
MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance
Decorate 22(gl_PerVertex) Block
Decorate 29(ubname) GLSLShared
MemberDecorate 29(ubname) 0 Offset 0
Decorate 29(ubname) Block
Decorate 48(gl_VertexID) BuiltIn VertexId
Decorate 49(gl_InstanceID) BuiltIn InstanceId
Decorate 31(ubinst) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeBool
@ -57,38 +54,37 @@ Linked vertex stage:
25: TypeInt 32 1
26: 25(int) Constant 0
27: TypePointer Function 18(fvec4)
29(ubname): TypeStruct 6(bool)
29(ubname): TypeStruct 19(int)
30: TypePointer Uniform 29(ubname)
31(ubinst): 30(ptr) Variable Uniform
33: TypePointer Uniform 6(bool)
39: 17(float) Constant 0
40: 18(fvec4) ConstantComposite 39 39 39 39
42: 17(float) Constant 1065353216
43: 18(fvec4) ConstantComposite 42 42 42 42
45: TypePointer Output 18(fvec4)
47: TypePointer Input 25(int)
48(gl_VertexID): 47(ptr) Variable Input
49(gl_InstanceID): 47(ptr) Variable Input
33: TypePointer Uniform 19(int)
36: 19(int) Constant 0
41: 17(float) Constant 0
42: 18(fvec4) ConstantComposite 41 41 41 41
44: 17(float) Constant 1065353216
45: 18(fvec4) ConstantComposite 44 44 44 44
47: TypePointer Output 18(fvec4)
4(main): 2 Function None 3
5: Label
28: 27(ptr) Variable Function
32(param): 7(ptr) Variable Function
34: 33(ptr) AccessChain 31(ubinst) 26
35: 6(bool) Load 34
Store 32(param) 35
36: 6(bool) FunctionCall 10(foo(b1;) 32(param)
SelectionMerge 38 None
BranchConditional 36 37 41
37: Label
Store 28 40
Branch 38
41: Label
Store 28 43
Branch 38
38: Label
44: 18(fvec4) Load 28
46: 45(ptr) AccessChain 24 26
Store 46 44
35: 19(int) Load 34
37: 6(bool) INotEqual 35 36
Store 32(param) 37
38: 6(bool) FunctionCall 10(foo(b1;) 32(param)
SelectionMerge 40 None
BranchConditional 38 39 43
39: Label
Store 28 42
Branch 40
43: Label
Store 28 45
Branch 40
40: Label
46: 18(fvec4) Load 28
48: 47(ptr) AccessChain 24 26
Store 48 46
Return
FunctionEnd
10(foo(b1;): 6(bool) Function None 8

View File

@ -7,30 +7,28 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 39
// Id's are bound by 38
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 8 20 38
EntryPoint Vertex 4 "main" 8 20
Source ESSL 310
Name 4 "main"
Name 8 "gl_InstanceID"
Name 8 "gl_InstanceIndex"
Name 18 "gl_PerVertex"
MemberName 18(gl_PerVertex) 0 "gl_Position"
MemberName 18(gl_PerVertex) 1 "gl_PointSize"
Name 20 ""
Name 38 "gl_VertexID"
Decorate 8(gl_InstanceID) BuiltIn InstanceId
Decorate 8(gl_InstanceIndex) BuiltIn InstanceIndex
MemberDecorate 18(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 18(gl_PerVertex) 1 BuiltIn PointSize
Decorate 18(gl_PerVertex) Block
Decorate 38(gl_VertexID) BuiltIn VertexId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Input 6(int)
8(gl_InstanceID): 7(ptr) Variable Input
8(gl_InstanceIndex): 7(ptr) Variable Input
16: TypeFloat 32
17: TypeVector 16(float) 4
18(gl_PerVertex): TypeStruct 17(fvec4) 16(float)
@ -44,10 +42,9 @@ Linked vertex stage:
31: TypeInt 32 0
32: 31(int) Constant 0
33: TypePointer Output 16(float)
38(gl_VertexID): 7(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9: 6(int) Load 8(gl_InstanceID)
9: 6(int) Load 8(gl_InstanceIndex)
SelectionMerge 14 None
Switch 9 14
case 0: 10

View File

@ -13,13 +13,14 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 34
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 9 "v"
Name 13 "tex"
Name 17 "coord"
Name 34 "gl_FragColor"
Decorate 13(tex) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "b"
@ -62,13 +62,13 @@ Linked fragment stage:
6: TypeBool
7: TypePointer Function 6(bool)
9: TypeInt 32 1
10: TypePointer UniformConstant 9(int)
11(u_i): 10(ptr) Variable UniformConstant
10: TypePointer Private 9(int)
11(u_i): 10(ptr) Variable Private
13: TypeInt 32 0
14: 13(int) Constant 0
16: TypeFloat 32
17: TypePointer UniformConstant 16(float)
18(u_f): 17(ptr) Variable UniformConstant
17: TypePointer Private 16(float)
18(u_f): 17(ptr) Variable Private
20: 16(float) Constant 0
23: TypeVector 6(bool) 2
24: TypePointer Function 23(bvec2)
@ -86,22 +86,22 @@ Linked fragment stage:
66: TypeVector 9(int) 2
67: TypePointer Function 66(ivec2)
69: TypeVector 16(float) 2
70: TypePointer UniformConstant 69(fvec2)
71(u_f2): 70(ptr) Variable UniformConstant
70: TypePointer Private 69(fvec2)
71(u_f2): 70(ptr) Variable Private
75: 66(ivec2) ConstantComposite 62 62
76: 66(ivec2) ConstantComposite 63 63
79: TypeVector 9(int) 3
80: TypePointer Function 79(ivec3)
82: TypeVector 16(float) 3
83: TypePointer UniformConstant 82(fvec3)
84(u_f3): 83(ptr) Variable UniformConstant
83: TypePointer Private 82(fvec3)
84(u_f3): 83(ptr) Variable Private
88: 79(ivec3) ConstantComposite 62 62 62
89: 79(ivec3) ConstantComposite 63 63 63
92: TypeVector 9(int) 4
93: TypePointer Function 92(ivec4)
95: TypeVector 16(float) 4
96: TypePointer UniformConstant 95(fvec4)
97(u_f4): 96(ptr) Variable UniformConstant
96: TypePointer Private 95(fvec4)
97(u_f4): 96(ptr) Variable Private
101: 92(ivec4) ConstantComposite 62 62 62 62
102: 92(ivec4) ConstantComposite 63 63 63 63
105: TypePointer Function 16(float)
@ -124,24 +124,24 @@ Linked fragment stage:
322(gl_FragColor): 321(ptr) Variable Output
367: 13(int) Constant 2
380: 13(int) Constant 3
427: TypePointer UniformConstant 6(bool)
428(u_b): 427(ptr) Variable UniformConstant
429: TypePointer UniformConstant 23(bvec2)
430(u_b2): 429(ptr) Variable UniformConstant
431: TypePointer UniformConstant 31(bvec3)
432(u_b3): 431(ptr) Variable UniformConstant
433: TypePointer UniformConstant 43(bvec4)
434(u_b4): 433(ptr) Variable UniformConstant
435: TypePointer UniformConstant 66(ivec2)
436(u_i2): 435(ptr) Variable UniformConstant
437: TypePointer UniformConstant 79(ivec3)
438(u_i3): 437(ptr) Variable UniformConstant
439: TypePointer UniformConstant 92(ivec4)
440(u_i4): 439(ptr) Variable UniformConstant
441(i_b): 427(ptr) Variable UniformConstant
442(i_b2): 429(ptr) Variable UniformConstant
443(i_b3): 431(ptr) Variable UniformConstant
444(i_b4): 433(ptr) Variable UniformConstant
427: TypePointer Private 6(bool)
428(u_b): 427(ptr) Variable Private
429: TypePointer Private 23(bvec2)
430(u_b2): 429(ptr) Variable Private
431: TypePointer Private 31(bvec3)
432(u_b3): 431(ptr) Variable Private
433: TypePointer Private 43(bvec4)
434(u_b4): 433(ptr) Variable Private
435: TypePointer Private 66(ivec2)
436(u_i2): 435(ptr) Variable Private
437: TypePointer Private 79(ivec3)
438(u_i3): 437(ptr) Variable Private
439: TypePointer Private 92(ivec4)
440(u_i4): 439(ptr) Variable Private
441(i_b): 427(ptr) Variable Private
442(i_b2): 429(ptr) Variable Private
443(i_b3): 431(ptr) Variable Private
444(i_b4): 433(ptr) Variable Private
445: TypePointer Input 66(ivec2)
446(i_i2): 445(ptr) Variable Input
447: TypePointer Input 79(ivec3)

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 16
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 12 "gl_FragData"

View File

@ -5,38 +5,47 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22
// Id's are bound by 26
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 18
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 12 22
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 12 "gl_FragData"
Name 15 "i"
Name 18 "Color"
Name 12 "fcolor"
Name 14 "b"
MemberName 14(b) 0 "i"
Name 16 "bName"
Name 22 "Color"
MemberDecorate 14(b) 0 Offset 0
Decorate 14(b) Block
Decorate 16(bName) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeInt 32 0
9: 8(int) Constant 32
9: 8(int) Constant 4
10: TypeArray 7(fvec4) 9
11: TypePointer Output 10
12(gl_FragData): 11(ptr) Variable Output
12(fcolor): 11(ptr) Variable Output
13: TypeInt 32 1
14: TypePointer UniformConstant 13(int)
15(i): 14(ptr) Variable UniformConstant
17: TypePointer Input 7(fvec4)
18(Color): 17(ptr) Variable Input
20: TypePointer Output 7(fvec4)
14(b): TypeStruct 13(int)
15: TypePointer Uniform 14(b)
16(bName): 15(ptr) Variable Uniform
17: 13(int) Constant 0
18: TypePointer Uniform 13(int)
21: TypePointer Input 7(fvec4)
22(Color): 21(ptr) Variable Input
24: TypePointer Output 7(fvec4)
4(main): 2 Function None 3
5: Label
16: 13(int) Load 15(i)
19: 7(fvec4) Load 18(Color)
21: 20(ptr) AccessChain 12(gl_FragData) 16
Store 21 19
19: 18(ptr) AccessChain 16(bName) 17
20: 13(int) Load 19
23: 7(fvec4) Load 22(Color)
25: 24(ptr) AccessChain 12(fcolor) 20
Store 25 23
Return
FunctionEnd

View File

@ -7,23 +7,19 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 41
// Id's are bound by 38
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 25 28 34 39 40
EntryPoint Vertex 4 "main" 25 28 34
Source GLSL 140
Name 4 "main"
Name 8 "i"
Name 25 "colorOut"
Name 28 "color"
Name 34 "gl_Position"
Name 39 "gl_VertexID"
Name 40 "gl_InstanceID"
Decorate 34(gl_Position) BuiltIn Position
Decorate 39(gl_VertexID) BuiltIn VertexId
Decorate 40(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -43,9 +39,6 @@ Linked vertex stage:
30: TypePointer Output 20(fvec4)
34(gl_Position): 30(ptr) Variable Output
35: 6(int) Constant 2
38: TypePointer Input 6(int)
39(gl_VertexID): 38(ptr) Variable Input
40(gl_InstanceID): 38(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 149
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 330
Name 4 "main"
Name 9 "v1"
@ -31,6 +31,7 @@ Linked fragment stage:
MemberName 134(str) 2 "c"
Name 136 "t"
Name 149 "gl_FragColor"
Decorate 111(samp2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32

View File

@ -13,7 +13,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 8 10 14
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
ExecutionMode 4 DepthGreater
ExecutionMode 4 DepthReplacing
Source GLSL 450

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 21 59
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "white"

View File

@ -7,19 +7,15 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24
// Id's are bound by 21
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 22 23
EntryPoint Vertex 4 "main"
Source ESSL 310
Name 4 "main"
Name 8 "i"
Name 22 "gl_VertexID"
Name 23 "gl_InstanceID"
Decorate 22(gl_VertexID) BuiltIn VertexId
Decorate 23(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -28,9 +24,6 @@ Linked vertex stage:
15: 6(int) Constant 1
18: 6(int) Constant 10
19: TypeBool
21: TypePointer Input 6(int)
22(gl_VertexID): 21(ptr) Variable Input
23(gl_InstanceID): 21(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 46
// Id's are bound by 43
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 44 45
EntryPoint Vertex 4 "main"
Source ESSL 310
Name 4 "main"
Name 8 "i"
@ -23,10 +23,6 @@ Linked vertex stage:
Name 33 "E"
Name 35 "F"
Name 41 "G"
Name 44 "gl_VertexID"
Name 45 "gl_InstanceID"
Decorate 44(gl_VertexID) BuiltIn VertexId
Decorate 45(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -41,9 +37,6 @@ Linked vertex stage:
36: 6(int) Constant 99
39: 6(int) Constant 19
42: 6(int) Constant 12
43: TypePointer Input 6(int)
44(gl_VertexID): 43(ptr) Variable Input
45(gl_InstanceID): 43(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -5,20 +5,20 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
// Id's are bound by 34
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 33
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 11 17 27 32
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 18 "bigColor"
Name 28 "d"
Name 33 "gl_FragColor"
Name 17 "bigColor"
Name 27 "d"
Name 32 "gl_FragColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -26,16 +26,15 @@ Linked fragment stage:
8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4)
11(BaseColor): 10(ptr) Variable Input
17: TypePointer UniformConstant 7(fvec4)
18(bigColor): 17(ptr) Variable UniformConstant
22: TypeInt 32 0
23: 22(int) Constant 0
24: TypePointer Function 6(float)
27: TypePointer UniformConstant 6(float)
28(d): 27(ptr) Variable UniformConstant
30: TypeBool
32: TypePointer Output 7(fvec4)
33(gl_FragColor): 32(ptr) Variable Output
17(bigColor): 10(ptr) Variable Input
21: TypeInt 32 0
22: 21(int) Constant 0
23: TypePointer Function 6(float)
26: TypePointer Input 6(float)
27(d): 26(ptr) Variable Input
29: TypeBool
31: TypePointer Output 7(fvec4)
32(gl_FragColor): 31(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
@ -46,19 +45,19 @@ Linked fragment stage:
LoopMerge 15 16 None
Branch 14
14: Label
19: 7(fvec4) Load 18(bigColor)
20: 7(fvec4) Load 9(color)
21: 7(fvec4) FAdd 20 19
Store 9(color) 21
18: 7(fvec4) Load 17(bigColor)
19: 7(fvec4) Load 9(color)
20: 7(fvec4) FAdd 19 18
Store 9(color) 20
Branch 16
16: Label
25: 24(ptr) AccessChain 9(color) 23
26: 6(float) Load 25
29: 6(float) Load 28(d)
31: 30(bool) FOrdLessThan 26 29
BranchConditional 31 13 15
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d)
30: 29(bool) FOrdLessThan 25 28
BranchConditional 30 13 15
15: Label
34: 7(fvec4) Load 9(color)
Store 33(gl_FragColor) 34
33: 7(fvec4) Load 9(color)
Store 32(gl_FragColor) 33
Return
FunctionEnd

View File

@ -7,7 +7,7 @@ Linked compute stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 62
// Id's are bound by 60
Capability Shader
Capability Float64
@ -27,12 +27,14 @@ Linked compute stage:
Name 33 "gl_LocalInvocationID"
Name 49 "aa"
Name 54 "globalCoef"
Name 58 "roll"
Name 61 "destTex"
Decorate 8(bufName) GLSLShared
Name 59 "destTex"
MemberDecorate 8(bufName) 0 Offset 0
MemberDecorate 8(bufName) 1 Offset 8
Decorate 8(bufName) BufferBlock
Decorate 10(bufInst) DescriptorSet 0
Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 59(destTex) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -67,11 +69,9 @@ Linked compute stage:
53: 47(fvec4) ConstantComposite 50 51 52 50
55: 7(float) Constant 0 1072693248
56: 7(float) Constant 3229815407 1074340298
57: TypePointer UniformConstant 7(float)
58(roll): 57(ptr) Variable UniformConstant
59: TypeImage 6(float) 2D nonsampled format:Unknown
60: TypePointer UniformConstant 59
61(destTex): 60(ptr) Variable UniformConstant
57: TypeImage 6(float) 2D nonsampled format:Unknown
58: TypePointer UniformConstant 57
59(destTex): 58(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
22(storePos): 21(ptr) Variable Function

View File

@ -5,29 +5,29 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 112
// Id's are bound by 110
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 18 107
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 11 14 17 19 25 30 39 51 63 105 109
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 13 "color2"
Name 15 "otherColor"
Name 18 "c"
Name 21 "d"
Name 27 "bigColor"
Name 32 "smallColor"
Name 41 "minimum"
Name 53 "threshhold"
Name 65 "threshhold2"
Name 79 "b"
Name 107 "gl_FragColor"
Name 111 "threshhold3"
Name 14 "otherColor"
Name 17 "c"
Name 19 "d"
Name 25 "bigColor"
Name 30 "smallColor"
Name 39 "minimum"
Name 51 "threshhold"
Name 63 "threshhold2"
Name 77 "b"
Name 105 "gl_FragColor"
Name 109 "threshhold3"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -35,141 +35,139 @@ Linked fragment stage:
8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4)
11(BaseColor): 10(ptr) Variable Input
14: TypePointer UniformConstant 7(fvec4)
15(otherColor): 14(ptr) Variable UniformConstant
17: TypePointer Input 6(float)
18(c): 17(ptr) Variable Input
20: TypePointer UniformConstant 6(float)
21(d): 20(ptr) Variable UniformConstant
23: TypeBool
27(bigColor): 14(ptr) Variable UniformConstant
32(smallColor): 14(ptr) Variable UniformConstant
36: TypeInt 32 0
37: 36(int) Constant 2
38: TypePointer Function 6(float)
41(minimum): 20(ptr) Variable UniformConstant
49: 6(float) Constant 1065353216
53(threshhold): 20(ptr) Variable UniformConstant
62: 36(int) Constant 3
65(threshhold2): 20(ptr) Variable UniformConstant
78: TypePointer UniformConstant 23(bool)
79(b): 78(ptr) Variable UniformConstant
87: 36(int) Constant 0
106: TypePointer Output 7(fvec4)
107(gl_FragColor): 106(ptr) Variable Output
111(threshhold3): 20(ptr) Variable UniformConstant
14(otherColor): 10(ptr) Variable Input
16: TypePointer Input 6(float)
17(c): 16(ptr) Variable Input
19(d): 16(ptr) Variable Input
21: TypeBool
25(bigColor): 10(ptr) Variable Input
30(smallColor): 10(ptr) Variable Input
34: TypeInt 32 0
35: 34(int) Constant 2
36: TypePointer Function 6(float)
39(minimum): 16(ptr) Variable Input
47: 6(float) Constant 1065353216
51(threshhold): 16(ptr) Variable Input
60: 34(int) Constant 3
63(threshhold2): 16(ptr) Variable Input
76: TypePointer Private 21(bool)
77(b): 76(ptr) Variable Private
85: 34(int) Constant 0
104: TypePointer Output 7(fvec4)
105(gl_FragColor): 104(ptr) Variable Output
109(threshhold3): 16(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
13(color2): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
16: 7(fvec4) Load 15(otherColor)
Store 13(color2) 16
19: 6(float) Load 18(c)
22: 6(float) Load 21(d)
24: 23(bool) FOrdGreaterThan 19 22
SelectionMerge 26 None
BranchConditional 24 25 31
25: Label
28: 7(fvec4) Load 27(bigColor)
29: 7(fvec4) Load 9(color)
30: 7(fvec4) FAdd 29 28
Store 9(color) 30
Branch 26
31: Label
33: 7(fvec4) Load 32(smallColor)
34: 7(fvec4) Load 9(color)
35: 7(fvec4) FAdd 34 33
Store 9(color) 35
Branch 26
26: Label
39: 38(ptr) AccessChain 9(color) 37
40: 6(float) Load 39
42: 6(float) Load 41(minimum)
43: 23(bool) FOrdLessThan 40 42
SelectionMerge 45 None
BranchConditional 43 44 45
44: Label
15: 7(fvec4) Load 14(otherColor)
Store 13(color2) 15
18: 6(float) Load 17(c)
20: 6(float) Load 19(d)
22: 21(bool) FOrdGreaterThan 18 20
SelectionMerge 24 None
BranchConditional 22 23 29
23: Label
26: 7(fvec4) Load 25(bigColor)
27: 7(fvec4) Load 9(color)
28: 7(fvec4) FAdd 27 26
Store 9(color) 28
Branch 24
29: Label
31: 7(fvec4) Load 30(smallColor)
32: 7(fvec4) Load 9(color)
33: 7(fvec4) FAdd 32 31
Store 9(color) 33
Branch 24
24: Label
37: 36(ptr) AccessChain 9(color) 35
38: 6(float) Load 37
40: 6(float) Load 39(minimum)
41: 21(bool) FOrdLessThan 38 40
SelectionMerge 43 None
BranchConditional 41 42 43
42: Label
Return
45: Label
47: 38(ptr) AccessChain 9(color) 37
48: 6(float) Load 47
50: 6(float) FAdd 48 49
Store 47 50
51: 38(ptr) AccessChain 9(color) 37
52: 6(float) Load 51
54: 6(float) Load 53(threshhold)
55: 23(bool) FOrdGreaterThan 52 54
SelectionMerge 57 None
BranchConditional 55 56 57
56: Label
43: Label
45: 36(ptr) AccessChain 9(color) 35
46: 6(float) Load 45
48: 6(float) FAdd 46 47
Store 45 48
49: 36(ptr) AccessChain 9(color) 35
50: 6(float) Load 49
52: 6(float) Load 51(threshhold)
53: 21(bool) FOrdGreaterThan 50 52
SelectionMerge 55 None
BranchConditional 53 54 55
54: Label
Kill
57: Label
59: 7(fvec4) Load 9(color)
60: 7(fvec4) CompositeConstruct 49 49 49 49
61: 7(fvec4) FAdd 59 60
Store 9(color) 61
63: 38(ptr) AccessChain 9(color) 62
64: 6(float) Load 63
66: 6(float) Load 65(threshhold2)
67: 23(bool) FOrdGreaterThan 64 66
SelectionMerge 69 None
BranchConditional 67 68 99
68: Label
70: 38(ptr) AccessChain 9(color) 37
71: 6(float) Load 70
72: 6(float) Load 65(threshhold2)
73: 23(bool) FOrdGreaterThan 71 72
SelectionMerge 75 None
BranchConditional 73 74 77
74: Label
55: Label
57: 7(fvec4) Load 9(color)
58: 7(fvec4) CompositeConstruct 47 47 47 47
59: 7(fvec4) FAdd 57 58
Store 9(color) 59
61: 36(ptr) AccessChain 9(color) 60
62: 6(float) Load 61
64: 6(float) Load 63(threshhold2)
65: 21(bool) FOrdGreaterThan 62 64
SelectionMerge 67 None
BranchConditional 65 66 97
66: Label
68: 36(ptr) AccessChain 9(color) 35
69: 6(float) Load 68
70: 6(float) Load 63(threshhold2)
71: 21(bool) FOrdGreaterThan 69 70
SelectionMerge 73 None
BranchConditional 71 72 75
72: Label
Return
77: Label
80: 23(bool) Load 79(b)
SelectionMerge 82 None
BranchConditional 80 81 86
81: Label
83: 38(ptr) AccessChain 9(color) 37
84: 6(float) Load 83
85: 6(float) FAdd 84 49
Store 83 85
Branch 82
86: Label
88: 38(ptr) AccessChain 9(color) 87
89: 6(float) Load 88
90: 6(float) Load 41(minimum)
91: 23(bool) FOrdLessThan 89 90
SelectionMerge 93 None
BranchConditional 91 92 95
92: Label
Kill
95: Label
96: 7(fvec4) Load 9(color)
97: 7(fvec4) CompositeConstruct 49 49 49 49
98: 7(fvec4) FAdd 96 97
Store 9(color) 98
Branch 93
93: Label
Branch 82
82: Label
Branch 75
75: Label
Branch 69
99: Label
100: 23(bool) Load 79(b)
SelectionMerge 102 None
BranchConditional 100 101 104
101: Label
78: 21(bool) Load 77(b)
SelectionMerge 80 None
BranchConditional 78 79 84
79: Label
81: 36(ptr) AccessChain 9(color) 35
82: 6(float) Load 81
83: 6(float) FAdd 82 47
Store 81 83
Branch 80
84: Label
86: 36(ptr) AccessChain 9(color) 85
87: 6(float) Load 86
88: 6(float) Load 39(minimum)
89: 21(bool) FOrdLessThan 87 88
SelectionMerge 91 None
BranchConditional 89 90 93
90: Label
Kill
93: Label
94: 7(fvec4) Load 9(color)
95: 7(fvec4) CompositeConstruct 47 47 47 47
96: 7(fvec4) FAdd 94 95
Store 9(color) 96
Branch 91
91: Label
Branch 80
80: Label
Branch 73
73: Label
Branch 67
97: Label
98: 21(bool) Load 77(b)
SelectionMerge 100 None
BranchConditional 98 99 102
99: Label
Kill
104: Label
Return
102: Label
Branch 69
69: Label
108: 7(fvec4) Load 9(color)
109: 7(fvec4) Load 13(color2)
110: 7(fvec4) FMul 108 109
Store 107(gl_FragColor) 110
Return
100: Label
Branch 67
67: Label
106: 7(fvec4) Load 9(color)
107: 7(fvec4) Load 13(color2)
108: 7(fvec4) FMul 106 107
Store 105(gl_FragColor) 108
Return
FunctionEnd

View File

@ -5,24 +5,24 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 41
// Id's are bound by 39
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 18 37
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 11 14 17 19 25 30 35
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 13 "color2"
Name 15 "otherColor"
Name 18 "c"
Name 21 "d"
Name 27 "bigColor"
Name 32 "smallColor"
Name 37 "gl_FragColor"
Name 14 "otherColor"
Name 17 "c"
Name 19 "d"
Name 25 "bigColor"
Name 30 "smallColor"
Name 35 "gl_FragColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -30,46 +30,44 @@ Linked fragment stage:
8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4)
11(BaseColor): 10(ptr) Variable Input
14: TypePointer UniformConstant 7(fvec4)
15(otherColor): 14(ptr) Variable UniformConstant
17: TypePointer Input 6(float)
18(c): 17(ptr) Variable Input
20: TypePointer UniformConstant 6(float)
21(d): 20(ptr) Variable UniformConstant
23: TypeBool
27(bigColor): 14(ptr) Variable UniformConstant
32(smallColor): 14(ptr) Variable UniformConstant
36: TypePointer Output 7(fvec4)
37(gl_FragColor): 36(ptr) Variable Output
14(otherColor): 10(ptr) Variable Input
16: TypePointer Input 6(float)
17(c): 16(ptr) Variable Input
19(d): 16(ptr) Variable Input
21: TypeBool
25(bigColor): 10(ptr) Variable Input
30(smallColor): 10(ptr) Variable Input
34: TypePointer Output 7(fvec4)
35(gl_FragColor): 34(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
13(color2): 8(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
16: 7(fvec4) Load 15(otherColor)
Store 13(color2) 16
19: 6(float) Load 18(c)
22: 6(float) Load 21(d)
24: 23(bool) FOrdGreaterThan 19 22
SelectionMerge 26 None
BranchConditional 24 25 31
25: Label
28: 7(fvec4) Load 27(bigColor)
29: 7(fvec4) Load 9(color)
30: 7(fvec4) FAdd 29 28
Store 9(color) 30
Branch 26
31: Label
33: 7(fvec4) Load 32(smallColor)
34: 7(fvec4) Load 9(color)
35: 7(fvec4) FAdd 34 33
Store 9(color) 35
Branch 26
26: Label
38: 7(fvec4) Load 9(color)
39: 7(fvec4) Load 13(color2)
40: 7(fvec4) FMul 38 39
Store 37(gl_FragColor) 40
15: 7(fvec4) Load 14(otherColor)
Store 13(color2) 15
18: 6(float) Load 17(c)
20: 6(float) Load 19(d)
22: 21(bool) FOrdGreaterThan 18 20
SelectionMerge 24 None
BranchConditional 22 23 29
23: Label
26: 7(fvec4) Load 25(bigColor)
27: 7(fvec4) Load 9(color)
28: 7(fvec4) FAdd 27 26
Store 9(color) 28
Branch 24
29: Label
31: 7(fvec4) Load 30(smallColor)
32: 7(fvec4) Load 9(color)
33: 7(fvec4) FAdd 32 31
Store 9(color) 33
Branch 24
24: Label
36: 7(fvec4) Load 9(color)
37: 7(fvec4) Load 13(color2)
38: 7(fvec4) FMul 36 37
Store 35(gl_FragColor) 38
Return
FunctionEnd

View File

@ -7,23 +7,19 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37
// Id's are bound by 35
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 18 31 35 36
EntryPoint Vertex 4 "main" 18 31
Source GLSL 450
Name 4 "main"
Name 8 "i"
Name 18 "flag"
Name 31 "r"
Name 35 "gl_VertexID"
Name 36 "gl_InstanceID"
Decorate 18(flag) Location 0
Decorate 31(r) Location 0
Decorate 35(gl_VertexID) BuiltIn VertexId
Decorate 36(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -37,8 +33,6 @@ Linked vertex stage:
27: 6(int) Constant 15
30: TypePointer Output 6(int)
31(r): 30(ptr) Variable Output
35(gl_VertexID): 17(ptr) Variable Input
36(gl_InstanceID): 17(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 48
// Id's are bound by 45
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 46 47
EntryPoint Vertex 4 "main"
Source ESSL 310
Name 4 "main"
Name 8 "i"
@ -23,10 +23,6 @@ Linked vertex stage:
Name 38 "E"
Name 39 "F"
Name 43 "G"
Name 46 "gl_VertexID"
Name 47 "gl_InstanceID"
Decorate 46(gl_VertexID) BuiltIn VertexId
Decorate 47(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -39,9 +35,6 @@ Linked vertex stage:
31: 6(int) Constant 3
40: 6(int) Constant 12
44: 6(int) Constant 99
45: TypePointer Input 6(int)
46(gl_VertexID): 45(ptr) Variable Input
47(gl_InstanceID): 45(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -7,21 +7,17 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 28
// Id's are bound by 25
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 23 26 27
EntryPoint Vertex 4 "main" 23
Source GLSL 450
Name 4 "main"
Name 8 "i"
Name 23 "r"
Name 26 "gl_VertexID"
Name 27 "gl_InstanceID"
Decorate 23(r) Location 0
Decorate 26(gl_VertexID) BuiltIn VertexId
Decorate 27(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -32,9 +28,6 @@ Linked vertex stage:
20: 6(int) Constant 1
22: TypePointer Output 6(int)
23(r): 22(ptr) Variable Output
25: TypePointer Input 6(int)
26(gl_VertexID): 25(ptr) Variable Input
27(gl_InstanceID): 25(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -7,21 +7,17 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 23
// Id's are bound by 20
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 15 21 22
EntryPoint Vertex 4 "main" 15
Source GLSL 450
Name 4 "main"
Name 8 "i"
Name 15 "r"
Name 21 "gl_VertexID"
Name 22 "gl_InstanceID"
Decorate 15(r) Location 0
Decorate 21(gl_VertexID) BuiltIn VertexId
Decorate 22(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -30,9 +26,6 @@ Linked vertex stage:
14: TypePointer Output 6(int)
15(r): 14(ptr) Variable Output
18: 6(int) Constant 1
20: TypePointer Input 6(int)
21(gl_VertexID): 20(ptr) Variable Input
22(gl_InstanceID): 20(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -7,20 +7,16 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 27
// Id's are bound by 24
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 25 26
EntryPoint Vertex 4 "main"
Source ESSL 310
Name 4 "main"
Name 8 "i"
Name 19 "j"
Name 25 "gl_VertexID"
Name 26 "gl_InstanceID"
Decorate 25(gl_VertexID) BuiltIn VertexId
Decorate 26(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -30,9 +26,6 @@ Linked vertex stage:
17: TypeBool
20: 6(int) Constant 12
22: 6(int) Constant 1
24: TypePointer Input 6(int)
25(gl_VertexID): 24(ptr) Variable Input
26(gl_InstanceID): 24(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function

View File

@ -5,30 +5,32 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 132
// Id's are bound by 131
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 37 105
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 11 24 28 36 53 104
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 15 "i"
Name 24 "Count"
Name 29 "bigColor"
Name 37 "gl_FragColor"
Name 40 "sum"
Name 42 "i"
Name 54 "v4"
Name 64 "i"
Name 72 "tv4"
Name 89 "r"
Name 95 "i"
Name 105 "f"
Name 118 "i"
Name 28 "bigColor"
Name 36 "gl_FragColor"
Name 39 "sum"
Name 41 "i"
Name 53 "v4"
Name 63 "i"
Name 71 "tv4"
Name 88 "r"
Name 94 "i"
Name 104 "f"
Name 117 "i"
Decorate 24(Count) Flat
Decorate 53(v4) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -39,39 +41,38 @@ Linked fragment stage:
13: TypeInt 32 1
14: TypePointer Function 13(int)
16: 13(int) Constant 0
23: TypePointer UniformConstant 13(int)
24(Count): 23(ptr) Variable UniformConstant
23: TypePointer Input 13(int)
24(Count): 23(ptr) Variable Input
26: TypeBool
28: TypePointer UniformConstant 7(fvec4)
29(bigColor): 28(ptr) Variable UniformConstant
34: 13(int) Constant 1
36: TypePointer Output 7(fvec4)
37(gl_FragColor): 36(ptr) Variable Output
39: TypePointer Function 6(float)
41: 6(float) Constant 0
49: 13(int) Constant 4
51: TypeInt 32 0
52: TypeVector 51(int) 4
53: TypePointer UniformConstant 52(ivec4)
54(v4): 53(ptr) Variable UniformConstant
56: TypePointer UniformConstant 51(int)
77: 51(int) Constant 4
90: TypeVector 6(float) 3
104: TypePointer Input 6(float)
105(f): 104(ptr) Variable Input
107: 51(int) Constant 3
125: 13(int) Constant 16
28(bigColor): 10(ptr) Variable Input
33: 13(int) Constant 1
35: TypePointer Output 7(fvec4)
36(gl_FragColor): 35(ptr) Variable Output
38: TypePointer Function 6(float)
40: 6(float) Constant 0
48: 13(int) Constant 4
50: TypeInt 32 0
51: TypeVector 50(int) 4
52: TypePointer Input 51(ivec4)
53(v4): 52(ptr) Variable Input
55: TypePointer Input 50(int)
76: 50(int) Constant 4
89: TypeVector 6(float) 3
103: TypePointer Input 6(float)
104(f): 103(ptr) Variable Input
106: 50(int) Constant 3
124: 13(int) Constant 16
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
15(i): 14(ptr) Variable Function
40(sum): 39(ptr) Variable Function
42(i): 14(ptr) Variable Function
64(i): 14(ptr) Variable Function
72(tv4): 8(ptr) Variable Function
89(r): 8(ptr) Variable Function
95(i): 14(ptr) Variable Function
118(i): 14(ptr) Variable Function
39(sum): 38(ptr) Variable Function
41(i): 14(ptr) Variable Function
63(i): 14(ptr) Variable Function
71(tv4): 8(ptr) Variable Function
88(r): 8(ptr) Variable Function
94(i): 14(ptr) Variable Function
117(i): 14(ptr) Variable Function
12: 7(fvec4) Load 11(BaseColor)
Store 9(color) 12
Store 15(i) 16
@ -85,130 +86,130 @@ Linked fragment stage:
27: 26(bool) SLessThan 22 25
BranchConditional 27 18 19
18: Label
30: 7(fvec4) Load 29(bigColor)
31: 7(fvec4) Load 9(color)
32: 7(fvec4) FAdd 31 30
Store 9(color) 32
29: 7(fvec4) Load 28(bigColor)
30: 7(fvec4) Load 9(color)
31: 7(fvec4) FAdd 30 29
Store 9(color) 31
Branch 20
20: Label
33: 13(int) Load 15(i)
35: 13(int) IAdd 33 34
Store 15(i) 35
32: 13(int) Load 15(i)
34: 13(int) IAdd 32 33
Store 15(i) 34
Branch 17
19: Label
38: 7(fvec4) Load 9(color)
Store 37(gl_FragColor) 38
Store 40(sum) 41
Store 42(i) 16
Branch 43
43: Label
LoopMerge 45 46 None
Branch 47
47: Label
48: 13(int) Load 42(i)
50: 26(bool) SLessThan 48 49
BranchConditional 50 44 45
44: Label
55: 13(int) Load 42(i)
57: 56(ptr) AccessChain 54(v4) 55
58: 51(int) Load 57
59: 6(float) ConvertUToF 58
60: 6(float) Load 40(sum)
61: 6(float) FAdd 60 59
Store 40(sum) 61
37: 7(fvec4) Load 9(color)
Store 36(gl_FragColor) 37
Store 39(sum) 40
Store 41(i) 16
Branch 42
42: Label
LoopMerge 44 45 None
Branch 46
46: Label
62: 13(int) Load 42(i)
63: 13(int) IAdd 62 34
Store 42(i) 63
Branch 43
47: 13(int) Load 41(i)
49: 26(bool) SLessThan 47 48
BranchConditional 49 43 44
43: Label
54: 13(int) Load 41(i)
56: 55(ptr) AccessChain 53(v4) 54
57: 50(int) Load 56
58: 6(float) ConvertUToF 57
59: 6(float) Load 39(sum)
60: 6(float) FAdd 59 58
Store 39(sum) 60
Branch 45
45: Label
Store 64(i) 16
Branch 65
65: Label
LoopMerge 67 68 None
Branch 69
69: Label
70: 13(int) Load 64(i)
71: 26(bool) SLessThan 70 49
BranchConditional 71 66 67
66: Label
73: 13(int) Load 64(i)
74: 13(int) Load 64(i)
75: 56(ptr) AccessChain 54(v4) 74
76: 51(int) Load 75
78: 51(int) IMul 76 77
79: 6(float) ConvertUToF 78
80: 39(ptr) AccessChain 72(tv4) 73
Store 80 79
61: 13(int) Load 41(i)
62: 13(int) IAdd 61 33
Store 41(i) 62
Branch 42
44: Label
Store 63(i) 16
Branch 64
64: Label
LoopMerge 66 67 None
Branch 68
68: Label
81: 13(int) Load 64(i)
82: 13(int) IAdd 81 34
Store 64(i) 82
Branch 65
69: 13(int) Load 63(i)
70: 26(bool) SLessThan 69 48
BranchConditional 70 65 66
65: Label
72: 13(int) Load 63(i)
73: 13(int) Load 63(i)
74: 55(ptr) AccessChain 53(v4) 73
75: 50(int) Load 74
77: 50(int) IMul 75 76
78: 6(float) ConvertUToF 77
79: 38(ptr) AccessChain 71(tv4) 72
Store 79 78
Branch 67
67: Label
83: 6(float) Load 40(sum)
84: 7(fvec4) CompositeConstruct 83 83 83 83
85: 7(fvec4) Load 72(tv4)
86: 7(fvec4) FAdd 84 85
87: 7(fvec4) Load 37(gl_FragColor)
88: 7(fvec4) FAdd 87 86
Store 37(gl_FragColor) 88
91: 7(fvec4) Load 11(BaseColor)
92: 90(fvec3) VectorShuffle 91 91 0 1 2
93: 7(fvec4) Load 89(r)
94: 7(fvec4) VectorShuffle 93 92 4 5 6 3
Store 89(r) 94
Store 95(i) 16
Branch 96
96: Label
LoopMerge 98 99 None
Branch 100
100: Label
101: 13(int) Load 95(i)
102: 13(int) Load 24(Count)
103: 26(bool) SLessThan 101 102
BranchConditional 103 97 98
97: Label
106: 6(float) Load 105(f)
108: 39(ptr) AccessChain 89(r) 107
Store 108 106
80: 13(int) Load 63(i)
81: 13(int) IAdd 80 33
Store 63(i) 81
Branch 64
66: Label
82: 6(float) Load 39(sum)
83: 7(fvec4) CompositeConstruct 82 82 82 82
84: 7(fvec4) Load 71(tv4)
85: 7(fvec4) FAdd 83 84
86: 7(fvec4) Load 36(gl_FragColor)
87: 7(fvec4) FAdd 86 85
Store 36(gl_FragColor) 87
90: 7(fvec4) Load 11(BaseColor)
91: 89(fvec3) VectorShuffle 90 90 0 1 2
92: 7(fvec4) Load 88(r)
93: 7(fvec4) VectorShuffle 92 91 4 5 6 3
Store 88(r) 93
Store 94(i) 16
Branch 95
95: Label
LoopMerge 97 98 None
Branch 99
99: Label
109: 13(int) Load 95(i)
110: 13(int) IAdd 109 34
Store 95(i) 110
Branch 96
100: 13(int) Load 94(i)
101: 13(int) Load 24(Count)
102: 26(bool) SLessThan 100 101
BranchConditional 102 96 97
96: Label
105: 6(float) Load 104(f)
107: 38(ptr) AccessChain 88(r) 106
Store 107 105
Branch 98
98: Label
111: 7(fvec4) Load 89(r)
112: 90(fvec3) VectorShuffle 111 111 0 1 2
113: 7(fvec4) Load 37(gl_FragColor)
114: 90(fvec3) VectorShuffle 113 113 0 1 2
115: 90(fvec3) FAdd 114 112
116: 7(fvec4) Load 37(gl_FragColor)
117: 7(fvec4) VectorShuffle 116 115 4 5 6 3
Store 37(gl_FragColor) 117
Store 118(i) 16
Branch 119
119: Label
LoopMerge 121 122 None
Branch 123
123: Label
124: 13(int) Load 118(i)
126: 26(bool) SLessThan 124 125
BranchConditional 126 120 121
120: Label
127: 6(float) Load 105(f)
128: 7(fvec4) Load 37(gl_FragColor)
129: 7(fvec4) VectorTimesScalar 128 127
Store 37(gl_FragColor) 129
108: 13(int) Load 94(i)
109: 13(int) IAdd 108 33
Store 94(i) 109
Branch 95
97: Label
110: 7(fvec4) Load 88(r)
111: 89(fvec3) VectorShuffle 110 110 0 1 2
112: 7(fvec4) Load 36(gl_FragColor)
113: 89(fvec3) VectorShuffle 112 112 0 1 2
114: 89(fvec3) FAdd 113 111
115: 7(fvec4) Load 36(gl_FragColor)
116: 7(fvec4) VectorShuffle 115 114 4 5 6 3
Store 36(gl_FragColor) 116
Store 117(i) 16
Branch 118
118: Label
LoopMerge 120 121 None
Branch 122
122: Label
130: 13(int) Load 118(i)
131: 13(int) IAdd 130 49
Store 118(i) 131
Branch 119
123: 13(int) Load 117(i)
125: 26(bool) SLessThan 123 124
BranchConditional 125 119 120
119: Label
126: 6(float) Load 104(f)
127: 7(fvec4) Load 36(gl_FragColor)
128: 7(fvec4) VectorTimesScalar 127 126
Store 36(gl_FragColor) 128
Branch 121
121: Label
129: 13(int) Load 117(i)
130: 13(int) IAdd 129 48
Store 117(i) 130
Branch 118
120: Label
Return
FunctionEnd

View File

@ -5,13 +5,13 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 61
// Id's are bound by 60
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 20 30
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 20 30 36 59
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 6 "bar("
@ -24,7 +24,7 @@ Linked fragment stage:
Name 27 "f"
Name 30 "gl_FragColor"
Name 36 "d"
Name 60 "bigColor"
Name 59 "bigColor"
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
@ -37,8 +37,8 @@ Linked fragment stage:
26: TypePointer Function 8(float)
29: TypePointer Output 12(fvec4)
30(gl_FragColor): 29(ptr) Variable Output
35: TypePointer UniformConstant 8(float)
36(d): 35(ptr) Variable UniformConstant
35: TypePointer Input 8(float)
36(d): 35(ptr) Variable Input
38: 8(float) Constant 1082549862
39: TypeBool
43: 8(float) Constant 1067030938
@ -46,8 +46,7 @@ Linked fragment stage:
49: TypeInt 32 0
50: 49(int) Constant 0
53: 49(int) Constant 1
59: TypePointer UniformConstant 12(fvec4)
60(bigColor): 59(ptr) Variable UniformConstant
59(bigColor): 19(ptr) Variable Input
4(main): 2 Function None 3
5: Label
18(color): 13(ptr) Variable Function

View File

@ -1,17 +1,21 @@
spv.functionCall.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 77
// Id's are bound by 76
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 58 69
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 35 58 69 75
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 11 "foo(vf4;"
@ -27,7 +31,7 @@ Linked fragment stage:
Name 64 "f"
Name 66 "g"
Name 69 "gl_FragColor"
Name 76 "bigColor"
Name 75 "bigColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -42,8 +46,8 @@ Linked fragment stage:
24: 23(int) Constant 0
25: TypePointer Function 6(float)
28: 23(int) Constant 1
34: TypePointer UniformConstant 6(float)
35(d): 34(ptr) Variable UniformConstant
34: TypePointer Input 6(float)
35(d): 34(ptr) Variable Input
37: 6(float) Constant 1082549862
38: TypeBool
42: 6(float) Constant 1067030938
@ -53,8 +57,7 @@ Linked fragment stage:
58(BaseColor): 57(ptr) Variable Input
68: TypePointer Output 7(fvec4)
69(gl_FragColor): 68(ptr) Variable Output
75: TypePointer UniformConstant 7(fvec4)
76(bigColor): 75(ptr) Variable UniformConstant
75(bigColor): 57(ptr) Variable Input
4(main): 2 Function None 3
5: Label
56(color): 8(ptr) Variable Function

View File

@ -12,8 +12,8 @@ Linked fragment stage:
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 152
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 76 152
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 15 "foo(i1;i1;i1;i1;i1;i1;"
@ -65,8 +65,8 @@ Linked fragment stage:
66: 17(float) Constant 1084227584
67: TypeInt 32 0
68: 67(int) Constant 1
75: TypePointer UniformConstant 17(float)
76(u): 75(ptr) Variable UniformConstant
75: TypePointer Input 17(float)
76(u): 75(ptr) Variable Input
78: 17(float) Constant 1078774989
79: TypeBool
84: 6(int) Constant 1000000

View File

@ -20,8 +20,8 @@ Linked fragment stage:
Capability StorageImageWriteWithoutFormat
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 362
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 132 142 152 248 362 377
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "iv"
@ -47,20 +47,39 @@ Linked fragment stage:
Name 357 "wo2D"
Name 362 "fragData"
Name 377 "ic4D"
Decorate 15(i1D) DescriptorSet 0
Decorate 15(i1D) Binding 0
Decorate 27(i2D) DescriptorSet 0
Decorate 27(i2D) Binding 1
Decorate 38(i3D) DescriptorSet 0
Decorate 38(i3D) Binding 2
Decorate 45(iCube) DescriptorSet 0
Decorate 45(iCube) Binding 3
Decorate 55(iCubeArray) DescriptorSet 0
Decorate 55(iCubeArray) Binding 4
Decorate 62(i2DRect) DescriptorSet 0
Decorate 62(i2DRect) Binding 5
Decorate 72(i1DArray) DescriptorSet 0
Decorate 72(i1DArray) Binding 6
Decorate 82(i2DArray) DescriptorSet 0
Decorate 82(i2DArray) Binding 7
Decorate 89(iBuffer) DescriptorSet 0
Decorate 89(iBuffer) Binding 8
Decorate 98(i2DMS) DescriptorSet 0
Decorate 98(i2DMS) Binding 9
Decorate 108(i2DMSArray) DescriptorSet 0
Decorate 108(i2DMSArray) Binding 10
Decorate 132(ic1D) Flat
Decorate 142(ic2D) Flat
Decorate 152(ic3D) Flat
Decorate 232(ii1D) DescriptorSet 0
Decorate 232(ii1D) Binding 11
Decorate 245(ui2D) DescriptorSet 0
Decorate 245(ui2D) Binding 12
Decorate 248(value) Flat
Decorate 357(wo2D) DescriptorSet 0
Decorate 357(wo2D) Binding 1
Decorate 377(ic4D) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -110,12 +129,12 @@ Linked fragment stage:
126: TypePointer Function 125(fvec4)
128: 12(float) Constant 0
129: 125(fvec4) ConstantComposite 128 128 128 128
131: TypePointer UniformConstant 6(int)
132(ic1D): 131(ptr) Variable UniformConstant
141: TypePointer UniformConstant 29(ivec2)
142(ic2D): 141(ptr) Variable UniformConstant
151: TypePointer UniformConstant 7(ivec3)
152(ic3D): 151(ptr) Variable UniformConstant
131: TypePointer Input 6(int)
132(ic1D): 131(ptr) Variable Input
141: TypePointer Input 29(ivec2)
142(ic2D): 141(ptr) Variable Input
151: TypePointer Input 7(ivec3)
152(ic3D): 151(ptr) Variable Input
210: 6(int) Constant 1
216: 6(int) Constant 2
220: 6(int) Constant 3
@ -130,8 +149,8 @@ Linked fragment stage:
243: TypeImage 18(int) 2D nonsampled format:R32ui
244: TypePointer UniformConstant 243
245(ui2D): 244(ptr) Variable UniformConstant
247: TypePointer UniformConstant 18(int)
248(value): 247(ptr) Variable UniformConstant
247: TypePointer Input 18(int)
248(value): 247(ptr) Variable Input
250: TypePointer Image 18(int)
256: 6(int) Constant 11
270: 6(int) Constant 12
@ -149,8 +168,8 @@ Linked fragment stage:
362(fragData): 361(ptr) Variable Output
368: TypeBool
375: TypeVector 6(int) 4
376: TypePointer UniformConstant 375(ivec4)
377(ic4D): 376(ptr) Variable UniformConstant
376: TypePointer Input 375(ivec4)
377(ic4D): 376(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(iv): 8(ptr) Variable Function

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 270
// Id's are bound by 268
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 268 269
EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
Source ESSL 310
Name 4 "main"
Name 9 "iout"
@ -44,12 +44,8 @@ Linked vertex stage:
Name 173 "u3"
Name 182 "i3"
Name 247 "v4"
Name 268 "gl_VertexID"
Name 269 "gl_InstanceID"
Decorate 261 RelaxedPrecision
Decorate 265 RelaxedPrecision
Decorate 268(gl_VertexID) BuiltIn VertexId
Decorate 269(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -117,8 +113,6 @@ Linked vertex stage:
182(i3): 181(ptr) Variable Input
246: TypePointer Input 19(fvec4)
247(v4): 246(ptr) Variable Input
268(gl_VertexID): 155(ptr) Variable Input
269(gl_InstanceID): 155(ptr) Variable Input
4(main): 2 Function None 3
5: Label
30(u2out): 29(ptr) Variable Function

View File

@ -7,14 +7,14 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 101
// Id's are bound by 100
Capability Shader
Capability InterpolationFunction
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 24 33 41 99
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 13 24 33 41 47 72 98
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "f4"
@ -23,8 +23,10 @@ Linked fragment stage:
Name 33 "if3"
Name 41 "if4"
Name 47 "samp"
Name 73 "offset"
Name 99 "fragColor"
Name 72 "offset"
Name 98 "fragColor"
Decorate 47(samp) Flat
Decorate 72(offset) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -46,12 +48,11 @@ Linked fragment stage:
40: TypePointer Input 7(fvec4)
41(if4): 40(ptr) Variable Input
45: TypeInt 32 1
46: TypePointer UniformConstant 45(int)
47(samp): 46(ptr) Variable UniformConstant
72: TypePointer UniformConstant 22(fvec2)
73(offset): 72(ptr) Variable UniformConstant
98: TypePointer Output 7(fvec4)
99(fragColor): 98(ptr) Variable Output
46: TypePointer Input 45(int)
47(samp): 46(ptr) Variable Input
72(offset): 23(ptr) Variable Input
97: TypePointer Output 7(fvec4)
98(fragColor): 97(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(f4): 8(ptr) Variable Function
@ -108,35 +109,35 @@ Linked fragment stage:
70: 7(fvec4) Load 9(f4)
71: 7(fvec4) FAdd 70 69
Store 9(f4) 71
74: 22(fvec2) Load 73(offset)
75: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 74
76: 17(ptr) AccessChain 9(f4) 16
77: 6(float) Load 76
78: 6(float) FAdd 77 75
79: 17(ptr) AccessChain 9(f4) 16
Store 79 78
80: 22(fvec2) Load 73(offset)
81: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 80
82: 7(fvec4) Load 9(f4)
83: 22(fvec2) VectorShuffle 82 82 0 1
84: 22(fvec2) FAdd 83 81
85: 7(fvec4) Load 9(f4)
86: 7(fvec4) VectorShuffle 85 84 4 5 2 3
Store 9(f4) 86
87: 22(fvec2) Load 73(offset)
88: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 87
89: 7(fvec4) Load 9(f4)
90: 31(fvec3) VectorShuffle 89 89 0 1 2
91: 31(fvec3) FAdd 90 88
92: 7(fvec4) Load 9(f4)
93: 7(fvec4) VectorShuffle 92 91 4 5 6 3
Store 9(f4) 93
94: 22(fvec2) Load 73(offset)
95: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 94
96: 7(fvec4) Load 9(f4)
97: 7(fvec4) FAdd 96 95
Store 9(f4) 97
100: 7(fvec4) Load 9(f4)
Store 99(fragColor) 100
73: 22(fvec2) Load 72(offset)
74: 6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73
75: 17(ptr) AccessChain 9(f4) 16
76: 6(float) Load 75
77: 6(float) FAdd 76 74
78: 17(ptr) AccessChain 9(f4) 16
Store 78 77
79: 22(fvec2) Load 72(offset)
80: 22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79
81: 7(fvec4) Load 9(f4)
82: 22(fvec2) VectorShuffle 81 81 0 1
83: 22(fvec2) FAdd 82 80
84: 7(fvec4) Load 9(f4)
85: 7(fvec4) VectorShuffle 84 83 4 5 2 3
Store 9(f4) 85
86: 22(fvec2) Load 72(offset)
87: 31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86
88: 7(fvec4) Load 9(f4)
89: 31(fvec3) VectorShuffle 88 88 0 1 2
90: 31(fvec3) FAdd 89 87
91: 7(fvec4) Load 9(f4)
92: 7(fvec4) VectorShuffle 91 90 4 5 6 3
Store 9(f4) 92
93: 22(fvec2) Load 72(offset)
94: 7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93
95: 7(fvec4) Load 9(f4)
96: 7(fvec4) FAdd 95 94
Store 9(f4) 96
99: 7(fvec4) Load 9(f4)
Store 98(fragColor) 99
Return
FunctionEnd

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 70
// Id's are bound by 67
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 63 66 68 69
EntryPoint Vertex 4 "main" 63 66
Source GLSL 450
Name 4 "main"
Name 14 "S"
@ -92,8 +92,6 @@ Linked vertex stage:
MemberName 64(S) 1 "b"
MemberName 64(S) 2 "c"
Name 66 "soutinv"
Name 68 "gl_VertexID"
Name 69 "gl_InstanceID"
Decorate 13 ArrayStride 32
MemberDecorate 14(S) 0 Offset 0
MemberDecorate 14(S) 1 ColMajor
@ -175,8 +173,6 @@ Linked vertex stage:
MemberDecorate 64(S) 1 Invariant
MemberDecorate 64(S) 2 Invariant
Decorate 66(soutinv) Invariant
Decorate 68(gl_VertexID) BuiltIn VertexId
Decorate 69(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -240,9 +236,6 @@ Linked vertex stage:
64(S): TypeStruct 8(ivec3) 13 7(int)
65: TypePointer Output 64(S)
66(soutinv): 65(ptr) Variable Output
67: TypePointer Input 6(int)
68(gl_VertexID): 67(ptr) Variable Input
69(gl_InstanceID): 67(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Return

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 14 26
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "t"
@ -39,8 +39,8 @@ Linked fragment stage:
28: 24(fvec4) ConstantComposite 27 27 27 27
29: 10(int) Constant 3
30: TypeArray 24(fvec4) 29
31: TypePointer UniformConstant 30
32(u): 31(ptr) Variable UniformConstant
31: TypePointer Private 30
32(u): 31(ptr) Variable Private
4(main): 2 Function None 3
5: Label
9(t): 8(ptr) Variable Function

View File

@ -1,18 +1,20 @@
spv.localAggregates.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 138
// Id's are bound by 143
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 40 98 108
ExecutionMode 4 OriginLowerLeft
Source GLSL 140
EntryPoint Fragment 4 "main" 18 43 93 101 111 138 142
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 8 "s1"
MemberName 8(s1) 0 "i"
@ -23,26 +25,69 @@ Linked fragment stage:
MemberName 10(s2) 2 "s1_1"
MemberName 10(s2) 3 "bleh"
Name 12 "locals2"
Name 13 "s3"
MemberName 13(s3) 0 "s2_1"
MemberName 13(s3) 1 "i"
MemberName 13(s3) 2 "f"
MemberName 13(s3) 3 "s1_1"
Name 15 "foo3"
Name 36 "localFArray"
Name 40 "coord"
Name 49 "localIArray"
Name 68 "x"
Name 70 "localArray"
Name 75 "i"
Name 84 "a"
Name 90 "condition"
Name 98 "color"
Name 108 "gl_FragColor"
Name 128 "samp2D"
Name 134 "foo"
Name 135 "foo2"
Name 137 "uFloatArray"
Name 13 "s1"
MemberName 13(s1) 0 "i"
MemberName 13(s1) 1 "f"
Name 14 "s2"
MemberName 14(s2) 0 "i"
MemberName 14(s2) 1 "f"
MemberName 14(s2) 2 "s1_1"
MemberName 14(s2) 3 "bleh"
Name 15 "s1"
MemberName 15(s1) 0 "i"
MemberName 15(s1) 1 "f"
Name 16 "s3"
MemberName 16(s3) 0 "s2_1"
MemberName 16(s3) 1 "i"
MemberName 16(s3) 2 "f"
MemberName 16(s3) 3 "s1_1"
Name 18 "foo3"
Name 39 "localFArray"
Name 43 "coord"
Name 52 "localIArray"
Name 71 "x"
Name 73 "localArray"
Name 78 "i"
Name 87 "a"
Name 93 "condition"
Name 101 "color"
Name 111 "gl_FragColor"
Name 131 "samp2D"
Name 136 "s1"
MemberName 136(s1) 0 "i"
MemberName 136(s1) 1 "f"
Name 138 "foo"
Name 139 "s1"
MemberName 139(s1) 0 "i"
MemberName 139(s1) 1 "f"
Name 140 "s2"
MemberName 140(s2) 0 "i"
MemberName 140(s2) 1 "f"
MemberName 140(s2) 2 "s1_1"
MemberName 140(s2) 3 "bleh"
Name 142 "foo2"
MemberDecorate 13(s1) 0 Flat
MemberDecorate 13(s1) 1 Flat
MemberDecorate 14(s2) 0 Flat
MemberDecorate 14(s2) 1 Flat
MemberDecorate 14(s2) 2 Flat
MemberDecorate 14(s2) 3 Flat
MemberDecorate 15(s1) 0 Flat
MemberDecorate 15(s1) 1 Flat
MemberDecorate 16(s3) 0 Flat
MemberDecorate 16(s3) 1 Flat
MemberDecorate 16(s3) 2 Flat
MemberDecorate 16(s3) 3 Flat
Decorate 93(condition) Flat
Decorate 131(samp2D) DescriptorSet 0
MemberDecorate 136(s1) 0 Flat
MemberDecorate 136(s1) 1 Flat
MemberDecorate 139(s1) 0 Flat
MemberDecorate 139(s1) 1 Flat
MemberDecorate 140(s2) 0 Flat
MemberDecorate 140(s2) 1 Flat
MemberDecorate 140(s2) 2 Flat
MemberDecorate 140(s2) 3 Flat
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -51,166 +96,171 @@ Linked fragment stage:
9: TypeVector 7(float) 4
10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)
11: TypePointer Function 10(s2)
13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1)
14: TypePointer UniformConstant 13(s3)
15(foo3): 14(ptr) Variable UniformConstant
16: 6(int) Constant 0
17: TypePointer UniformConstant 10(s2)
20: TypePointer UniformConstant 6(int)
23: TypeBool
27: 6(int) Constant 2
28: 6(int) Constant 1
29: 7(float) Constant 1065353216
30: TypePointer Function 7(float)
32: TypeInt 32 0
33: 32(int) Constant 16
34: TypeArray 7(float) 33
35: TypePointer Function 34
37: 6(int) Constant 4
38: TypeVector 7(float) 2
39: TypePointer Input 38(fvec2)
40(coord): 39(ptr) Variable Input
41: 32(int) Constant 0
42: TypePointer Input 7(float)
46: 32(int) Constant 8
47: TypeArray 6(int) 46
48: TypePointer Function 47
52: TypePointer Function 6(int)
69: 6(int) Constant 5
82: 6(int) Constant 16
86: 7(float) Constant 0
90(condition): 20(ptr) Variable UniformConstant
96: 6(int) Constant 3
97: TypePointer Input 9(fvec4)
98(color): 97(ptr) Variable Input
100: TypePointer Function 9(fvec4)
102: 32(int) Constant 1
105: 32(int) Constant 2
107: TypePointer Output 9(fvec4)
108(gl_FragColor): 107(ptr) Variable Output
125: TypeImage 7(float) 2D sampled format:Unknown
126: TypeSampledImage 125
127: TypePointer UniformConstant 126
128(samp2D): 127(ptr) Variable UniformConstant
133: TypePointer UniformConstant 8(s1)
134(foo): 133(ptr) Variable UniformConstant
135(foo2): 17(ptr) Variable UniformConstant
136: TypePointer UniformConstant 34
137(uFloatArray): 136(ptr) Variable UniformConstant
13(s1): TypeStruct 6(int) 7(float)
14(s2): TypeStruct 6(int) 7(float) 13(s1) 9(fvec4)
15(s1): TypeStruct 6(int) 7(float)
16(s3): TypeStruct 14(s2) 6(int) 7(float) 15(s1)
17: TypePointer Input 16(s3)
18(foo3): 17(ptr) Variable Input
19: 6(int) Constant 0
20: TypePointer Input 14(s2)
23: TypePointer Input 6(int)
26: TypeBool
30: 6(int) Constant 2
31: 6(int) Constant 1
32: 7(float) Constant 1065353216
33: TypePointer Function 7(float)
35: TypeInt 32 0
36: 35(int) Constant 16
37: TypeArray 7(float) 36
38: TypePointer Function 37
40: 6(int) Constant 4
41: TypeVector 7(float) 2
42: TypePointer Input 41(fvec2)
43(coord): 42(ptr) Variable Input
44: 35(int) Constant 0
45: TypePointer Input 7(float)
49: 35(int) Constant 8
50: TypeArray 6(int) 49
51: TypePointer Function 50
55: TypePointer Function 6(int)
72: 6(int) Constant 5
85: 6(int) Constant 16
89: 7(float) Constant 0
93(condition): 23(ptr) Variable Input
99: 6(int) Constant 3
100: TypePointer Input 9(fvec4)
101(color): 100(ptr) Variable Input
103: TypePointer Function 9(fvec4)
105: 35(int) Constant 1
108: 35(int) Constant 2
110: TypePointer Output 9(fvec4)
111(gl_FragColor): 110(ptr) Variable Output
128: TypeImage 7(float) 2D sampled format:Unknown
129: TypeSampledImage 128
130: TypePointer UniformConstant 129
131(samp2D): 130(ptr) Variable UniformConstant
136(s1): TypeStruct 6(int) 7(float)
137: TypePointer Input 136(s1)
138(foo): 137(ptr) Variable Input
139(s1): TypeStruct 6(int) 7(float)
140(s2): TypeStruct 6(int) 7(float) 139(s1) 9(fvec4)
141: TypePointer Input 140(s2)
142(foo2): 141(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12(locals2): 11(ptr) Variable Function
36(localFArray): 35(ptr) Variable Function
49(localIArray): 48(ptr) Variable Function
68(x): 52(ptr) Variable Function
70(localArray): 35(ptr) Variable Function
75(i): 52(ptr) Variable Function
84(a): 35(ptr) Variable Function
18: 17(ptr) AccessChain 15(foo3) 16
19: 10(s2) Load 18
Store 12(locals2) 19
21: 20(ptr) AccessChain 15(foo3) 16 16
22: 6(int) Load 21
24: 23(bool) SGreaterThan 22 16
SelectionMerge 26 None
BranchConditional 24 25 54
25: Label
31: 30(ptr) AccessChain 12(locals2) 27 28
Store 31 29
43: 42(ptr) AccessChain 40(coord) 41
44: 7(float) Load 43
45: 30(ptr) AccessChain 36(localFArray) 37
Store 45 44
50: 20(ptr) AccessChain 15(foo3) 16 16
51: 6(int) Load 50
53: 52(ptr) AccessChain 49(localIArray) 27
Store 53 51
Branch 26
54: Label
55: 42(ptr) AccessChain 40(coord) 41
56: 7(float) Load 55
57: 30(ptr) AccessChain 12(locals2) 27 28
Store 57 56
58: 30(ptr) AccessChain 36(localFArray) 37
Store 58 29
59: 52(ptr) AccessChain 49(localIArray) 27
Store 59 16
Branch 26
26: Label
60: 52(ptr) AccessChain 49(localIArray) 27
61: 6(int) Load 60
62: 23(bool) IEqual 61 16
SelectionMerge 64 None
BranchConditional 62 63 64
63: Label
65: 30(ptr) AccessChain 36(localFArray) 37
66: 7(float) Load 65
67: 7(float) FAdd 66 29
Store 65 67
Branch 64
64: Label
Store 68(x) 69
71: 6(int) Load 68(x)
72: 42(ptr) AccessChain 40(coord) 41
73: 7(float) Load 72
74: 30(ptr) AccessChain 70(localArray) 71
Store 74 73
Store 75(i) 16
Branch 76
76: Label
LoopMerge 78 79 None
Branch 80
80: Label
81: 6(int) Load 75(i)
83: 23(bool) SLessThan 81 82
BranchConditional 83 77 78
77: Label
85: 6(int) Load 75(i)
87: 30(ptr) AccessChain 84(a) 85
Store 87 86
39(localFArray): 38(ptr) Variable Function
52(localIArray): 51(ptr) Variable Function
71(x): 55(ptr) Variable Function
73(localArray): 38(ptr) Variable Function
78(i): 55(ptr) Variable Function
87(a): 38(ptr) Variable Function
21: 20(ptr) AccessChain 18(foo3) 19
22: 14(s2) Load 21
Store 12(locals2) 22
24: 23(ptr) AccessChain 18(foo3) 19 19
25: 6(int) Load 24
27: 26(bool) SGreaterThan 25 19
SelectionMerge 29 None
BranchConditional 27 28 57
28: Label
34: 33(ptr) AccessChain 12(locals2) 30 31
Store 34 32
46: 45(ptr) AccessChain 43(coord) 44
47: 7(float) Load 46
48: 33(ptr) AccessChain 39(localFArray) 40
Store 48 47
53: 23(ptr) AccessChain 18(foo3) 19 19
54: 6(int) Load 53
56: 55(ptr) AccessChain 52(localIArray) 30
Store 56 54
Branch 29
57: Label
58: 45(ptr) AccessChain 43(coord) 44
59: 7(float) Load 58
60: 33(ptr) AccessChain 12(locals2) 30 31
Store 60 59
61: 33(ptr) AccessChain 39(localFArray) 40
Store 61 32
62: 55(ptr) AccessChain 52(localIArray) 30
Store 62 19
Branch 29
29: Label
63: 55(ptr) AccessChain 52(localIArray) 30
64: 6(int) Load 63
65: 26(bool) IEqual 64 19
SelectionMerge 67 None
BranchConditional 65 66 67
66: Label
68: 33(ptr) AccessChain 39(localFArray) 40
69: 7(float) Load 68
70: 7(float) FAdd 69 32
Store 68 70
Branch 67
67: Label
Store 71(x) 72
74: 6(int) Load 71(x)
75: 45(ptr) AccessChain 43(coord) 44
76: 7(float) Load 75
77: 33(ptr) AccessChain 73(localArray) 74
Store 77 76
Store 78(i) 19
Branch 79
79: Label
88: 6(int) Load 75(i)
89: 6(int) IAdd 88 28
Store 75(i) 89
Branch 76
78: Label
91: 6(int) Load 90(condition)
92: 23(bool) IEqual 91 28
SelectionMerge 94 None
BranchConditional 92 93 94
93: Label
95: 34 Load 70(localArray)
Store 84(a) 95
Branch 94
94: Label
99: 9(fvec4) Load 98(color)
101: 100(ptr) AccessChain 12(locals2) 96
Store 101 99
103: 42(ptr) AccessChain 40(coord) 102
104: 7(float) Load 103
106: 30(ptr) AccessChain 12(locals2) 96 105
Store 106 104
109: 100(ptr) AccessChain 12(locals2) 96
110: 9(fvec4) Load 109
111: 30(ptr) AccessChain 36(localFArray) 37
112: 7(float) Load 111
113: 30(ptr) AccessChain 12(locals2) 27 28
114: 7(float) Load 113
115: 7(float) FAdd 112 114
116: 6(int) Load 68(x)
117: 30(ptr) AccessChain 70(localArray) 116
118: 7(float) Load 117
119: 7(float) FAdd 115 118
120: 6(int) Load 68(x)
121: 30(ptr) AccessChain 84(a) 120
122: 7(float) Load 121
123: 7(float) FAdd 119 122
124: 9(fvec4) VectorTimesScalar 110 123
129: 126 Load 128(samp2D)
130: 38(fvec2) Load 40(coord)
131: 9(fvec4) ImageSampleImplicitLod 129 130
132: 9(fvec4) FMul 124 131
Store 108(gl_FragColor) 132
LoopMerge 81 82 None
Branch 83
83: Label
84: 6(int) Load 78(i)
86: 26(bool) SLessThan 84 85
BranchConditional 86 80 81
80: Label
88: 6(int) Load 78(i)
90: 33(ptr) AccessChain 87(a) 88
Store 90 89
Branch 82
82: Label
91: 6(int) Load 78(i)
92: 6(int) IAdd 91 31
Store 78(i) 92
Branch 79
81: Label
94: 6(int) Load 93(condition)
95: 26(bool) IEqual 94 31
SelectionMerge 97 None
BranchConditional 95 96 97
96: Label
98: 37 Load 73(localArray)
Store 87(a) 98
Branch 97
97: Label
102: 9(fvec4) Load 101(color)
104: 103(ptr) AccessChain 12(locals2) 99
Store 104 102
106: 45(ptr) AccessChain 43(coord) 105
107: 7(float) Load 106
109: 33(ptr) AccessChain 12(locals2) 99 108
Store 109 107
112: 103(ptr) AccessChain 12(locals2) 99
113: 9(fvec4) Load 112
114: 33(ptr) AccessChain 39(localFArray) 40
115: 7(float) Load 114
116: 33(ptr) AccessChain 12(locals2) 30 31
117: 7(float) Load 116
118: 7(float) FAdd 115 117
119: 6(int) Load 71(x)
120: 33(ptr) AccessChain 73(localArray) 119
121: 7(float) Load 120
122: 7(float) FAdd 118 121
123: 6(int) Load 71(x)
124: 33(ptr) AccessChain 87(a) 123
125: 7(float) Load 124
126: 7(float) FAdd 122 125
127: 9(fvec4) VectorTimesScalar 113 126
132: 129 Load 131(samp2D)
133: 41(fvec2) Load 43(coord)
134: 9(fvec4) ImageSampleImplicitLod 132 133
135: 9(fvec4) FMul 127 134
Store 111(gl_FragColor) 135
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -5,64 +5,36 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 188
// Id's are bound by 158
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 141
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 11 17 27 80 140 142 143 144 145 146 147 148 149 150 151 152 153 154 157
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 18 "bigColor4"
Name 28 "d4"
Name 81 "d13"
Name 141 "gl_FragColor"
Name 143 "bigColor"
Name 144 "bigColor1_1"
Name 145 "bigColor1_2"
Name 146 "bigColor1_3"
Name 147 "bigColor2"
Name 148 "bigColor3"
Name 149 "bigColor5"
Name 150 "bigColor6"
Name 151 "bigColor7"
Name 152 "bigColor8"
Name 153 "d"
Name 154 "d2"
Name 155 "d3"
Name 156 "d5"
Name 157 "d6"
Name 158 "d7"
Name 159 "d8"
Name 160 "d9"
Name 161 "d10"
Name 162 "d11"
Name 163 "d12"
Name 164 "d14"
Name 165 "d15"
Name 166 "d16"
Name 167 "d17"
Name 168 "d18"
Name 169 "d19"
Name 170 "d20"
Name 171 "d21"
Name 172 "d22"
Name 173 "d23"
Name 174 "d24"
Name 175 "d25"
Name 176 "d26"
Name 177 "d27"
Name 178 "d28"
Name 179 "d29"
Name 180 "d30"
Name 181 "d31"
Name 182 "d32"
Name 183 "d33"
Name 184 "d34"
Name 187 "Count"
Name 17 "bigColor4"
Name 27 "d4"
Name 80 "d13"
Name 140 "gl_FragColor"
Name 142 "bigColor"
Name 143 "bigColor1_1"
Name 144 "bigColor1_2"
Name 145 "bigColor1_3"
Name 146 "bigColor2"
Name 147 "bigColor3"
Name 148 "bigColor5"
Name 149 "bigColor6"
Name 150 "bigColor7"
Name 151 "bigColor8"
Name 152 "d"
Name 153 "d2"
Name 154 "d3"
Name 157 "Count"
Decorate 157(Count) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -70,67 +42,37 @@ Linked fragment stage:
8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4)
11(BaseColor): 10(ptr) Variable Input
17: TypePointer UniformConstant 7(fvec4)
18(bigColor4): 17(ptr) Variable UniformConstant
22: TypeInt 32 0
23: 22(int) Constant 0
24: TypePointer Function 6(float)
27: TypePointer UniformConstant 6(float)
28(d4): 27(ptr) Variable UniformConstant
30: TypeBool
34: 6(float) Constant 1073741824
35: 22(int) Constant 2
48: 6(float) Constant 1065353216
51: 22(int) Constant 1
78: 22(int) Constant 3
81(d13): 27(ptr) Variable UniformConstant
140: TypePointer Output 7(fvec4)
141(gl_FragColor): 140(ptr) Variable Output
143(bigColor): 17(ptr) Variable UniformConstant
144(bigColor1_1): 17(ptr) Variable UniformConstant
145(bigColor1_2): 17(ptr) Variable UniformConstant
146(bigColor1_3): 17(ptr) Variable UniformConstant
147(bigColor2): 17(ptr) Variable UniformConstant
148(bigColor3): 17(ptr) Variable UniformConstant
149(bigColor5): 17(ptr) Variable UniformConstant
150(bigColor6): 17(ptr) Variable UniformConstant
151(bigColor7): 17(ptr) Variable UniformConstant
152(bigColor8): 17(ptr) Variable UniformConstant
153(d): 27(ptr) Variable UniformConstant
154(d2): 27(ptr) Variable UniformConstant
155(d3): 27(ptr) Variable UniformConstant
156(d5): 27(ptr) Variable UniformConstant
157(d6): 27(ptr) Variable UniformConstant
158(d7): 27(ptr) Variable UniformConstant
159(d8): 27(ptr) Variable UniformConstant
160(d9): 27(ptr) Variable UniformConstant
161(d10): 27(ptr) Variable UniformConstant
162(d11): 27(ptr) Variable UniformConstant
163(d12): 27(ptr) Variable UniformConstant
164(d14): 27(ptr) Variable UniformConstant
165(d15): 27(ptr) Variable UniformConstant
166(d16): 27(ptr) Variable UniformConstant
167(d17): 27(ptr) Variable UniformConstant
168(d18): 27(ptr) Variable UniformConstant
169(d19): 27(ptr) Variable UniformConstant
170(d20): 27(ptr) Variable UniformConstant
171(d21): 27(ptr) Variable UniformConstant
172(d22): 27(ptr) Variable UniformConstant
173(d23): 27(ptr) Variable UniformConstant
174(d24): 27(ptr) Variable UniformConstant
175(d25): 27(ptr) Variable UniformConstant
176(d26): 27(ptr) Variable UniformConstant
177(d27): 27(ptr) Variable UniformConstant
178(d28): 27(ptr) Variable UniformConstant
179(d29): 27(ptr) Variable UniformConstant
180(d30): 27(ptr) Variable UniformConstant
181(d31): 27(ptr) Variable UniformConstant
182(d32): 27(ptr) Variable UniformConstant
183(d33): 27(ptr) Variable UniformConstant
184(d34): 27(ptr) Variable UniformConstant
185: TypeInt 32 1
186: TypePointer UniformConstant 185(int)
187(Count): 186(ptr) Variable UniformConstant
17(bigColor4): 10(ptr) Variable Input
21: TypeInt 32 0
22: 21(int) Constant 0
23: TypePointer Function 6(float)
26: TypePointer Input 6(float)
27(d4): 26(ptr) Variable Input
29: TypeBool
33: 6(float) Constant 1073741824
34: 21(int) Constant 2
47: 6(float) Constant 1065353216
50: 21(int) Constant 1
77: 21(int) Constant 3
80(d13): 26(ptr) Variable Input
139: TypePointer Output 7(fvec4)
140(gl_FragColor): 139(ptr) Variable Output
142(bigColor): 10(ptr) Variable Input
143(bigColor1_1): 10(ptr) Variable Input
144(bigColor1_2): 10(ptr) Variable Input
145(bigColor1_3): 10(ptr) Variable Input
146(bigColor2): 10(ptr) Variable Input
147(bigColor3): 10(ptr) Variable Input
148(bigColor5): 10(ptr) Variable Input
149(bigColor6): 10(ptr) Variable Input
150(bigColor7): 10(ptr) Variable Input
151(bigColor8): 10(ptr) Variable Input
152(d): 26(ptr) Variable Input
153(d2): 26(ptr) Variable Input
154(d3): 26(ptr) Variable Input
155: TypeInt 32 1
156: TypePointer Input 155(int)
157(Count): 156(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
@ -141,161 +83,161 @@ Linked fragment stage:
LoopMerge 15 16 None
Branch 14
14: Label
19: 7(fvec4) Load 18(bigColor4)
20: 7(fvec4) Load 9(color)
21: 7(fvec4) FAdd 20 19
Store 9(color) 21
25: 24(ptr) AccessChain 9(color) 23
26: 6(float) Load 25
29: 6(float) Load 28(d4)
31: 30(bool) FOrdLessThan 26 29
SelectionMerge 33 None
BranchConditional 31 32 33
32: Label
36: 24(ptr) AccessChain 9(color) 35
37: 6(float) Load 36
38: 6(float) FAdd 37 34
39: 24(ptr) AccessChain 9(color) 35
Store 39 38
40: 24(ptr) AccessChain 9(color) 35
41: 6(float) Load 40
42: 6(float) Load 28(d4)
43: 30(bool) FOrdLessThan 41 42
SelectionMerge 45 None
BranchConditional 43 44 45
44: Label
46: 24(ptr) AccessChain 9(color) 23
47: 6(float) Load 46
49: 6(float) FAdd 47 48
Store 46 49
18: 7(fvec4) Load 17(bigColor4)
19: 7(fvec4) Load 9(color)
20: 7(fvec4) FAdd 19 18
Store 9(color) 20
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d4)
30: 29(bool) FOrdLessThan 25 28
SelectionMerge 32 None
BranchConditional 30 31 32
31: Label
35: 23(ptr) AccessChain 9(color) 34
36: 6(float) Load 35
37: 6(float) FAdd 36 33
38: 23(ptr) AccessChain 9(color) 34
Store 38 37
39: 23(ptr) AccessChain 9(color) 34
40: 6(float) Load 39
41: 6(float) Load 27(d4)
42: 29(bool) FOrdLessThan 40 41
SelectionMerge 44 None
BranchConditional 42 43 44
43: Label
45: 23(ptr) AccessChain 9(color) 22
46: 6(float) Load 45
48: 6(float) FAdd 46 47
Store 45 48
Branch 16
45: Label
Branch 33
33: Label
52: 24(ptr) AccessChain 9(color) 51
53: 6(float) Load 52
54: 6(float) Load 28(d4)
55: 30(bool) FOrdLessThan 53 54
SelectionMerge 57 None
BranchConditional 55 56 63
44: Label
Branch 32
32: Label
51: 23(ptr) AccessChain 9(color) 50
52: 6(float) Load 51
53: 6(float) Load 27(d4)
54: 29(bool) FOrdLessThan 52 53
SelectionMerge 56 None
BranchConditional 54 55 62
55: Label
57: 6(float) Load 27(d4)
58: 23(ptr) AccessChain 9(color) 50
59: 6(float) Load 58
60: 6(float) FAdd 59 57
61: 23(ptr) AccessChain 9(color) 50
Store 61 60
Branch 56
62: Label
63: 6(float) Load 27(d4)
64: 23(ptr) AccessChain 9(color) 22
65: 6(float) Load 64
66: 6(float) FAdd 65 63
67: 23(ptr) AccessChain 9(color) 22
Store 67 66
Branch 56
56: Label
58: 6(float) Load 28(d4)
59: 24(ptr) AccessChain 9(color) 51
60: 6(float) Load 59
61: 6(float) FAdd 60 58
62: 24(ptr) AccessChain 9(color) 51
Store 62 61
Branch 57
63: Label
64: 6(float) Load 28(d4)
65: 24(ptr) AccessChain 9(color) 23
66: 6(float) Load 65
67: 6(float) FAdd 66 64
68: 24(ptr) AccessChain 9(color) 23
Store 68 67
Branch 57
57: Label
Branch 16
16: Label
69: 24(ptr) AccessChain 9(color) 35
70: 6(float) Load 69
71: 6(float) Load 28(d4)
72: 30(bool) FOrdLessThan 70 71
BranchConditional 72 13 15
68: 23(ptr) AccessChain 9(color) 34
69: 6(float) Load 68
70: 6(float) Load 27(d4)
71: 29(bool) FOrdLessThan 69 70
BranchConditional 71 13 15
15: Label
Branch 73
73: Label
LoopMerge 75 76 None
Branch 77
77: Label
79: 24(ptr) AccessChain 9(color) 78
80: 6(float) Load 79
82: 6(float) Load 81(d13)
83: 30(bool) FOrdLessThan 80 82
BranchConditional 83 74 75
74: Label
84: 24(ptr) AccessChain 9(color) 35
85: 6(float) Load 84
86: 6(float) Load 81(d13)
87: 30(bool) FOrdLessThan 85 86
SelectionMerge 89 None
BranchConditional 87 88 93
88: Label
90: 7(fvec4) Load 9(color)
91: 7(fvec4) CompositeConstruct 48 48 48 48
92: 7(fvec4) FAdd 90 91
Store 9(color) 92
Branch 89
93: Label
94: 7(fvec4) Load 9(color)
95: 7(fvec4) CompositeConstruct 48 48 48 48
96: 7(fvec4) FSub 94 95
Store 9(color) 96
Branch 89
89: Label
97: 7(fvec4) Load 18(bigColor4)
98: 7(fvec4) Load 9(color)
99: 7(fvec4) FAdd 98 97
Store 9(color) 99
100: 24(ptr) AccessChain 9(color) 23
101: 6(float) Load 100
102: 6(float) Load 28(d4)
103: 30(bool) FOrdLessThan 101 102
SelectionMerge 105 None
BranchConditional 103 104 105
104: Label
106: 24(ptr) AccessChain 9(color) 35
107: 6(float) Load 106
108: 6(float) FAdd 107 34
109: 24(ptr) AccessChain 9(color) 35
Store 109 108
110: 24(ptr) AccessChain 9(color) 35
111: 6(float) Load 110
112: 6(float) Load 28(d4)
113: 30(bool) FOrdLessThan 111 112
SelectionMerge 115 None
BranchConditional 113 114 115
114: Label
116: 24(ptr) AccessChain 9(color) 23
117: 6(float) Load 116
118: 6(float) FAdd 117 48
Store 116 118
Branch 76
115: Label
Branch 105
105: Label
120: 24(ptr) AccessChain 9(color) 51
121: 6(float) Load 120
122: 6(float) Load 28(d4)
123: 30(bool) FOrdLessThan 121 122
SelectionMerge 125 None
BranchConditional 123 124 131
124: Label
126: 6(float) Load 28(d4)
127: 24(ptr) AccessChain 9(color) 51
128: 6(float) Load 127
129: 6(float) FAdd 128 126
130: 24(ptr) AccessChain 9(color) 51
Store 130 129
Branch 125
131: Label
132: 6(float) Load 28(d4)
133: 24(ptr) AccessChain 9(color) 23
134: 6(float) Load 133
135: 6(float) FAdd 134 132
136: 24(ptr) AccessChain 9(color) 23
Store 136 135
Branch 125
125: Label
Branch 72
72: Label
LoopMerge 74 75 None
Branch 76
76: Label
Branch 73
78: 23(ptr) AccessChain 9(color) 77
79: 6(float) Load 78
81: 6(float) Load 80(d13)
82: 29(bool) FOrdLessThan 79 81
BranchConditional 82 73 74
73: Label
83: 23(ptr) AccessChain 9(color) 34
84: 6(float) Load 83
85: 6(float) Load 80(d13)
86: 29(bool) FOrdLessThan 84 85
SelectionMerge 88 None
BranchConditional 86 87 92
87: Label
89: 7(fvec4) Load 9(color)
90: 7(fvec4) CompositeConstruct 47 47 47 47
91: 7(fvec4) FAdd 89 90
Store 9(color) 91
Branch 88
92: Label
93: 7(fvec4) Load 9(color)
94: 7(fvec4) CompositeConstruct 47 47 47 47
95: 7(fvec4) FSub 93 94
Store 9(color) 95
Branch 88
88: Label
96: 7(fvec4) Load 17(bigColor4)
97: 7(fvec4) Load 9(color)
98: 7(fvec4) FAdd 97 96
Store 9(color) 98
99: 23(ptr) AccessChain 9(color) 22
100: 6(float) Load 99
101: 6(float) Load 27(d4)
102: 29(bool) FOrdLessThan 100 101
SelectionMerge 104 None
BranchConditional 102 103 104
103: Label
105: 23(ptr) AccessChain 9(color) 34
106: 6(float) Load 105
107: 6(float) FAdd 106 33
108: 23(ptr) AccessChain 9(color) 34
Store 108 107
109: 23(ptr) AccessChain 9(color) 34
110: 6(float) Load 109
111: 6(float) Load 27(d4)
112: 29(bool) FOrdLessThan 110 111
SelectionMerge 114 None
BranchConditional 112 113 114
113: Label
115: 23(ptr) AccessChain 9(color) 22
116: 6(float) Load 115
117: 6(float) FAdd 116 47
Store 115 117
Branch 75
114: Label
Branch 104
104: Label
119: 23(ptr) AccessChain 9(color) 50
120: 6(float) Load 119
121: 6(float) Load 27(d4)
122: 29(bool) FOrdLessThan 120 121
SelectionMerge 124 None
BranchConditional 122 123 130
123: Label
125: 6(float) Load 27(d4)
126: 23(ptr) AccessChain 9(color) 50
127: 6(float) Load 126
128: 6(float) FAdd 127 125
129: 23(ptr) AccessChain 9(color) 50
Store 129 128
Branch 124
130: Label
131: 6(float) Load 27(d4)
132: 23(ptr) AccessChain 9(color) 22
133: 6(float) Load 132
134: 6(float) FAdd 133 131
135: 23(ptr) AccessChain 9(color) 22
Store 135 134
Branch 124
124: Label
Branch 75
75: Label
137: 7(fvec4) Load 9(color)
138: 7(fvec4) CompositeConstruct 48 48 48 48
139: 7(fvec4) FAdd 137 138
Store 9(color) 139
142: 7(fvec4) Load 9(color)
Store 141(gl_FragColor) 142
Branch 72
74: Label
136: 7(fvec4) Load 9(color)
137: 7(fvec4) CompositeConstruct 47 47 47 47
138: 7(fvec4) FAdd 136 137
Store 9(color) 138
141: 7(fvec4) Load 9(color)
Store 140(gl_FragColor) 141
Return
FunctionEnd

View File

@ -1,17 +1,20 @@
spv.matFun.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 97
// Id's are bound by 103
Capability Shader
Capability ClipDistance
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 72 76 95 96
Source GLSL 140
EntryPoint Vertex 4 "main" 76 81
Source GLSL 400
Name 4 "main"
Name 14 "xf(mf33;vf3;"
Name 12 "m"
@ -22,19 +25,32 @@ Linked vertex stage:
Name 24 "m4"
Name 25 "v"
Name 65 "param"
Name 72 "gl_Position"
Name 74 "m4"
Name 76 "v3"
Name 77 "param"
Name 79 "param"
Name 83 "m3"
Name 84 "param"
Name 74 "gl_PerVertex"
MemberName 74(gl_PerVertex) 0 "gl_Position"
MemberName 74(gl_PerVertex) 1 "gl_PointSize"
MemberName 74(gl_PerVertex) 2 "gl_ClipDistance"
Name 76 ""
Name 77 "bl"
MemberName 77(bl) 0 "m4"
MemberName 77(bl) 1 "m3"
Name 79 "bName"
Name 81 "v3"
Name 82 "param"
Name 86 "param"
Name 95 "gl_VertexID"
Name 96 "gl_InstanceID"
Decorate 72(gl_Position) BuiltIn Position
Decorate 95(gl_VertexID) BuiltIn VertexId
Decorate 96(gl_InstanceID) BuiltIn InstanceId
Name 89 "param"
Name 93 "param"
MemberDecorate 74(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 74(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 74(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 74(gl_PerVertex) Block
MemberDecorate 77(bl) 0 ColMajor
MemberDecorate 77(bl) 0 Offset 0
MemberDecorate 77(bl) 0 MatrixStride 16
MemberDecorate 77(bl) 1 ColMajor
MemberDecorate 77(bl) 1 Offset 64
MemberDecorate 77(bl) 1 MatrixStride 16
Decorate 77(bl) Block
Decorate 79(bName) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -55,39 +71,45 @@ Linked vertex stage:
43: 33(int) Constant 2
47: 6(float) Constant 1065353216
48: 6(float) Constant 0
71: TypePointer Output 16(fvec4)
72(gl_Position): 71(ptr) Variable Output
73: TypePointer UniformConstant 17
74(m4): 73(ptr) Variable UniformConstant
75: TypePointer Input 7(fvec3)
76(v3): 75(ptr) Variable Input
82: TypePointer UniformConstant 8
83(m3): 82(ptr) Variable UniformConstant
94: TypePointer Input 33(int)
95(gl_VertexID): 94(ptr) Variable Input
96(gl_InstanceID): 94(ptr) Variable Input
71: TypeInt 32 0
72: 71(int) Constant 1
73: TypeArray 6(float) 72
74(gl_PerVertex): TypeStruct 16(fvec4) 6(float) 73
75: TypePointer Output 74(gl_PerVertex)
76: 75(ptr) Variable Output
77(bl): TypeStruct 17 8
78: TypePointer Uniform 77(bl)
79(bName): 78(ptr) Variable Uniform
80: TypePointer Input 7(fvec3)
81(v3): 80(ptr) Variable Input
83: TypePointer Uniform 17
90: TypePointer Uniform 8
101: TypePointer Output 16(fvec4)
4(main): 2 Function None 3
5: Label
77(param): 18(ptr) Variable Function
79(param): 10(ptr) Variable Function
84(param): 9(ptr) Variable Function
82(param): 18(ptr) Variable Function
86(param): 10(ptr) Variable Function
78: 17 Load 74(m4)
Store 77(param) 78
80: 7(fvec3) Load 76(v3)
Store 79(param) 80
81: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 77(param) 79(param)
85: 8 Load 83(m3)
Store 84(param) 85
87: 7(fvec3) Load 76(v3)
89(param): 9(ptr) Variable Function
93(param): 10(ptr) Variable Function
84: 83(ptr) AccessChain 79(bName) 34
85: 17 Load 84
Store 82(param) 85
87: 7(fvec3) Load 81(v3)
Store 86(param) 87
88: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 84(param) 86(param)
89: 7(fvec3) FAdd 81 88
90: 6(float) CompositeExtract 89 0
91: 6(float) CompositeExtract 89 1
92: 6(float) CompositeExtract 89 2
93: 16(fvec4) CompositeConstruct 90 91 92 47
Store 72(gl_Position) 93
88: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 82(param) 86(param)
91: 90(ptr) AccessChain 79(bName) 39
92: 8 Load 91
Store 89(param) 92
94: 7(fvec3) Load 81(v3)
Store 93(param) 94
95: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 89(param) 93(param)
96: 7(fvec3) FAdd 88 95
97: 6(float) CompositeExtract 96 0
98: 6(float) CompositeExtract 96 1
99: 6(float) CompositeExtract 96 2
100: 16(fvec4) CompositeConstruct 97 98 99 47
102: 101(ptr) AccessChain 76 34
Store 102 100
Return
FunctionEnd
14(xf(mf33;vf3;): 7(fvec3) Function None 11

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 14 28 140 148 166
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 10 "sum34"

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 16 37 38 65 87 147 158 181 218 219 220
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 150
Name 4 "main"
Name 10 "m34"

View File

@ -13,7 +13,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 9
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "v"

View File

@ -16,7 +16,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 430
Name 4 "main"
Name 9 "v"
@ -49,9 +49,27 @@ Linked fragment stage:
Name 271 "usCube"
Name 275 "us2DArray"
Name 277 "ic4D"
Decorate 13(s2D) DescriptorSet 0
Decorate 23(sCubeArrayShadow) DescriptorSet 0
Decorate 42(s3D) DescriptorSet 0
Decorate 51(s2DArray) DescriptorSet 0
Decorate 64(s2DShadow) DescriptorSet 0
Decorate 81(ic3D) Flat
Decorate 84(ic1D) Flat
Decorate 91(ic2D) Flat
Decorate 100(sr) DescriptorSet 0
Decorate 125(sCube) DescriptorSet 0
Decorate 136(s2DArrayShadow) DescriptorSet 0
Decorate 168(is2D) DescriptorSet 0
Decorate 203(is3D) DescriptorSet 0
Decorate 215(isCube) DescriptorSet 0
Decorate 227(is2DArray) DescriptorSet 0
Decorate 241(sCubeShadow) DescriptorSet 0
Decorate 259(is2Dms) DescriptorSet 0
Decorate 263(us2D) DescriptorSet 0
Decorate 267(us3D) DescriptorSet 0
Decorate 271(usCube) DescriptorSet 0
Decorate 275(us2DArray) DescriptorSet 0
Decorate 277(ic4D) Flat
2: TypeVoid
3: TypeFunction 2

View File

@ -1,19 +1,16 @@
spv.nonSquare.vert
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
WARNING: 0:4: attribute deprecated in version 130; may be removed in future release
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 94
// Id's are bound by 90
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 12 28 55 92 93
EntryPoint Vertex 4 "main" 12 22 28 55
Source GLSL 140
Name 4 "main"
Name 9 "a"
@ -23,11 +20,7 @@ Linked vertex stage:
Name 22 "m32"
Name 28 "gl_Position"
Name 55 "v4"
Name 92 "gl_VertexID"
Name 93 "gl_InstanceID"
Decorate 28(gl_Position) BuiltIn Position
Decorate 92(gl_VertexID) BuiltIn VertexId
Decorate 93(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -39,8 +32,8 @@ Linked vertex stage:
14: TypeMatrix 10(fvec3) 2
15: TypePointer Function 14
20: TypeMatrix 7(fvec2) 3
21: TypePointer UniformConstant 20
22(m32): 21(ptr) Variable UniformConstant
21: TypePointer Output 20
22(m32): 21(ptr) Variable Output
26: TypeVector 6(float) 4
27: TypePointer Output 26(fvec4)
28(gl_Position): 27(ptr) Variable Output
@ -90,10 +83,6 @@ Linked vertex stage:
87: 6(float) Constant 1090519040
88: 7(fvec2) ConstantComposite 86 87
89: 79 ConstantComposite 82 84 85 88
90: TypeInt 32 1
91: TypePointer Input 90(int)
92(gl_VertexID): 91(ptr) Variable Input
93(gl_InstanceID): 91(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(a): 8(ptr) Variable Function

View File

@ -13,7 +13,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 23 59 61 73 116
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source ESSL 310
Name 4 "main"
Name 12 "foo(vf3;"
@ -106,10 +106,10 @@ Linked fragment stage:
31: 15(bvec2) ConstantComposite 29 30
36: TypeInt 32 1
37: TypePointer Function 36(int)
39: TypePointer UniformConstant 36(int)
40(uniform_medium): 39(ptr) Variable UniformConstant
42(uniform_high): 39(ptr) Variable UniformConstant
48(uniform_low): 39(ptr) Variable UniformConstant
39: TypePointer Private 36(int)
40(uniform_medium): 39(ptr) Variable Private
42(uniform_high): 39(ptr) Variable Private
48(uniform_low): 39(ptr) Variable Private
52: TypePointer Function 6(float)
54: 6(float) Constant 1078774989
56: 6(float) Constant 1232730691
@ -125,8 +125,8 @@ Linked fragment stage:
84: TypeVector 36(int) 2
92: TypeInt 32 0
93: 92(int) Constant 0
103: TypePointer UniformConstant 15(bvec2)
104(ub2): 103(ptr) Variable UniformConstant
103: TypePointer Private 15(bvec2)
104(ub2): 103(ptr) Variable Private
111: 6(float) Constant 1065353216
114(S): TypeStruct 6(float) 6(float)
115: TypePointer Input 114(S)

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 90
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "index"

View File

@ -0,0 +1,68 @@
spv.pushConstant.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 35
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 24
Source GLSL 400
Name 4 "main"
Name 11 "Material"
MemberName 11(Material) 0 "kind"
MemberName 11(Material) 1 "fa"
Name 13 "matInst"
Name 24 "color"
Decorate 10 ArrayStride 4
MemberDecorate 11(Material) 0 Offset 0
MemberDecorate 11(Material) 1 Offset 4
Decorate 11(Material) Block
Decorate 13(matInst) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeFloat 32
8: TypeInt 32 0
9: 8(int) Constant 3
10: TypeArray 7(float) 9
11(Material): TypeStruct 6(int) 10
12: TypePointer PushConstant 11(Material)
13(matInst): 12(ptr) Variable PushConstant
14: 6(int) Constant 0
15: TypePointer PushConstant 6(int)
22: TypeVector 7(float) 4
23: TypePointer Output 22(fvec4)
24(color): 23(ptr) Variable Output
25: 7(float) Constant 1045220557
26: 22(fvec4) ConstantComposite 25 25 25 25
28: 7(float) Constant 1056964608
29: 22(fvec4) ConstantComposite 28 28 28 28
31: 7(float) Constant 0
32: 22(fvec4) ConstantComposite 31 31 31 31
4(main): 2 Function None 3
5: Label
16: 15(ptr) AccessChain 13(matInst) 14
17: 6(int) Load 16
SelectionMerge 21 None
Switch 17 20
case 1: 18
case 2: 19
20: Label
Store 24(color) 32
Branch 21
18: Label
Store 24(color) 26
Branch 21
19: Label
Store 24(color) 29
Branch 21
21: Label
Return
FunctionEnd

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
// Id's are bound by 21
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 11 13 15 17 19 23 24
EntryPoint Vertex 4 "main" 9 11 13 15 17 19
Source GLSL 430
Name 4 "main"
Name 9 "outVc"
@ -21,13 +21,9 @@ Linked vertex stage:
Name 15 "outVf"
Name 17 "outVn"
Name 19 "outVcn"
Name 23 "gl_VertexID"
Name 24 "gl_InstanceID"
Decorate 15(outVf) Flat
Decorate 17(outVn) NoPerspective
Decorate 19(outVcn) NoPerspective
Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 24(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -40,10 +36,6 @@ Linked vertex stage:
15(outVf): 8(ptr) Variable Output
17(outVn): 8(ptr) Variable Output
19(outVcn): 8(ptr) Variable Output
21: TypeInt 32 1
22: TypePointer Input 21(int)
23(gl_VertexID): 22(ptr) Variable Input
24(gl_InstanceID): 22(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(inV)

View File

@ -18,7 +18,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 430
Name 4 "main"
Name 9 "lod"
@ -46,6 +46,26 @@ Linked fragment stage:
Name 195 "usampCubeA"
Name 232 "sampBuf"
Name 236 "sampRect"
Decorate 13(samp1D) DescriptorSet 0
Decorate 24(isamp2D) DescriptorSet 0
Decorate 36(usamp3D) DescriptorSet 0
Decorate 49(sampCube) DescriptorSet 0
Decorate 59(isamp1DA) DescriptorSet 0
Decorate 69(usamp2DA) DescriptorSet 0
Decorate 79(isampCubeA) DescriptorSet 0
Decorate 89(samp1Ds) DescriptorSet 0
Decorate 99(samp2Ds) DescriptorSet 0
Decorate 109(sampCubes) DescriptorSet 0
Decorate 119(samp1DAs) DescriptorSet 0
Decorate 129(samp2DAs) DescriptorSet 0
Decorate 139(sampCubeAs) DescriptorSet 0
Decorate 154(usamp2D) DescriptorSet 0
Decorate 163(isamp3D) DescriptorSet 0
Decorate 172(isampCube) DescriptorSet 0
Decorate 186(samp2DA) DescriptorSet 0
Decorate 195(usampCubeA) DescriptorSet 0
Decorate 232(sampBuf) DescriptorSet 0
Decorate 236(sampRect) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32

View File

@ -0,0 +1,427 @@
spv.separate.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 319
Capability Shader
Capability SampledRect
Capability Sampled1D
Capability SampledCubeArray
Capability SampledBuffer
Capability ImageMSArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 34
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 6 "foo("
Name 11 "color"
Name 14 "t2d"
Name 18 "s"
Name 31 "t3d"
Name 34 "i"
Name 41 "sA"
Name 58 "tex2D"
Name 64 "texCube"
Name 71 "texCubeArray"
Name 77 "sShadow"
Name 84 "itexCubeArray"
Name 91 "utexCubeArray"
Name 98 "tex1DArray"
Name 106 "itex1DArray"
Name 113 "utex1D"
Name 120 "itex1D"
Name 127 "utex1DArray"
Name 134 "texBuffer"
Name 146 "tex2DArray"
Name 158 "itex2D"
Name 165 "itex3D"
Name 172 "itexCube"
Name 179 "itex2DArray"
Name 186 "utex2D"
Name 193 "utex3D"
Name 200 "utexCube"
Name 207 "utex2DArray"
Name 214 "itex2DRect"
Name 221 "utex2DRect"
Name 228 "itexBuffer"
Name 235 "utexBuffer"
Name 242 "tex2DMS"
Name 249 "itex2DMS"
Name 256 "utex2DMS"
Name 263 "tex2DMSArray"
Name 270 "itex2DMSArray"
Name 277 "utex2DMSArray"
Name 284 "tex1D"
Name 294 "tex3D"
Name 305 "tex2DRect"
Decorate 14(t2d) DescriptorSet 0
Decorate 18(s) DescriptorSet 0
Decorate 31(t3d) DescriptorSet 0
Decorate 34(i) Flat
Decorate 41(sA) DescriptorSet 0
Decorate 58(tex2D) DescriptorSet 0
Decorate 64(texCube) DescriptorSet 0
Decorate 71(texCubeArray) DescriptorSet 0
Decorate 77(sShadow) DescriptorSet 0
Decorate 84(itexCubeArray) DescriptorSet 0
Decorate 91(utexCubeArray) DescriptorSet 0
Decorate 98(tex1DArray) DescriptorSet 0
Decorate 106(itex1DArray) DescriptorSet 0
Decorate 113(utex1D) DescriptorSet 0
Decorate 120(itex1D) DescriptorSet 0
Decorate 127(utex1DArray) DescriptorSet 0
Decorate 134(texBuffer) DescriptorSet 0
Decorate 146(tex2DArray) DescriptorSet 0
Decorate 158(itex2D) DescriptorSet 0
Decorate 165(itex3D) DescriptorSet 0
Decorate 172(itexCube) DescriptorSet 0
Decorate 179(itex2DArray) DescriptorSet 0
Decorate 186(utex2D) DescriptorSet 0
Decorate 193(utex3D) DescriptorSet 0
Decorate 200(utexCube) DescriptorSet 0
Decorate 207(utex2DArray) DescriptorSet 0
Decorate 214(itex2DRect) DescriptorSet 0
Decorate 221(utex2DRect) DescriptorSet 0
Decorate 228(itexBuffer) DescriptorSet 0
Decorate 235(utexBuffer) DescriptorSet 0
Decorate 242(tex2DMS) DescriptorSet 0
Decorate 249(itex2DMS) DescriptorSet 0
Decorate 256(utex2DMS) DescriptorSet 0
Decorate 263(tex2DMSArray) DescriptorSet 0
Decorate 270(itex2DMSArray) DescriptorSet 0
Decorate 277(utex2DMSArray) DescriptorSet 0
Decorate 284(tex1D) DescriptorSet 0
Decorate 294(tex3D) DescriptorSet 0
Decorate 305(tex2DRect) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
9: TypeVector 8(float) 4
10: TypePointer Output 9(fvec4)
11(color): 10(ptr) Variable Output
12: TypeImage 8(float) 2D sampled format:Unknown
13: TypePointer UniformConstant 12
14(t2d): 13(ptr) Variable UniformConstant
16: TypeSampler
17: TypePointer UniformConstant 16
18(s): 17(ptr) Variable UniformConstant
20: TypeSampledImage 12
22: TypeVector 8(float) 2
23: 8(float) Constant 1056964608
24: 22(fvec2) ConstantComposite 23 23
26: TypeImage 8(float) 3D sampled format:Unknown
27: TypeInt 32 0
28: 27(int) Constant 4
29: TypeArray 26 28
30: TypePointer UniformConstant 29
31(t3d): 30(ptr) Variable UniformConstant
32: TypeInt 32 1
33: TypePointer Input 32(int)
34(i): 33(ptr) Variable Input
36: TypePointer UniformConstant 26
39: TypeArray 16 28
40: TypePointer UniformConstant 39
41(sA): 40(ptr) Variable UniformConstant
42: 32(int) Constant 2
45: TypeSampledImage 26
47: TypeVector 8(float) 3
48: 47(fvec3) ConstantComposite 23 23 23
58(tex2D): 13(ptr) Variable UniformConstant
62: TypeImage 8(float) Cube sampled format:Unknown
63: TypePointer UniformConstant 62
64(texCube): 63(ptr) Variable UniformConstant
67: TypeSampledImage 62
69: TypeImage 8(float) Cube array sampled format:Unknown
70: TypePointer UniformConstant 69
71(texCubeArray): 70(ptr) Variable UniformConstant
74: TypeSampledImage 69
77(sShadow): 17(ptr) Variable UniformConstant
79: TypeImage 8(float) Cube depth array sampled format:Unknown
80: TypeSampledImage 79
82: TypeImage 32(int) Cube array sampled format:Unknown
83: TypePointer UniformConstant 82
84(itexCubeArray): 83(ptr) Variable UniformConstant
87: TypeSampledImage 82
89: TypeImage 27(int) Cube array sampled format:Unknown
90: TypePointer UniformConstant 89
91(utexCubeArray): 90(ptr) Variable UniformConstant
94: TypeSampledImage 89
96: TypeImage 8(float) 1D array sampled format:Unknown
97: TypePointer UniformConstant 96
98(tex1DArray): 97(ptr) Variable UniformConstant
101: TypeImage 8(float) 1D depth array sampled format:Unknown
102: TypeSampledImage 101
104: TypeImage 32(int) 1D array sampled format:Unknown
105: TypePointer UniformConstant 104
106(itex1DArray): 105(ptr) Variable UniformConstant
109: TypeSampledImage 104
111: TypeImage 27(int) 1D sampled format:Unknown
112: TypePointer UniformConstant 111
113(utex1D): 112(ptr) Variable UniformConstant
116: TypeSampledImage 111
118: TypeImage 32(int) 1D sampled format:Unknown
119: TypePointer UniformConstant 118
120(itex1D): 119(ptr) Variable UniformConstant
123: TypeSampledImage 118
125: TypeImage 27(int) 1D array sampled format:Unknown
126: TypePointer UniformConstant 125
127(utex1DArray): 126(ptr) Variable UniformConstant
130: TypeSampledImage 125
132: TypeImage 8(float) Buffer sampled format:Unknown
133: TypePointer UniformConstant 132
134(texBuffer): 133(ptr) Variable UniformConstant
137: TypeSampledImage 132
141: TypeImage 8(float) Cube depth sampled format:Unknown
142: TypeSampledImage 141
144: TypeImage 8(float) 2D array sampled format:Unknown
145: TypePointer UniformConstant 144
146(tex2DArray): 145(ptr) Variable UniformConstant
149: TypeSampledImage 144
153: TypeImage 8(float) 2D depth array sampled format:Unknown
154: TypeSampledImage 153
156: TypeImage 32(int) 2D sampled format:Unknown
157: TypePointer UniformConstant 156
158(itex2D): 157(ptr) Variable UniformConstant
161: TypeSampledImage 156
163: TypeImage 32(int) 3D sampled format:Unknown
164: TypePointer UniformConstant 163
165(itex3D): 164(ptr) Variable UniformConstant
168: TypeSampledImage 163
170: TypeImage 32(int) Cube sampled format:Unknown
171: TypePointer UniformConstant 170
172(itexCube): 171(ptr) Variable UniformConstant
175: TypeSampledImage 170
177: TypeImage 32(int) 2D array sampled format:Unknown
178: TypePointer UniformConstant 177
179(itex2DArray): 178(ptr) Variable UniformConstant
182: TypeSampledImage 177
184: TypeImage 27(int) 2D sampled format:Unknown
185: TypePointer UniformConstant 184
186(utex2D): 185(ptr) Variable UniformConstant
189: TypeSampledImage 184
191: TypeImage 27(int) 3D sampled format:Unknown
192: TypePointer UniformConstant 191
193(utex3D): 192(ptr) Variable UniformConstant
196: TypeSampledImage 191
198: TypeImage 27(int) Cube sampled format:Unknown
199: TypePointer UniformConstant 198
200(utexCube): 199(ptr) Variable UniformConstant
203: TypeSampledImage 198
205: TypeImage 27(int) 2D array sampled format:Unknown
206: TypePointer UniformConstant 205
207(utex2DArray): 206(ptr) Variable UniformConstant
210: TypeSampledImage 205
212: TypeImage 32(int) Rect sampled format:Unknown
213: TypePointer UniformConstant 212
214(itex2DRect): 213(ptr) Variable UniformConstant
217: TypeSampledImage 212
219: TypeImage 27(int) Rect sampled format:Unknown
220: TypePointer UniformConstant 219
221(utex2DRect): 220(ptr) Variable UniformConstant
224: TypeSampledImage 219
226: TypeImage 32(int) Buffer sampled format:Unknown
227: TypePointer UniformConstant 226
228(itexBuffer): 227(ptr) Variable UniformConstant
231: TypeSampledImage 226
233: TypeImage 27(int) Buffer sampled format:Unknown
234: TypePointer UniformConstant 233
235(utexBuffer): 234(ptr) Variable UniformConstant
238: TypeSampledImage 233
240: TypeImage 8(float) 2D multi-sampled sampled format:Unknown
241: TypePointer UniformConstant 240
242(tex2DMS): 241(ptr) Variable UniformConstant
245: TypeSampledImage 240
247: TypeImage 32(int) 2D multi-sampled sampled format:Unknown
248: TypePointer UniformConstant 247
249(itex2DMS): 248(ptr) Variable UniformConstant
252: TypeSampledImage 247
254: TypeImage 27(int) 2D multi-sampled sampled format:Unknown
255: TypePointer UniformConstant 254
256(utex2DMS): 255(ptr) Variable UniformConstant
259: TypeSampledImage 254
261: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown
262: TypePointer UniformConstant 261
263(tex2DMSArray): 262(ptr) Variable UniformConstant
266: TypeSampledImage 261
268: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown
269: TypePointer UniformConstant 268
270(itex2DMSArray): 269(ptr) Variable UniformConstant
273: TypeSampledImage 268
275: TypeImage 27(int) 2D array multi-sampled sampled format:Unknown
276: TypePointer UniformConstant 275
277(utex2DMSArray): 276(ptr) Variable UniformConstant
280: TypeSampledImage 275
282: TypeImage 8(float) 1D sampled format:Unknown
283: TypePointer UniformConstant 282
284(tex1D): 283(ptr) Variable UniformConstant
287: TypeSampledImage 282
291: TypeImage 8(float) 1D depth sampled format:Unknown
292: TypeSampledImage 291
294(tex3D): 36(ptr) Variable UniformConstant
300: TypeImage 8(float) 2D depth sampled format:Unknown
301: TypeSampledImage 300
303: TypeImage 8(float) Rect sampled format:Unknown
304: TypePointer UniformConstant 303
305(tex2DRect): 304(ptr) Variable UniformConstant
308: TypeSampledImage 303
312: TypeImage 8(float) Rect depth sampled format:Unknown
313: TypeSampledImage 312
317: TypeSampledImage 96
4(main): 2 Function None 3
5: Label
15: 12 Load 14(t2d)
19: 16 Load 18(s)
21: 20 SampledImage 15 19
25: 9(fvec4) ImageSampleImplicitLod 21 24
Store 11(color) 25
35: 32(int) Load 34(i)
37: 36(ptr) AccessChain 31(t3d) 35
38: 26 Load 37
43: 17(ptr) AccessChain 41(sA) 42
44: 16 Load 43
46: 45 SampledImage 38 44
49: 9(fvec4) ImageSampleImplicitLod 46 48
50: 9(fvec4) Load 11(color)
51: 9(fvec4) FAdd 50 49
Store 11(color) 51
52: 12 Load 14(t2d)
53: 16 Load 18(s)
54: 20 SampledImage 52 53
55: 9(fvec4) ImageSampleImplicitLod 54 24
56: 9(fvec4) Load 11(color)
57: 9(fvec4) FAdd 56 55
Store 11(color) 57
Return
FunctionEnd
6(foo(): 2 Function None 3
7: Label
59: 12 Load 58(tex2D)
60: 16 Load 18(s)
61: 20 SampledImage 59 60
65: 62 Load 64(texCube)
66: 16 Load 18(s)
68: 67 SampledImage 65 66
72: 69 Load 71(texCubeArray)
73: 16 Load 18(s)
75: 74 SampledImage 72 73
76: 69 Load 71(texCubeArray)
78: 16 Load 77(sShadow)
81: 80 SampledImage 76 78
85: 82 Load 84(itexCubeArray)
86: 16 Load 18(s)
88: 87 SampledImage 85 86
92: 89 Load 91(utexCubeArray)
93: 16 Load 18(s)
95: 94 SampledImage 92 93
99: 96 Load 98(tex1DArray)
100: 16 Load 77(sShadow)
103: 102 SampledImage 99 100
107: 104 Load 106(itex1DArray)
108: 16 Load 18(s)
110: 109 SampledImage 107 108
114: 111 Load 113(utex1D)
115: 16 Load 18(s)
117: 116 SampledImage 114 115
121: 118 Load 120(itex1D)
122: 16 Load 18(s)
124: 123 SampledImage 121 122
128: 125 Load 127(utex1DArray)
129: 16 Load 18(s)
131: 130 SampledImage 128 129
135: 132 Load 134(texBuffer)
136: 16 Load 18(s)
138: 137 SampledImage 135 136
139: 62 Load 64(texCube)
140: 16 Load 77(sShadow)
143: 142 SampledImage 139 140
147: 144 Load 146(tex2DArray)
148: 16 Load 18(s)
150: 149 SampledImage 147 148
151: 144 Load 146(tex2DArray)
152: 16 Load 77(sShadow)
155: 154 SampledImage 151 152
159: 156 Load 158(itex2D)
160: 16 Load 18(s)
162: 161 SampledImage 159 160
166: 163 Load 165(itex3D)
167: 16 Load 18(s)
169: 168 SampledImage 166 167
173: 170 Load 172(itexCube)
174: 16 Load 18(s)
176: 175 SampledImage 173 174
180: 177 Load 179(itex2DArray)
181: 16 Load 18(s)
183: 182 SampledImage 180 181
187: 184 Load 186(utex2D)
188: 16 Load 18(s)
190: 189 SampledImage 187 188
194: 191 Load 193(utex3D)
195: 16 Load 18(s)
197: 196 SampledImage 194 195
201: 198 Load 200(utexCube)
202: 16 Load 18(s)
204: 203 SampledImage 201 202
208: 205 Load 207(utex2DArray)
209: 16 Load 18(s)
211: 210 SampledImage 208 209
215: 212 Load 214(itex2DRect)
216: 16 Load 18(s)
218: 217 SampledImage 215 216
222: 219 Load 221(utex2DRect)
223: 16 Load 18(s)
225: 224 SampledImage 222 223
229: 226 Load 228(itexBuffer)
230: 16 Load 18(s)
232: 231 SampledImage 229 230
236: 233 Load 235(utexBuffer)
237: 16 Load 18(s)
239: 238 SampledImage 236 237
243: 240 Load 242(tex2DMS)
244: 16 Load 18(s)
246: 245 SampledImage 243 244
250: 247 Load 249(itex2DMS)
251: 16 Load 18(s)
253: 252 SampledImage 250 251
257: 254 Load 256(utex2DMS)
258: 16 Load 18(s)
260: 259 SampledImage 257 258
264: 261 Load 263(tex2DMSArray)
265: 16 Load 18(s)
267: 266 SampledImage 264 265
271: 268 Load 270(itex2DMSArray)
272: 16 Load 18(s)
274: 273 SampledImage 271 272
278: 275 Load 277(utex2DMSArray)
279: 16 Load 18(s)
281: 280 SampledImage 278 279
285: 282 Load 284(tex1D)
286: 16 Load 18(s)
288: 287 SampledImage 285 286
289: 282 Load 284(tex1D)
290: 16 Load 77(sShadow)
293: 292 SampledImage 289 290
295: 26 Load 294(tex3D)
296: 16 Load 18(s)
297: 45 SampledImage 295 296
298: 12 Load 58(tex2D)
299: 16 Load 77(sShadow)
302: 301 SampledImage 298 299
306: 303 Load 305(tex2DRect)
307: 16 Load 18(s)
309: 308 SampledImage 306 307
310: 303 Load 305(tex2DRect)
311: 16 Load 77(sShadow)
314: 313 SampledImage 310 311
315: 96 Load 98(tex1DArray)
316: 16 Load 18(s)
318: 317 SampledImage 315 316
Return
FunctionEnd

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
// Id's are bound by 22
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 23 24
EntryPoint Vertex 4 "main" 9
Source GLSL 450
Name 4 "main"
Name 9 "color"
@ -20,16 +20,12 @@ Linked vertex stage:
MemberName 10(setBuf) 0 "color"
Name 12 "setBufInst"
Name 21 "samp2D"
Name 23 "gl_VertexID"
Name 24 "gl_InstanceID"
Decorate 10(setBuf) GLSLShared
MemberDecorate 10(setBuf) 0 Offset 0
Decorate 10(setBuf) BufferBlock
Decorate 12(setBufInst) DescriptorSet 0
Decorate 12(setBufInst) Binding 8
Decorate 21(samp2D) DescriptorSet 4
Decorate 21(samp2D) Binding 7
Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 24(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -46,9 +42,6 @@ Linked vertex stage:
19: TypeSampledImage 18
20: TypePointer UniformConstant 19
21(samp2D): 20(ptr) Variable UniformConstant
22: TypePointer Input 13(int)
23(gl_VertexID): 22(ptr) Variable Input
24(gl_InstanceID): 22(ptr) Variable Input
4(main): 2 Function None 3
5: Label
16: 15(ptr) AccessChain 12(setBufInst) 14

View File

@ -12,8 +12,8 @@ Linked fragment stage:
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 9 25
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 9 11 15 25 27 30
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "icolor"
@ -22,25 +22,29 @@ Linked fragment stage:
Name 25 "ucolor"
Name 27 "u3"
Name 30 "i1"
Decorate 11(i3) Flat
Decorate 15(u1) Flat
Decorate 27(u3) Flat
Decorate 30(i1) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeVector 6(int) 3
8: TypePointer Output 7(ivec3)
9(icolor): 8(ptr) Variable Output
10: TypePointer UniformConstant 7(ivec3)
11(i3): 10(ptr) Variable UniformConstant
10: TypePointer Input 7(ivec3)
11(i3): 10(ptr) Variable Input
13: TypeInt 32 0
14: TypePointer UniformConstant 13(int)
15(u1): 14(ptr) Variable UniformConstant
14: TypePointer Input 13(int)
15(u1): 14(ptr) Variable Input
17: TypeVector 13(int) 3
20: 13(int) Constant 4
24: TypePointer Output 17(ivec3)
25(ucolor): 24(ptr) Variable Output
26: TypePointer UniformConstant 17(ivec3)
27(u3): 26(ptr) Variable UniformConstant
29: TypePointer UniformConstant 6(int)
30(i1): 29(ptr) Variable UniformConstant
26: TypePointer Input 17(ivec3)
27(u3): 26(ptr) Variable Input
29: TypePointer Input 6(int)
30(i1): 29(ptr) Variable Input
34: 6(int) Constant 5
4(main): 2 Function None 3
5: Label

View File

@ -7,26 +7,28 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 144
// Id's are bound by 147
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 24
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 12 24 34 113 140 142
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 8 "foo("
Name 12 "of1"
Name 24 "of4"
Name 27 "ub"
Name 31 "ui"
Name 41 "uba"
Name 110 "uf"
Name 137 "uiv4"
Name 139 "uv4"
Name 142 "ub41"
Name 143 "ub42"
Name 34 "ui"
Name 44 "uba"
Name 113 "uf"
Name 140 "uiv4"
Name 142 "uv4"
Name 145 "ub41"
Name 146 "ub42"
Decorate 34(ui) Flat
Decorate 140(uiv4) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeBool
@ -41,185 +43,191 @@ Linked fragment stage:
23: TypePointer Output 22(fvec4)
24(of4): 23(ptr) Variable Output
25: 22(fvec4) ConstantComposite 21 21 21 21
26: TypePointer UniformConstant 6(bool)
27(ub): 26(ptr) Variable UniformConstant
29: TypeInt 32 1
30: TypePointer UniformConstant 29(int)
31(ui): 30(ptr) Variable UniformConstant
33: 29(int) Constant 2
41(uba): 26(ptr) Variable UniformConstant
109: TypePointer UniformConstant 10(float)
110(uf): 109(ptr) Variable UniformConstant
113: 10(float) Constant 1082130432
135: TypeVector 29(int) 4
136: TypePointer UniformConstant 135(ivec4)
137(uiv4): 136(ptr) Variable UniformConstant
138: TypePointer UniformConstant 22(fvec4)
139(uv4): 138(ptr) Variable UniformConstant
140: TypeVector 6(bool) 4
141: TypePointer UniformConstant 140(bvec4)
142(ub41): 141(ptr) Variable UniformConstant
143(ub42): 141(ptr) Variable UniformConstant
26: TypePointer Private 6(bool)
27(ub): 26(ptr) Variable Private
32: TypeInt 32 1
33: TypePointer Input 32(int)
34(ui): 33(ptr) Variable Input
36: 32(int) Constant 2
44(uba): 26(ptr) Variable Private
112: TypePointer Input 10(float)
113(uf): 112(ptr) Variable Input
116: 10(float) Constant 1082130432
138: TypeVector 32(int) 4
139: TypePointer Input 138(ivec4)
140(uiv4): 139(ptr) Variable Input
141: TypePointer Input 22(fvec4)
142(uv4): 141(ptr) Variable Input
143: TypeVector 6(bool) 4
144: TypePointer Private 143(bvec4)
145(ub41): 144(ptr) Variable Private
146(ub42): 144(ptr) Variable Private
4(main): 2 Function None 3
5: Label
Store 12(of1) 21
Store 24(of4) 25
28: 6(bool) Load 27(ub)
32: 29(int) Load 31(ui)
34: 6(bool) SGreaterThan 32 33
35: 6(bool) LogicalOr 28 34
SelectionMerge 37 None
BranchConditional 35 36 37
36: Label
38: 10(float) Load 12(of1)
39: 10(float) FAdd 38 14
Store 12(of1) 39
Branch 37
37: Label
40: 6(bool) Load 27(ub)
42: 6(bool) Load 41(uba)
43: 6(bool) LogicalNot 42
44: 6(bool) LogicalAnd 40 43
SelectionMerge 46 None
BranchConditional 44 45 46
45: Label
47: 10(float) Load 12(of1)
48: 10(float) FAdd 47 14
Store 12(of1) 48
Branch 46
46: Label
49: 6(bool) Load 27(ub)
50: 6(bool) LogicalNot 49
SelectionMerge 52 None
BranchConditional 50 51 52
51: Label
53: 6(bool) FunctionCall 8(foo()
Branch 52
52: Label
54: 6(bool) Phi 49 46 53 51
SelectionMerge 56 None
BranchConditional 54 55 56
29: 6(bool) LogicalNot 28
SelectionMerge 31 None
BranchConditional 29 30 31
30: Label
35: 32(int) Load 34(ui)
37: 6(bool) SGreaterThan 35 36
Branch 31
31: Label
38: 6(bool) Phi 28 5 37 30
SelectionMerge 40 None
BranchConditional 38 39 40
39: Label
41: 10(float) Load 12(of1)
42: 10(float) FAdd 41 14
Store 12(of1) 42
Branch 40
40: Label
43: 6(bool) Load 27(ub)
45: 6(bool) Load 44(uba)
46: 6(bool) LogicalNot 45
47: 6(bool) LogicalAnd 43 46
SelectionMerge 49 None
BranchConditional 47 48 49
48: Label
50: 10(float) Load 12(of1)
51: 10(float) FAdd 50 14
Store 12(of1) 51
Branch 49
49: Label
52: 6(bool) Load 27(ub)
53: 6(bool) LogicalNot 52
SelectionMerge 55 None
BranchConditional 53 54 55
54: Label
56: 6(bool) FunctionCall 8(foo()
Branch 55
55: Label
57: 10(float) Load 12(of1)
58: 10(float) FAdd 57 14
Store 12(of1) 58
Branch 56
56: Label
59: 6(bool) Load 27(ub)
SelectionMerge 61 None
BranchConditional 59 60 61
60: Label
62: 6(bool) FunctionCall 8(foo()
Branch 61
61: Label
63: 6(bool) Phi 59 56 62 60
SelectionMerge 65 None
BranchConditional 63 64 65
57: 6(bool) Phi 52 49 56 54
SelectionMerge 59 None
BranchConditional 57 58 59
58: Label
60: 10(float) Load 12(of1)
61: 10(float) FAdd 60 14
Store 12(of1) 61
Branch 59
59: Label
62: 6(bool) Load 27(ub)
SelectionMerge 64 None
BranchConditional 62 63 64
63: Label
65: 6(bool) FunctionCall 8(foo()
Branch 64
64: Label
66: 10(float) Load 12(of1)
67: 10(float) FAdd 66 14
Store 12(of1) 67
Branch 65
65: Label
68: 6(bool) FunctionCall 8(foo()
69: 6(bool) Load 27(ub)
70: 6(bool) LogicalOr 68 69
SelectionMerge 72 None
BranchConditional 70 71 72
71: Label
73: 10(float) Load 12(of1)
74: 10(float) FAdd 73 14
Store 12(of1) 74
Branch 72
72: Label
75: 6(bool) FunctionCall 8(foo()
76: 6(bool) Load 27(ub)
77: 6(bool) LogicalAnd 75 76
SelectionMerge 79 None
BranchConditional 77 78 79
78: Label
80: 10(float) Load 12(of1)
81: 10(float) FAdd 80 14
Store 12(of1) 81
Branch 79
79: Label
82: 6(bool) Load 27(ub)
83: 6(bool) LogicalNot 82
SelectionMerge 85 None
BranchConditional 83 84 85
84: Label
86: 10(float) Load 12(of1)
87: 10(float) FAdd 86 14
Store 12(of1) 87
88: 6(bool) FOrdGreaterThan 87 14
Branch 85
85: Label
89: 6(bool) Phi 82 79 88 84
SelectionMerge 91 None
BranchConditional 89 90 91
90: Label
92: 22(fvec4) Load 24(of4)
93: 22(fvec4) CompositeConstruct 14 14 14 14
94: 22(fvec4) FAdd 92 93
Store 24(of4) 94
Branch 91
91: Label
95: 10(float) Load 12(of1)
96: 10(float) FAdd 95 14
Store 12(of1) 96
97: 6(bool) FOrdGreaterThan 96 14
98: 6(bool) Load 27(ub)
99: 6(bool) LogicalOr 97 98
SelectionMerge 101 None
BranchConditional 99 100 101
100: Label
102: 22(fvec4) Load 24(of4)
103: 22(fvec4) CompositeConstruct 14 14 14 14
104: 22(fvec4) FAdd 102 103
Store 24(of4) 104
Branch 101
101: Label
105: 6(bool) Load 27(ub)
106: 6(bool) LogicalNot 105
SelectionMerge 108 None
BranchConditional 106 107 108
107: Label
111: 10(float) Load 110(uf)
112: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 111
114: 10(float) FMul 112 113
115: 10(float) Load 12(of1)
116: 6(bool) FOrdGreaterThan 114 115
Branch 108
108: Label
117: 6(bool) Phi 105 101 116 107
SelectionMerge 119 None
BranchConditional 117 118 119
118: Label
120: 10(float) Load 12(of1)
121: 10(float) FAdd 120 14
Store 12(of1) 121
Branch 119
119: Label
122: 6(bool) Load 27(ub)
SelectionMerge 124 None
BranchConditional 122 123 124
123: Label
125: 10(float) Load 110(uf)
126: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 125
127: 10(float) FMul 126 113
128: 10(float) Load 12(of1)
129: 6(bool) FOrdGreaterThan 127 128
Branch 124
124: Label
130: 6(bool) Phi 122 119 129 123
SelectionMerge 132 None
BranchConditional 130 131 132
131: Label
133: 10(float) Load 12(of1)
134: 10(float) FAdd 133 14
Store 12(of1) 134
Branch 132
132: Label
66: 6(bool) Phi 62 59 65 63
SelectionMerge 68 None
BranchConditional 66 67 68
67: Label
69: 10(float) Load 12(of1)
70: 10(float) FAdd 69 14
Store 12(of1) 70
Branch 68
68: Label
71: 6(bool) FunctionCall 8(foo()
72: 6(bool) Load 27(ub)
73: 6(bool) LogicalOr 71 72
SelectionMerge 75 None
BranchConditional 73 74 75
74: Label
76: 10(float) Load 12(of1)
77: 10(float) FAdd 76 14
Store 12(of1) 77
Branch 75
75: Label
78: 6(bool) FunctionCall 8(foo()
79: 6(bool) Load 27(ub)
80: 6(bool) LogicalAnd 78 79
SelectionMerge 82 None
BranchConditional 80 81 82
81: Label
83: 10(float) Load 12(of1)
84: 10(float) FAdd 83 14
Store 12(of1) 84
Branch 82
82: Label
85: 6(bool) Load 27(ub)
86: 6(bool) LogicalNot 85
SelectionMerge 88 None
BranchConditional 86 87 88
87: Label
89: 10(float) Load 12(of1)
90: 10(float) FAdd 89 14
Store 12(of1) 90
91: 6(bool) FOrdGreaterThan 90 14
Branch 88
88: Label
92: 6(bool) Phi 85 82 91 87
SelectionMerge 94 None
BranchConditional 92 93 94
93: Label
95: 22(fvec4) Load 24(of4)
96: 22(fvec4) CompositeConstruct 14 14 14 14
97: 22(fvec4) FAdd 95 96
Store 24(of4) 97
Branch 94
94: Label
98: 10(float) Load 12(of1)
99: 10(float) FAdd 98 14
Store 12(of1) 99
100: 6(bool) FOrdGreaterThan 99 14
101: 6(bool) Load 27(ub)
102: 6(bool) LogicalOr 100 101
SelectionMerge 104 None
BranchConditional 102 103 104
103: Label
105: 22(fvec4) Load 24(of4)
106: 22(fvec4) CompositeConstruct 14 14 14 14
107: 22(fvec4) FAdd 105 106
Store 24(of4) 107
Branch 104
104: Label
108: 6(bool) Load 27(ub)
109: 6(bool) LogicalNot 108
SelectionMerge 111 None
BranchConditional 109 110 111
110: Label
114: 10(float) Load 113(uf)
115: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 114
117: 10(float) FMul 115 116
118: 10(float) Load 12(of1)
119: 6(bool) FOrdGreaterThan 117 118
Branch 111
111: Label
120: 6(bool) Phi 108 104 119 110
SelectionMerge 122 None
BranchConditional 120 121 122
121: Label
123: 10(float) Load 12(of1)
124: 10(float) FAdd 123 14
Store 12(of1) 124
Branch 122
122: Label
125: 6(bool) Load 27(ub)
SelectionMerge 127 None
BranchConditional 125 126 127
126: Label
128: 10(float) Load 113(uf)
129: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 128
130: 10(float) FMul 129 116
131: 10(float) Load 12(of1)
132: 6(bool) FOrdGreaterThan 130 131
Branch 127
127: Label
133: 6(bool) Phi 125 122 132 126
SelectionMerge 135 None
BranchConditional 133 134 135
134: Label
136: 10(float) Load 12(of1)
137: 10(float) FAdd 136 14
Store 12(of1) 137
Branch 135
135: Label
Return
FunctionEnd
8(foo(): 6(bool) Function None 7

View File

@ -5,20 +5,18 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 23
// Id's are bound by 19
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 17
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 150
Name 4 "main"
Name 9 "foo("
Name 12 "BaseColor"
Name 17 "gl_FragColor"
Name 20 "bigColor"
Name 22 "d"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -28,10 +26,6 @@ Linked fragment stage:
12(BaseColor): 11(ptr) Variable Input
16: TypePointer Output 7(fvec4)
17(gl_FragColor): 16(ptr) Variable Output
19: TypePointer UniformConstant 7(fvec4)
20(bigColor): 19(ptr) Variable UniformConstant
21: TypePointer UniformConstant 6(float)
22(d): 21(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
18: 7(fvec4) FunctionCall 9(foo()

View File

@ -1,16 +1,18 @@
spv.simpleMat.vert
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 42
// Id's are bound by 39
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 15 19 23 34 40 41
EntryPoint Vertex 4 "main" 9 12 15 19 23 34
Source GLSL 330
Name 4 "main"
Name 9 "glPos"
@ -19,10 +21,6 @@ Linked vertex stage:
Name 19 "f"
Name 23 "am3"
Name 34 "arraym"
Name 40 "gl_VertexID"
Name 41 "gl_InstanceID"
Decorate 40(gl_VertexID) BuiltIn VertexId
Decorate 41(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -30,8 +28,8 @@ Linked vertex stage:
8: TypePointer Output 7(fvec4)
9(glPos): 8(ptr) Variable Output
10: TypeMatrix 7(fvec4) 4
11: TypePointer UniformConstant 10
12(mvp): 11(ptr) Variable UniformConstant
11: TypePointer Output 10
12(mvp): 11(ptr) Variable Output
14: TypePointer Input 7(fvec4)
15(v): 14(ptr) Variable Input
18: TypePointer Output 6(float)
@ -50,9 +48,6 @@ Linked vertex stage:
33: TypePointer Input 32
34(arraym): 33(ptr) Variable Input
35: 24(int) Constant 1
39: TypePointer Input 24(int)
40(gl_VertexID): 39(ptr) Variable Input
41(gl_InstanceID): 39(ptr) Variable Input
4(main): 2 Function None 3
5: Label
13: 10 Load 12(mvp)

View File

@ -15,8 +15,8 @@ Linked fragment stage:
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 384
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 33 48 89 360 384
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_ARB_sparse_texture2"
Name 4 "main"
@ -45,6 +45,19 @@ Linked fragment stage:
Name 289 "s2DRectShadow"
Name 360 "offsets"
Name 384 "outColor"
Decorate 29(s2D) DescriptorSet 0
Decorate 44(s3D) DescriptorSet 0
Decorate 59(isCube) DescriptorSet 0
Decorate 71(s2DShadow) DescriptorSet 0
Decorate 86(sCubeArrayShadow) DescriptorSet 0
Decorate 108(usCubeArray) DescriptorSet 0
Decorate 140(us2DRect) DescriptorSet 0
Decorate 154(s2DArrayShadow) DescriptorSet 0
Decorate 186(s2DMS) DescriptorSet 0
Decorate 223(is2DArray) DescriptorSet 0
Decorate 256(sCubeShadow) DescriptorSet 0
Decorate 289(s2DRectShadow) DescriptorSet 0
Decorate 360(offsets) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -68,16 +81,16 @@ Linked fragment stage:
28: TypePointer UniformConstant 27
29(s2D): 28(ptr) Variable UniformConstant
31: TypeVector 10(float) 2
32: TypePointer UniformConstant 31(fvec2)
33(c2): 32(ptr) Variable UniformConstant
32: TypePointer Input 31(fvec2)
33(c2): 32(ptr) Variable Input
35(ResType): TypeStruct 6(int) 11(fvec4)
41: TypeImage 10(float) 3D sampled format:Unknown
42: TypeSampledImage 41
43: TypePointer UniformConstant 42
44(s3D): 43(ptr) Variable UniformConstant
46: TypeVector 10(float) 3
47: TypePointer UniformConstant 46(fvec3)
48(c3): 47(ptr) Variable UniformConstant
47: TypePointer Input 46(fvec3)
48(c3): 47(ptr) Variable Input
50: 10(float) Constant 1073741824
56: TypeImage 6(int) Cube sampled format:Unknown
57: TypeSampledImage 56
@ -94,8 +107,8 @@ Linked fragment stage:
84: TypeSampledImage 83
85: TypePointer UniformConstant 84
86(sCubeArrayShadow): 85(ptr) Variable UniformConstant
88: TypePointer UniformConstant 11(fvec4)
89(c4): 88(ptr) Variable UniformConstant
88: TypePointer Input 11(fvec4)
89(c4): 88(ptr) Variable Input
91: 10(float) Constant 1065353216
105: TypeImage 20(int) Cube array sampled format:Unknown
106: TypeSampledImage 105
@ -147,8 +160,8 @@ Linked fragment stage:
335: 143(ivec2) ConstantComposite 190 190
357: 20(int) Constant 4
358: TypeArray 143(ivec2) 357
359: TypePointer UniformConstant 358
360(offsets): 359(ptr) Variable UniformConstant
359: TypePointer Input 358
360(offsets): 359(ptr) Variable Input
383: TypePointer Output 11(fvec4)
384(outColor): 383(ptr) Variable Output
387: TypeBool

View File

@ -16,8 +16,8 @@ Linked fragment stage:
Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 345
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 33 36 51 95 345
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_ARB_sparse_texture_clamp"
Name 4 "main"
@ -45,6 +45,17 @@ Linked fragment stage:
Name 286 "s2DRectShadow"
Name 305 "is2DArray"
Name 345 "outColor"
Decorate 29(s2D) DescriptorSet 0
Decorate 47(s3D) DescriptorSet 0
Decorate 63(isCube) DescriptorSet 0
Decorate 76(s2DShadow) DescriptorSet 0
Decorate 92(sCubeArrayShadow) DescriptorSet 0
Decorate 154(us2DRect) DescriptorSet 0
Decorate 170(s2DArrayShadow) DescriptorSet 0
Decorate 218(sCubeShadow) DescriptorSet 0
Decorate 235(usCubeArray) DescriptorSet 0
Decorate 286(s2DRectShadow) DescriptorSet 0
Decorate 305(is2DArray) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -68,18 +79,18 @@ Linked fragment stage:
28: TypePointer UniformConstant 27
29(s2D): 28(ptr) Variable UniformConstant
31: TypeVector 10(float) 2
32: TypePointer UniformConstant 31(fvec2)
33(c2): 32(ptr) Variable UniformConstant
35: TypePointer UniformConstant 10(float)
36(lodClamp): 35(ptr) Variable UniformConstant
32: TypePointer Input 31(fvec2)
33(c2): 32(ptr) Variable Input
35: TypePointer Input 10(float)
36(lodClamp): 35(ptr) Variable Input
38(ResType): TypeStruct 6(int) 11(fvec4)
44: TypeImage 10(float) 3D sampled format:Unknown
45: TypeSampledImage 44
46: TypePointer UniformConstant 45
47(s3D): 46(ptr) Variable UniformConstant
49: TypeVector 10(float) 3
50: TypePointer UniformConstant 49(fvec3)
51(c3): 50(ptr) Variable UniformConstant
50: TypePointer Input 49(fvec3)
51(c3): 50(ptr) Variable Input
54: 10(float) Constant 1073741824
60: TypeImage 6(int) Cube sampled format:Unknown
61: TypeSampledImage 60
@ -96,8 +107,8 @@ Linked fragment stage:
90: TypeSampledImage 89
91: TypePointer UniformConstant 90
92(sCubeArrayShadow): 91(ptr) Variable UniformConstant
94: TypePointer UniformConstant 11(fvec4)
95(c4): 94(ptr) Variable UniformConstant
94: TypePointer Input 11(fvec4)
95(c4): 94(ptr) Variable Input
97: 10(float) Constant 1065353216
142: TypeVector 6(int) 3
143: 6(int) Constant 2

View File

@ -0,0 +1,55 @@
spv.specConstant.comp
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked compute stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 27
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main"
ExecutionMode 4 LocalSize 32 32 1
Source GLSL 450
Name 4 "main"
Name 7 "bn"
MemberName 7(bn) 0 "a"
Name 9 "bi"
MemberDecorate 7(bn) 0 Offset 0
Decorate 7(bn) BufferBlock
Decorate 9(bi) DescriptorSet 0
Decorate 12 SpecId 18
Decorate 14 SpecId 19
Decorate 16 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7(bn): TypeStruct 6(int)
8: TypePointer Uniform 7(bn)
9(bi): 8(ptr) Variable Uniform
10: TypeInt 32 1
11: 10(int) Constant 0
12: 6(int) SpecConstant 32
13: 6(int) Constant 32
14: 6(int) SpecConstant 1
15: TypeVector 6(int) 3
16: 15(ivec3) SpecConstantComposite 12 13 14
17: 6(int) Constant 0
19: 6(int) Constant 1
22: 6(int) Constant 2
25: TypePointer Uniform 6(int)
4(main): 2 Function None 3
5: Label
18: 6(int) CompositeExtract 16 0
20: 6(int) CompositeExtract 16 1
21: 6(int) IMul 18 20
23: 6(int) CompositeExtract 16 2
24: 6(int) IMul 21 23
26: 25(ptr) AccessChain 9(bi) 11
Store 26 24
Return
FunctionEnd

View File

@ -0,0 +1,124 @@
spv.specConstant.vert
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 72
Capability Shader
Capability Float64
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 17 19 25 50
Source GLSL 400
Name 4 "main"
Name 14 "foo(vf4[s1498];"
Name 13 "p"
Name 17 "color"
Name 19 "ucol"
Name 25 "size"
Name 44 "param"
Name 50 "dupUcol"
Decorate 9 SpecId 16
Decorate 27 SpecId 17
Decorate 31 SpecId 22
Decorate 36 SpecId 19
Decorate 37 SpecId 18
Decorate 47 SpecId 116
Decorate 57 SpecId 117
Decorate 60 SpecId 122
Decorate 64 SpecId 119
Decorate 65 SpecId 118
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeInt 32 1
9: 8(int) SpecConstant 5
10: TypeArray 7(fvec4) 9
11: TypePointer Function 10
12: TypeFunction 2 11(ptr)
16: TypePointer Output 7(fvec4)
17(color): 16(ptr) Variable Output
18: TypePointer Input 10
19(ucol): 18(ptr) Variable Input
20: 8(int) Constant 2
21: TypePointer Input 7(fvec4)
24: TypePointer Output 8(int)
25(size): 24(ptr) Variable Output
26: TypeBool
27: 26(bool) SpecConstantTrue
30: TypeInt 32 0
31: 30(int) SpecConstant 2
35: TypeFloat 64
36: 35(float) SpecConstant 1413754136 1074340347
37: 6(float) SpecConstant 1078523331
47: 8(int) SpecConstant 12
48: TypeArray 7(fvec4) 47
49: TypePointer Input 48
50(dupUcol): 49(ptr) Variable Input
57: 26(bool) SpecConstantTrue
60: 30(int) SpecConstant 2
64: 35(float) SpecConstant 1413754136 1074340347
65: 6(float) SpecConstant 1078523331
4(main): 2 Function None 3
5: Label
44(param): 11(ptr) Variable Function
22: 21(ptr) AccessChain 19(ucol) 20
23: 7(fvec4) Load 22
Store 17(color) 23
Store 25(size) 9
SelectionMerge 29 None
BranchConditional 27 28 29
28: Label
32: 6(float) ConvertUToF 31
33: 7(fvec4) Load 17(color)
34: 7(fvec4) VectorTimesScalar 33 32
Store 17(color) 34
Branch 29
29: Label
38: 35(float) FConvert 37
39: 35(float) FDiv 36 38
40: 6(float) FConvert 39
41: 7(fvec4) Load 17(color)
42: 7(fvec4) CompositeConstruct 40 40 40 40
43: 7(fvec4) FAdd 41 42
Store 17(color) 43
45: 10 Load 19(ucol)
Store 44(param) 45
46: 2 FunctionCall 14(foo(vf4[s1498];) 44(param)
Return
FunctionEnd
14(foo(vf4[s1498];): 2 Function None 12
13(p): 11(ptr) FunctionParameter
15: Label
51: 21(ptr) AccessChain 50(dupUcol) 20
52: 7(fvec4) Load 51
53: 7(fvec4) Load 17(color)
54: 7(fvec4) FAdd 53 52
Store 17(color) 54
55: 8(int) Load 25(size)
56: 8(int) IAdd 55 47
Store 25(size) 56
SelectionMerge 59 None
BranchConditional 57 58 59
58: Label
61: 6(float) ConvertUToF 60
62: 7(fvec4) Load 17(color)
63: 7(fvec4) VectorTimesScalar 62 61
Store 17(color) 63
Branch 59
59: Label
66: 35(float) FConvert 65
67: 35(float) FDiv 64 66
68: 6(float) FConvert 67
69: 7(fvec4) Load 17(color)
70: 7(fvec4) CompositeConstruct 68 68 68 68
71: 7(fvec4) FAdd 69 70
Store 17(color) 71
Return
FunctionEnd

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 31 44
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "lunarStruct1"
@ -33,6 +33,7 @@ Linked fragment stage:
Name 40 "samp2D"
Name 44 "coord"
Name 49 "foo"
Decorate 40(samp2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -40,14 +41,14 @@ Linked fragment stage:
8(lunarStruct1): TypeStruct 6(int) 7(float)
9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1)
10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)
11: TypePointer UniformConstant 10(lunarStruct3)
12(foo3): 11(ptr) Variable UniformConstant
11: TypePointer Private 10(lunarStruct3)
12(foo3): 11(ptr) Variable Private
13: 6(int) Constant 0
14: TypePointer UniformConstant 6(int)
14: TypePointer Private 6(int)
17: TypeBool
21: TypePointer Function 9(lunarStruct2)
23: TypePointer UniformConstant 9(lunarStruct2)
27(foo2): 23(ptr) Variable UniformConstant
23: TypePointer Private 9(lunarStruct2)
27(foo2): 23(ptr) Variable Private
29: TypeVector 7(float) 4
30: TypePointer Output 29(fvec4)
31(gl_FragColor): 30(ptr) Variable Output
@ -61,8 +62,8 @@ Linked fragment stage:
42: TypeVector 7(float) 2
43: TypePointer Input 42(fvec2)
44(coord): 43(ptr) Variable Input
48: TypePointer UniformConstant 8(lunarStruct1)
49(foo): 48(ptr) Variable UniformConstant
48: TypePointer Private 8(lunarStruct1)
49(foo): 48(ptr) Variable Private
4(main): 2 Function None 3
5: Label
22(locals2): 21(ptr) Variable Function

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 61 99
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "s0"
@ -44,6 +44,7 @@ Linked fragment stage:
Name 99 "gl_FragColor"
Name 116 "samp2D"
Name 122 "foo2"
Decorate 116(samp2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -55,11 +56,11 @@ Linked fragment stage:
12: 11(int) Constant 12
13: TypeArray 10(s2) 12
14(s3): TypeStruct 13 6(int) 7(float) 9(s1)
15: TypePointer UniformConstant 14(s3)
16(foo3): 15(ptr) Variable UniformConstant
15: TypePointer Private 14(s3)
16(foo3): 15(ptr) Variable Private
17: 6(int) Constant 0
18: 6(int) Constant 9
19: TypePointer UniformConstant 6(int)
19: TypePointer Private 6(int)
22: TypeBool
26: TypePointer Function 10(s2)
28: 6(int) Constant 1
@ -78,8 +79,8 @@ Linked fragment stage:
44: TypeArray 9(s1) 43
45: TypePointer Function 44
47: 6(int) Constant 6
48: TypePointer UniformConstant 9(s1)
49(foo1): 48(ptr) Variable UniformConstant
48: TypePointer Private 9(s1)
49(foo1): 48(ptr) Variable Private
52: TypePointer Function 8(s0)
54(s00): TypeStruct 8(s0)
55: TypePointer Function 54(s00)
@ -90,15 +91,15 @@ Linked fragment stage:
62: 11(int) Constant 0
63: TypePointer Input 7(float)
67: 11(int) Constant 1
70: TypePointer UniformConstant 8(s0)
71(foo0): 70(ptr) Variable UniformConstant
70: TypePointer Private 8(s0)
71(foo0): 70(ptr) Variable Private
75: 7(float) Constant 1073741824
76: 7(float) Constant 1077936128
77: 7(float) Constant 1082130432
78: 7(float) Constant 1084227584
79: 38 ConstantComposite 41 29 75 76 77 78
85: TypePointer UniformConstant 54(s00)
86(foo00): 85(ptr) Variable UniformConstant
85: TypePointer Private 54(s00)
86(foo00): 85(ptr) Variable Private
88: TypePointer Function 6(int)
91: 6(int) Constant 5
97: TypeVector 7(float) 4
@ -109,8 +110,8 @@ Linked fragment stage:
114: TypeSampledImage 113
115: TypePointer UniformConstant 114
116(samp2D): 115(ptr) Variable UniformConstant
121: TypePointer UniformConstant 10(s2)
122(foo2): 121(ptr) Variable UniformConstant
121: TypePointer Private 10(s2)
122(foo2): 121(ptr) Variable Private
4(main): 2 Function None 3
5: Label
27(locals2): 26(ptr) Variable Function

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 45 54
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "scale"
@ -28,6 +28,7 @@ Linked fragment stage:
Name 50 "samp2D"
Name 54 "coord"
Name 59 "foo"
Decorate 50(samp2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -46,16 +47,16 @@ Linked fragment stage:
20: TypeArray 18(lunarStruct1) 19
21(lunarStruct2): TypeStruct 13 6(float) 20
22: TypeArray 21(lunarStruct2) 12
23: TypePointer UniformConstant 22
24(foo2): 23(ptr) Variable UniformConstant
23: TypePointer Private 22
24(foo2): 23(ptr) Variable Private
25: 10(int) Constant 3
26: 10(int) Constant 0
27: 10(int) Constant 4
28: TypePointer UniformConstant 10(int)
28: TypePointer Private 10(int)
31: TypeBool
35: 10(int) Constant 2
36: 11(int) Constant 0
37: TypePointer UniformConstant 6(float)
37: TypePointer Private 6(float)
41: 10(int) Constant 1
44: TypePointer Output 16(fvec4)
45(gl_FragColor): 44(ptr) Variable Output
@ -66,8 +67,8 @@ Linked fragment stage:
52: TypeVector 6(float) 2
53: TypePointer Input 52(fvec2)
54(coord): 53(ptr) Variable Input
58: TypePointer UniformConstant 18(lunarStruct1)
59(foo): 58(ptr) Variable UniformConstant
58: TypePointer Private 18(lunarStruct1)
59(foo): 58(ptr) Variable Private
4(main): 2 Function None 3
5: Label
8(scale): 7(ptr) Variable Function

View File

@ -0,0 +1,123 @@
spv.subpass.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 70
Capability Shader
Capability InputAttachment
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 15 27 54
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 11 "foo(iIPM1;"
Name 10 "sb"
Name 15 "icolor"
Name 27 "color"
Name 30 "sub"
Name 35 "subMS"
Name 42 "isub"
Name 46 "isubMS"
Name 54 "ucolor"
Name 57 "usub"
Name 62 "usubMS"
Name 67 "param"
Decorate 30(sub) DescriptorSet 0
Decorate 30(sub) InputAttachmentIndex 1
Decorate 35(subMS) DescriptorSet 0
Decorate 35(subMS) InputAttachmentIndex 2
Decorate 42(isub) DescriptorSet 0
Decorate 42(isub) InputAttachmentIndex 3
Decorate 46(isubMS) DescriptorSet 0
Decorate 46(isubMS) InputAttachmentIndex 4
Decorate 57(usub) DescriptorSet 0
Decorate 57(usub) InputAttachmentIndex 5
Decorate 62(usubMS) DescriptorSet 0
Decorate 62(usubMS) InputAttachmentIndex 6
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeImage 6(int) SubpassData multi-sampled nonsampled format:Unknown
8: TypePointer Function 7
9: TypeFunction 2 8(ptr)
13: TypeVector 6(int) 4
14: TypePointer Output 13(ivec4)
15(icolor): 14(ptr) Variable Output
17: 6(int) Constant 3
18: 6(int) Constant 0
19: TypeVector 6(int) 2
20: 19(ivec2) ConstantComposite 18 18
24: TypeFloat 32
25: TypeVector 24(float) 4
26: TypePointer Output 25(fvec4)
27(color): 26(ptr) Variable Output
28: TypeImage 24(float) SubpassData nonsampled format:Unknown
29: TypePointer UniformConstant 28
30(sub): 29(ptr) Variable UniformConstant
33: TypeImage 24(float) SubpassData multi-sampled nonsampled format:Unknown
34: TypePointer UniformConstant 33
35(subMS): 34(ptr) Variable UniformConstant
40: TypeImage 6(int) SubpassData nonsampled format:Unknown
41: TypePointer UniformConstant 40
42(isub): 41(ptr) Variable UniformConstant
45: TypePointer UniformConstant 7
46(isubMS): 45(ptr) Variable UniformConstant
51: TypeInt 32 0
52: TypeVector 51(int) 4
53: TypePointer Output 52(ivec4)
54(ucolor): 53(ptr) Variable Output
55: TypeImage 51(int) SubpassData nonsampled format:Unknown
56: TypePointer UniformConstant 55
57(usub): 56(ptr) Variable UniformConstant
60: TypeImage 51(int) SubpassData multi-sampled nonsampled format:Unknown
61: TypePointer UniformConstant 60
62(usubMS): 61(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
67(param): 8(ptr) Variable Function
31: 28 Load 30(sub)
32: 25(fvec4) ImageRead 31 20
Store 27(color) 32
36: 33 Load 35(subMS)
37: 25(fvec4) ImageRead 36 20 Sample 17
38: 25(fvec4) Load 27(color)
39: 25(fvec4) FAdd 38 37
Store 27(color) 39
43: 40 Load 42(isub)
44: 13(ivec4) ImageRead 43 20
Store 15(icolor) 44
47: 7 Load 46(isubMS)
48: 13(ivec4) ImageRead 47 20 Sample 17
49: 13(ivec4) Load 15(icolor)
50: 13(ivec4) IAdd 49 48
Store 15(icolor) 50
58: 55 Load 57(usub)
59: 52(ivec4) ImageRead 58 20
Store 54(ucolor) 59
63: 60 Load 62(usubMS)
64: 52(ivec4) ImageRead 63 20 Sample 17
65: 52(ivec4) Load 54(ucolor)
66: 52(ivec4) IAdd 65 64
Store 54(ucolor) 66
68: 7 Load 46(isubMS)
Store 67(param) 68
69: 2 FunctionCall 11(foo(iIPM1;) 67(param)
Return
FunctionEnd
11(foo(iIPM1;): 2 Function None 9
10(sb): 8(ptr) FunctionParameter
12: Label
16: 7 Load 10(sb)
21: 13(ivec4) ImageRead 16 20 Sample 17
22: 13(ivec4) Load 15(icolor)
23: 13(ivec4) IAdd 22 21
Store 15(icolor) 23
Return
FunctionEnd

View File

@ -15,8 +15,8 @@ Linked fragment stage:
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 75 227
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 62 75 129 227 233
ExecutionMode 4 OriginUpperLeft
Source ESSL 310
Name 4 "main"
Name 15 "foo1(vf4;vf4;i1;"
@ -64,6 +64,7 @@ Linked fragment stage:
Decorate 55 RelaxedPrecision
Decorate 60(local) RelaxedPrecision
Decorate 62(c) RelaxedPrecision
Decorate 62(c) Flat
Decorate 63 RelaxedPrecision
Decorate 64 RelaxedPrecision
Decorate 66 RelaxedPrecision
@ -104,6 +105,7 @@ Linked fragment stage:
Decorate 126 RelaxedPrecision
Decorate 127 RelaxedPrecision
Decorate 129(d) RelaxedPrecision
Decorate 129(d) Flat
Decorate 130 RelaxedPrecision
Decorate 134 RelaxedPrecision
Decorate 135 RelaxedPrecision
@ -185,13 +187,13 @@ Linked fragment stage:
37: 7(fvec4) ConstantComposite 36 36 36 36
48: 6(float) Constant 1065353216
49: 7(fvec4) ConstantComposite 48 48 48 48
61: TypePointer UniformConstant 9(int)
62(c): 61(ptr) Variable UniformConstant
61: TypePointer Input 9(int)
62(c): 61(ptr) Variable Input
65: 9(int) Constant 1
72: TypePointer Function 6(float)
74: TypePointer Input 6(float)
75(x): 74(ptr) Variable Input
129(d): 61(ptr) Variable UniformConstant
129(d): 61(ptr) Variable Input
156: 9(int) Constant 0
163: 9(int) Constant 10
164: TypeBool
@ -201,8 +203,8 @@ Linked fragment stage:
208: 6(float) Constant 1079739679
226: TypePointer Output 6(float)
227(color): 226(ptr) Variable Output
232: TypePointer UniformConstant 7(fvec4)
233(v): 232(ptr) Variable UniformConstant
232: TypePointer Input 7(fvec4)
233(v): 232(ptr) Variable Input
241: TypeInt 32 0
242: 241(int) Constant 1
253: 241(int) Constant 2

View File

@ -5,13 +5,13 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 109
// Id's are bound by 108
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 30 69
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 14 30 69 107
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "blendscale"
@ -27,7 +27,7 @@ Linked fragment stage:
Name 69 "gl_FragColor"
Name 81 "c"
Name 83 "rep"
Name 108 "blend"
Name 107 "blend"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -35,8 +35,8 @@ Linked fragment stage:
9: 6(float) Constant 1071971828
10: TypeVector 6(float) 4
11: TypePointer Function 10(fvec4)
13: TypePointer UniformConstant 10(fvec4)
14(u): 13(ptr) Variable UniformConstant
13: TypePointer Input 10(fvec4)
14(u): 13(ptr) Variable Input
25: TypeInt 32 0
26: 25(int) Constant 2
28: TypeVector 6(float) 2
@ -45,8 +45,8 @@ Linked fragment stage:
35: 25(int) Constant 0
40: 25(int) Constant 1
54: TypeBool
55: TypePointer UniformConstant 54(bool)
56(p): 55(ptr) Variable UniformConstant
55: TypePointer Private 54(bool)
56(p): 55(ptr) Variable Private
60: TypePointer Input 6(float)
68: TypePointer Output 10(fvec4)
69(gl_FragColor): 68(ptr) Variable Output
@ -56,8 +56,7 @@ Linked fragment stage:
86: 10(fvec4) ConstantComposite 84 84 84 85
92: 6(float) Constant 3212836864
102: 6(float) Constant 1079613850
107: TypePointer UniformConstant 6(float)
108(blend): 107(ptr) Variable UniformConstant
107(blend): 60(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(blendscale): 7(ptr) Variable Function

View File

@ -7,26 +7,28 @@ Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 56
// Id's are bound by 55
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 20 38 44
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 20 22 37 43 46 49
ExecutionMode 4 OriginUpperLeft
Source GLSL 400
Name 4 "main"
Name 8 "blendscale"
Name 12 "v"
Name 16 "texSampler2D"
Name 20 "t"
Name 23 "scale"
Name 30 "w"
Name 34 "texSampler3D"
Name 38 "coords"
Name 44 "gl_FragColor"
Name 47 "u"
Name 50 "blend"
Name 22 "scale"
Name 29 "w"
Name 33 "texSampler3D"
Name 37 "coords"
Name 43 "gl_FragColor"
Name 46 "u"
Name 49 "blend"
Decorate 16(texSampler2D) DescriptorSet 0
Decorate 33(texSampler3D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -41,49 +43,48 @@ Linked fragment stage:
18: TypeVector 6(float) 2
19: TypePointer Input 18(fvec2)
20(t): 19(ptr) Variable Input
22: TypePointer UniformConstant 18(fvec2)
23(scale): 22(ptr) Variable UniformConstant
31: TypeImage 6(float) 3D sampled format:Unknown
32: TypeSampledImage 31
33: TypePointer UniformConstant 32
34(texSampler3D): 33(ptr) Variable UniformConstant
36: TypeVector 6(float) 3
37: TypePointer Input 36(fvec3)
38(coords): 37(ptr) Variable Input
43: TypePointer Output 10(fvec4)
44(gl_FragColor): 43(ptr) Variable Output
46: TypePointer UniformConstant 10(fvec4)
47(u): 46(ptr) Variable UniformConstant
49: TypePointer UniformConstant 6(float)
50(blend): 49(ptr) Variable UniformConstant
22(scale): 19(ptr) Variable Input
30: TypeImage 6(float) 3D sampled format:Unknown
31: TypeSampledImage 30
32: TypePointer UniformConstant 31
33(texSampler3D): 32(ptr) Variable UniformConstant
35: TypeVector 6(float) 3
36: TypePointer Input 35(fvec3)
37(coords): 36(ptr) Variable Input
42: TypePointer Output 10(fvec4)
43(gl_FragColor): 42(ptr) Variable Output
45: TypePointer Input 10(fvec4)
46(u): 45(ptr) Variable Input
48: TypePointer Input 6(float)
49(blend): 48(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(blendscale): 7(ptr) Variable Function
12(v): 11(ptr) Variable Function
30(w): 11(ptr) Variable Function
29(w): 11(ptr) Variable Function
Store 8(blendscale) 9
17: 14 Load 16(texSampler2D)
21: 18(fvec2) Load 20(t)
24: 18(fvec2) Load 23(scale)
25: 18(fvec2) FAdd 21 24
26: 18(fvec2) Load 23(scale)
27: 18(fvec2) FDiv 25 26
28: 10(fvec4) ImageSampleImplicitLod 17 27
29: 10(fvec4) VectorShuffle 28 28 3 2 1 0
Store 12(v) 29
35: 32 Load 34(texSampler3D)
39: 36(fvec3) Load 38(coords)
40: 10(fvec4) ImageSampleImplicitLod 35 39
41: 10(fvec4) Load 12(v)
42: 10(fvec4) FAdd 40 41
Store 30(w) 42
45: 10(fvec4) Load 30(w)
48: 10(fvec4) Load 47(u)
51: 6(float) Load 50(blend)
52: 6(float) Load 8(blendscale)
53: 6(float) FMul 51 52
54: 10(fvec4) CompositeConstruct 53 53 53 53
55: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 45 48 54
Store 44(gl_FragColor) 55
23: 18(fvec2) Load 22(scale)
24: 18(fvec2) FAdd 21 23
25: 18(fvec2) Load 22(scale)
26: 18(fvec2) FDiv 24 25
27: 10(fvec4) ImageSampleImplicitLod 17 26
28: 10(fvec4) VectorShuffle 27 27 3 2 1 0
Store 12(v) 28
34: 31 Load 33(texSampler3D)
38: 35(fvec3) Load 37(coords)
39: 10(fvec4) ImageSampleImplicitLod 34 38
40: 10(fvec4) Load 12(v)
41: 10(fvec4) FAdd 39 40
Store 29(w) 41
44: 10(fvec4) Load 29(w)
47: 10(fvec4) Load 46(u)
50: 6(float) Load 49(blend)
51: 6(float) Load 8(blendscale)
52: 6(float) FMul 50 51
53: 10(fvec4) CompositeConstruct 52 52 52 52
54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 44 47 53
Store 43(gl_FragColor) 54
Return
FunctionEnd

View File

@ -7,12 +7,12 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 28
// Id's are bound by 24
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 11 15 21 26 27
EntryPoint Vertex 4 "main" 9 11 15 18 21
Source GLSL 140
Name 4 "main"
Name 9 "uv"
@ -20,11 +20,7 @@ Linked vertex stage:
Name 15 "gl_Position"
Name 18 "transform"
Name 21 "position"
Name 26 "gl_VertexID"
Name 27 "gl_InstanceID"
Decorate 15(gl_Position) BuiltIn Position
Decorate 26(gl_VertexID) BuiltIn VertexId
Decorate 27(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -37,14 +33,10 @@ Linked vertex stage:
14: TypePointer Output 13(fvec4)
15(gl_Position): 14(ptr) Variable Output
16: TypeMatrix 13(fvec4) 4
17: TypePointer UniformConstant 16
18(transform): 17(ptr) Variable UniformConstant
17: TypePointer Input 16
18(transform): 17(ptr) Variable Input
20: TypePointer Input 13(fvec4)
21(position): 20(ptr) Variable Input
24: TypeInt 32 1
25: TypePointer Input 24(int)
26(gl_VertexID): 25(ptr) Variable Input
27(gl_InstanceID): 25(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec2) Load 11(uv_in)

View File

@ -1,18 +1,22 @@
spv.texture.frag
WARNING: 0:10: varying deprecated in version 130; may be removed in future release
WARNING: 0:11: varying deprecated in version 130; may be removed in future release
WARNING: 0:12: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 291
// Id's are bound by 290
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 47 276 290
ExecutionMode 4 OriginLowerLeft
EntryPoint Fragment 4 "main" 47 276 279 282 288 289
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "blendscale"
@ -37,8 +41,14 @@ Linked fragment stage:
Name 276 "gl_FragColor"
Name 279 "u"
Name 282 "blend"
Name 289 "scale"
Name 290 "t"
Name 288 "scale"
Name 289 "t"
Decorate 32(texSampler1D) DescriptorSet 0
Decorate 72(texSampler2D) DescriptorSet 0
Decorate 98(texSampler3D) DescriptorSet 0
Decorate 124(texSamplerCube) DescriptorSet 0
Decorate 139(shadowSampler1D) DescriptorSet 0
Decorate 158(shadowSampler2D) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -97,13 +107,12 @@ Linked fragment stage:
251: 205(ivec2) ConstantComposite 249 250
275: TypePointer Output 22(fvec4)
276(gl_FragColor): 275(ptr) Variable Output
278: TypePointer UniformConstant 22(fvec4)
279(u): 278(ptr) Variable UniformConstant
281: TypePointer UniformConstant 6(float)
282(blend): 281(ptr) Variable UniformConstant
288: TypePointer UniformConstant 45(fvec2)
289(scale): 288(ptr) Variable UniformConstant
290(t): 46(ptr) Variable Input
278: TypePointer Input 22(fvec4)
279(u): 278(ptr) Variable Input
281: TypePointer Input 6(float)
282(blend): 281(ptr) Variable Input
288(scale): 46(ptr) Variable Input
289(t): 46(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(blendscale): 7(ptr) Variable Function

View File

@ -5,13 +5,13 @@ Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 146
// Id's are bound by 142
Capability Shader
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 39 140 144 145
EntryPoint Vertex 4 "main" 39 140
Source GLSL 140
Name 4 "main"
Name 8 "lod"
@ -27,11 +27,13 @@ Linked vertex stage:
Name 102 "shadowSampler1D"
Name 114 "shadowSampler2D"
Name 140 "gl_Position"
Name 144 "gl_VertexID"
Name 145 "gl_InstanceID"
Decorate 29(texSampler1D) DescriptorSet 0
Decorate 54(texSampler2D) DescriptorSet 0
Decorate 76(texSampler3D) DescriptorSet 0
Decorate 92(texSamplerCube) DescriptorSet 0
Decorate 102(shadowSampler1D) DescriptorSet 0
Decorate 114(shadowSampler2D) DescriptorSet 0
Decorate 140(gl_Position) BuiltIn Position
Decorate 144(gl_VertexID) BuiltIn VertexId
Decorate 145(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -78,10 +80,6 @@ Linked vertex stage:
114(shadowSampler2D): 113(ptr) Variable UniformConstant
139: TypePointer Output 18(fvec4)
140(gl_Position): 139(ptr) Variable Output
142: TypeInt 32 1
143: TypePointer Input 142(int)
144(gl_VertexID): 143(ptr) Variable Input
145(gl_InstanceID): 143(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(lod): 7(ptr) Variable Function

Some files were not shown because too many files have changed in this diff Show More