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 ** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"), ** of this software and/or associated documentation files (the "Materials"),
@ -27,8 +27,8 @@
#ifndef GLSLstd450_H #ifndef GLSLstd450_H
#define GLSLstd450_H #define GLSLstd450_H
const int GLSLstd450Version = 99; static const int GLSLstd450Version = 100;
const int GLSLstd450Revision = 3; static const int GLSLstd450Revision = 1;
enum GLSLstd450 { enum GLSLstd450 {
GLSLstd450Bad = 0, // Don't use GLSLstd450Bad = 0, // Don't use
@ -83,7 +83,7 @@ enum GLSLstd450 {
GLSLstd450UClamp = 44, GLSLstd450UClamp = 44,
GLSLstd450SClamp = 45, GLSLstd450SClamp = 45,
GLSLstd450FMix = 46, GLSLstd450FMix = 46,
GLSLstd450IMix = 47, GLSLstd450IMix = 47, // Reserved
GLSLstd450Step = 48, GLSLstd450Step = 48,
GLSLstd450SmoothStep = 49, GLSLstd450SmoothStep = 49,
@ -121,6 +121,10 @@ enum GLSLstd450 {
GLSLstd450InterpolateAtSample = 77, GLSLstd450InterpolateAtSample = 77,
GLSLstd450InterpolateAtOffset = 78, GLSLstd450InterpolateAtOffset = 78,
GLSLstd450NMin = 79,
GLSLstd450NMax = 80,
GLSLstd450NClamp = 81,
GLSLstd450Count 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. //All rights reserved.
// //
@ -95,6 +96,7 @@ protected:
spv::Id getSampledType(const glslang::TSampler&); spv::Id getSampledType(const glslang::TSampler&);
spv::Id convertGlslangToSpvType(const glslang::TType& type); spv::Id convertGlslangToSpvType(const glslang::TType& type);
spv::Id convertGlslangToSpvType(const glslang::TType& type, glslang::TLayoutPacking, const glslang::TQualifier&); 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); spv::Id accessChainLoad(const glslang::TType& type);
glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const; glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const;
int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix); 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()) else if (type.getQualifier().isPipeOutput())
return spv::StorageClassOutput; return spv::StorageClassOutput;
else if (type.getQualifier().isUniformOrBuffer()) { else if (type.getQualifier().isUniformOrBuffer()) {
if (type.getQualifier().layoutPushConstant)
return spv::StorageClassPushConstant;
if (type.getBasicType() == glslang::EbtBlock) if (type.getBasicType() == glslang::EbtBlock)
return spv::StorageClassUniform; return spv::StorageClassUniform;
else if (type.getBasicType() == glslang::EbtAtomicUint) 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::EsdCube: return spv::DimCube;
case glslang::EsdRect: return spv::DimRect; case glslang::EsdRect: return spv::DimRect;
case glslang::EsdBuffer: return spv::DimBuffer; case glslang::EsdBuffer: return spv::DimBuffer;
case glslang::EsdSubpass: return spv::DimSubpassData;
default: default:
assert(0); assert(0);
return spv::Dim2D; return spv::Dim2D;
@ -376,6 +381,8 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
case glslang::EbvPosition: return spv::BuiltInPosition; case glslang::EbvPosition: return spv::BuiltInPosition;
case glslang::EbvVertexId: return spv::BuiltInVertexId; case glslang::EbvVertexId: return spv::BuiltInVertexId;
case glslang::EbvInstanceId: return spv::BuiltInInstanceId; case glslang::EbvInstanceId: return spv::BuiltInInstanceId;
case glslang::EbvVertexIndex: return spv::BuiltInVertexIndex;
case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex;
case glslang::EbvBaseVertex: case glslang::EbvBaseVertex:
case glslang::EbvBaseInstance: case glslang::EbvBaseInstance:
case glslang::EbvDrawId: 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) void InheritQualifiers(glslang::TQualifier& child, const glslang::TQualifier& parent)
{ {
if (child.layoutMatrix == glslang::ElmNone) 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 // 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 // Prepare to generate code for the access
// L-value chains will be computed left to right. We're on the symbol now, // 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(); builder.clearAccessChain();
// For now, we consider all user variables as being in memory, so they are pointers, // 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(). // See comments in handleUserFunctionCall().
glslang::TStorageQualifier qualifier = symbol->getQualifier().storage; // B) Specialization constants (normal constant don't even come in as a variable),
if (qualifier == glslang::EvqConstReadOnly && constReadOnlyParameters.find(symbol->getId()) != constReadOnlyParameters.end()) // 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); builder.setAccessChainRValue(id);
else else
builder.setAccessChainLValue(id); builder.setAccessChainLValue(id);
@ -1110,9 +1140,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
{ {
if (node->isUserDefined()) if (node->isUserDefined())
result = handleUserFunctionCall(node); 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.clearAccessChain();
builder.setAccessChainRValue(result); builder.setAccessChainRValue(result);
} else
spv::MissingFunctionality("missing user function; linker needs to catch that");
return false; return false;
} }
@ -1157,12 +1190,15 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
case glslang::EOpConstructUVec3: case glslang::EOpConstructUVec3:
case glslang::EOpConstructUVec4: case glslang::EOpConstructUVec4:
case glslang::EOpConstructStruct: case glslang::EOpConstructStruct:
case glslang::EOpConstructTextureSampler:
{ {
std::vector<spv::Id> arguments; std::vector<spv::Id> arguments;
translateArguments(*node, arguments); translateArguments(*node, arguments);
spv::Id resultTypeId = convertGlslangToSpvType(node->getType()); spv::Id resultTypeId = convertGlslangToSpvType(node->getType());
spv::Id constructed; 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; std::vector<spv::Id> constituents;
for (int c = 0; c < (int)arguments.size(); ++c) for (int c = 0; c < (int)arguments.size(); ++c)
constituents.push_back(arguments[c]); constituents.push_back(arguments[c]);
@ -1640,13 +1676,19 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
case glslang::EbtSampler: case glslang::EbtSampler:
{ {
const glslang::TSampler& sampler = type.getSampler(); const glslang::TSampler& sampler = type.getSampler();
if (sampler.sampler) {
// pure sampler
spvType = builder.makeSamplerType();
} else {
// an image is present, make its type // an image is present, make its type
spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), sampler.shadow, sampler.arrayed, sampler.ms, spvType = builder.makeImageType(getSampledType(sampler), TranslateDimensionality(sampler), sampler.shadow, sampler.arrayed, sampler.ms,
sampler.image ? 2 : 1, TranslateImageFormat(type)); 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); spvType = builder.makeSampledImageType(spvType);
} }
} }
}
break; break;
case glslang::EbtStruct: case glslang::EbtStruct:
case glslang::EbtBlock: case glslang::EbtBlock:
@ -1790,12 +1832,10 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
// make the arrays // make the arrays
for (int dim = type.getArraySizes()->getNumDims() - 1; dim > 0; --dim) { for (int dim = type.getArraySizes()->getNumDims() - 1; dim > 0; --dim) {
int size = type.getArraySizes()->getDimSize(dim); spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), dim), stride);
assert(size > 0);
spvType = builder.makeArrayType(spvType, size, stride);
if (stride > 0) if (stride > 0)
builder.addDecoration(spvType, spv::DecorationArrayStride, stride); builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
stride *= size; stride *= type.getArraySizes()->getDimSize(dim);
} }
} else { } else {
// single-dimensional array, and don't yet have stride // 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); spvType = builder.makeRuntimeArray(spvType);
} else { } else {
assert(type.getOuterArraySize() > 0); assert(type.getOuterArraySize() > 0);
spvType = builder.makeArrayType(spvType, type.getOuterArraySize(), stride); spvType = builder.makeArrayType(spvType, makeArraySizeId(*type.getArraySizes(), 0), stride);
} }
if (stride > 0) if (stride > 0)
builder.addDecoration(spvType, spv::DecorationArrayStride, stride); builder.addDecoration(spvType, spv::DecorationArrayStride, stride);
@ -1819,6 +1859,26 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty
return spvType; 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: // Wrap the builder's accessChainLoad to:
// - localize handling of RelaxedPrecision // - localize handling of RelaxedPrecision
// - use the SPIR-V inferred type instead of another conversion of the glslang type // - 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 // '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. // 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). // -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) glslang::TLayoutPacking explicitLayout, glslang::TLayoutMatrix matrixLayout)
{ {
// this will get a positive value when deemed necessary // this will get a positive value when deemed necessary
@ -2169,6 +2229,24 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO
std::vector<spv::Id> operands; std::vector<spv::Id> operands;
auto opIt = arguments.begin(); auto opIt = arguments.begin();
operands.push_back(*(opIt++)); 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++)); operands.push_back(*(opIt++));
if (node->getOp() == glslang::EOpImageLoad) { if (node->getOp() == glslang::EOpImageLoad) {
if (sampler.ms) { 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 // 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; spv::Op opCode = spv::OpNop;
@ -3244,8 +3322,10 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::
case glslang::EOpMix: case glslang::EOpMix:
if (isFloat) if (isFloat)
libCall = spv::GLSLstd450FMix; libCall = spv::GLSLstd450FMix;
else else {
libCall = spv::GLSLstd450IMix; opCode = spv::OpSelect;
spv::MissingFunctionality("translating integer mix to OpSelect");
}
builder.promoteScalar(precision, operands.front(), operands.back()); builder.promoteScalar(precision, operands.front(), operands.back());
break; break;
case glslang::EOpStep: case glslang::EOpStep:
@ -3439,6 +3519,8 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
if (! symbol->getType().isStruct()) { if (! symbol->getType().isStruct()) {
addDecoration(id, TranslatePrecisionDecoration(symbol->getType())); addDecoration(id, TranslatePrecisionDecoration(symbol->getType()));
addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier())); addDecoration(id, TranslateInterpolationDecoration(symbol->getType().getQualifier()));
if (symbol->getType().getQualifier().hasSpecConstantId())
addDecoration(id, spv::DecorationSpecId, symbol->getType().getQualifier().layoutSpecConstantId);
if (symbol->getQualifier().hasLocation()) if (symbol->getQualifier().hasLocation())
builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation); builder.addDecoration(id, spv::DecorationLocation, symbol->getQualifier().layoutLocation);
if (symbol->getQualifier().hasIndex()) if (symbol->getQualifier().hasIndex())
@ -3463,8 +3545,14 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
} }
if (symbol->getQualifier().hasSet()) if (symbol->getQualifier().hasSet())
builder.addDecoration(id, spv::DecorationDescriptorSet, symbol->getQualifier().layoutSet); 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()) if (symbol->getQualifier().hasBinding())
builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding); builder.addDecoration(id, spv::DecorationBinding, symbol->getQualifier().layoutBinding);
if (symbol->getQualifier().hasAttachment())
builder.addDecoration(id, spv::DecorationInputAttachmentIndex, symbol->getQualifier().layoutAttachment);
if (glslangIntermediate->getXfbMode()) { if (glslangIntermediate->getXfbMode()) {
builder.addCapability(spv::CapabilityTransformFeedback); builder.addCapability(spv::CapabilityTransformFeedback);
if (symbol->getQualifier().hasXfbStride()) 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, // 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 // 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); assert(node.getQualifier().storage == glslang::EvqConst);
if (! node.getQualifier().specConstant) {
// hand off to the non-spec-constant path // hand off to the non-spec-constant path
assert(node.getAsConstantUnion() != nullptr || node.getAsSymbolNode() != nullptr); assert(node.getAsConstantUnion() != nullptr || node.getAsSymbolNode() != nullptr);
int nextConst = 0; 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 // 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 // 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)) { switch (spv::InstructionDesc[opCode].operands.getClass(op)) {
case spv::OperandId: case spv::OperandId:
idFn(asId(word++)); 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. //All rights reserved.
// //
@ -308,11 +309,9 @@ Id Builder::makeMatrixType(Id component, int cols, int rows)
// TODO: performance: track arrays per stride // TODO: performance: track arrays per stride
// If a stride is supplied (non-zero) make an array. // If a stride is supplied (non-zero) make an array.
// If no stride (0), reuse previous array types. // 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; Instruction* type;
if (stride == 0) { if (stride == 0) {
// try to find existing type // try to find existing type
@ -518,8 +517,12 @@ int Builder::getNumTypeConstituents(Id typeId) const
return 1; return 1;
case OpTypeVector: case OpTypeVector:
case OpTypeMatrix: case OpTypeMatrix:
case OpTypeArray:
return instr->getImmediateOperand(1); return instr->getImmediateOperand(1);
case OpTypeArray:
{
Id lengthId = instr->getImmediateOperand(1);
return module.getInstruction(lengthId)->getImmediateOperand(0);
}
case OpTypeStruct: case OpTypeStruct:
return instr->getNumOperands(); return instr->getNumOperands();
default: default:
@ -647,7 +650,9 @@ Id Builder::makeBoolConstant(bool b, bool specConstant)
Instruction* constant; Instruction* constant;
Op opcode = specConstant ? (b ? OpSpecConstantTrue : OpSpecConstantFalse) : (b ? OpConstantTrue : OpConstantFalse); 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; Id existing = 0;
for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) { for (int i = 0; i < (int)groupedConstants[OpTypeBool].size(); ++i) {
constant = groupedConstants[OpTypeBool][i]; constant = groupedConstants[OpTypeBool][i];
@ -657,6 +662,7 @@ Id Builder::makeBoolConstant(bool b, bool specConstant)
if (existing) if (existing)
return existing; return existing;
}
// Make it // Make it
Instruction* c = new Instruction(getUniqueId(), typeId, opcode); 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) Id Builder::makeIntConstant(Id typeId, unsigned value, bool specConstant)
{ {
Op opcode = specConstant ? OpSpecConstant : OpConstant; 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); Id existing = findScalarConstant(OpTypeInt, opcode, typeId, value);
if (existing) if (existing)
return existing; return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode); Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(value); c->addImmediateOperand(value);
@ -688,9 +699,14 @@ Id Builder::makeFloatConstant(float f, bool specConstant)
Op opcode = specConstant ? OpSpecConstant : OpConstant; Op opcode = specConstant ? OpSpecConstant : OpConstant;
Id typeId = makeFloatType(32); Id typeId = makeFloatType(32);
unsigned value = *(unsigned int*)&f; 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); Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value);
if (existing) if (existing)
return existing; return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode); Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(value); c->addImmediateOperand(value);
@ -708,9 +724,14 @@ Id Builder::makeDoubleConstant(double d, bool specConstant)
unsigned long long value = *(unsigned long long*)&d; unsigned long long value = *(unsigned long long*)&d;
unsigned op1 = value & 0xFFFFFFFF; unsigned op1 = value & 0xFFFFFFFF;
unsigned op2 = value >> 32; 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); Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, op1, op2);
if (existing) if (existing)
return existing; return existing;
}
Instruction* c = new Instruction(getUniqueId(), typeId, opcode); Instruction* c = new Instruction(getUniqueId(), typeId, opcode);
c->addImmediateOperand(op1); c->addImmediateOperand(op1);
@ -751,8 +772,9 @@ Id Builder::findCompositeConstant(Op typeClass, std::vector<Id>& comps) const
} }
// Comments in header // 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); assert(typeId);
Op typeClass = getTypeClass(typeId); Op typeClass = getTypeClass(typeId);
@ -767,11 +789,13 @@ Id Builder::makeCompositeConstant(Id typeId, std::vector<Id>& members)
return makeFloatConstant(0.0); return makeFloatConstant(0.0);
} }
if (! specConstant) {
Id existing = findCompositeConstant(typeClass, members); Id existing = findCompositeConstant(typeClass, members);
if (existing) if (existing)
return 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) for (int op = 0; op < (int)members.size(); ++op)
c->addIdOperand(members[op]); c->addIdOperand(members[op]);
constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c)); 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. //All rights reserved.
// //
@ -104,7 +105,7 @@ public:
Id makeStructResultType(Id type0, Id type1); Id makeStructResultType(Id type0, Id type1);
Id makeVectorType(Id component, int size); Id makeVectorType(Id component, int size);
Id makeMatrixType(Id component, int cols, int rows); 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 makeRuntimeArray(Id element);
Id makeFunctionType(Id returnType, const std::vector<Id>& paramTypes); Id makeFunctionType(Id returnType, const std::vector<Id>& paramTypes);
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format); 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); Id makeDoubleConstant(double d, bool specConstant = false);
// Turn the array of constants into a proper spv constant of the requested type. // 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. // Methods for adding information outside the CFG.
Instruction* addEntryPoint(ExecutionModel, Function*, const char* name); Instruction* addEntryPoint(ExecutionModel, Function*, const char* name);

View File

@ -473,6 +473,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
else else
out << OperandClassParams[operandClass].getName(stream[word++]); out << OperandClassParams[operandClass].getName(stream[word++]);
--numOperands; --numOperands;
break; break;
} }
} }
@ -531,7 +532,6 @@ void GLSLstd450GetDebugNames(const char** names)
names[GLSLstd450SClamp] = "SClamp"; names[GLSLstd450SClamp] = "SClamp";
names[GLSLstd450UClamp] = "UClamp"; names[GLSLstd450UClamp] = "UClamp";
names[GLSLstd450FMix] = "FMix"; names[GLSLstd450FMix] = "FMix";
names[GLSLstd450IMix] = "IMix";
names[GLSLstd450Step] = "Step"; names[GLSLstd450Step] = "Step";
names[GLSLstd450SmoothStep] = "SmoothStep"; names[GLSLstd450SmoothStep] = "SmoothStep";
names[GLSLstd450Fma] = "Fma"; 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) const char* CapabilityString(int info)
{ {
@ -775,6 +775,7 @@ const char* CapabilityString(int info)
case 54: return "GeometryStreams"; case 54: return "GeometryStreams";
case 55: return "StorageImageReadWithoutFormat"; case 55: return "StorageImageReadWithoutFormat";
case 56: return "StorageImageWriteWithoutFormat"; case 56: return "StorageImageWriteWithoutFormat";
case 57: return "MultiViewport";
case CapabilityCeiling: case CapabilityCeiling:
default: return "Bad"; default: return "Bad";
@ -1104,6 +1105,7 @@ const char* OpcodeString(int op)
case 317: return "OpNoLine"; case 317: return "OpNoLine";
case 318: return "OpAtomicFlagTestAndSet"; case 318: return "OpAtomicFlagTestAndSet";
case 319: return "OpAtomicFlagClear"; case 319: return "OpAtomicFlagClear";
case 320: return "OpImageSparseRead";
case OpcodeCeiling: case OpcodeCeiling:
default: default:
@ -1311,7 +1313,6 @@ void Parameterize()
CapabilityParams[CapabilityTessellation].caps.push_back(CapabilityShader); CapabilityParams[CapabilityTessellation].caps.push_back(CapabilityShader);
CapabilityParams[CapabilityVector16].caps.push_back(CapabilityKernel); CapabilityParams[CapabilityVector16].caps.push_back(CapabilityKernel);
CapabilityParams[CapabilityFloat16Buffer].caps.push_back(CapabilityKernel); CapabilityParams[CapabilityFloat16Buffer].caps.push_back(CapabilityKernel);
CapabilityParams[CapabilityFloat16].caps.push_back(CapabilityFloat16Buffer);
CapabilityParams[CapabilityInt64Atomics].caps.push_back(CapabilityInt64); CapabilityParams[CapabilityInt64Atomics].caps.push_back(CapabilityInt64);
CapabilityParams[CapabilityImageBasic].caps.push_back(CapabilityKernel); CapabilityParams[CapabilityImageBasic].caps.push_back(CapabilityKernel);
CapabilityParams[CapabilityImageReadWrite].caps.push_back(CapabilityImageBasic); CapabilityParams[CapabilityImageReadWrite].caps.push_back(CapabilityImageBasic);
@ -1353,6 +1354,7 @@ void Parameterize()
CapabilityParams[CapabilityGeometryStreams].caps.push_back(CapabilityGeometry); CapabilityParams[CapabilityGeometryStreams].caps.push_back(CapabilityGeometry);
CapabilityParams[CapabilityStorageImageReadWithoutFormat].caps.push_back(CapabilityShader); CapabilityParams[CapabilityStorageImageReadWithoutFormat].caps.push_back(CapabilityShader);
CapabilityParams[CapabilityStorageImageWriteWithoutFormat].caps.push_back(CapabilityShader); CapabilityParams[CapabilityStorageImageWriteWithoutFormat].caps.push_back(CapabilityShader);
CapabilityParams[CapabilityMultiViewport].caps.push_back(CapabilityGeometry);
AddressingParams[AddressingModelPhysical32].caps.push_back(CapabilityAddresses); AddressingParams[AddressingModelPhysical32].caps.push_back(CapabilityAddresses);
AddressingParams[AddressingModelPhysical64].caps.push_back(CapabilityAddresses); AddressingParams[AddressingModelPhysical64].caps.push_back(CapabilityAddresses);
@ -1362,7 +1364,7 @@ void Parameterize()
MemoryParams[MemoryModelOpenCL].caps.push_back(CapabilityKernel); MemoryParams[MemoryModelOpenCL].caps.push_back(CapabilityKernel);
MemorySemanticsParams[MemorySemanticsUniformMemoryShift].caps.push_back(CapabilityShader); 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[ExecutionModelVertex].caps.push_back(CapabilityShader);
ExecutionModelParams[ExecutionModelTessellationControl].caps.push_back(CapabilityTessellation); ExecutionModelParams[ExecutionModelTessellationControl].caps.push_back(CapabilityTessellation);
@ -1528,7 +1530,7 @@ void Parameterize()
DecorationParams[DecorationFlat].caps.push_back(CapabilityShader); DecorationParams[DecorationFlat].caps.push_back(CapabilityShader);
DecorationParams[DecorationPatch].caps.push_back(CapabilityTessellation); DecorationParams[DecorationPatch].caps.push_back(CapabilityTessellation);
DecorationParams[DecorationCentroid].caps.push_back(CapabilityShader); 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[DecorationInvariant].caps.push_back(CapabilityShader);
DecorationParams[DecorationConstant].caps.push_back(CapabilityKernel); DecorationParams[DecorationConstant].caps.push_back(CapabilityKernel);
DecorationParams[DecorationUniform].caps.push_back(CapabilityShader); DecorationParams[DecorationUniform].caps.push_back(CapabilityShader);
@ -1537,14 +1539,14 @@ void Parameterize()
DecorationParams[DecorationStream].caps.push_back(CapabilityGeometryStreams); DecorationParams[DecorationStream].caps.push_back(CapabilityGeometryStreams);
DecorationParams[DecorationLocation].caps.push_back(CapabilityShader); DecorationParams[DecorationLocation].caps.push_back(CapabilityShader);
DecorationParams[DecorationComponent].caps.push_back(CapabilityShader); DecorationParams[DecorationComponent].caps.push_back(CapabilityShader);
DecorationParams[DecorationOffset].caps.push_back(CapabilityShader);
DecorationParams[DecorationIndex].caps.push_back(CapabilityShader); DecorationParams[DecorationIndex].caps.push_back(CapabilityShader);
DecorationParams[DecorationBinding].caps.push_back(CapabilityShader); DecorationParams[DecorationBinding].caps.push_back(CapabilityShader);
DecorationParams[DecorationDescriptorSet].caps.push_back(CapabilityShader); DecorationParams[DecorationDescriptorSet].caps.push_back(CapabilityShader);
DecorationParams[DecorationXfbBuffer].caps.push_back(CapabilityTransformFeedback); DecorationParams[DecorationXfbBuffer].caps.push_back(CapabilityTransformFeedback);
DecorationParams[DecorationXfbStride].caps.push_back(CapabilityTransformFeedback); DecorationParams[DecorationXfbStride].caps.push_back(CapabilityTransformFeedback);
DecorationParams[DecorationArrayStride].caps.push_back(CapabilityShader); DecorationParams[DecorationArrayStride].caps.push_back(CapabilityShader);
DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityShader); DecorationParams[DecorationMatrixStride].caps.push_back(CapabilityMatrix);
DecorationParams[DecorationBuiltIn].caps.push_back(CapabilityShader);
DecorationParams[DecorationFuncParamAttr].caps.push_back(CapabilityKernel); DecorationParams[DecorationFuncParamAttr].caps.push_back(CapabilityKernel);
DecorationParams[DecorationFPRoundingMode].caps.push_back(CapabilityKernel); DecorationParams[DecorationFPRoundingMode].caps.push_back(CapabilityKernel);
DecorationParams[DecorationFPFastMathMode].caps.push_back(CapabilityKernel); DecorationParams[DecorationFPFastMathMode].caps.push_back(CapabilityKernel);
@ -1556,8 +1558,8 @@ void Parameterize()
BuiltInParams[BuiltInPosition].caps.push_back(CapabilityShader); BuiltInParams[BuiltInPosition].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInPointSize].caps.push_back(CapabilityShader); BuiltInParams[BuiltInPointSize].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityShader); BuiltInParams[BuiltInClipDistance].caps.push_back(CapabilityClipDistance);
BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityShader); BuiltInParams[BuiltInCullDistance].caps.push_back(CapabilityCullDistance);
BuiltInParams[BuiltInVertexId].caps.push_back(CapabilityShader); BuiltInParams[BuiltInVertexId].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInVertexId].desc = "Vertex ID, which takes on values 0, 1, 2, . . . ."; 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(CapabilityGeometry);
BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityTessellation); BuiltInParams[BuiltInInvocationId].caps.push_back(CapabilityTessellation);
BuiltInParams[BuiltInLayer].caps.push_back(CapabilityGeometry); 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[BuiltInTessLevelOuter].caps.push_back(CapabilityTessellation);
BuiltInParams[BuiltInTessLevelInner].caps.push_back(CapabilityTessellation); BuiltInParams[BuiltInTessLevelInner].caps.push_back(CapabilityTessellation);
BuiltInParams[BuiltInTessCoord].caps.push_back(CapabilityTessellation); BuiltInParams[BuiltInTessCoord].caps.push_back(CapabilityTessellation);
@ -1584,9 +1586,9 @@ void Parameterize()
BuiltInParams[BuiltInFragCoord].caps.push_back(CapabilityShader); BuiltInParams[BuiltInFragCoord].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInPointCoord].caps.push_back(CapabilityShader); BuiltInParams[BuiltInPointCoord].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInFrontFacing].caps.push_back(CapabilityShader); BuiltInParams[BuiltInFrontFacing].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInSampleId].caps.push_back(CapabilityShader); BuiltInParams[BuiltInSampleId].caps.push_back(CapabilitySampleRateShading);
BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilityShader); BuiltInParams[BuiltInSamplePosition].caps.push_back(CapabilitySampleRateShading);
BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilityShader); BuiltInParams[BuiltInSampleMask].caps.push_back(CapabilitySampleRateShading);
BuiltInParams[BuiltInFragDepth].caps.push_back(CapabilityShader); BuiltInParams[BuiltInFragDepth].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInHelperInvocation].caps.push_back(CapabilityShader); BuiltInParams[BuiltInHelperInvocation].caps.push_back(CapabilityShader);
BuiltInParams[BuiltInWorkDim].caps.push_back(CapabilityKernel); BuiltInParams[BuiltInWorkDim].caps.push_back(CapabilityKernel);
@ -1962,6 +1964,12 @@ void Parameterize()
InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "", true); InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "", true);
InstructionDesc[OpImageSparseDrefGather].capabilities.push_back(CapabilitySparseResidency); 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].operands.push(OperandId, "'Resident Code'");
InstructionDesc[OpImageSparseTexelsResident].capabilities.push_back(CapabilitySparseResidency); InstructionDesc[OpImageSparseTexelsResident].capabilities.push_back(CapabilitySparseResidency);

View File

@ -243,7 +243,7 @@ protected:
int resultPresent : 1; int resultPresent : 1;
}; };
const int OpcodeCeiling = 320; const int OpcodeCeiling = 321;
// The set of objects that hold all the instruction/operand // The set of objects that hold all the instruction/operand
// parameterization information. // 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 // Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"), // of this software and/or associated documentation files (the "Materials"),
@ -46,12 +46,12 @@ namespace spv {
typedef unsigned int Id; typedef unsigned int Id;
#define SPV_VERSION 10000 #define SPV_VERSION 0x10000
#define SPV_REVISION 2 #define SPV_REVISION 3
static const unsigned int MagicNumber = 0x07230203; static const unsigned int MagicNumber = 0x07230203;
static const unsigned int Version = 0x00010000; 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 OpCodeMask = 0xffff;
static const unsigned int WordCountShift = 16; static const unsigned int WordCountShift = 16;
@ -563,6 +563,7 @@ enum Capability {
CapabilityGeometryStreams = 54, CapabilityGeometryStreams = 54,
CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageReadWithoutFormat = 55,
CapabilityStorageImageWriteWithoutFormat = 56, CapabilityStorageImageWriteWithoutFormat = 56,
CapabilityMultiViewport = 57,
}; };
enum Op { enum Op {
@ -859,6 +860,7 @@ enum Op {
OpNoLine = 317, OpNoLine = 317,
OpAtomicFlagTestAndSet = 318, OpAtomicFlagTestAndSet = 318,
OpAtomicFlagClear = 319, OpAtomicFlagClear = 319,
OpImageSparseRead = 320,
}; };
// Overload operator| for mask bit combining // 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: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: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: '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: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'
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:13: 'uniform' : too many storage qualifiers
ERROR: 0:18: '=' : global const initializers must be constant 'const int' ERROR: 0:18: '=' : global const initializers must be constant 'const int'
ERROR: 0:20: 'const' : no qualifiers allowed for function return 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:27: '' : array size must be a constant integer expression
ERROR: 0:38: 'j' : undeclared identifier ERROR: 0:38: 'j' : undeclared identifier
ERROR: 0:38: '=' : cannot convert from 'temp float' to 'temp int' 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:85: '' : vertex input cannot be further qualified
ERROR: 0:86: 'patch' : not supported in this stage: vertex ERROR: 0:86: 'patch' : not supported in this stage: vertex
ERROR: 0:100: '=' : global const initializers must be constant 'const int' 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: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: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 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:157: 'assign' : cannot convert from 'const float' to 'temp int'
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:158: 'assign' : cannot convert from 'const float' to 'temp int' 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 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: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: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: '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: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'
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 430.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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: '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: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 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 constErrors.frag
ERROR: 0:14: 'non-constant initializer' : not supported for this version or the enabled extensions 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: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: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: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: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: 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 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 specExamples.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. 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: '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: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) 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 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 48 // Id's are bound by 49
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 36 EntryPoint Fragment 4 "main" 21 26 37
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source ESSL 310 Source ESSL 310
Name 4 "main" Name 4 "main"
Name 8 "foo(" Name 8 "foo("
@ -22,7 +22,7 @@ Linked fragment stage:
Name 17 "z" Name 17 "z"
Name 21 "low" Name 21 "low"
Name 26 "high" Name 26 "high"
Name 36 "Color" Name 37 "Color"
Decorate 8(foo() RelaxedPrecision Decorate 8(foo() RelaxedPrecision
Decorate 11(face1) RelaxedPrecision Decorate 11(face1) RelaxedPrecision
Decorate 13(face2) RelaxedPrecision Decorate 13(face2) RelaxedPrecision
@ -34,9 +34,8 @@ Linked fragment stage:
Decorate 26(high) RelaxedPrecision Decorate 26(high) RelaxedPrecision
Decorate 27 RelaxedPrecision Decorate 27 RelaxedPrecision
Decorate 32 RelaxedPrecision Decorate 32 RelaxedPrecision
Decorate 33 RelaxedPrecision Decorate 34 RelaxedPrecision
Decorate 36(Color) RelaxedPrecision Decorate 37(Color) RelaxedPrecision
Decorate 37 RelaxedPrecision
Decorate 38 RelaxedPrecision Decorate 38 RelaxedPrecision
Decorate 39 RelaxedPrecision Decorate 39 RelaxedPrecision
Decorate 40 RelaxedPrecision Decorate 40 RelaxedPrecision
@ -45,6 +44,7 @@ Linked fragment stage:
Decorate 43 RelaxedPrecision Decorate 43 RelaxedPrecision
Decorate 44 RelaxedPrecision Decorate 44 RelaxedPrecision
Decorate 45 RelaxedPrecision Decorate 45 RelaxedPrecision
Decorate 46 RelaxedPrecision
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -57,47 +57,48 @@ Linked fragment stage:
15: TypeInt 32 1 15: TypeInt 32 1
16: TypePointer Function 15(int) 16: TypePointer Function 15(int)
18: 15(int) Constant 3 18: 15(int) Constant 3
19: 15(int) Constant 2 19: 6(float) Constant 1073741824
20: TypePointer UniformConstant 15(int) 20: TypePointer Input 6(float)
21(low): 20(ptr) Variable UniformConstant 21(low): 20(ptr) Variable Input
24: 15(int) Constant 1 24: 6(float) Constant 1065353216
26(high): 20(ptr) Variable UniformConstant 26(high): 20(ptr) Variable Input
28: TypeBool 28: TypeBool
34: TypeVector 6(float) 4 33: 15(int) Constant 1
35: TypePointer Output 34(fvec4) 35: TypeVector 6(float) 4
36(Color): 35(ptr) Variable Output 36: TypePointer Output 35(fvec4)
37(Color): 36(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
17(z): 16(ptr) Variable Function 17(z): 16(ptr) Variable Function
Store 11(face1) 12 Store 11(face1) 12
Store 13(face2) 14 Store 13(face2) 14
Store 17(z) 18 Store 17(z) 18
22: 15(int) Load 21(low) 22: 6(float) Load 21(low)
23: 15(int) IMul 19 22 23: 6(float) FMul 19 22
25: 15(int) IAdd 23 24 25: 6(float) FAdd 23 24
27: 15(int) Load 26(high) 27: 6(float) Load 26(high)
29: 28(bool) SLessThan 25 27 29: 28(bool) FOrdLessThan 25 27
SelectionMerge 31 None SelectionMerge 31 None
BranchConditional 29 30 31 BranchConditional 29 30 31
30: Label 30: Label
32: 15(int) Load 17(z) 32: 15(int) Load 17(z)
33: 15(int) IAdd 32 24 34: 15(int) IAdd 32 33
Store 17(z) 33 Store 17(z) 34
Branch 31 Branch 31
31: Label 31: Label
37: 6(float) Load 11(face1) 38: 6(float) Load 11(face1)
38: 15(int) Load 17(z) 39: 15(int) Load 17(z)
39: 6(float) ConvertSToF 38 40: 6(float) ConvertSToF 39
40: 34(fvec4) CompositeConstruct 39 39 39 39 41: 35(fvec4) CompositeConstruct 40 40 40 40
41: 34(fvec4) VectorTimesScalar 40 37 42: 35(fvec4) VectorTimesScalar 41 38
42: 6(float) FunctionCall 8(foo() 43: 6(float) FunctionCall 8(foo()
43: 34(fvec4) CompositeConstruct 42 42 42 42 44: 35(fvec4) CompositeConstruct 43 43 43 43
44: 34(fvec4) FAdd 41 43 45: 35(fvec4) FAdd 42 44
Store 36(Color) 44 Store 37(Color) 45
Return Return
FunctionEnd FunctionEnd
8(foo(): 6(float) Function None 7 8(foo(): 6(float) Function None 7
9: Label 9: Label
45: 6(float) Load 13(face2) 46: 6(float) Load 13(face2)
ReturnValue 45 ReturnValue 46
FunctionEnd FunctionEnd

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -33,12 +33,22 @@ Linked compute stage:
MemberName 48(outs) 1 "va" MemberName 48(outs) 1 "va"
Name 50 "outnames" Name 50 "outnames"
Name 53 "gl_LocalInvocationID" 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 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 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 48(outs) BufferBlock
Decorate 50(outnames) DescriptorSet 0
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 66 BuiltIn WorkgroupSize Decorate 66 BuiltIn WorkgroupSize
2: TypeVoid 2: TypeVoid

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -7,13 +7,13 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 378 // Id's are bound by 215
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 16 41 90 374 EntryPoint Fragment 4 "main" 16 41 101 213
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
Name 8 "s1" Name 8 "s1"
@ -23,34 +23,47 @@ Linked fragment stage:
Name 16 "u" Name 16 "u"
Name 37 "b" Name 37 "b"
Name 41 "w" Name 41 "w"
Name 55 "s2" Name 55 "s1"
MemberName 55(s2) 0 "i" MemberName 55(s1) 0 "i"
MemberName 55(s2) 1 "f" MemberName 55(s1) 1 "f"
MemberName 55(s2) 2 "s1_1" Name 56 "s2"
Name 57 "foo2a" MemberName 56(s2) 0 "i"
Name 59 "foo2b" MemberName 56(s2) 1 "f"
Name 82 "v" MemberName 56(s2) 2 "s1_1"
Name 86 "samp2D" Name 57 "ub1"
Name 90 "coord" MemberName 57(ub1) 0 "foo2a"
Name 341 "s1" Name 59 "uName1"
MemberName 341(s1) 0 "i" Name 64 "s1"
MemberName 341(s1) 1 "f" MemberName 64(s1) 0 "i"
Name 342 "s2" MemberName 64(s1) 1 "f"
MemberName 342(s2) 0 "i" Name 65 "s2"
MemberName 342(s2) 1 "f" MemberName 65(s2) 0 "i"
MemberName 342(s2) 2 "s1_1" MemberName 65(s2) 1 "f"
Name 343 "bn" MemberName 65(s2) 2 "s1_1"
MemberName 343(bn) 0 "foo2a" Name 66 "ub2"
Name 345 "bi" MemberName 66(ub2) 0 "foo2b"
Name 374 "color" Name 68 "uName2"
Name 377 "foo1" Name 93 "v"
MemberDecorate 341(s1) 0 Offset 0 Name 97 "samp2D"
MemberDecorate 341(s1) 1 Offset 4 Name 101 "coord"
MemberDecorate 342(s2) 0 Offset 0 Name 213 "color"
MemberDecorate 342(s2) 1 Offset 4 MemberDecorate 55(s1) 0 Offset 0
MemberDecorate 342(s2) 2 Offset 16 MemberDecorate 55(s1) 1 Offset 4
MemberDecorate 343(bn) 0 Offset 0 MemberDecorate 56(s2) 0 Offset 0
Decorate 343(bn) Block 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 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -74,44 +87,43 @@ Linked fragment stage:
39: 7(float) Constant 1099431936 39: 7(float) Constant 1099431936
40: 8(s1) ConstantComposite 38 39 40: 8(s1) ConstantComposite 38 39
41(w): 15(ptr) Variable Input 41(w): 15(ptr) Variable Input
55(s2): TypeStruct 6(int) 7(float) 8(s1) 55(s1): TypeStruct 6(int) 7(float)
56: TypePointer UniformConstant 55(s2) 56(s2): TypeStruct 6(int) 7(float) 55(s1)
57(foo2a): 56(ptr) Variable UniformConstant 57(ub1): TypeStruct 56(s2)
59(foo2b): 56(ptr) Variable UniformConstant 58: TypePointer Uniform 57(ub1)
61: TypeBool 59(uName1): 58(ptr) Variable Uniform
81: TypePointer Function 14(fvec4) 60: 6(int) Constant 0
83: TypeImage 7(float) 2D sampled format:Unknown 61: TypePointer Uniform 56(s2)
84: TypeSampledImage 83 64(s1): TypeStruct 6(int) 7(float)
85: TypePointer UniformConstant 84 65(s2): TypeStruct 6(int) 7(float) 64(s1)
86(samp2D): 85(ptr) Variable UniformConstant 66(ub2): TypeStruct 65(s2)
88: TypeVector 7(float) 2 67: TypePointer Uniform 66(ub2)
89: TypePointer Input 88(fvec2) 68(uName2): 67(ptr) Variable Uniform
90(coord): 89(ptr) Variable Input 69: TypePointer Uniform 65(s2)
95: 7(float) Constant 1073741824 72: TypeBool
101: TypeVector 61(bool) 4 92: TypePointer Function 14(fvec4)
106: 7(float) Constant 1077936128 94: TypeImage 7(float) 2D sampled format:Unknown
115: 7(float) Constant 1082130432 95: TypeSampledImage 94
121: TypeVector 61(bool) 2 96: TypePointer UniformConstant 95
126: 7(float) Constant 1084227584 97(samp2D): 96(ptr) Variable UniformConstant
232: 7(float) Constant 1086324736 99: TypeVector 7(float) 2
338: 7(float) Constant 1088421888 100: TypePointer Input 99(fvec2)
341(s1): TypeStruct 6(int) 7(float) 101(coord): 100(ptr) Variable Input
342(s2): TypeStruct 6(int) 7(float) 341(s1) 106: 7(float) Constant 1073741824
343(bn): TypeStruct 342(s2) 112: TypeVector 72(bool) 4
344: TypePointer Uniform 343(bn) 117: 7(float) Constant 1077936128
345(bi): 344(ptr) Variable Uniform 126: 7(float) Constant 1082130432
346: 6(int) Constant 0 132: TypeVector 72(bool) 2
347: TypePointer Uniform 342(s2) 137: 7(float) Constant 1084227584
370: 7(float) Constant 1090519040 173: 7(float) Constant 1086324736
373: TypePointer Output 14(fvec4) 209: 7(float) Constant 1088421888
374(color): 373(ptr) Variable Output 212: TypePointer Output 14(fvec4)
376: TypePointer UniformConstant 8(s1) 213(color): 212(ptr) Variable Output
377(foo1): 376(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
13(a): 12(ptr) Variable Function 13(a): 12(ptr) Variable Function
37(b): 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 19: 18(ptr) AccessChain 16(u) 17
20: 7(float) Load 19 20: 7(float) Load 19
21: 6(int) ConvertFToS 20 21: 6(int) ConvertFToS 20
@ -140,325 +152,159 @@ Linked fragment stage:
53: 8(s1) CompositeConstruct 50 52 53: 8(s1) CompositeConstruct 50 52
54: 11 CompositeConstruct 40 47 53 54: 11 CompositeConstruct 40 47 53
Store 37(b) 54 Store 37(b) 54
58: 55(s2) Load 57(foo2a) 62: 61(ptr) AccessChain 59(uName1) 60
60: 55(s2) Load 59(foo2b) 63: 56(s2) Load 62
62: 6(int) CompositeExtract 58 0 70: 69(ptr) AccessChain 68(uName2) 60
63: 6(int) CompositeExtract 60 0 71: 65(s2) Load 70
64: 61(bool) IEqual 62 63 73: 6(int) CompositeExtract 63 0
65: 7(float) CompositeExtract 58 1 74: 6(int) CompositeExtract 71 0
66: 7(float) CompositeExtract 60 1 75: 72(bool) IEqual 73 74
67: 61(bool) FOrdEqual 65 66 76: 7(float) CompositeExtract 63 1
68: 61(bool) LogicalAnd 64 67 77: 7(float) CompositeExtract 71 1
69: 8(s1) CompositeExtract 58 2 78: 72(bool) FOrdEqual 76 77
70: 8(s1) CompositeExtract 60 2 79: 72(bool) LogicalAnd 75 78
71: 6(int) CompositeExtract 69 0 80: 55(s1) CompositeExtract 63 2
72: 6(int) CompositeExtract 70 0 81: 64(s1) CompositeExtract 71 2
73: 61(bool) IEqual 71 72 82: 6(int) CompositeExtract 80 0
74: 7(float) CompositeExtract 69 1 83: 6(int) CompositeExtract 81 0
75: 7(float) CompositeExtract 70 1 84: 72(bool) IEqual 82 83
76: 61(bool) FOrdEqual 74 75 85: 7(float) CompositeExtract 80 1
77: 61(bool) LogicalAnd 73 76 86: 7(float) CompositeExtract 81 1
78: 61(bool) LogicalAnd 68 77 87: 72(bool) FOrdEqual 85 86
SelectionMerge 80 None 88: 72(bool) LogicalAnd 84 87
BranchConditional 78 79 93 89: 72(bool) LogicalAnd 79 88
79: Label SelectionMerge 91 None
87: 84 Load 86(samp2D) BranchConditional 89 90 104
91: 88(fvec2) Load 90(coord) 90: Label
92: 14(fvec4) ImageSampleImplicitLod 87 91 98: 95 Load 97(samp2D)
Store 82(v) 92 102: 99(fvec2) Load 101(coord)
Branch 80 103: 14(fvec4) ImageSampleImplicitLod 98 102
93: Label Store 93(v) 103
94: 84 Load 86(samp2D) Branch 91
96: 88(fvec2) Load 90(coord)
97: 88(fvec2) VectorTimesScalar 96 95
98: 14(fvec4) ImageSampleImplicitLod 94 97
Store 82(v) 98
Branch 80
80: Label
99: 14(fvec4) Load 16(u)
100: 14(fvec4) Load 82(v)
102: 101(bvec4) FOrdEqual 99 100
103: 61(bool) All 102
SelectionMerge 105 None
BranchConditional 103 104 105
104: Label 104: Label
107: 14(fvec4) Load 82(v) 105: 95 Load 97(samp2D)
108: 14(fvec4) VectorTimesScalar 107 106 107: 99(fvec2) Load 101(coord)
Store 82(v) 108 108: 99(fvec2) VectorTimesScalar 107 106
Branch 105 109: 14(fvec4) ImageSampleImplicitLod 105 108
105: Label Store 93(v) 109
109: 14(fvec4) Load 16(u) Branch 91
110: 14(fvec4) Load 82(v) 91: Label
111: 101(bvec4) FOrdNotEqual 109 110 110: 14(fvec4) Load 16(u)
112: 61(bool) Any 111 111: 14(fvec4) Load 93(v)
SelectionMerge 114 None 113: 112(bvec4) FOrdEqual 110 111
BranchConditional 112 113 114 114: 72(bool) All 113
113: Label SelectionMerge 116 None
116: 14(fvec4) Load 82(v) BranchConditional 114 115 116
117: 14(fvec4) VectorTimesScalar 116 115 115: Label
Store 82(v) 117 118: 14(fvec4) Load 93(v)
Branch 114 119: 14(fvec4) VectorTimesScalar 118 117
114: Label Store 93(v) 119
118: 88(fvec2) Load 90(coord) Branch 116
119: 14(fvec4) Load 82(v) 116: Label
120: 88(fvec2) VectorShuffle 119 119 1 3 120: 14(fvec4) Load 16(u)
122: 121(bvec2) FOrdEqual 118 120 121: 14(fvec4) Load 93(v)
123: 61(bool) All 122 122: 112(bvec4) FOrdNotEqual 120 121
123: 72(bool) Any 122
SelectionMerge 125 None SelectionMerge 125 None
BranchConditional 123 124 125 BranchConditional 123 124 125
124: Label 124: Label
127: 14(fvec4) Load 82(v) 127: 14(fvec4) Load 93(v)
128: 14(fvec4) VectorTimesScalar 127 126 128: 14(fvec4) VectorTimesScalar 127 126
Store 82(v) 128 Store 93(v) 128
Branch 125 Branch 125
125: Label 125: Label
129: 11 Load 13(a) 129: 99(fvec2) Load 101(coord)
130: 11 Load 37(b) 130: 14(fvec4) Load 93(v)
131: 8(s1) CompositeExtract 129 0 131: 99(fvec2) VectorShuffle 130 130 1 3
132: 8(s1) CompositeExtract 130 0 133: 132(bvec2) FOrdEqual 129 131
133: 6(int) CompositeExtract 131 0 134: 72(bool) All 133
134: 6(int) CompositeExtract 132 0 SelectionMerge 136 None
135: 61(bool) IEqual 133 134 BranchConditional 134 135 136
136: 7(float) CompositeExtract 131 1 135: Label
137: 7(float) CompositeExtract 132 1 138: 14(fvec4) Load 93(v)
138: 61(bool) FOrdEqual 136 137 139: 14(fvec4) VectorTimesScalar 138 137
139: 61(bool) LogicalAnd 135 138 Store 93(v) 139
140: 8(s1) CompositeExtract 129 1 Branch 136
141: 8(s1) CompositeExtract 130 1 136: Label
142: 6(int) CompositeExtract 140 0 140: 11 Load 13(a)
143: 6(int) CompositeExtract 141 0 141: 11 Load 37(b)
144: 61(bool) IEqual 142 143 142: 8(s1) CompositeExtract 140 0
145: 7(float) CompositeExtract 140 1 143: 8(s1) CompositeExtract 141 0
146: 7(float) CompositeExtract 141 1 144: 6(int) CompositeExtract 142 0
147: 61(bool) FOrdEqual 145 146 145: 6(int) CompositeExtract 143 0
148: 61(bool) LogicalAnd 144 147 146: 72(bool) IEqual 144 145
149: 61(bool) LogicalAnd 139 148 147: 7(float) CompositeExtract 142 1
150: 8(s1) CompositeExtract 129 2 148: 7(float) CompositeExtract 143 1
151: 8(s1) CompositeExtract 130 2 149: 72(bool) FOrdEqual 147 148
152: 6(int) CompositeExtract 150 0 150: 72(bool) LogicalAnd 146 149
151: 8(s1) CompositeExtract 140 1
152: 8(s1) CompositeExtract 141 1
153: 6(int) CompositeExtract 151 0 153: 6(int) CompositeExtract 151 0
154: 61(bool) IEqual 152 153 154: 6(int) CompositeExtract 152 0
155: 7(float) CompositeExtract 150 1 155: 72(bool) IEqual 153 154
156: 7(float) CompositeExtract 151 1 156: 7(float) CompositeExtract 151 1
157: 61(bool) FOrdEqual 155 156 157: 7(float) CompositeExtract 152 1
158: 61(bool) LogicalAnd 154 157 158: 72(bool) FOrdEqual 156 157
159: 61(bool) LogicalAnd 149 158 159: 72(bool) LogicalAnd 155 158
160: 8(s1) CompositeExtract 129 3 160: 72(bool) LogicalAnd 150 159
161: 8(s1) CompositeExtract 130 3 161: 8(s1) CompositeExtract 140 2
162: 6(int) CompositeExtract 160 0 162: 8(s1) CompositeExtract 141 2
163: 6(int) CompositeExtract 161 0 163: 6(int) CompositeExtract 161 0
164: 61(bool) IEqual 162 163 164: 6(int) CompositeExtract 162 0
165: 7(float) CompositeExtract 160 1 165: 72(bool) IEqual 163 164
166: 7(float) CompositeExtract 161 1 166: 7(float) CompositeExtract 161 1
167: 61(bool) FOrdEqual 165 166 167: 7(float) CompositeExtract 162 1
168: 61(bool) LogicalAnd 164 167 168: 72(bool) FOrdEqual 166 167
169: 61(bool) LogicalAnd 159 168 169: 72(bool) LogicalAnd 165 168
170: 8(s1) CompositeExtract 129 4 170: 72(bool) LogicalAnd 160 169
171: 8(s1) CompositeExtract 130 4 SelectionMerge 172 None
172: 6(int) CompositeExtract 170 0 BranchConditional 170 171 172
173: 6(int) CompositeExtract 171 0 171: Label
174: 61(bool) IEqual 172 173 174: 14(fvec4) Load 93(v)
175: 7(float) CompositeExtract 170 1 175: 14(fvec4) VectorTimesScalar 174 173
176: 7(float) CompositeExtract 171 1 Store 93(v) 175
177: 61(bool) FOrdEqual 175 176 Branch 172
178: 61(bool) LogicalAnd 174 177 172: Label
179: 61(bool) LogicalAnd 169 178 176: 11 Load 13(a)
180: 8(s1) CompositeExtract 129 5 177: 11 Load 37(b)
181: 8(s1) CompositeExtract 130 5 178: 8(s1) CompositeExtract 176 0
182: 6(int) CompositeExtract 180 0 179: 8(s1) CompositeExtract 177 0
183: 6(int) CompositeExtract 181 0 180: 6(int) CompositeExtract 178 0
184: 61(bool) IEqual 182 183 181: 6(int) CompositeExtract 179 0
185: 7(float) CompositeExtract 180 1 182: 72(bool) INotEqual 180 181
186: 7(float) CompositeExtract 181 1 183: 7(float) CompositeExtract 178 1
187: 61(bool) FOrdEqual 185 186 184: 7(float) CompositeExtract 179 1
188: 61(bool) LogicalAnd 184 187 185: 72(bool) FOrdNotEqual 183 184
189: 61(bool) LogicalAnd 179 188 186: 72(bool) LogicalOr 182 185
190: 8(s1) CompositeExtract 129 6 187: 8(s1) CompositeExtract 176 1
191: 8(s1) CompositeExtract 130 6 188: 8(s1) CompositeExtract 177 1
192: 6(int) CompositeExtract 190 0 189: 6(int) CompositeExtract 187 0
193: 6(int) CompositeExtract 191 0 190: 6(int) CompositeExtract 188 0
194: 61(bool) IEqual 192 193 191: 72(bool) INotEqual 189 190
195: 7(float) CompositeExtract 190 1 192: 7(float) CompositeExtract 187 1
196: 7(float) CompositeExtract 191 1 193: 7(float) CompositeExtract 188 1
197: 61(bool) FOrdEqual 195 196 194: 72(bool) FOrdNotEqual 192 193
198: 61(bool) LogicalAnd 194 197 195: 72(bool) LogicalOr 191 194
199: 61(bool) LogicalAnd 189 198 196: 72(bool) LogicalOr 186 195
200: 8(s1) CompositeExtract 129 7 197: 8(s1) CompositeExtract 176 2
201: 8(s1) CompositeExtract 130 7 198: 8(s1) CompositeExtract 177 2
202: 6(int) CompositeExtract 200 0 199: 6(int) CompositeExtract 197 0
203: 6(int) CompositeExtract 201 0 200: 6(int) CompositeExtract 198 0
204: 61(bool) IEqual 202 203 201: 72(bool) INotEqual 199 200
205: 7(float) CompositeExtract 200 1 202: 7(float) CompositeExtract 197 1
206: 7(float) CompositeExtract 201 1 203: 7(float) CompositeExtract 198 1
207: 61(bool) FOrdEqual 205 206 204: 72(bool) FOrdNotEqual 202 203
208: 61(bool) LogicalAnd 204 207 205: 72(bool) LogicalOr 201 204
209: 61(bool) LogicalAnd 199 208 206: 72(bool) LogicalOr 196 205
210: 8(s1) CompositeExtract 129 8 SelectionMerge 208 None
211: 8(s1) CompositeExtract 130 8 BranchConditional 206 207 208
212: 6(int) CompositeExtract 210 0 207: Label
213: 6(int) CompositeExtract 211 0 210: 14(fvec4) Load 93(v)
214: 61(bool) IEqual 212 213 211: 14(fvec4) VectorTimesScalar 210 209
215: 7(float) CompositeExtract 210 1 Store 93(v) 211
216: 7(float) CompositeExtract 211 1 Branch 208
217: 61(bool) FOrdEqual 215 216 208: Label
218: 61(bool) LogicalAnd 214 217 214: 14(fvec4) Load 93(v)
219: 61(bool) LogicalAnd 209 218 Store 213(color) 214
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
Return Return
FunctionEnd FunctionEnd

View File

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

View File

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

View File

@ -1,132 +1,205 @@
spv.atomic.comp spv.atomic.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. 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: Linked compute stage:
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class? Shader version: 310
// Module Version 10000 Requested GL_ARB_gl_spirv
// Generated by (magic number): 80001 local_size = (1, 1, 1)
// Id's are bound by 75 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 Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 154 EntryPoint Fragment 4 "main" 14 26 37 48 89 98 107 116 122 130 139 148 154
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
Name 9 "idata" Name 9 "idata"
@ -32,6 +32,14 @@ Linked fragment stage:
Name 139 "u3" Name 139 "u3"
Name 148 "u4" Name 148 "u4"
Name 154 "fragColor" 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 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -40,22 +48,22 @@ Linked fragment stage:
10: 6(int) Constant 0 10: 6(int) Constant 0
11: 7(ivec4) ConstantComposite 10 10 10 10 11: 7(ivec4) ConstantComposite 10 10 10 10
12: TypeFloat 32 12: TypeFloat 32
13: TypePointer UniformConstant 12(float) 13: TypePointer Input 12(float)
14(f1): 13(ptr) Variable UniformConstant 14(f1): 13(ptr) Variable Input
17: TypeInt 32 0 17: TypeInt 32 0
18: 17(int) Constant 0 18: 17(int) Constant 0
19: TypePointer Function 6(int) 19: TypePointer Function 6(int)
24: TypeVector 12(float) 2 24: TypeVector 12(float) 2
25: TypePointer UniformConstant 24(fvec2) 25: TypePointer Input 24(fvec2)
26(f2): 25(ptr) Variable UniformConstant 26(f2): 25(ptr) Variable Input
28: TypeVector 6(int) 2 28: TypeVector 6(int) 2
35: TypeVector 12(float) 3 35: TypeVector 12(float) 3
36: TypePointer UniformConstant 35(fvec3) 36: TypePointer Input 35(fvec3)
37(f3): 36(ptr) Variable UniformConstant 37(f3): 36(ptr) Variable Input
39: TypeVector 6(int) 3 39: TypeVector 6(int) 3
46: TypeVector 12(float) 4 46: TypeVector 12(float) 4
47: TypePointer UniformConstant 46(fvec4) 47: TypePointer Input 46(fvec4)
48(f4): 47(ptr) Variable UniformConstant 48(f4): 47(ptr) Variable Input
53: TypeVector 17(int) 4 53: TypeVector 17(int) 4
54: TypePointer Function 53(ivec4) 54: TypePointer Function 53(ivec4)
56: 53(ivec4) ConstantComposite 18 18 18 18 56: 53(ivec4) ConstantComposite 18 18 18 18
@ -65,23 +73,23 @@ Linked fragment stage:
84: TypePointer Function 46(fvec4) 84: TypePointer Function 46(fvec4)
86: 12(float) Constant 0 86: 12(float) Constant 0
87: 46(fvec4) ConstantComposite 86 86 86 86 87: 46(fvec4) ConstantComposite 86 86 86 86
88: TypePointer UniformConstant 6(int) 88: TypePointer Input 6(int)
89(i1): 88(ptr) Variable UniformConstant 89(i1): 88(ptr) Variable Input
92: TypePointer Function 12(float) 92: TypePointer Function 12(float)
97: TypePointer UniformConstant 28(ivec2) 97: TypePointer Input 28(ivec2)
98(i2): 97(ptr) Variable UniformConstant 98(i2): 97(ptr) Variable Input
106: TypePointer UniformConstant 39(ivec3) 106: TypePointer Input 39(ivec3)
107(i3): 106(ptr) Variable UniformConstant 107(i3): 106(ptr) Variable Input
115: TypePointer UniformConstant 7(ivec4) 115: TypePointer Input 7(ivec4)
116(i4): 115(ptr) Variable UniformConstant 116(i4): 115(ptr) Variable Input
121: TypePointer UniformConstant 17(int) 121: TypePointer Input 17(int)
122(u1): 121(ptr) Variable UniformConstant 122(u1): 121(ptr) Variable Input
129: TypePointer UniformConstant 65(ivec2) 129: TypePointer Input 65(ivec2)
130(u2): 129(ptr) Variable UniformConstant 130(u2): 129(ptr) Variable Input
138: TypePointer UniformConstant 73(ivec3) 138: TypePointer Input 73(ivec3)
139(u3): 138(ptr) Variable UniformConstant 139(u3): 138(ptr) Variable Input
147: TypePointer UniformConstant 53(ivec4) 147: TypePointer Input 53(ivec4)
148(u4): 147(ptr) Variable UniformConstant 148(u4): 147(ptr) Variable Input
153: TypePointer Output 46(fvec4) 153: TypePointer Output 46(fvec4)
154(fragColor): 153(ptr) Variable Output 154(fragColor): 153(ptr) Variable Output
159: TypeBool 159: TypeBool

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -5,64 +5,36 @@ Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 188 // Id's are bound by 158
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 141 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 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 9 "color" Name 9 "color"
Name 11 "BaseColor" Name 11 "BaseColor"
Name 18 "bigColor4" Name 17 "bigColor4"
Name 28 "d4" Name 27 "d4"
Name 81 "d13" Name 80 "d13"
Name 141 "gl_FragColor" Name 140 "gl_FragColor"
Name 143 "bigColor" Name 142 "bigColor"
Name 144 "bigColor1_1" Name 143 "bigColor1_1"
Name 145 "bigColor1_2" Name 144 "bigColor1_2"
Name 146 "bigColor1_3" Name 145 "bigColor1_3"
Name 147 "bigColor2" Name 146 "bigColor2"
Name 148 "bigColor3" Name 147 "bigColor3"
Name 149 "bigColor5" Name 148 "bigColor5"
Name 150 "bigColor6" Name 149 "bigColor6"
Name 151 "bigColor7" Name 150 "bigColor7"
Name 152 "bigColor8" Name 151 "bigColor8"
Name 153 "d" Name 152 "d"
Name 154 "d2" Name 153 "d2"
Name 155 "d3" Name 154 "d3"
Name 156 "d5" Name 157 "Count"
Name 157 "d6" Decorate 157(Count) Flat
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"
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -70,67 +42,37 @@ Linked fragment stage:
8: TypePointer Function 7(fvec4) 8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4) 10: TypePointer Input 7(fvec4)
11(BaseColor): 10(ptr) Variable Input 11(BaseColor): 10(ptr) Variable Input
17: TypePointer UniformConstant 7(fvec4) 17(bigColor4): 10(ptr) Variable Input
18(bigColor4): 17(ptr) Variable UniformConstant 21: TypeInt 32 0
22: TypeInt 32 0 22: 21(int) Constant 0
23: 22(int) Constant 0 23: TypePointer Function 6(float)
24: TypePointer Function 6(float) 26: TypePointer Input 6(float)
27: TypePointer UniformConstant 6(float) 27(d4): 26(ptr) Variable Input
28(d4): 27(ptr) Variable UniformConstant 29: TypeBool
30: TypeBool 33: 6(float) Constant 1073741824
34: 6(float) Constant 1073741824 34: 21(int) Constant 2
35: 22(int) Constant 2 47: 6(float) Constant 1065353216
48: 6(float) Constant 1065353216 50: 21(int) Constant 1
51: 22(int) Constant 1 77: 21(int) Constant 3
78: 22(int) Constant 3 80(d13): 26(ptr) Variable Input
81(d13): 27(ptr) Variable UniformConstant 139: TypePointer Output 7(fvec4)
140: TypePointer Output 7(fvec4) 140(gl_FragColor): 139(ptr) Variable Output
141(gl_FragColor): 140(ptr) Variable Output 142(bigColor): 10(ptr) Variable Input
143(bigColor): 17(ptr) Variable UniformConstant 143(bigColor1_1): 10(ptr) Variable Input
144(bigColor1_1): 17(ptr) Variable UniformConstant 144(bigColor1_2): 10(ptr) Variable Input
145(bigColor1_2): 17(ptr) Variable UniformConstant 145(bigColor1_3): 10(ptr) Variable Input
146(bigColor1_3): 17(ptr) Variable UniformConstant 146(bigColor2): 10(ptr) Variable Input
147(bigColor2): 17(ptr) Variable UniformConstant 147(bigColor3): 10(ptr) Variable Input
148(bigColor3): 17(ptr) Variable UniformConstant 148(bigColor5): 10(ptr) Variable Input
149(bigColor5): 17(ptr) Variable UniformConstant 149(bigColor6): 10(ptr) Variable Input
150(bigColor6): 17(ptr) Variable UniformConstant 150(bigColor7): 10(ptr) Variable Input
151(bigColor7): 17(ptr) Variable UniformConstant 151(bigColor8): 10(ptr) Variable Input
152(bigColor8): 17(ptr) Variable UniformConstant 152(d): 26(ptr) Variable Input
153(d): 27(ptr) Variable UniformConstant 153(d2): 26(ptr) Variable Input
154(d2): 27(ptr) Variable UniformConstant 154(d3): 26(ptr) Variable Input
155(d3): 27(ptr) Variable UniformConstant 155: TypeInt 32 1
156(d5): 27(ptr) Variable UniformConstant 156: TypePointer Input 155(int)
157(d6): 27(ptr) Variable UniformConstant 157(Count): 156(ptr) Variable Input
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
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
9(color): 8(ptr) Variable Function 9(color): 8(ptr) Variable Function
@ -141,161 +83,161 @@ Linked fragment stage:
LoopMerge 15 16 None LoopMerge 15 16 None
Branch 14 Branch 14
14: Label 14: Label
19: 7(fvec4) Load 18(bigColor4) 18: 7(fvec4) Load 17(bigColor4)
20: 7(fvec4) Load 9(color) 19: 7(fvec4) Load 9(color)
21: 7(fvec4) FAdd 20 19 20: 7(fvec4) FAdd 19 18
Store 9(color) 21 Store 9(color) 20
25: 24(ptr) AccessChain 9(color) 23 24: 23(ptr) AccessChain 9(color) 22
26: 6(float) Load 25 25: 6(float) Load 24
29: 6(float) Load 28(d4) 28: 6(float) Load 27(d4)
31: 30(bool) FOrdLessThan 26 29 30: 29(bool) FOrdLessThan 25 28
SelectionMerge 33 None SelectionMerge 32 None
BranchConditional 31 32 33 BranchConditional 30 31 32
32: Label 31: Label
36: 24(ptr) AccessChain 9(color) 35 35: 23(ptr) AccessChain 9(color) 34
37: 6(float) Load 36 36: 6(float) Load 35
38: 6(float) FAdd 37 34 37: 6(float) FAdd 36 33
39: 24(ptr) AccessChain 9(color) 35 38: 23(ptr) AccessChain 9(color) 34
Store 39 38 Store 38 37
40: 24(ptr) AccessChain 9(color) 35 39: 23(ptr) AccessChain 9(color) 34
41: 6(float) Load 40 40: 6(float) Load 39
42: 6(float) Load 28(d4) 41: 6(float) Load 27(d4)
43: 30(bool) FOrdLessThan 41 42 42: 29(bool) FOrdLessThan 40 41
SelectionMerge 45 None SelectionMerge 44 None
BranchConditional 43 44 45 BranchConditional 42 43 44
44: Label 43: Label
46: 24(ptr) AccessChain 9(color) 23 45: 23(ptr) AccessChain 9(color) 22
47: 6(float) Load 46 46: 6(float) Load 45
49: 6(float) FAdd 47 48 48: 6(float) FAdd 46 47
Store 46 49 Store 45 48
Branch 16 Branch 16
45: Label 44: Label
Branch 33 Branch 32
33: Label 32: Label
52: 24(ptr) AccessChain 9(color) 51 51: 23(ptr) AccessChain 9(color) 50
53: 6(float) Load 52 52: 6(float) Load 51
54: 6(float) Load 28(d4) 53: 6(float) Load 27(d4)
55: 30(bool) FOrdLessThan 53 54 54: 29(bool) FOrdLessThan 52 53
SelectionMerge 57 None SelectionMerge 56 None
BranchConditional 55 56 63 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 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 Branch 16
16: Label 16: Label
69: 24(ptr) AccessChain 9(color) 35 68: 23(ptr) AccessChain 9(color) 34
70: 6(float) Load 69 69: 6(float) Load 68
71: 6(float) Load 28(d4) 70: 6(float) Load 27(d4)
72: 30(bool) FOrdLessThan 70 71 71: 29(bool) FOrdLessThan 69 70
BranchConditional 72 13 15 BranchConditional 71 13 15
15: Label 15: Label
Branch 73 Branch 72
73: Label 72: Label
LoopMerge 75 76 None LoopMerge 74 75 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 76 Branch 76
76: Label 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 75: Label
137: 7(fvec4) Load 9(color) Branch 72
138: 7(fvec4) CompositeConstruct 48 48 48 48 74: Label
139: 7(fvec4) FAdd 137 138 136: 7(fvec4) Load 9(color)
Store 9(color) 139 137: 7(fvec4) CompositeConstruct 47 47 47 47
142: 7(fvec4) Load 9(color) 138: 7(fvec4) FAdd 136 137
Store 141(gl_FragColor) 142 Store 9(color) 138
141: 7(fvec4) Load 9(color)
Store 140(gl_FragColor) 141
Return Return
FunctionEnd FunctionEnd

View File

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

View File

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

View File

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

View File

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

View File

@ -16,7 +16,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277 EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 430 Source GLSL 430
Name 4 "main" Name 4 "main"
Name 9 "v" Name 9 "v"
@ -49,9 +49,27 @@ Linked fragment stage:
Name 271 "usCube" Name 271 "usCube"
Name 275 "us2DArray" Name 275 "us2DArray"
Name 277 "ic4D" 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 81(ic3D) Flat
Decorate 84(ic1D) Flat Decorate 84(ic1D) Flat
Decorate 91(ic2D) 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 Decorate 277(ic4D) Flat
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -16,8 +16,8 @@ Linked fragment stage:
Capability SampledCubeArray Capability SampledCubeArray
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 345 EntryPoint Fragment 4 "main" 33 36 51 95 345
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 450 Source GLSL 450
SourceExtension "GL_ARB_sparse_texture_clamp" SourceExtension "GL_ARB_sparse_texture_clamp"
Name 4 "main" Name 4 "main"
@ -45,6 +45,17 @@ Linked fragment stage:
Name 286 "s2DRectShadow" Name 286 "s2DRectShadow"
Name 305 "is2DArray" Name 305 "is2DArray"
Name 345 "outColor" 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 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -68,18 +79,18 @@ Linked fragment stage:
28: TypePointer UniformConstant 27 28: TypePointer UniformConstant 27
29(s2D): 28(ptr) Variable UniformConstant 29(s2D): 28(ptr) Variable UniformConstant
31: TypeVector 10(float) 2 31: TypeVector 10(float) 2
32: TypePointer UniformConstant 31(fvec2) 32: TypePointer Input 31(fvec2)
33(c2): 32(ptr) Variable UniformConstant 33(c2): 32(ptr) Variable Input
35: TypePointer UniformConstant 10(float) 35: TypePointer Input 10(float)
36(lodClamp): 35(ptr) Variable UniformConstant 36(lodClamp): 35(ptr) Variable Input
38(ResType): TypeStruct 6(int) 11(fvec4) 38(ResType): TypeStruct 6(int) 11(fvec4)
44: TypeImage 10(float) 3D sampled format:Unknown 44: TypeImage 10(float) 3D sampled format:Unknown
45: TypeSampledImage 44 45: TypeSampledImage 44
46: TypePointer UniformConstant 45 46: TypePointer UniformConstant 45
47(s3D): 46(ptr) Variable UniformConstant 47(s3D): 46(ptr) Variable UniformConstant
49: TypeVector 10(float) 3 49: TypeVector 10(float) 3
50: TypePointer UniformConstant 49(fvec3) 50: TypePointer Input 49(fvec3)
51(c3): 50(ptr) Variable UniformConstant 51(c3): 50(ptr) Variable Input
54: 10(float) Constant 1073741824 54: 10(float) Constant 1073741824
60: TypeImage 6(int) Cube sampled format:Unknown 60: TypeImage 6(int) Cube sampled format:Unknown
61: TypeSampledImage 60 61: TypeSampledImage 60
@ -96,8 +107,8 @@ Linked fragment stage:
90: TypeSampledImage 89 90: TypeSampledImage 89
91: TypePointer UniformConstant 90 91: TypePointer UniformConstant 90
92(sCubeArrayShadow): 91(ptr) Variable UniformConstant 92(sCubeArrayShadow): 91(ptr) Variable UniformConstant
94: TypePointer UniformConstant 11(fvec4) 94: TypePointer Input 11(fvec4)
95(c4): 94(ptr) Variable UniformConstant 95(c4): 94(ptr) Variable Input
97: 10(float) Constant 1065353216 97: 10(float) Constant 1065353216
142: TypeVector 6(int) 3 142: TypeVector 6(int) 3
143: 6(int) Constant 2 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" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 31 44 EntryPoint Fragment 4 "main" 31 44
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 8 "lunarStruct1" Name 8 "lunarStruct1"
@ -33,6 +33,7 @@ Linked fragment stage:
Name 40 "samp2D" Name 40 "samp2D"
Name 44 "coord" Name 44 "coord"
Name 49 "foo" Name 49 "foo"
Decorate 40(samp2D) DescriptorSet 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -40,14 +41,14 @@ Linked fragment stage:
8(lunarStruct1): TypeStruct 6(int) 7(float) 8(lunarStruct1): TypeStruct 6(int) 7(float)
9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1) 9(lunarStruct2): TypeStruct 6(int) 7(float) 8(lunarStruct1)
10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1) 10(lunarStruct3): TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)
11: TypePointer UniformConstant 10(lunarStruct3) 11: TypePointer Private 10(lunarStruct3)
12(foo3): 11(ptr) Variable UniformConstant 12(foo3): 11(ptr) Variable Private
13: 6(int) Constant 0 13: 6(int) Constant 0
14: TypePointer UniformConstant 6(int) 14: TypePointer Private 6(int)
17: TypeBool 17: TypeBool
21: TypePointer Function 9(lunarStruct2) 21: TypePointer Function 9(lunarStruct2)
23: TypePointer UniformConstant 9(lunarStruct2) 23: TypePointer Private 9(lunarStruct2)
27(foo2): 23(ptr) Variable UniformConstant 27(foo2): 23(ptr) Variable Private
29: TypeVector 7(float) 4 29: TypeVector 7(float) 4
30: TypePointer Output 29(fvec4) 30: TypePointer Output 29(fvec4)
31(gl_FragColor): 30(ptr) Variable Output 31(gl_FragColor): 30(ptr) Variable Output
@ -61,8 +62,8 @@ Linked fragment stage:
42: TypeVector 7(float) 2 42: TypeVector 7(float) 2
43: TypePointer Input 42(fvec2) 43: TypePointer Input 42(fvec2)
44(coord): 43(ptr) Variable Input 44(coord): 43(ptr) Variable Input
48: TypePointer UniformConstant 8(lunarStruct1) 48: TypePointer Private 8(lunarStruct1)
49(foo): 48(ptr) Variable UniformConstant 49(foo): 48(ptr) Variable Private
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
22(locals2): 21(ptr) Variable Function 22(locals2): 21(ptr) Variable Function

View File

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

View File

@ -11,7 +11,7 @@ Linked fragment stage:
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 45 54 EntryPoint Fragment 4 "main" 45 54
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 8 "scale" Name 8 "scale"
@ -28,6 +28,7 @@ Linked fragment stage:
Name 50 "samp2D" Name 50 "samp2D"
Name 54 "coord" Name 54 "coord"
Name 59 "foo" Name 59 "foo"
Decorate 50(samp2D) DescriptorSet 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -46,16 +47,16 @@ Linked fragment stage:
20: TypeArray 18(lunarStruct1) 19 20: TypeArray 18(lunarStruct1) 19
21(lunarStruct2): TypeStruct 13 6(float) 20 21(lunarStruct2): TypeStruct 13 6(float) 20
22: TypeArray 21(lunarStruct2) 12 22: TypeArray 21(lunarStruct2) 12
23: TypePointer UniformConstant 22 23: TypePointer Private 22
24(foo2): 23(ptr) Variable UniformConstant 24(foo2): 23(ptr) Variable Private
25: 10(int) Constant 3 25: 10(int) Constant 3
26: 10(int) Constant 0 26: 10(int) Constant 0
27: 10(int) Constant 4 27: 10(int) Constant 4
28: TypePointer UniformConstant 10(int) 28: TypePointer Private 10(int)
31: TypeBool 31: TypeBool
35: 10(int) Constant 2 35: 10(int) Constant 2
36: 11(int) Constant 0 36: 11(int) Constant 0
37: TypePointer UniformConstant 6(float) 37: TypePointer Private 6(float)
41: 10(int) Constant 1 41: 10(int) Constant 1
44: TypePointer Output 16(fvec4) 44: TypePointer Output 16(fvec4)
45(gl_FragColor): 44(ptr) Variable Output 45(gl_FragColor): 44(ptr) Variable Output
@ -66,8 +67,8 @@ Linked fragment stage:
52: TypeVector 6(float) 2 52: TypeVector 6(float) 2
53: TypePointer Input 52(fvec2) 53: TypePointer Input 52(fvec2)
54(coord): 53(ptr) Variable Input 54(coord): 53(ptr) Variable Input
58: TypePointer UniformConstant 18(lunarStruct1) 58: TypePointer Private 18(lunarStruct1)
59(foo): 58(ptr) Variable UniformConstant 59(foo): 58(ptr) Variable Private
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(scale): 7(ptr) Variable Function 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 Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 75 227 EntryPoint Fragment 4 "main" 62 75 129 227 233
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source ESSL 310 Source ESSL 310
Name 4 "main" Name 4 "main"
Name 15 "foo1(vf4;vf4;i1;" Name 15 "foo1(vf4;vf4;i1;"
@ -64,6 +64,7 @@ Linked fragment stage:
Decorate 55 RelaxedPrecision Decorate 55 RelaxedPrecision
Decorate 60(local) RelaxedPrecision Decorate 60(local) RelaxedPrecision
Decorate 62(c) RelaxedPrecision Decorate 62(c) RelaxedPrecision
Decorate 62(c) Flat
Decorate 63 RelaxedPrecision Decorate 63 RelaxedPrecision
Decorate 64 RelaxedPrecision Decorate 64 RelaxedPrecision
Decorate 66 RelaxedPrecision Decorate 66 RelaxedPrecision
@ -104,6 +105,7 @@ Linked fragment stage:
Decorate 126 RelaxedPrecision Decorate 126 RelaxedPrecision
Decorate 127 RelaxedPrecision Decorate 127 RelaxedPrecision
Decorate 129(d) RelaxedPrecision Decorate 129(d) RelaxedPrecision
Decorate 129(d) Flat
Decorate 130 RelaxedPrecision Decorate 130 RelaxedPrecision
Decorate 134 RelaxedPrecision Decorate 134 RelaxedPrecision
Decorate 135 RelaxedPrecision Decorate 135 RelaxedPrecision
@ -185,13 +187,13 @@ Linked fragment stage:
37: 7(fvec4) ConstantComposite 36 36 36 36 37: 7(fvec4) ConstantComposite 36 36 36 36
48: 6(float) Constant 1065353216 48: 6(float) Constant 1065353216
49: 7(fvec4) ConstantComposite 48 48 48 48 49: 7(fvec4) ConstantComposite 48 48 48 48
61: TypePointer UniformConstant 9(int) 61: TypePointer Input 9(int)
62(c): 61(ptr) Variable UniformConstant 62(c): 61(ptr) Variable Input
65: 9(int) Constant 1 65: 9(int) Constant 1
72: TypePointer Function 6(float) 72: TypePointer Function 6(float)
74: TypePointer Input 6(float) 74: TypePointer Input 6(float)
75(x): 74(ptr) Variable Input 75(x): 74(ptr) Variable Input
129(d): 61(ptr) Variable UniformConstant 129(d): 61(ptr) Variable Input
156: 9(int) Constant 0 156: 9(int) Constant 0
163: 9(int) Constant 10 163: 9(int) Constant 10
164: TypeBool 164: TypeBool
@ -201,8 +203,8 @@ Linked fragment stage:
208: 6(float) Constant 1079739679 208: 6(float) Constant 1079739679
226: TypePointer Output 6(float) 226: TypePointer Output 6(float)
227(color): 226(ptr) Variable Output 227(color): 226(ptr) Variable Output
232: TypePointer UniformConstant 7(fvec4) 232: TypePointer Input 7(fvec4)
233(v): 232(ptr) Variable UniformConstant 233(v): 232(ptr) Variable Input
241: TypeInt 32 0 241: TypeInt 32 0
242: 241(int) Constant 1 242: 241(int) Constant 1
253: 241(int) Constant 2 253: 241(int) Constant 2

View File

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

View File

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

View File

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

View File

@ -1,18 +1,22 @@
spv.texture.frag 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: Linked fragment stage:
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 291 // Id's are bound by 290
Capability Shader Capability Shader
Capability Sampled1D Capability Sampled1D
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 47 276 290 EntryPoint Fragment 4 "main" 47 276 279 282 288 289
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginUpperLeft
Source GLSL 140 Source GLSL 140
Name 4 "main" Name 4 "main"
Name 8 "blendscale" Name 8 "blendscale"
@ -37,8 +41,14 @@ Linked fragment stage:
Name 276 "gl_FragColor" Name 276 "gl_FragColor"
Name 279 "u" Name 279 "u"
Name 282 "blend" Name 282 "blend"
Name 289 "scale" Name 288 "scale"
Name 290 "t" 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 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -97,13 +107,12 @@ Linked fragment stage:
251: 205(ivec2) ConstantComposite 249 250 251: 205(ivec2) ConstantComposite 249 250
275: TypePointer Output 22(fvec4) 275: TypePointer Output 22(fvec4)
276(gl_FragColor): 275(ptr) Variable Output 276(gl_FragColor): 275(ptr) Variable Output
278: TypePointer UniformConstant 22(fvec4) 278: TypePointer Input 22(fvec4)
279(u): 278(ptr) Variable UniformConstant 279(u): 278(ptr) Variable Input
281: TypePointer UniformConstant 6(float) 281: TypePointer Input 6(float)
282(blend): 281(ptr) Variable UniformConstant 282(blend): 281(ptr) Variable Input
288: TypePointer UniformConstant 45(fvec2) 288(scale): 46(ptr) Variable Input
289(scale): 288(ptr) Variable UniformConstant 289(t): 46(ptr) Variable Input
290(t): 46(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
8(blendscale): 7(ptr) Variable Function 8(blendscale): 7(ptr) Variable Function

View File

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

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