Commit 55e7d11c by John Kessenich

SPIR-V: Move from Version .99 Rev 31 to Version 1.0, Rev 2.

parent 1c77f3a8
......@@ -28,7 +28,7 @@
#define GLSLstd450_H
const int GLSLstd450Version = 99;
const int GLSLstd450Revision = 2;
const int GLSLstd450Revision = 3;
enum GLSLstd450 {
GLSLstd450Bad = 0, // Don't use
......@@ -82,47 +82,44 @@ enum GLSLstd450 {
GLSLstd450FClamp = 43,
GLSLstd450UClamp = 44,
GLSLstd450SClamp = 45,
GLSLstd450Mix = 46,
GLSLstd450Step = 47,
GLSLstd450SmoothStep = 48,
GLSLstd450Fma = 49,
GLSLstd450Frexp = 50, // second operand needs an OpVariable to write to
GLSLstd450FrexpStruct = 51, // no OpVariable operand
GLSLstd450Ldexp = 52,
GLSLstd450PackSnorm4x8 = 53,
GLSLstd450PackUnorm4x8 = 54,
GLSLstd450PackSnorm2x16 = 55,
GLSLstd450PackUnorm2x16 = 56,
GLSLstd450PackHalf2x16 = 57,
GLSLstd450PackDouble2x32 = 58,
GLSLstd450UnpackSnorm2x16 = 59,
GLSLstd450UnpackUnorm2x16 = 60,
GLSLstd450UnpackHalf2x16 = 61,
GLSLstd450UnpackSnorm4x8 = 62,
GLSLstd450UnpackUnorm4x8 = 63,
GLSLstd450UnpackDouble2x32 = 64,
GLSLstd450Length = 65,
GLSLstd450Distance = 66,
GLSLstd450Cross = 67,
GLSLstd450Normalize = 68,
GLSLstd450FaceForward = 69,
GLSLstd450Reflect = 70,
GLSLstd450Refract = 71,
GLSLstd450FindILSB = 72,
GLSLstd450FindSMSB = 73,
GLSLstd450FindUMSB = 74,
GLSLstd450InterpolateAtCentroid = 75,
GLSLstd450InterpolateAtSample = 76,
GLSLstd450InterpolateAtOffset = 77,
GLSLstd450AddCarry = 78, // These three should move to the core instruction set
GLSLstd450SubBorrow = 79,
GLSLstd450MulExtended = 80,
GLSLstd450FMix = 46,
GLSLstd450IMix = 47,
GLSLstd450Step = 48,
GLSLstd450SmoothStep = 49,
GLSLstd450Fma = 50,
GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to
GLSLstd450FrexpStruct = 52, // no OpVariable operand
GLSLstd450Ldexp = 53,
GLSLstd450PackSnorm4x8 = 54,
GLSLstd450PackUnorm4x8 = 55,
GLSLstd450PackSnorm2x16 = 56,
GLSLstd450PackUnorm2x16 = 57,
GLSLstd450PackHalf2x16 = 58,
GLSLstd450PackDouble2x32 = 59,
GLSLstd450UnpackSnorm2x16 = 60,
GLSLstd450UnpackUnorm2x16 = 61,
GLSLstd450UnpackHalf2x16 = 62,
GLSLstd450UnpackSnorm4x8 = 63,
GLSLstd450UnpackUnorm4x8 = 64,
GLSLstd450UnpackDouble2x32 = 65,
GLSLstd450Length = 66,
GLSLstd450Distance = 67,
GLSLstd450Cross = 68,
GLSLstd450Normalize = 69,
GLSLstd450FaceForward = 70,
GLSLstd450Reflect = 71,
GLSLstd450Refract = 72,
GLSLstd450FindILsb = 73,
GLSLstd450FindSMsb = 74,
GLSLstd450FindUMsb = 75,
GLSLstd450InterpolateAtCentroid = 76,
GLSLstd450InterpolateAtSample = 77,
GLSLstd450InterpolateAtOffset = 78,
GLSLstd450Count
};
......
......@@ -446,7 +446,6 @@ namespace spv {
idFn(asId(word++));
break;
case spv::OperandOptionalId:
case spv::OperandVariableIds:
for (unsigned i = 0; i < numOperands; ++i)
idFn(asId(word++));
......
......@@ -99,12 +99,14 @@ public:
Id makeUintType(int width) { return makeIntegerType(width, false); }
Id makeFloatType(int width);
Id makeStructType(std::vector<Id>& members, const char*);
Id makeStructResultType(Id type0, Id type1);
Id makeVectorType(Id component, int size);
Id makeMatrixType(Id component, int cols, int rows);
Id makeArrayType(Id element, unsigned size);
Id makeRuntimeArray(Id element);
Id makeFunctionType(Id returnType, std::vector<Id>& paramTypes);
Id makeImageType(Id sampledType, Dim, bool depth, bool arrayed, bool ms, unsigned sampled, ImageFormat format);
Id makeSamplerType();
Id makeSampledImageType(Id imageType);
// For querying about types.
......@@ -118,12 +120,14 @@ public:
Id getScalarTypeId(Id typeId) const;
Id getContainedTypeId(Id typeId) const;
Id getContainedTypeId(Id typeId, int) const;
StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); }
bool isPointer(Id resultId) const { return isPointerType(getTypeId(resultId)); }
bool isScalar(Id resultId) const { return isScalarType(getTypeId(resultId)); }
bool isVector(Id resultId) const { return isVectorType(getTypeId(resultId)); }
bool isMatrix(Id resultId) const { return isMatrixType(getTypeId(resultId)); }
bool isAggregate(Id resultId) const { return isAggregateType(getTypeId(resultId)); }
bool isBoolType(Id typeId) const { return groupedTypes[OpTypeBool].size() > 0 && typeId == groupedTypes[OpTypeBool].back()->getResultId(); }
bool isPointerType(Id typeId) const { return getTypeClass(typeId) == OpTypePointer; }
bool isScalarType(Id typeId) const { return getTypeClass(typeId) == OpTypeFloat || getTypeClass(typeId) == OpTypeInt || getTypeClass(typeId) == OpTypeBool; }
......@@ -140,6 +144,7 @@ public:
bool isConstant(Id resultId) const { return isConstantOpCode(getOpCode(resultId)); }
bool isConstantScalar(Id resultId) const { return getOpCode(resultId) == OpConstant; }
unsigned int getConstantScalar(Id resultId) const { return module.getInstruction(resultId)->getImmediateOperand(0); }
StorageClass getStorageClass(Id resultId) const { return getTypeStorageClass(getTypeId(resultId)); }
int getTypeNumColumns(Id typeId) const
{
......@@ -172,18 +177,17 @@ public:
}
// For making new constants (will return old constant if the requested one was already made).
Id makeBoolConstant(bool b);
Id makeIntConstant(Id typeId, unsigned value);
Id makeIntConstant(int i) { return makeIntConstant(makeIntType(32), (unsigned)i); }
Id makeUintConstant(unsigned u) { return makeIntConstant(makeUintType(32), u); }
Id makeFloatConstant(float f);
Id makeDoubleConstant(double d);
Id makeBoolConstant(bool b, bool specConstant = false);
Id makeIntConstant(int i, bool specConstant = false) { return makeIntConstant(makeIntType(32), (unsigned)i, specConstant); }
Id makeUintConstant(unsigned u, bool specConstant = false) { return makeIntConstant(makeUintType(32), u, specConstant); }
Id makeFloatConstant(float f, bool specConstant = false);
Id makeDoubleConstant(double d, bool specConstant = false);
// Turn the array of constants into a proper spv constant of the requested type.
Id makeCompositeConstant(Id type, std::vector<Id>& comps);
// Methods for adding information outside the CFG.
void addEntryPoint(ExecutionModel, Function*, const char* name);
Instruction* addEntryPoint(ExecutionModel, Function*, const char* name);
void addExecutionMode(Function*, ExecutionMode mode, int value1 = -1, int value2 = -1, int value3 = -1);
void addName(Id, const char* name);
void addMemberName(Id, int member, const char* name);
......@@ -296,10 +300,11 @@ public:
Id gradX;
Id gradY;
Id sample;
Id comp;
};
// Select the correct texture operation based on all inputs, and emit the correct instruction
Id createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, const TextureParameters&);
Id createTextureCall(Decoration precision, Id resultType, bool fetch, bool proj, bool gather, const TextureParameters&);
// Emit the OpTextureQuery* instruction that was passed in.
// Figure out the right return value and type, and return it.
......@@ -428,11 +433,11 @@ public:
struct AccessChain {
Id base; // for l-values, pointer to the base object, for r-values, the base object
std::vector<Id> indexChain;
Id instr; // the instruction that generates this access chain
std::vector<unsigned> swizzle;
Id component; // a dynamic component index, can coexist with a swizzle, done after the swizzle
Id instr; // cache the instruction that generates this access chain
std::vector<unsigned> swizzle; // each std::vector element selects the next GLSL component number
Id component; // a dynamic component index, can coexist with a swizzle, done after the swizzle, NoResult if not present
Id preSwizzleBaseType; // dereferenced type, before swizzle or component is applied; NoType unless a swizzle or component is present
bool isRValue;
bool isRValue; // true if 'base' is an r-value, otherwise, base is an l-value
};
//
......@@ -490,15 +495,17 @@ public:
void dump(std::vector<unsigned int>&) const;
protected:
Id findScalarConstant(Op typeClass, Id typeId, unsigned value) const;
Id findScalarConstant(Op typeClass, Id typeId, unsigned v1, unsigned v2) const;
Id makeIntConstant(Id typeId, unsigned value, bool specConstant);
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned value) const;
Id findScalarConstant(Op typeClass, Op opcode, Id typeId, unsigned v1, unsigned v2) const;
Id findCompositeConstant(Op typeClass, std::vector<Id>& comps) const;
Id collapseAccessChain();
void transferAccessChainSwizzle(bool dynamic);
void simplifyAccessChainSwizzle();
void mergeAccessChainSwizzle();
void createAndSetNoPredecessorBlock(const char*);
void createBranch(Block* block);
void createMerge(Op, Block*, unsigned int control);
void createSelectionMerge(Block* mergeBlock, unsigned int control);
void createLoopMerge(Block* mergeBlock, Block* continueBlock, unsigned int control);
void createConditionalBranch(Id condition, Block* thenBlock, Block* elseBlock);
void dumpInstructions(std::vector<unsigned int>&, const std::vector<Instruction*>&) const;
......
......@@ -48,15 +48,17 @@
#include <sstream>
#include <cstring>
namespace spv {
// Include C-based headers that don't have a namespace
#include "SPIRV/GLSL.std.450.h"
}
const char* GlslStd450DebugNames[spv::GLSLstd450Count];
#include "disassemble.h"
#include "doc.h"
namespace spv {
#include "GLSL.std.450.h"
const char* GlslStd450DebugNames[spv::GLSLstd450Count];
void Kill(std::ostream& out, const char* message)
{
out << std::endl << "Disassembly failed: " << message << std::endl;
......@@ -92,7 +94,7 @@ protected:
void outputMask(OperandClass operandClass, unsigned mask);
void disassembleImmediates(int numOperands);
void disassembleIds(int numOperands);
void disassembleString();
int disassembleString();
void disassembleInstruction(Id resultId, Id typeId, Op opCode, int numOperands);
// Data
......@@ -128,10 +130,10 @@ void SpirvStream::validate()
}
// Version
out << "// Module Version " << stream[word++] << std::endl;
out << "// Module Version " << std::hex << stream[word++] << std::endl;
// Generator's magic number
out << "// Generated by (magic number): " << std::setbase(16) << stream[word++] << std::setbase(10) << std::endl;
out << "// Generated by (magic number): " << std::hex << stream[word++] << std::dec << std::endl;
// Result <id> bound
bound = stream[word++];
......@@ -280,15 +282,18 @@ void SpirvStream::disassembleIds(int numOperands)
}
}
void SpirvStream::disassembleString()
// return the number of operands consumed by the string
int SpirvStream::disassembleString()
{
int startWord = word;
out << " \"";
char* wordString;
const char* wordString;
bool done = false;
do {
unsigned int content = stream[word];
wordString = (char*)&content;
wordString = (const char*)&content;
for (int charCount = 0; charCount < 4; ++charCount) {
if (*wordString == 0) {
done = true;
......@@ -300,6 +305,8 @@ void SpirvStream::disassembleString()
} while (! done);
out << "\"";
return word - startWord;
}
void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode, int numOperands)
......@@ -389,15 +396,15 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
case OperandScope:
case OperandMemorySemantics:
disassembleIds(1);
--numOperands;
// Get names for printing "(XXX)" for readability, *after* this id
if (opCode == OpName)
idDescriptor[stream[word - 1]] = (const char*)(&stream[word]);
break;
case OperandOptionalId:
case OperandVariableIds:
disassembleIds(numOperands);
return;
case OperandOptionalImage:
case OperandImageOperands:
outputMask(OperandImageOperands, stream[word++]);
--numOperands;
disassembleIds(numOperands);
......@@ -440,6 +447,7 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
return;
case OperandLiteralNumber:
disassembleImmediates(1);
--numOperands;
if (opCode == OpExtInst) {
ExtInstSet extInstSet = GLSL450Inst;
if (0 == memcmp("OpenCL", (const char*)(idDescriptor[stream[word-2]].c_str()), 6)) {
......@@ -447,15 +455,16 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
}
unsigned entrypoint = stream[word - 1];
if (extInstSet == GLSL450Inst) {
if (entrypoint < spv::GLSLstd450Count) {
if (entrypoint < GLSLstd450Count) {
out << "(" << GlslStd450DebugNames[entrypoint] << ")";
}
}
}
break;
case OperandOptionalLiteralString:
case OperandLiteralString:
disassembleString();
return;
numOperands -= disassembleString();
break;
default:
assert(operandClass >= OperandSource && operandClass < OperandOpcode);
......@@ -463,10 +472,9 @@ void SpirvStream::disassembleInstruction(Id resultId, Id /*typeId*/, Op opCode,
outputMask(operandClass, stream[word++]);
else
out << OperandClassParams[operandClass].getName(stream[word++]);
--numOperands;
break;
}
--numOperands;
}
return;
......@@ -508,9 +516,9 @@ void GLSLstd450GetDebugNames(const char** names)
names[GLSLstd450Exp2] = "Exp2";
names[GLSLstd450Log2] = "Log2";
names[GLSLstd450Sqrt] = "Sqrt";
names[GLSLstd450InverseSqrt] = "Inversesqrt";
names[GLSLstd450InverseSqrt] = "InverseSqrt";
names[GLSLstd450Determinant] = "Determinant";
names[GLSLstd450MatrixInverse] = "Inverse";
names[GLSLstd450MatrixInverse] = "MatrixInverse";
names[GLSLstd450Modf] = "Modf";
names[GLSLstd450ModfStruct] = "ModfStruct";
names[GLSLstd450FMin] = "FMin";
......@@ -522,9 +530,10 @@ void GLSLstd450GetDebugNames(const char** names)
names[GLSLstd450FClamp] = "FClamp";
names[GLSLstd450SClamp] = "SClamp";
names[GLSLstd450UClamp] = "UClamp";
names[GLSLstd450Mix] = "Mix";
names[GLSLstd450FMix] = "FMix";
names[GLSLstd450IMix] = "IMix";
names[GLSLstd450Step] = "Step";
names[GLSLstd450SmoothStep] = "Smoothstep";
names[GLSLstd450SmoothStep] = "SmoothStep";
names[GLSLstd450Fma] = "Fma";
names[GLSLstd450Frexp] = "Frexp";
names[GLSLstd450FrexpStruct] = "FrexpStruct";
......@@ -545,15 +554,12 @@ void GLSLstd450GetDebugNames(const char** names)
names[GLSLstd450Distance] = "Distance";
names[GLSLstd450Cross] = "Cross";
names[GLSLstd450Normalize] = "Normalize";
names[GLSLstd450FaceForward] = "Faceforward";
names[GLSLstd450FaceForward] = "FaceForward";
names[GLSLstd450Reflect] = "Reflect";
names[GLSLstd450Refract] = "Refract";
names[GLSLstd450AddCarry] = "UaddCarry";
names[GLSLstd450SubBorrow] = "UsubBorrow";
names[GLSLstd450MulExtended] = "UmulExtended";
names[GLSLstd450FindILSB] = "FindILsb";
names[GLSLstd450FindSMSB] = "FindSMsb";
names[GLSLstd450FindUMSB] = "FindUMsb";
names[GLSLstd450FindILsb] = "FindILsb";
names[GLSLstd450FindSMsb] = "FindSMsb";
names[GLSLstd450FindUMsb] = "FindUMsb";
names[GLSLstd450InterpolateAtCentroid] = "InterpolateAtCentroid";
names[GLSLstd450InterpolateAtSample] = "InterpolateAtSample";
names[GLSLstd450InterpolateAtOffset] = "InterpolateAtOffset";
......
......@@ -116,10 +116,9 @@ enum OpcodeClass {
enum OperandClass {
OperandNone,
OperandId,
OperandOptionalId,
OperandOptionalImage,
OperandVariableIds,
OperandOptionalLiteral,
OperandOptionalLiteralString,
OperandVariableLiterals,
OperandVariableIdLiteral,
OperandVariableLiteralId,
......@@ -168,18 +167,22 @@ typedef std::vector<Capability> EnumCaps;
class OperandParameters {
public:
OperandParameters() { }
void push(OperandClass oc, const char* d)
void push(OperandClass oc, const char* d, bool opt = false)
{
opClass.push_back(oc);
desc.push_back(d);
optional.push_back(opt);
}
void setOptional();
OperandClass getClass(int op) const { return opClass[op]; }
const char* getDesc(int op) const { return desc[op]; }
bool isOptional(int op) const { return optional[op]; }
int getNum() const { return (int)opClass.size(); }
protected:
std::vector<OperandClass> opClass;
std::vector<const char*> desc;
std::vector<bool> optional;
};
// Parameterize an enumerant
......@@ -240,7 +243,7 @@ protected:
int resultPresent : 1;
};
const int OpcodeCeiling = 305;
const int OpcodeCeiling = 320;
// The set of objects that hold all the instruction/operand
// parameterization information.
......
......@@ -74,18 +74,14 @@ const MemorySemanticsMask MemorySemanticsAllMemory = (MemorySemanticsMask)0x3FF;
class Instruction {
public:
Instruction(Id resultId, Id typeId, Op opCode) : resultId(resultId), typeId(typeId), opCode(opCode), string(0) { }
explicit Instruction(Op opCode) : resultId(NoResult), typeId(NoType), opCode(opCode), string(0) { }
virtual ~Instruction()
{
delete string;
}
Instruction(Id resultId, Id typeId, Op opCode) : resultId(resultId), typeId(typeId), opCode(opCode) { }
explicit Instruction(Op opCode) : resultId(NoResult), typeId(NoType), opCode(opCode) { }
virtual ~Instruction() {}
void addIdOperand(Id id) { operands.push_back(id); }
void addImmediateOperand(unsigned int immediate) { operands.push_back(immediate); }
void addStringOperand(const char* str)
{
originalString = str;
string = new std::vector<unsigned int>;
unsigned int word;
char* wordString = (char*)&word;
char* wordPtr = wordString;
......@@ -96,7 +92,7 @@ public:
*(wordPtr++) = c;
++charCount;
if (charCount == 4) {
string->push_back(word);
addImmediateOperand(word);
wordPtr = wordString;
charCount = 0;
}
......@@ -107,7 +103,7 @@ public:
// pad with 0s
for (; charCount < 4; ++charCount)
*(wordPtr++) = 0;
string->push_back(word);
addImmediateOperand(word);
}
}
Op getOpCode() const { return opCode; }
......@@ -128,8 +124,6 @@ public:
if (resultId)
++wordCount;
wordCount += (unsigned int)operands.size();
if (string)
wordCount += (unsigned int)string->size();
// Write out the beginning of the instruction
out.push_back(((wordCount) << WordCountShift) | opCode);
......@@ -141,9 +135,6 @@ public:
// Write out the operands
for (int op = 0; op < (int)operands.size(); ++op)
out.push_back(operands[op]);
if (string)
for (int op = 0; op < (int)string->size(); ++op)
out.push_back((*string)[op]);
}
protected:
......@@ -152,7 +143,6 @@ protected:
Id typeId;
Op opCode;
std::vector<Id> operands;
std::vector<unsigned int>* string; // usually non-existent
std::string originalString; // could be optimized away; convenience for getting string operand
};
......
......@@ -788,6 +788,7 @@ int C_DECL main(int argc, char* argv[])
glslang::GetSpirvVersion(spirvVersion);
printf("SPIR-V Version %s\n", spirvVersion.c_str());
printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision);
printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
if (Worklist.empty())
return ESuccess;
}
......
......@@ -3,16 +3,16 @@ spv.100ops.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 47
Source ESSL 100
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Source ESSL 100
Name 4 "main"
Name 8 "foo("
Name 11 "face1"
......@@ -27,15 +27,14 @@ Linked fragment stage:
Decorate 21(low) RelaxedPrecision
Decorate 26(high) RelaxedPrecision
Decorate 36(gl_FragColor) RelaxedPrecision
Decorate 36(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeFunction 6(float)
10: TypePointer PrivateGlobal 6(float)
11(face1): 10(ptr) Variable PrivateGlobal
10: TypePointer Private 6(float)
11(face1): 10(ptr) Variable Private
12: 6(float) Constant 1093664768
13(face2): 10(ptr) Variable PrivateGlobal
13(face2): 10(ptr) Variable Private
14: 6(float) Constant 3221225472
15: TypeInt 32 1
16: TypePointer Function 15(int)
......
......@@ -3,19 +3,19 @@ spv.150.geom
Linked geometry stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 71
Source GLSL 150
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main"
EntryPoint Geometry 4 "main" 18 70 10 29 33
ExecutionMode 4 InputTrianglesAdjacency
ExecutionMode 4 Invocations 0
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 30
Source GLSL 150
Name 4 "main"
Name 8 "fromVertex"
MemberName 8(fromVertex) 0 "color"
......@@ -61,7 +61,6 @@ Linked geometry stage:
Decorate 68(toFragment) Block
Decorate 68(toFragment) Stream 3
Decorate 70(toF) Stream 3
Decorate 70(toF) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -3,30 +3,23 @@ spv.150.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 52
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 50
Source GLSL 150
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 17 39 48 49
Source GLSL 150
Name 4 "main"
Name 13 "gl_PerVertex"
MemberName 13(gl_PerVertex) 0 "gl_Position"
MemberName 13(gl_PerVertex) 1 "gl_PointSize"
MemberName 13(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 13(gl_PerVertex) 3 "gl_ClipVertex"
MemberName 13(gl_PerVertex) 4 "gl_FrontColor"
MemberName 13(gl_PerVertex) 5 "gl_BackColor"
MemberName 13(gl_PerVertex) 6 "gl_FrontSecondaryColor"
MemberName 13(gl_PerVertex) 7 "gl_BackSecondaryColor"
MemberName 13(gl_PerVertex) 8 "gl_TexCoord"
MemberName 13(gl_PerVertex) 9 "gl_FogFragCoord"
Name 15 ""
Name 19 "iv4"
Name 25 "ps"
Name 11 "gl_PerVertex"
MemberName 11(gl_PerVertex) 0 "gl_Position"
MemberName 11(gl_PerVertex) 1 "gl_PointSize"
MemberName 11(gl_PerVertex) 2 "gl_ClipDistance"
Name 13 ""
Name 17 "iv4"
Name 23 "ps"
Name 35 "s1"
MemberName 35(s1) 0 "a"
MemberName 35(s1) 1 "a2"
......@@ -36,19 +29,16 @@ Linked vertex stage:
MemberName 37(s2) 1 "d"
Name 39 "s2out"
Name 41 "i"
Name 48 "ui"
Name 50 "gl_VertexID"
Name 51 "gl_InstanceID"
MemberDecorate 13(gl_PerVertex) 0 Invariant
MemberDecorate 13(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 13(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 13(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 13(gl_PerVertex) Block
Decorate 48(ui) NoStaticUse
Decorate 50(gl_VertexID) BuiltIn VertexId
Decorate 50(gl_VertexID) NoStaticUse
Decorate 51(gl_InstanceID) BuiltIn InstanceId
Decorate 51(gl_InstanceID) NoStaticUse
Name 46 "ui"
Name 48 "gl_VertexID"
Name 49 "gl_InstanceID"
MemberDecorate 11(gl_PerVertex) 0 Invariant
MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 11(gl_PerVertex) Block
Decorate 48(gl_VertexID) BuiltIn VertexId
Decorate 49(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -56,52 +46,50 @@ Linked vertex stage:
8: TypeInt 32 0
9: 8(int) Constant 4
10: TypeArray 6(float) 9
11: 8(int) Constant 1
12: TypeArray 7(fvec4) 11
13(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 12 6(float)
14: TypePointer Output 13(gl_PerVertex)
15: 14(ptr) Variable Output
16: TypeInt 32 1
17: 16(int) Constant 0
18: TypePointer Input 7(fvec4)
19(iv4): 18(ptr) Variable Input
21: TypePointer Output 7(fvec4)
23: 16(int) Constant 1
24: TypePointer UniformConstant 6(float)
25(ps): 24(ptr) Variable UniformConstant
27: TypePointer Output 6(float)
29: 16(int) Constant 2
11(gl_PerVertex): TypeStruct 7(fvec4) 6(float) 10
12: TypePointer Output 11(gl_PerVertex)
13: 12(ptr) Variable Output
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypePointer Input 7(fvec4)
17(iv4): 16(ptr) Variable Input
19: TypePointer Output 7(fvec4)
21: 14(int) Constant 1
22: TypePointer UniformConstant 6(float)
23(ps): 22(ptr) Variable UniformConstant
25: TypePointer Output 6(float)
27: 14(int) Constant 2
28: 8(int) Constant 0
29: TypePointer Input 6(float)
33: 8(int) Constant 3
34: TypeArray 7(fvec4) 33
35(s1): TypeStruct 16(int) 16(int) 34
35(s1): TypeStruct 14(int) 14(int) 34
36: TypeArray 35(s1) 9
37(s2): TypeStruct 16(int) 36
37(s2): TypeStruct 14(int) 36
38: TypePointer Output 37(s2)
39(s2out): 38(ptr) Variable Output
40: TypePointer Function 16(int)
47: TypePointer UniformConstant 16(int)
48(ui): 47(ptr) Variable UniformConstant
49: TypePointer Input 16(int)
50(gl_VertexID): 49(ptr) Variable Input
51(gl_InstanceID): 49(ptr) Variable Input
40: TypePointer Function 14(int)
45: TypePointer UniformConstant 14(int)
46(ui): 45(ptr) Variable UniformConstant
47: TypePointer Input 14(int)
48(gl_VertexID): 47(ptr) Variable Input
49(gl_InstanceID): 47(ptr) Variable Input
4(main): 2 Function None 3
5: Label
41(i): 40(ptr) Variable Function
20: 7(fvec4) Load 19(iv4)
22: 21(ptr) AccessChain 15 17
Store 22 20
26: 6(float) Load 25(ps)
28: 27(ptr) AccessChain 15 23
Store 28 26
30: 7(fvec4) Load 19(iv4)
31: 6(float) CompositeExtract 30 0
32: 27(ptr) AccessChain 15 29 29
18: 7(fvec4) Load 17(iv4)
20: 19(ptr) AccessChain 13 15
Store 20 18
24: 6(float) Load 23(ps)
26: 25(ptr) AccessChain 13 21
Store 26 24
30: 29(ptr) AccessChain 17(iv4) 28
31: 6(float) Load 30
32: 25(ptr) AccessChain 13 27 27
Store 32 31
42: 16(int) Load 41(i)
43: 6(float) Load 25(ps)
44: 21(ptr) AccessChain 39(s2out) 23 42 29 29
45: 7(fvec4) Load 44
46: 7(fvec4) CompositeInsert 43 45 3
Store 44 46
42: 14(int) Load 41(i)
43: 6(float) Load 23(ps)
44: 25(ptr) AccessChain 39(s2out) 21 42 27 27 33
Store 44 43
Return
FunctionEnd
......@@ -3,15 +3,15 @@ spv.300BuiltIns.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 25 11 39
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 11 "gl_VertexID"
......@@ -28,7 +28,6 @@ Linked vertex stage:
Decorate 25(ps) RelaxedPrecision
Decorate 33(gl_PointSize) BuiltIn PointSize
Decorate 39(gl_InstanceID) BuiltIn InstanceId
Decorate 39(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......
......@@ -3,16 +3,16 @@ spv.300layout.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 29 11 9 26 15
ExecutionMode 4 OriginLowerLeft
Source ESSL 300
Name 4 "main"
Name 9 "c"
Name 11 "color"
......@@ -25,13 +25,11 @@ Linked fragment stage:
Decorate 9(c) RelaxedPrecision
Decorate 9(c) Location 7
Decorate 11(color) RelaxedPrecision
Decorate 11(color) Smooth
MemberDecorate 13(S) 0 RelaxedPrecision
MemberDecorate 13(S) 1 RelaxedPrecision
Decorate 26(p) RelaxedPrecision
Decorate 26(p) Location 3
Decorate 29(pos) RelaxedPrecision
Decorate 29(pos) Smooth
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -3,15 +3,15 @@ spv.300layoutp.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 114
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 117
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 53 11 73 9 51 61 81 115 116
Source ESSL 300
Name 4 "main"
Name 9 "pos"
Name 11 "p"
......@@ -36,13 +36,12 @@ Linked vertex stage:
Name 61 "iout"
Name 67 "uiuin"
Name 73 "aiv2"
Name 77 "S"
MemberName 77(S) 0 "c"
MemberName 77(S) 1 "f"
Name 79 "s"
Name 112 "gl_VertexID"
Name 113 "gl_InstanceID"
Decorate 9(pos) Smooth
Name 79 "S"
MemberName 79(S) 0 "c"
MemberName 79(S) 1 "f"
Name 81 "s"
Name 115 "gl_VertexID"
Name 116 "gl_InstanceID"
Decorate 11(p) Location 3
MemberDecorate 17(Transform) 0 RowMajor
MemberDecorate 17(Transform) 0 Offset 0
......@@ -63,14 +62,11 @@ Linked vertex stage:
MemberDecorate 43(T2) 1 RowMajor
Decorate 43(T2) GLSLShared
Decorate 43(T2) Block
Decorate 51(color) Smooth
Decorate 53(c) Location 7
Decorate 61(iout) Flat
Decorate 73(aiv2) Location 9
Decorate 112(gl_VertexID) BuiltIn VertexId
Decorate 112(gl_VertexID) NoStaticUse
Decorate 113(gl_InstanceID) BuiltIn InstanceId
Decorate 113(gl_InstanceID) NoStaticUse
Decorate 115(gl_VertexID) BuiltIn VertexId
Decorate 116(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -116,20 +112,23 @@ Linked vertex stage:
71: TypeVector 16(int) 2
72: TypePointer Input 71(ivec2)
73(aiv2): 72(ptr) Variable Input
77(S): TypeStruct 14(fvec3) 6(float)
78: TypePointer Output 77(S)
79(s): 78(ptr) Variable Output
84: TypePointer Output 6(float)
86: TypePointer Uniform 14(fvec3)
89: 6(float) Constant 1065353216
90: 14(fvec3) ConstantComposite 89 89 89
91: TypeVector 42(bool) 3
97: TypePointer Uniform 30(ivec3)
100: 29(int) Constant 5
101: 30(ivec3) ConstantComposite 100 100 100
111: TypePointer Input 16(int)
112(gl_VertexID): 111(ptr) Variable Input
113(gl_InstanceID): 111(ptr) Variable Input
74: 29(int) Constant 1
75: TypePointer Input 16(int)
79(S): TypeStruct 14(fvec3) 6(float)
80: TypePointer Output 79(S)
81(s): 80(ptr) Variable Output
84: 29(int) Constant 0
85: TypePointer Input 6(float)
88: TypePointer Output 6(float)
90: TypePointer Uniform 14(fvec3)
93: 6(float) Constant 1065353216
94: 14(fvec3) ConstantComposite 93 93 93
95: TypeVector 42(bool) 3
101: TypePointer Uniform 30(ivec3)
104: 29(int) Constant 5
105: 30(ivec3) ConstantComposite 104 104 104
115(gl_VertexID): 75(ptr) Variable Input
116(gl_InstanceID): 75(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(fvec4) Load 11(p)
......@@ -159,41 +158,41 @@ Linked vertex stage:
68: 29(int) Load 67(uiuin)
69: 16(int) Bitcast 68
70: 16(int) IAdd 65 69
74: 71(ivec2) Load 73(aiv2)
75: 16(int) CompositeExtract 74 1
76: 16(int) IAdd 70 75
Store 61(iout) 76
80: 14(fvec3) Load 53(c)
81: 50(ptr) AccessChain 79(s) 20
Store 81 80
82: 7(fvec4) Load 11(p)
83: 6(float) CompositeExtract 82 0
85: 84(ptr) AccessChain 79(s) 24
Store 85 83
87: 86(ptr) AccessChain 35 55 24
88: 14(fvec3) Load 87
92: 91(bvec3) FOrdNotEqual 88 90
93: 42(bool) Any 92
94: 42(bool) LogicalNot 93
SelectionMerge 96 None
BranchConditional 94 95 96
95: Label
98: 97(ptr) AccessChain 35 62 55
99: 30(ivec3) Load 98
102: 91(bvec3) INotEqual 99 101
103: 42(bool) Any 102
Branch 96
96: Label
104: 42(bool) Phi 93 5 103 95
SelectionMerge 106 None
BranchConditional 104 105 106
105: Label
107: 50(ptr) AccessChain 79(s) 20
108: 14(fvec3) Load 107
109: 14(fvec3) CompositeConstruct 89 89 89
110: 14(fvec3) FAdd 108 109
Store 107 110
Branch 106
106: Label
76: 75(ptr) AccessChain 73(aiv2) 74
77: 16(int) Load 76
78: 16(int) IAdd 70 77
Store 61(iout) 78
82: 14(fvec3) Load 53(c)
83: 50(ptr) AccessChain 81(s) 20
Store 83 82
86: 85(ptr) AccessChain 11(p) 84
87: 6(float) Load 86
89: 88(ptr) AccessChain 81(s) 24
Store 89 87
91: 90(ptr) AccessChain 35 55 24
92: 14(fvec3) Load 91
96: 95(bvec3) FOrdNotEqual 92 94
97: 42(bool) Any 96
98: 42(bool) LogicalNot 97
SelectionMerge 100 None
BranchConditional 98 99 100
99: Label
102: 101(ptr) AccessChain 35 62 55
103: 30(ivec3) Load 102
106: 95(bvec3) INotEqual 103 105
107: 42(bool) Any 106
Branch 100
100: Label
108: 42(bool) Phi 97 5 107 99
SelectionMerge 110 None
BranchConditional 108 109 110
109: Label
111: 50(ptr) AccessChain 81(s) 20
112: 14(fvec3) Load 111
113: 14(fvec3) CompositeConstruct 93 93 93
114: 14(fvec3) FAdd 112 113
Store 111 114
Branch 110
110: Label
Return
FunctionEnd
......@@ -5,16 +5,16 @@ Warning, version 310 is not yet complete; most version-specific features are pre
Linked compute stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 67
Source ESSL 310
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main"
ExecutionMode 4 LocalSize 16 32 4
Source ESSL 310
Name 4 "main"
Name 13 "outb"
MemberName 13(outb) 0 "f"
......@@ -27,21 +27,20 @@ Linked compute stage:
MemberName 24(outbna) 0 "k"
MemberName 24(outbna) 1 "na"
Name 26 "outbnamena"
Name 43 "i"
Name 49 "outs"
MemberName 49(outs) 0 "s"
MemberName 49(outs) 1 "va"
Name 51 "outnames"
Name 54 "gl_LocalInvocationID"
Name 42 "i"
Name 48 "outs"
MemberName 48(outs) 0 "s"
MemberName 48(outs) 1 "va"
Name 50 "outnames"
Name 53 "gl_LocalInvocationID"
Decorate 13(outb) GLSLShared
Decorate 13(outb) BufferBlock
Decorate 24(outbna) GLSLShared
Decorate 24(outbna) BufferBlock
Decorate 49(outs) GLSLShared
Decorate 49(outs) BufferBlock
Decorate 54(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 48(outs) GLSLShared
Decorate 48(outs) BufferBlock
Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 66 BuiltIn WorkgroupSize
Decorate 66 NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
......@@ -56,8 +55,8 @@ Linked compute stage:
15(outbname): 14(ptr) Variable Uniform
16: TypeInt 32 1
17: 16(int) Constant 0
18: TypePointer WorkgroupLocal 10(float)
19(s): 18(ptr) Variable WorkgroupLocal
18: TypePointer Workgroup 10(float)
19(s): 18(ptr) Variable Workgroup
21: TypePointer Uniform 10(float)
23: TypeVector 10(float) 4
24(outbna): TypeStruct 16(int) 23(fvec4)
......@@ -67,24 +66,25 @@ Linked compute stage:
30: TypePointer Uniform 23(fvec4)
32: 16(int) Constant 3
33: 16(int) Constant 18
34: TypePointer Uniform 11(fvec3)
38: 16(int) Constant 17
39: 10(float) Constant 1077936128
40: 11(fvec3) ConstantComposite 39 39 39
42: TypePointer WorkgroupLocal 16(int)
43(i): 42(ptr) Variable WorkgroupLocal
48: TypeRuntimeArray 23(fvec4)
49(outs): TypeStruct 16(int) 48
50: TypePointer Uniform 49(outs)
51(outnames): 50(ptr) Variable Uniform
52: TypeVector 6(int) 3
53: TypePointer Input 52(ivec3)
54(gl_LocalInvocationID): 53(ptr) Variable Input
36: 16(int) Constant 17
37: 10(float) Constant 1077936128
38: 11(fvec3) ConstantComposite 37 37 37
39: TypePointer Uniform 11(fvec3)
41: TypePointer Workgroup 16(int)
42(i): 41(ptr) Variable Workgroup
47: TypeRuntimeArray 23(fvec4)
48(outs): TypeStruct 16(int) 47
49: TypePointer Uniform 48(outs)
50(outnames): 49(ptr) Variable Uniform
51: TypeVector 6(int) 3
52: TypePointer Input 51(ivec3)
53(gl_LocalInvocationID): 52(ptr) Variable Input
54: TypePointer Input 6(int)
61: TypePointer Uniform 16(int)
63: 6(int) Constant 16
64: 6(int) Constant 32
65: 6(int) Constant 4
66: 52(ivec3) ConstantComposite 63 64 65
66: 51(ivec3) ConstantComposite 63 64 65
4(main): 2 Function None 3
5: Label
MemoryBarrier 7 8
......@@ -96,25 +96,24 @@ Linked compute stage:
29: 23(fvec4) CompositeConstruct 28 28 28 28
31: 30(ptr) AccessChain 26(outbnamena) 27
Store 31 29
35: 34(ptr) AccessChain 15(outbname) 32 33
36: 11(fvec3) Load 35
37: 10(float) CompositeExtract 36 0
Store 19(s) 37
41: 34(ptr) AccessChain 15(outbname) 32 38
Store 41 40
44: 16(int) Load 43(i)
45: 10(float) Load 19(s)
46: 11(fvec3) CompositeConstruct 45 45 45
47: 34(ptr) AccessChain 15(outbname) 32 44
Store 47 46
55: 52(ivec3) Load 54(gl_LocalInvocationID)
56: 6(int) CompositeExtract 55 0
34: 21(ptr) AccessChain 15(outbname) 32 33 9
35: 10(float) Load 34
Store 19(s) 35
40: 39(ptr) AccessChain 15(outbname) 32 36
Store 40 38
43: 16(int) Load 42(i)
44: 10(float) Load 19(s)
45: 11(fvec3) CompositeConstruct 44 44 44
46: 39(ptr) AccessChain 15(outbname) 32 43
Store 46 45
55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9
56: 6(int) Load 55
57: 10(float) Load 19(s)
58: 23(fvec4) CompositeConstruct 57 57 57 57
59: 30(ptr) AccessChain 51(outnames) 27 56
59: 30(ptr) AccessChain 50(outnames) 27 56
Store 59 58
60: 16(int) ArrayLength 15(outbname) 3
62: 61(ptr) AccessChain 51(outnames) 17
62: 61(ptr) AccessChain 50(outnames) 17
Store 62 60
Return
FunctionEnd
......@@ -3,20 +3,20 @@ spv.330.geom
Linked geometry stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 32
Source GLSL 330
SourceExtension "GL_ARB_separate_shader_objects"
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main"
ExecutionMode 4 InputTriangles
EntryPoint Geometry 4 "main" 20 13
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 0
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Source GLSL 330
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
Name 11 "gl_PerVertex"
MemberName 11(gl_PerVertex) 0 "gl_Position"
......
......@@ -5,4 +5,170 @@ Warning, version 400 is not yet complete; most version-specific features are pre
Linked fragment stage:
Missing functionality: texture gather
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 125
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 50 44 11 96 69 119 56
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
Name 6 "foo23("
Name 11 "outp"
Name 15 "u2drs"
Name 36 "v"
Name 42 "arrayedSampler"
Name 44 "i"
Name 50 "c2D"
Name 56 "gl_ClipDistance"
Name 69 "uoutp"
Name 73 "samp2dr"
Name 96 "ioutp"
Name 100 "isamp2DA"
Name 117 "gl_FragCoord"
Name 119 "vl2"
Decorate 44(i) Flat
Decorate 56(gl_ClipDistance) BuiltIn ClipDistance
Decorate 117(gl_FragCoord) BuiltIn FragCoord
Decorate 119(vl2) Location 6
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
9: TypeVector 8(float) 4
10: TypePointer Output 9(fvec4)
11(outp): 10(ptr) Variable Output
12: TypeImage 8(float) Rect depth sampled format:Unknown
13: TypeSampledImage 12
14: TypePointer UniformConstant 13
15(u2drs): 14(ptr) Variable UniformConstant
18: TypeVector 8(float) 2
19: 8(float) Constant 0
20: 18(fvec2) ConstantComposite 19 19
21: TypeInt 32 1
22: TypeVector 21(int) 2
23: 21(int) Constant 3
24: 21(int) Constant 4
25: 22(ivec2) ConstantComposite 23 24
28: TypeInt 32 0
29: 28(int) Constant 0
30: TypePointer Output 8(float)
35: TypePointer Function 9(fvec4)
37: TypeImage 8(float) 2D sampled format:Unknown
38: TypeSampledImage 37
39: 28(int) Constant 5
40: TypeArray 38 39
41: TypePointer UniformConstant 40
42(arrayedSampler): 41(ptr) Variable UniformConstant
43: TypePointer Input 21(int)
44(i): 43(ptr) Variable Input
46: TypePointer UniformConstant 38
49: TypePointer Input 18(fvec2)
50(c2D): 49(ptr) Variable Input
53: 28(int) Constant 2
54: TypeArray 8(float) 53
55: TypePointer Input 54
56(gl_ClipDistance): 55(ptr) Variable Input
57: 21(int) Constant 1
58: TypePointer Input 8(float)
62: TypeVector 8(float) 3
67: TypeVector 28(int) 4
68: TypePointer Output 67(ivec4)
69(uoutp): 68(ptr) Variable Output
70: TypeImage 28(int) Rect sampled format:Unknown
71: TypeSampledImage 70
72: TypePointer UniformConstant 71
73(samp2dr): 72(ptr) Variable UniformConstant
76: 28(int) Constant 4
77: TypeArray 22(ivec2) 76
78: 21(int) Constant 2
79: 22(ivec2) ConstantComposite 57 78
80: 21(int) Constant 15
81: 21(int) Constant 16
82: 22(ivec2) ConstantComposite 80 81
83: 21(int) Constant 4294967294
84: 21(int) Constant 0
85: 22(ivec2) ConstantComposite 83 84
86: 77 ConstantComposite 79 25 82 85
94: TypeVector 21(int) 4
95: TypePointer Output 94(ivec4)
96(ioutp): 95(ptr) Variable Output
97: TypeImage 21(int) 2D array sampled format:Unknown
98: TypeSampledImage 97
99: TypePointer UniformConstant 98
100(isamp2DA): 99(ptr) Variable UniformConstant
102: 8(float) Constant 1036831949
103: 62(fvec3) ConstantComposite 102 102 102
104: 22(ivec2) ConstantComposite 57 57
116: TypePointer Input 9(fvec4)
117(gl_FragCoord): 116(ptr) Variable Input
119(vl2): 116(ptr) Variable Input
4(main): 2 Function None 3
5: Label
36(v): 35(ptr) Variable Function
45: 21(int) Load 44(i)
47: 46(ptr) AccessChain 42(arrayedSampler) 45
48: 38 Load 47
51: 18(fvec2) Load 50(c2D)
52: 9(fvec4) ImageSampleImplicitLod 48 51
Store 36(v) 52
59: 58(ptr) AccessChain 56(gl_ClipDistance) 57
60: 8(float) Load 59
61: 30(ptr) AccessChain 11(outp) 29
Store 61 60
63: 9(fvec4) Load 36(v)
64: 62(fvec3) VectorShuffle 63 63 1 2 3
65: 9(fvec4) Load 11(outp)
66: 9(fvec4) VectorShuffle 65 64 0 4 5 6
Store 11(outp) 66
74: 71 Load 73(samp2dr)
75: 18(fvec2) Load 50(c2D)
87: 67(ivec4) ImageGather 74 75 78 ConstOffsets 86
Store 69(uoutp) 87
88: 46(ptr) AccessChain 42(arrayedSampler) 84
89: 38 Load 88
90: 18(fvec2) Load 50(c2D)
91: 9(fvec4) ImageGather 89 90 84
92: 9(fvec4) Load 11(outp)
93: 9(fvec4) FAdd 92 91
Store 11(outp) 93
101: 98 Load 100(isamp2DA)
105: 94(ivec4) ImageGather 101 103 23 ConstOffset 104
Store 96(ioutp) 105
106: 98 Load 100(isamp2DA)
107: 94(ivec4) ImageGather 106 103 23 ConstOffset 104
108: 94(ivec4) Load 96(ioutp)
109: 94(ivec4) IAdd 108 107
Store 96(ioutp) 109
110: 98 Load 100(isamp2DA)
111: 21(int) Load 44(i)
112: 22(ivec2) CompositeConstruct 111 111
113: 94(ivec4) ImageGather 110 103 84 Offset 112
114: 94(ivec4) Load 96(ioutp)
115: 94(ivec4) IAdd 114 113
Store 96(ioutp) 115
118: 9(fvec4) Load 117(gl_FragCoord)
120: 9(fvec4) Load 119(vl2)
121: 9(fvec4) FAdd 118 120
122: 9(fvec4) Load 11(outp)
123: 9(fvec4) FAdd 122 121
Store 11(outp) 123
124: 2 FunctionCall 6(foo23()
Return
FunctionEnd
6(foo23(): 2 Function None 3
7: Label
16: 13 Load 15(u2drs)
17: 9(fvec4) Load 11(outp)
26: 8(float) CompositeExtract 17 3
27: 8(float) ImageSampleProjDrefExplicitLod 16 17 26 Grad ConstOffset 20 20 25
31: 30(ptr) AccessChain 11(outp) 29
32: 8(float) Load 31
33: 8(float) FAdd 32 27
34: 30(ptr) AccessChain 11(outp) 29
Store 34 33
Return
FunctionEnd
......@@ -5,17 +5,17 @@ Warning, version 400 is not yet complete; most version-specific features are pre
Linked tessellation control stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 90
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Capability Tessellation
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main"
EntryPoint TessellationControl 4 "main" 52 76 80 81 84 85 88 89
ExecutionMode 4 OutputVertices 4
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
Name 12 "a"
Name 17 "p"
......@@ -62,19 +62,11 @@ Linked tessellation control stage:
Decorate 63(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 70(gl_TessLevelInner) Patch
Decorate 70(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 75(outa) NoStaticUse
Decorate 76(patchOut) Patch
Decorate 76(patchOut) NoStaticUse
Decorate 80(inb) NoStaticUse
Decorate 81(ind) NoStaticUse
Decorate 84(ivla) Location 3
Decorate 84(ivla) NoStaticUse
Decorate 85(ivlb) Location 4
Decorate 85(ivlb) NoStaticUse
Decorate 88(ovla) Location 3
Decorate 88(ovla) NoStaticUse
Decorate 89(ovlb) Location 4
Decorate 89(ovlb) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
......@@ -121,8 +113,8 @@ Linked tessellation control stage:
70(gl_TessLevelInner): 69(ptr) Variable Output
71: 14(float) Constant 1067869798
73: TypeArray 10(int) 49
74: TypePointer PrivateGlobal 73
75(outa): 74(ptr) Variable PrivateGlobal
74: TypePointer Private 73
75(outa): 74(ptr) Variable Private
76(patchOut): 54(ptr) Variable Output
77: TypeVector 14(float) 2
78: TypeArray 77(fvec2) 20
......
......@@ -5,20 +5,20 @@ Warning, version 400 is not yet complete; most version-specific features are pre
Linked tessellation evaluation stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 98
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Capability Tessellation
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 4 "main"
ExecutionMode 4 InputTriangles
EntryPoint TessellationEvaluation 4 "main" 77 68 81 82 86 90 93 94 97
ExecutionMode 4 Triangles
ExecutionMode 4 SpacingFractionalOdd
ExecutionMode 4 VertexOrderCcw
ExecutionMode 4 PointMode
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
Name 4 "main"
Name 8 "a"
Name 13 "p"
......@@ -72,19 +72,11 @@ Linked tessellation evaluation stage:
MemberDecorate 66(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 66(gl_PerVertex) Block
Decorate 77(patchIn) Patch
Decorate 77(patchIn) NoStaticUse
Decorate 81(inb) NoStaticUse
Decorate 82(ind) NoStaticUse
Decorate 83(testblb) Block
Decorate 86(blb) NoStaticUse
Decorate 87(testbld) Block
Decorate 90(bld) NoStaticUse
Decorate 93(ivla) Location 23
Decorate 93(ivla) NoStaticUse
Decorate 94(ivlb) Location 24
Decorate 94(ivlb) NoStaticUse
Decorate 97(ovla) Location 23
Decorate 97(ovla) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......
......@@ -5,4 +5,126 @@ Warning, version 420 is not yet complete; most version-specific features are pre
Linked geometry stage:
Missing functionality: texture gather
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 74
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 14 23 46
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 4
ExecutionMode 4 OutputLineStrip
ExecutionMode 4 OutputVertices 127
Source GLSL 420
Name 4 "main"
Name 8 "p"
Name 9 "gl_PerVertex"
MemberName 9(gl_PerVertex) 0 "gl_PointSize"
Name 14 "gl_in"
Name 21 "gl_PerVertex"
MemberName 21(gl_PerVertex) 0 "gl_PointSize"
Name 23 ""
Name 28 "gl_ViewportIndex"
Name 31 "id"
Name 33 "gl_InvocationID"
Name 37 "v"
Name 41 "s2D"
Name 46 "coord"
Name 64 "i"
Name 67 "indexable"
Name 73 "v4"
MemberDecorate 9(gl_PerVertex) 0 BuiltIn PointSize
Decorate 9(gl_PerVertex) Block
MemberDecorate 21(gl_PerVertex) 0 BuiltIn PointSize
Decorate 21(gl_PerVertex) Block
Decorate 21(gl_PerVertex) Stream 0
Decorate 23 Stream 0
Decorate 28(gl_ViewportIndex) Stream 0
Decorate 28(gl_ViewportIndex) BuiltIn ViewportIndex
Decorate 33(gl_InvocationID) BuiltIn InvocationId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9(gl_PerVertex): TypeStruct 6(float)
10: TypeInt 32 0
11: 10(int) Constant 3
12: TypeArray 9(gl_PerVertex) 11
13: TypePointer Input 12
14(gl_in): 13(ptr) Variable Input
15: TypeInt 32 1
16: 15(int) Constant 1
17: 15(int) Constant 0
18: TypePointer Input 6(float)
21(gl_PerVertex): TypeStruct 6(float)
22: TypePointer Output 21(gl_PerVertex)
23: 22(ptr) Variable Output
25: TypePointer Output 6(float)
27: TypePointer Output 15(int)
28(gl_ViewportIndex): 27(ptr) Variable Output
29: 15(int) Constant 7
30: TypePointer Function 15(int)
32: TypePointer Input 15(int)
33(gl_InvocationID): 32(ptr) Variable Input
35: TypeVector 6(float) 4
36: TypePointer Function 35(fvec4)
38: TypeImage 6(float) 2D sampled format:Unknown
39: TypeSampledImage 38
40: TypePointer UniformConstant 39
41(s2D): 40(ptr) Variable UniformConstant
43: TypeVector 6(float) 2
44: TypeArray 43(fvec2) 11
45: TypePointer Input 44
46(coord): 45(ptr) Variable Input
47: TypePointer Input 43(fvec2)
50: TypeVector 15(int) 2
51: 10(int) Constant 5
52: TypeArray 50(ivec2) 51
53: 50(ivec2) ConstantComposite 17 16
54: 15(int) Constant 4294967294
55: 50(ivec2) ConstantComposite 16 54
56: 15(int) Constant 3
57: 50(ivec2) ConstantComposite 17 56
58: 15(int) Constant 4294967293
59: 50(ivec2) ConstantComposite 58 17
60: 15(int) Constant 2
61: 50(ivec2) ConstantComposite 60 16
62: 52 ConstantComposite 53 55 57 59 61
63: TypePointer UniformConstant 15(int)
64(i): 63(ptr) Variable UniformConstant
66: TypePointer Function 52
68: TypePointer Function 50(ivec2)
72: TypePointer UniformConstant 35(fvec4)
73(v4): 72(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(p): 7(ptr) Variable Function
31(id): 30(ptr) Variable Function
37(v): 36(ptr) Variable Function
67(indexable): 66(ptr) Variable Function
19: 18(ptr) AccessChain 14(gl_in) 16 17
20: 6(float) Load 19
Store 8(p) 20
24: 6(float) Load 8(p)
26: 25(ptr) AccessChain 23 17
Store 26 24
Store 28(gl_ViewportIndex) 29
EmitStreamVertex 16
EndStreamPrimitive 17
EmitVertex
EndPrimitive
34: 15(int) Load 33(gl_InvocationID)
Store 31(id) 34
42: 39 Load 41(s2D)
48: 47(ptr) AccessChain 46(coord) 17
49: 43(fvec2) Load 48
65: 15(int) Load 64(i)
Store 67(indexable) 62
69: 68(ptr) AccessChain 67(indexable) 65
70: 50(ivec2) Load 69
71: 35(fvec4) ImageGather 42 49 17 Offset 70
Store 37(v) 71
Return
FunctionEnd
......@@ -5,65 +5,52 @@ Warning, version 430 is not yet complete; most version-specific features are pre
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 62
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 63
Source GLSL 430
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 12 23 44 45 34 61 62
Source GLSL 430
Name 4 "main"
Name 10 "gl_PerVertex"
MemberName 10(gl_PerVertex) 0 "gl_ClipDistance"
Name 12 ""
Name 23 "bad"
Name 34 "badorder3"
Name 38 "f"
Name 42 "uv4"
Name 43 "badorder"
Name 44 "badorder2"
Name 45 "boundblock"
MemberName 45(boundblock) 0 "aoeu"
Name 47 "boundInst"
Name 48 "anonblock"
MemberName 48(anonblock) 0 "aoeu"
Name 50 ""
Name 54 "sampb1"
Name 57 "sampb2"
Name 58 "sampb4"
Name 60 "gl_VertexID"
Name 61 "gl_InstanceID"
Name 39 "f"
Name 43 "uv4"
Name 44 "badorder"
Name 45 "badorder2"
Name 46 "boundblock"
MemberName 46(boundblock) 0 "aoeu"
Name 48 "boundInst"
Name 49 "anonblock"
MemberName 49(anonblock) 0 "aoeu"
Name 51 ""
Name 55 "sampb1"
Name 58 "sampb2"
Name 59 "sampb4"
Name 61 "gl_VertexID"
Name 62 "gl_InstanceID"
MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance
Decorate 10(gl_PerVertex) Block
Decorate 34(badorder3) Flat
Decorate 42(uv4) Location 4
Decorate 42(uv4) NoStaticUse
Decorate 28 NoStaticUse
Decorate 28 NoStaticUse
Decorate 43(badorder) NoStaticUse
Decorate 44(badorder2) Smooth
Decorate 44(badorder2) Invariant
Decorate 44(badorder2) NoStaticUse
Decorate 45(boundblock) GLSLShared
Decorate 45(boundblock) Block
Decorate 47(boundInst) Binding 3
Decorate 47(boundInst) NoStaticUse
Decorate 48(anonblock) GLSLShared
Decorate 48(anonblock) Block
Decorate 50 Binding 7
Decorate 50 NoStaticUse
Decorate 54(sampb1) Binding 4
Decorate 54(sampb1) NoStaticUse
Decorate 57(sampb2) Binding 5
Decorate 57(sampb2) NoStaticUse
Decorate 58(sampb4) Binding 31
Decorate 58(sampb4) NoStaticUse
Decorate 60(gl_VertexID) BuiltIn VertexId
Decorate 60(gl_VertexID) NoStaticUse
Decorate 61(gl_InstanceID) BuiltIn InstanceId
Decorate 61(gl_InstanceID) NoStaticUse
Decorate 43(uv4) Location 4
Decorate 45(badorder2) Invariant
Decorate 46(boundblock) GLSLShared
Decorate 46(boundblock) Block
Decorate 48(boundInst) Binding 3
Decorate 49(anonblock) GLSLShared
Decorate 49(anonblock) Block
Decorate 51 Binding 7
Decorate 55(sampb1) Binding 4
Decorate 58(sampb2) Binding 5
Decorate 59(sampb4) Binding 31
Decorate 61(gl_VertexID) BuiltIn VertexId
Decorate 62(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -83,52 +70,53 @@ Linked vertex stage:
21: TypeArray 19(fvec4) 20
22: TypePointer Input 21
23(bad): 22(ptr) Variable Input
24: TypePointer Input 19(fvec4)
24: 7(int) Constant 0
25: TypePointer Input 6(float)
28: 6(float) Constant 1082549862
29: TypeBool
33: TypePointer Output 19(fvec4)
34(badorder3): 33(ptr) Variable Output
37: TypePointer UniformConstant 6(float)
38(f): 37(ptr) Variable UniformConstant
41: TypePointer UniformConstant 19(fvec4)
42(uv4): 41(ptr) Variable UniformConstant
43(badorder): 24(ptr) Variable Input
44(badorder2): 33(ptr) Variable Output
45(boundblock): TypeStruct 13(int)
46: TypePointer Uniform 45(boundblock)
47(boundInst): 46(ptr) Variable Uniform
48(anonblock): TypeStruct 13(int)
49: TypePointer Uniform 48(anonblock)
50: 49(ptr) Variable Uniform
51: TypeImage 6(float) 2D sampled format:Unknown
52: TypeSampledImage 51
53: TypePointer UniformConstant 52
54(sampb1): 53(ptr) Variable UniformConstant
55: TypeArray 52 20
56: TypePointer UniformConstant 55
57(sampb2): 56(ptr) Variable UniformConstant
58(sampb4): 53(ptr) Variable UniformConstant
59: TypePointer Input 13(int)
60(gl_VertexID): 59(ptr) Variable Input
61(gl_InstanceID): 59(ptr) Variable Input
35: TypePointer Input 19(fvec4)
38: TypePointer UniformConstant 6(float)
39(f): 38(ptr) Variable UniformConstant
42: TypePointer UniformConstant 19(fvec4)
43(uv4): 42(ptr) Variable UniformConstant
44(badorder): 35(ptr) Variable Input
45(badorder2): 33(ptr) Variable Output
46(boundblock): TypeStruct 13(int)
47: TypePointer Uniform 46(boundblock)
48(boundInst): 47(ptr) Variable Uniform
49(anonblock): TypeStruct 13(int)
50: TypePointer Uniform 49(anonblock)
51: 50(ptr) Variable Uniform
52: TypeImage 6(float) 2D sampled format:Unknown
53: TypeSampledImage 52
54: TypePointer UniformConstant 53
55(sampb1): 54(ptr) Variable UniformConstant
56: TypeArray 53 20
57: TypePointer UniformConstant 56
58(sampb2): 57(ptr) Variable UniformConstant
59(sampb4): 54(ptr) Variable UniformConstant
60: TypePointer Input 13(int)
61(gl_VertexID): 60(ptr) Variable Input
62(gl_InstanceID): 60(ptr) Variable Input
4(main): 2 Function None 3
5: Label
18: 17(ptr) AccessChain 12 14 15
Store 18 16
25: 24(ptr) AccessChain 23(bad) 14
26: 19(fvec4) Load 25
27: 6(float) CompositeExtract 26 0
26: 25(ptr) AccessChain 23(bad) 14 24
27: 6(float) Load 26
30: 29(bool) FOrdEqual 27 28
SelectionMerge 32 None
BranchConditional 30 31 32
31: Label
35: 24(ptr) AccessChain 23(bad) 14
36: 19(fvec4) Load 35
Store 34(badorder3) 36
36: 35(ptr) AccessChain 23(bad) 14
37: 19(fvec4) Load 36
Store 34(badorder3) 37
Branch 32
32: Label
39: 6(float) Load 38(f)
40: 17(ptr) AccessChain 12 14 14
Store 40 39
40: 6(float) Load 39(f)
41: 17(ptr) AccessChain 12 14 14
Store 41 40
Return
FunctionEnd
......@@ -5,16 +5,16 @@ Warning, version 430 is not yet complete; most version-specific features are pre
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 103
Source GLSL 430
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 77 38 43
ExecutionMode 4 OriginLowerLeft
Source GLSL 430
Name 4 "main"
Name 17 "foo(f1[5][7];"
Name 16 "a"
......@@ -33,8 +33,6 @@ Linked fragment stage:
Name 93 "uAofA"
MemberName 93(uAofA) 0 "f"
Name 97 "nameAofA"
Decorate 43(g5) Smooth
Decorate 77(infloat) Smooth
Decorate 93(uAofA) GLSLShared
Decorate 93(uAofA) Block
2: TypeVoid
......@@ -58,8 +56,8 @@ Linked fragment stage:
37: TypePointer Output 6(float)
38(outfloat): 37(ptr) Variable Output
39: 6(float) Constant 0
40: TypePointer PrivateGlobal 14
41(g4): 40(ptr) Variable PrivateGlobal
40: TypePointer Private 14
41(g4): 40(ptr) Variable Private
42: TypePointer Input 11
43(g5): 42(ptr) Variable Input
48: 6(float) Constant 1077936128
......@@ -74,15 +72,15 @@ Linked fragment stage:
61: TypeArray 59 60
62: 7(int) Constant 1
63: TypeArray 61 62
64: TypePointer PrivateGlobal 63
65(many): 64(ptr) Variable PrivateGlobal
64: TypePointer Private 63
65(many): 64(ptr) Variable Private
66: TypePointer UniformConstant 21(int)
67(i): 66(ptr) Variable UniformConstant
69(j): 66(ptr) Variable UniformConstant
71(k): 66(ptr) Variable UniformConstant
76: TypePointer Input 6(float)
77(infloat): 76(ptr) Variable Input
79: TypePointer PrivateGlobal 6(float)
79: TypePointer Private 6(float)
91: TypeArray 6(float) 13
92: TypeArray 91 60
93(uAofA): TypeStruct 92
......
......@@ -5,16 +5,16 @@ Warning, version 420 is not yet complete; most version-specific features are pre
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 197
Source GLSL 420
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 65
ExecutionMode 4 OriginLowerLeft
Source GLSL 420
Name 4 "main"
Name 8 "S"
MemberName 8(S) 0 "color"
......@@ -88,6 +88,7 @@ Linked fragment stage:
68: 67(int) Constant 0
95: TypeVector 6(float) 2
109: 67(int) Constant 2
136: TypePointer Output 6(float)
141: 6(float) Constant 0
142: 7(fvec3) ConstantComposite 141 141 141
143: TypePointer Function 8(S)
......@@ -306,12 +307,11 @@ Linked fragment stage:
59: Label
134: 13(int) Load 57(comp)
135: 6(float) CompositeExtract 56(i) 0 0
136: 7(fvec3) Load 65(OutColor)
137: 6(float) VectorExtractDynamic 136 134
138: 6(float) FAdd 137 135
139: 7(fvec3) Load 65(OutColor)
140: 7(fvec3) VectorInsertDynamic 139 138 134
Store 65(OutColor) 140
137: 136(ptr) AccessChain 65(OutColor) 134
138: 6(float) Load 137
139: 6(float) FAdd 138 135
140: 136(ptr) AccessChain 65(OutColor) 134
Store 140 139
Return
FunctionEnd
62(GetColor13(struct-S-vf31;i1;): 2 Function None 15
......
......@@ -3,26 +3,24 @@ spv.always-discard2.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 36
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
Source GLSL 110
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 21
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Name 4 "main"
Name 9 "white"
Name 12 "black"
Name 15 "color"
Name 18 "x"
Name 21 "tex_coord"
Name 27 "y"
Name 34 "gl_FragColor"
Decorate 21(tex_coord) Smooth
Decorate 34(gl_FragColor) BuiltIn FragColor
Name 30 "y"
Name 38 "gl_FragColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -36,29 +34,33 @@ Linked fragment stage:
19: TypeVector 6(float) 2
20: TypePointer Input 19(fvec2)
21(tex_coord): 20(ptr) Variable Input
24: 6(float) Constant 1073741824
33: TypePointer Output 7(fvec4)
34(gl_FragColor): 33(ptr) Variable Output
22: TypeInt 32 0
23: 22(int) Constant 0
24: TypePointer Input 6(float)
27: 6(float) Constant 1073741824
31: 22(int) Constant 1
37: TypePointer Output 7(fvec4)
38(gl_FragColor): 37(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(white): 8(ptr) Variable Function
12(black): 8(ptr) Variable Function
15(color): 8(ptr) Variable Function
18(x): 17(ptr) Variable Function
27(y): 17(ptr) Variable Function
30(y): 17(ptr) Variable Function
Store 9(white) 11
Store 12(black) 14
16: 7(fvec4) Load 9(white)
Store 15(color) 16
22: 19(fvec2) Load 21(tex_coord)
23: 6(float) CompositeExtract 22 0
25: 6(float) FMul 23 24
26: 6(float) FSub 25 10
Store 18(x) 26
28: 19(fvec2) Load 21(tex_coord)
29: 6(float) CompositeExtract 28 1
30: 6(float) FMul 29 24
31: 6(float) FSub 30 10
Store 27(y) 31
25: 24(ptr) AccessChain 21(tex_coord) 23
26: 6(float) Load 25
28: 6(float) FMul 26 27
29: 6(float) FSub 28 10
Store 18(x) 29
32: 24(ptr) AccessChain 21(tex_coord) 31
33: 6(float) Load 32
34: 6(float) FMul 33 27
35: 6(float) FSub 34 10
Store 30(y) 35
Kill
FunctionEnd
......@@ -6,16 +6,16 @@ Linked compute stage:
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 64
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 74
Source ESSL 310
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"
......@@ -29,14 +29,19 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class,
Name 40 "origu"
Name 42 "atomu"
Name 44 "value"
Name 61 "arrX"
Name 62 "arrY"
Name 63 "arrZ"
Name 61 "dataSSB"
MemberName 61(dataSSB) 0 "f"
MemberName 61(dataSSB) 1 "n_frames_rendered"
Name 63 "result"
Name 71 "arrX"
Name 72 "arrY"
Name 73 "arrZ"
Decorate 20(counter) Binding 0
Decorate 28(countArr) Binding 0
Decorate 61(arrX) NoStaticUse
Decorate 62(arrY) NoStaticUse
Decorate 63(arrZ) NoStaticUse
MemberDecorate 61(dataSSB) 0 Offset 0
MemberDecorate 61(dataSSB) 1 Offset 16
Decorate 61(dataSSB) BufferBlock
Decorate 63(result) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
......@@ -44,7 +49,7 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class,
8: TypeFunction 6(int) 7(ptr)
14: 6(int) Constant 1
15: 6(int) Constant 0
18: 6(int) Constant 256
18: 6(int) Constant 1024
19: TypePointer AtomicCounter 6(int)
20(counter): 19(ptr) Variable AtomicCounter
25: 6(int) Constant 4
......@@ -54,21 +59,29 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class,
29: TypeInt 32 1
30: 29(int) Constant 2
34: TypePointer Function 29(int)
36: TypePointer WorkgroupLocal 29(int)
37(atomi): 36(ptr) Variable WorkgroupLocal
36: TypePointer Workgroup 29(int)
37(atomi): 36(ptr) Variable Workgroup
38: 29(int) Constant 3
41: TypePointer WorkgroupLocal 6(int)
42(atomu): 41(ptr) Variable WorkgroupLocal
41: TypePointer Workgroup 6(int)
42(atomu): 41(ptr) Variable Workgroup
43: TypePointer UniformConstant 6(int)
44(value): 43(ptr) Variable UniformConstant
47: 6(int) Constant 7
52: 29(int) Constant 7
56: 6(int) Constant 10
59: TypeArray 29(int) 14
60: TypePointer PrivateGlobal 59
61(arrX): 60(ptr) Variable PrivateGlobal
62(arrY): 60(ptr) Variable PrivateGlobal
63(arrZ): 60(ptr) Variable PrivateGlobal
59: TypeFloat 32
60: TypeVector 29(int) 4
61(dataSSB): TypeStruct 59(float) 60(ivec4)
62: TypePointer Uniform 61(dataSSB)
63(result): 62(ptr) Variable Uniform
64: 29(int) Constant 1
65: 6(int) Constant 2
66: TypePointer Uniform 29(int)
69: TypeArray 29(int) 14
70: TypePointer Private 69
71(arrX): 70(ptr) Variable Private
72(arrY): 70(ptr) Variable Private
73(arrZ): 70(ptr) Variable Private
4(main): 2 Function None 3
5: Label
21(param): 7(ptr) Variable Function
......@@ -113,5 +126,7 @@ TBD functionality: Is atomic_uint an opaque handle in the uniform storage class,
57: 6(int) Load 44(value)
58: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56
Store 40(origu) 58
67: 66(ptr) AccessChain 63(result) 64 65
68: 29(int) AtomicIAdd 67 14 15 64
Return
FunctionEnd
spv.conditionalDiscard.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 36
Source GLSL 110
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 17
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
Name 4 "main"
Name 9 "v"
Name 13 "tex"
Name 17 "coord"
Name 34 "gl_FragColor"
Decorate 17(coord) Smooth
Decorate 34(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -5,21 +5,19 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 20
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 16
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 12 "gl_FragData"
Name 16 "Color"
Decorate 12(gl_FragData) BuiltIn FragColor
Decorate 16(Color) Smooth
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -5,22 +5,20 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 18
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 12 "gl_FragData"
Name 15 "i"
Name 18 "Color"
Decorate 12(gl_FragData) BuiltIn FragColor
Decorate 18(Color) Smooth
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -6,25 +6,23 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 38
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 26 23 37
Source GLSL 130
Name 4 "main"
Name 8 "i"
Name 23 "colorOut"
Name 26 "color"
Name 32 "gl_Position"
Name 37 "gl_VertexID"
Decorate 23(colorOut) Smooth
Decorate 32(gl_Position) BuiltIn Position
Decorate 37(gl_VertexID) BuiltIn VertexId
Decorate 37(gl_VertexID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -54,7 +52,7 @@ Linked vertex stage:
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 None
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
24: 6(int) Load 8(i)
......
......@@ -5,27 +5,23 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 18
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 15
Source GLSL 450
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 14 10 8 8
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 DepthAny
ExecutionMode 4 DepthGreater
ExecutionMode 4 DepthReplacing
Source GLSL 450
Name 4 "main"
Name 8 "gl_FragDepth"
Name 10 "Depth"
Name 14 "gl_FragColor"
Name 16 "Color"
Name 14 "Color"
Decorate 8(gl_FragDepth) BuiltIn FragDepth
Decorate 10(Depth) Smooth
Decorate 14(gl_FragColor) BuiltIn FragColor
Decorate 16(Color) Smooth
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -34,15 +30,11 @@ Linked fragment stage:
9: TypePointer Input 6(float)
10(Depth): 9(ptr) Variable Input
12: TypeVector 6(float) 4
13: TypePointer Output 12(fvec4)
14(gl_FragColor): 13(ptr) Variable Output
15: TypePointer Input 12(fvec4)
16(Color): 15(ptr) Variable Input
13: TypePointer Input 12(fvec4)
14(Color): 13(ptr) Variable Input
4(main): 2 Function None 3
5: Label
11: 6(float) Load 10(Depth)
Store 8(gl_FragDepth) 11
17: 12(fvec4) Load 16(Color)
Store 14(gl_FragColor) 17
Return
FunctionEnd
......@@ -3,23 +3,21 @@ spv.do-simple.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 29
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 27 28
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 27 "gl_VertexID"
Name 28 "gl_InstanceID"
Decorate 27(gl_VertexID) BuiltIn VertexId
Decorate 27(gl_VertexID) NoStaticUse
Decorate 28(gl_InstanceID) BuiltIn InstanceId
Decorate 28(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -40,7 +38,7 @@ Linked vertex stage:
Branch 10
10: Label
13: 14(bool) Phi 15 5 25 12
LoopMerge 11 None
LoopMerge 11 10 None
Branch 16
16: Label
SelectionMerge 12 None
......
......@@ -3,15 +3,15 @@ spv.do-while-continue-break.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 51
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 49 50
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 24 "A"
......@@ -24,9 +24,7 @@ Linked vertex stage:
Name 49 "gl_VertexID"
Name 50 "gl_InstanceID"
Decorate 49(gl_VertexID) BuiltIn VertexId
Decorate 49(gl_VertexID) NoStaticUse
Decorate 50(gl_InstanceID) BuiltIn InstanceId
Decorate 50(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -60,7 +58,7 @@ Linked vertex stage:
Branch 10
10: Label
13: 14(bool) Phi 15 5 31 28 31 38
LoopMerge 11 None
LoopMerge 11 10 None
Branch 16
16: Label
SelectionMerge 12 None
......
......@@ -3,24 +3,22 @@ spv.doWhileLoop.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 37
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 40
Source GLSL 110
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
Name 24 "d"
Name 29 "bigColor"
Name 35 "gl_FragColor"
Decorate 11(BaseColor) Smooth
Decorate 35(gl_FragColor) BuiltIn FragColor
Name 27 "d"
Name 32 "bigColor"
Name 38 "gl_FragColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -30,13 +28,16 @@ Linked fragment stage:
11(BaseColor): 10(ptr) Variable Input
17: TypeBool
18: 17(bool) ConstantTrue
23: TypePointer UniformConstant 6(float)
24(d): 23(ptr) Variable UniformConstant
28: TypePointer UniformConstant 7(fvec4)
29(bigColor): 28(ptr) Variable UniformConstant
33: 17(bool) ConstantFalse
34: TypePointer Output 7(fvec4)
35(gl_FragColor): 34(ptr) Variable Output
21: TypeInt 32 0
22: 21(int) Constant 0
23: TypePointer Function 6(float)
26: TypePointer UniformConstant 6(float)
27(d): 26(ptr) Variable UniformConstant
31: TypePointer UniformConstant 7(fvec4)
32(bigColor): 31(ptr) Variable UniformConstant
36: 17(bool) ConstantFalse
37: TypePointer Output 7(fvec4)
38(gl_FragColor): 37(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
......@@ -44,29 +45,29 @@ Linked fragment stage:
Store 9(color) 12
Branch 13
13: Label
16: 17(bool) Phi 18 5 33 15
LoopMerge 14 None
16: 17(bool) Phi 18 5 36 15
LoopMerge 14 13 None
Branch 19
19: Label
SelectionMerge 15 None
BranchConditional 16 15 20
20: Label
21: 7(fvec4) Load 9(color)
22: 6(float) CompositeExtract 21 0
25: 6(float) Load 24(d)
26: 17(bool) FOrdLessThan 22 25
SelectionMerge 27 None
BranchConditional 26 27 14
27: Label
24: 23(ptr) AccessChain 9(color) 22
25: 6(float) Load 24
28: 6(float) Load 27(d)
29: 17(bool) FOrdLessThan 25 28
SelectionMerge 30 None
BranchConditional 29 30 14
30: Label
Branch 15
15: Label
30: 7(fvec4) Load 29(bigColor)
31: 7(fvec4) Load 9(color)
32: 7(fvec4) FAdd 31 30
Store 9(color) 32
33: 7(fvec4) Load 32(bigColor)
34: 7(fvec4) Load 9(color)
35: 7(fvec4) FAdd 34 33
Store 9(color) 35
Branch 13
14: Label
36: 7(fvec4) Load 9(color)
Store 35(gl_FragColor) 36
39: 7(fvec4) Load 9(color)
Store 38(gl_FragColor) 39
Return
FunctionEnd
......@@ -5,16 +5,16 @@ Warning, version 430 is not yet complete; most version-specific features are pre
Linked compute stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 62
Source GLSL 430
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main"
ExecutionMode 4 LocalSize 1 1 1
Source GLSL 430
Name 4 "main"
Name 8 "bufName"
MemberName 8(bufName) 0 "f"
......@@ -32,12 +32,6 @@ Linked compute stage:
Decorate 8(bufName) BufferBlock
Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 13 NoStaticUse
Decorate 56 NoStaticUse
Decorate 13 NoStaticUse
Decorate 13 NoStaticUse
Decorate 58(roll) NoStaticUse
Decorate 61(destTex) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -99,7 +93,7 @@ Linked compute stage:
41: 40(fvec2) ConvertSToF 39
43: 40(fvec2) CompositeConstruct 42 42
44: 40(fvec2) FDiv 41 43
45: 6(float) ExtInst 1(GLSL.std.450) 65(Length) 44
45: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 44
46: 7(float) FConvert 45
Store 32(localCoef) 46
Store 49(aa) 53
......
......@@ -3,16 +3,16 @@ spv.flowControl.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 41
Source GLSL 120
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 18 11
ExecutionMode 4 OriginLowerLeft
Source GLSL 120
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
......@@ -23,9 +23,6 @@ Linked fragment stage:
Name 27 "bigColor"
Name 32 "smallColor"
Name 37 "gl_FragColor"
Decorate 11(BaseColor) Smooth
Decorate 18(c) Smooth
Decorate 37(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -3,15 +3,15 @@ spv.for-continue-break.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 48
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 46 47
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 17 "A"
......@@ -24,9 +24,7 @@ Linked vertex stage:
Name 46 "gl_VertexID"
Name 47 "gl_InstanceID"
Decorate 46(gl_VertexID) BuiltIn VertexId
Decorate 46(gl_VertexID) NoStaticUse
Decorate 47(gl_InstanceID) BuiltIn InstanceId
Decorate 47(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -57,7 +55,7 @@ Linked vertex stage:
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 None
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
Store 17(A) 18
......
......@@ -3,24 +3,22 @@ spv.for-simple.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 23 24
Source ESSL 300
Name 4 "main"
Name 8 "i"
Name 17 "j"
Name 23 "gl_VertexID"
Name 24 "gl_InstanceID"
Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 23(gl_VertexID) NoStaticUse
Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -42,7 +40,7 @@ Linked vertex stage:
10: Label
13: 6(int) Load 8(i)
16: 15(bool) SLessThan 13 14
LoopMerge 11 None
LoopMerge 11 10 None
BranchConditional 16 12 11
12: Label
Store 17(j) 18
......
......@@ -3,16 +3,16 @@ spv.forLoop.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 122
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 11 97
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 9 "color"
Name 11 "BaseColor"
......@@ -23,15 +23,12 @@ Linked fragment stage:
Name 38 "sum"
Name 40 "i"
Name 50 "v4"
Name 59 "i"
Name 65 "tv4"
Name 60 "i"
Name 66 "tv4"
Name 83 "r"
Name 89 "i"
Name 97 "f"
Name 110 "i"
Decorate 11(BaseColor) Smooth
Decorate 35(gl_FragColor) BuiltIn FragColor
Decorate 97(f) Smooth
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -57,10 +54,12 @@ Linked fragment stage:
48: TypeVector 47(int) 4
49: TypePointer UniformConstant 48(ivec4)
50(v4): 49(ptr) Variable UniformConstant
70: 47(int) Constant 4
52: TypePointer UniformConstant 47(int)
71: 47(int) Constant 4
84: TypeVector 6(float) 3
96: TypePointer Input 6(float)
97(f): 96(ptr) Variable Input
99: 47(int) Constant 3
115: 13(int) Constant 16
4(main): 2 Function None 3
5: Label
......@@ -68,8 +67,8 @@ Linked fragment stage:
15(i): 14(ptr) Variable Function
38(sum): 37(ptr) Variable Function
40(i): 14(ptr) Variable Function
59(i): 14(ptr) Variable Function
65(tv4): 8(ptr) Variable Function
60(i): 14(ptr) Variable Function
66(tv4): 8(ptr) Variable Function
83(r): 8(ptr) Variable Function
89(i): 14(ptr) Variable Function
110(i): 14(ptr) Variable Function
......@@ -81,7 +80,7 @@ Linked fragment stage:
20: 13(int) Load 15(i)
23: 13(int) Load 22(Count)
25: 24(bool) SLessThan 20 23
LoopMerge 18 None
LoopMerge 18 17 None
BranchConditional 25 19 18
19: Label
28: 7(fvec4) Load 27(bigColor)
......@@ -101,46 +100,45 @@ Linked fragment stage:
41: Label
44: 13(int) Load 40(i)
46: 24(bool) SLessThan 44 45
LoopMerge 42 None
LoopMerge 42 41 None
BranchConditional 46 43 42
43: Label
51: 13(int) Load 40(i)
52: 48(ivec4) Load 50(v4)
53: 47(int) VectorExtractDynamic 52 51
54: 6(float) ConvertUToF 53
55: 6(float) Load 38(sum)
56: 6(float) FAdd 55 54
Store 38(sum) 56
57: 13(int) Load 40(i)
58: 13(int) IAdd 57 32
Store 40(i) 58
53: 52(ptr) AccessChain 50(v4) 51
54: 47(int) Load 53
55: 6(float) ConvertUToF 54
56: 6(float) Load 38(sum)
57: 6(float) FAdd 56 55
Store 38(sum) 57
58: 13(int) Load 40(i)
59: 13(int) IAdd 58 32
Store 40(i) 59
Branch 41
42: Label
Store 59(i) 16
Branch 60
60: Label
63: 13(int) Load 59(i)
64: 24(bool) SLessThan 63 45
LoopMerge 61 None
BranchConditional 64 62 61
62: Label
66: 13(int) Load 59(i)
67: 13(int) Load 59(i)
68: 48(ivec4) Load 50(v4)
69: 47(int) VectorExtractDynamic 68 67
71: 47(int) IMul 69 70
72: 6(float) ConvertUToF 71
73: 7(fvec4) Load 65(tv4)
74: 7(fvec4) VectorInsertDynamic 73 72 66
Store 65(tv4) 74
75: 13(int) Load 59(i)
76: 13(int) IAdd 75 32
Store 59(i) 76
Branch 60
Store 60(i) 16
Branch 61
61: Label
64: 13(int) Load 60(i)
65: 24(bool) SLessThan 64 45
LoopMerge 62 61 None
BranchConditional 65 63 62
63: Label
67: 13(int) Load 60(i)
68: 13(int) Load 60(i)
69: 52(ptr) AccessChain 50(v4) 68
70: 47(int) Load 69
72: 47(int) IMul 70 71
73: 6(float) ConvertUToF 72
74: 37(ptr) AccessChain 66(tv4) 67
Store 74 73
75: 13(int) Load 60(i)
76: 13(int) IAdd 75 32
Store 60(i) 76
Branch 61
62: Label
77: 6(float) Load 38(sum)
78: 7(fvec4) CompositeConstruct 77 77 77 77
79: 7(fvec4) Load 65(tv4)
79: 7(fvec4) Load 66(tv4)
80: 7(fvec4) FAdd 78 79
81: 7(fvec4) Load 35(gl_FragColor)
82: 7(fvec4) FAdd 81 80
......@@ -156,13 +154,12 @@ Linked fragment stage:
93: 13(int) Load 89(i)
94: 13(int) Load 22(Count)
95: 24(bool) SLessThan 93 94
LoopMerge 91 None
LoopMerge 91 90 None
BranchConditional 95 92 91
92: Label
98: 6(float) Load 97(f)
99: 7(fvec4) Load 83(r)
100: 7(fvec4) CompositeInsert 98 99 3
Store 83(r) 100
100: 37(ptr) AccessChain 83(r) 99
Store 100 98
101: 13(int) Load 89(i)
102: 13(int) IAdd 101 32
Store 89(i) 102
......@@ -181,7 +178,7 @@ Linked fragment stage:
111: Label
114: 13(int) Load 110(i)
116: 24(bool) SLessThan 114 115
LoopMerge 112 None
LoopMerge 112 111 None
BranchConditional 116 113 112
113: Label
117: 6(float) Load 97(f)
......
......@@ -3,16 +3,16 @@ spv.forwardFun.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 57
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 60
Source ESSL 100
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 20
ExecutionMode 4 OriginLowerLeft
Source ESSL 100
Name 4 "main"
Name 6 "bar("
Name 10 "unreachableReturn("
......@@ -24,16 +24,13 @@ Linked fragment stage:
Name 27 "f"
Name 30 "gl_FragColor"
Name 36 "d"
Name 56 "bigColor"
Name 59 "bigColor"
Decorate 18(color) RelaxedPrecision
Decorate 20(BaseColor) RelaxedPrecision
Decorate 20(BaseColor) Smooth
Decorate 27(f) RelaxedPrecision
Decorate 30(gl_FragColor) RelaxedPrecision
Decorate 30(gl_FragColor) BuiltIn FragColor
Decorate 36(d) RelaxedPrecision
Decorate 56(bigColor) RelaxedPrecision
Decorate 56(bigColor) NoStaticUse
Decorate 59(bigColor) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
......@@ -52,8 +49,11 @@ Linked fragment stage:
39: TypeBool
43: 8(float) Constant 1067030938
46: 8(float) Constant 1083179008
55: TypePointer UniformConstant 12(fvec4)
56(bigColor): 55(ptr) Variable UniformConstant
49: TypeInt 32 0
50: 49(int) Constant 0
53: 49(int) Constant 1
58: TypePointer UniformConstant 12(fvec4)
59(bigColor): 58(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
18(color): 13(ptr) Variable Function
......@@ -95,10 +95,10 @@ Linked fragment stage:
16(foo(vf4;): 8(float) Function None 14
15(bar): 13(ptr) FunctionParameter
17: Label
49: 12(fvec4) Load 15(bar)
50: 8(float) CompositeExtract 49 0
51: 12(fvec4) Load 15(bar)
52: 8(float) CompositeExtract 51 1
53: 8(float) FAdd 50 52
ReturnValue 53
51: 26(ptr) AccessChain 15(bar) 50
52: 8(float) Load 51
54: 26(ptr) AccessChain 15(bar) 53
55: 8(float) Load 54
56: 8(float) FAdd 52 55
ReturnValue 56
FunctionEnd
......@@ -5,16 +5,16 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 73
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 76
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 57
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 11 "foo(vf4;"
Name 10 "bar"
......@@ -22,17 +22,14 @@ Linked fragment stage:
Name 16 "unreachableReturn("
Name 18 "missingReturn("
Name 21 "h"
Name 30 "d"
Name 51 "color"
Name 53 "BaseColor"
Name 54 "param"
Name 60 "f"
Name 62 "g"
Name 65 "gl_FragColor"
Name 72 "bigColor"
Decorate 53(BaseColor) Smooth
Decorate 65(gl_FragColor) BuiltIn FragColor
Decorate 72(bigColor) NoStaticUse
Name 34 "d"
Name 55 "color"
Name 57 "BaseColor"
Name 58 "param"
Name 63 "f"
Name 65 "g"
Name 68 "gl_FragColor"
Name 75 "bigColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -40,57 +37,60 @@ Linked fragment stage:
8: TypePointer Function 7(fvec4)
9: TypeFunction 6(float) 8(ptr)
15: TypeFunction 6(float)
20: TypePointer PrivateGlobal 6(float)
21(h): 20(ptr) Variable PrivateGlobal
20: TypePointer Private 6(float)
21(h): 20(ptr) Variable Private
22: 6(float) Constant 0
29: TypePointer UniformConstant 6(float)
30(d): 29(ptr) Variable UniformConstant
32: 6(float) Constant 1082549862
33: TypeBool
37: 6(float) Constant 1067030938
40: 6(float) Constant 1083179008
48: 6(float) Constant 1081711002
52: TypePointer Input 7(fvec4)
53(BaseColor): 52(ptr) Variable Input
59: TypePointer Function 6(float)
64: TypePointer Output 7(fvec4)
65(gl_FragColor): 64(ptr) Variable Output
71: TypePointer UniformConstant 7(fvec4)
72(bigColor): 71(ptr) Variable UniformConstant
23: TypeInt 32 0
24: 23(int) Constant 0
25: TypePointer Function 6(float)
28: 23(int) Constant 1
33: TypePointer UniformConstant 6(float)
34(d): 33(ptr) Variable UniformConstant
36: 6(float) Constant 1082549862
37: TypeBool
41: 6(float) Constant 1067030938
44: 6(float) Constant 1083179008
52: 6(float) Constant 1081711002
56: TypePointer Input 7(fvec4)
57(BaseColor): 56(ptr) Variable Input
67: TypePointer Output 7(fvec4)
68(gl_FragColor): 67(ptr) Variable Output
74: TypePointer UniformConstant 7(fvec4)
75(bigColor): 74(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
51(color): 8(ptr) Variable Function
54(param): 8(ptr) Variable Function
60(f): 59(ptr) Variable Function
62(g): 59(ptr) Variable Function
55(color): 8(ptr) Variable Function
58(param): 8(ptr) Variable Function
63(f): 25(ptr) Variable Function
65(g): 25(ptr) Variable Function
Store 21(h) 22
55: 7(fvec4) Load 53(BaseColor)
Store 54(param) 55
56: 6(float) FunctionCall 11(foo(vf4;) 54(param)
57: 7(fvec4) CompositeConstruct 56 56 56 56
Store 51(color) 57
58: 2 FunctionCall 13(bar()
61: 6(float) FunctionCall 16(unreachableReturn()
Store 60(f) 61
63: 6(float) FunctionCall 18(missingReturn()
Store 62(g) 63
66: 7(fvec4) Load 51(color)
67: 6(float) Load 60(f)
68: 7(fvec4) VectorTimesScalar 66 67
69: 6(float) Load 21(h)
70: 7(fvec4) VectorTimesScalar 68 69
Store 65(gl_FragColor) 70
59: 7(fvec4) Load 57(BaseColor)
Store 58(param) 59
60: 6(float) FunctionCall 11(foo(vf4;) 58(param)
61: 7(fvec4) CompositeConstruct 60 60 60 60
Store 55(color) 61
62: 2 FunctionCall 13(bar()
64: 6(float) FunctionCall 16(unreachableReturn()
Store 63(f) 64
66: 6(float) FunctionCall 18(missingReturn()
Store 65(g) 66
69: 7(fvec4) Load 55(color)
70: 6(float) Load 63(f)
71: 7(fvec4) VectorTimesScalar 69 70
72: 6(float) Load 21(h)
73: 7(fvec4) VectorTimesScalar 71 72
Store 68(gl_FragColor) 73
Return
FunctionEnd
11(foo(vf4;): 6(float) Function None 9
10(bar): 8(ptr) FunctionParameter
12: Label
23: 7(fvec4) Load 10(bar)
24: 6(float) CompositeExtract 23 0
25: 7(fvec4) Load 10(bar)
26: 6(float) CompositeExtract 25 1
27: 6(float) FAdd 24 26
ReturnValue 27
26: 25(ptr) AccessChain 10(bar) 24
27: 6(float) Load 26
29: 25(ptr) AccessChain 10(bar) 28
30: 6(float) Load 29
31: 6(float) FAdd 27 30
ReturnValue 31
FunctionEnd
13(bar(): 2 Function None 3
14: Label
......@@ -98,29 +98,29 @@ Linked fragment stage:
FunctionEnd
16(unreachableReturn(): 6(float) Function None 15
17: Label
31: 6(float) Load 30(d)
34: 33(bool) FOrdLessThan 31 32
SelectionMerge 36 None
BranchConditional 34 35 39
35: Label
ReturnValue 37
35: 6(float) Load 34(d)
38: 37(bool) FOrdLessThan 35 36
SelectionMerge 40 None
BranchConditional 38 39 43
39: Label
ReturnValue 40
36: Label
42: 6(float) Undef
ReturnValue 42
ReturnValue 41
43: Label
ReturnValue 44
40: Label
46: 6(float) Undef
ReturnValue 46
FunctionEnd
18(missingReturn(): 6(float) Function None 15
19: Label
43: 6(float) Load 30(d)
44: 33(bool) FOrdLessThan 43 40
SelectionMerge 46 None
BranchConditional 44 45 46
45: Label
47: 6(float) Load 30(d)
Store 21(h) 47
ReturnValue 48
46: Label
50: 6(float) Undef
ReturnValue 50
47: 6(float) Load 34(d)
48: 37(bool) FOrdLessThan 47 44
SelectionMerge 50 None
BranchConditional 48 49 50
49: Label
51: 6(float) Load 34(d)
Store 21(h) 51
ReturnValue 52
50: Label
54: 6(float) Undef
ReturnValue 54
FunctionEnd
......@@ -3,24 +3,21 @@ spv.length.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 33
Source GLSL 120
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 14
ExecutionMode 4 OriginLowerLeft
Source GLSL 120
Name 4 "main"
Name 9 "t"
Name 14 "v"
Name 26 "gl_FragColor"
Name 32 "u"
Decorate 14(v) Smooth
Decorate 26(gl_FragColor) BuiltIn FragColor
Decorate 32(u) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -3,15 +3,15 @@ spv.matFun.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 93
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 73 92
Source GLSL 130
Name 4 "main"
Name 14 "xf(mf33;vf3;"
Name 12 "m"
......@@ -33,7 +33,6 @@ Linked vertex stage:
Name 92 "gl_VertexID"
Decorate 69(gl_Position) BuiltIn Position
Decorate 92(gl_VertexID) BuiltIn VertexId
Decorate 92(gl_VertexID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -3,15 +3,15 @@ spv.nonSquare.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 90
Source GLSL 120
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 12 55
Source GLSL 120
Name 4 "main"
Name 9 "a"
Name 12 "v3"
......@@ -21,9 +21,6 @@ Linked vertex stage:
Name 28 "gl_Position"
Name 55 "v4"
Decorate 28(gl_Position) BuiltIn Position
Decorate 74 NoStaticUse
Decorate 78 NoStaticUse
Decorate 89 NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -3,16 +3,16 @@ spv.precision.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 110
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 112
Source ESSL 300
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 57 59 23 71
ExecutionMode 4 OriginLowerLeft
Source ESSL 300
Name 4 "main"
Name 12 "foo(vf3;"
Name 11 "mv3"
......@@ -31,9 +31,8 @@ Linked fragment stage:
Name 63 "global_highp"
Name 67 "local_highp"
Name 71 "mediumfout"
Name 100 "ub2"
Name 101 "param"
Decorate 23(highfin) Smooth
Name 102 "ub2"
Name 103 "param"
Decorate 36(sum) RelaxedPrecision
Decorate 38(uniform_medium) RelaxedPrecision
Decorate 46(uniform_low) RelaxedPrecision
......@@ -41,9 +40,7 @@ Linked fragment stage:
Decorate 53(arg2) RelaxedPrecision
Decorate 55(d) RelaxedPrecision
Decorate 57(lowfin) RelaxedPrecision
Decorate 57(lowfin) Smooth
Decorate 59(mediumfin) RelaxedPrecision
Decorate 59(mediumfin) Smooth
Decorate 71(mediumfout) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
......@@ -74,16 +71,18 @@ Linked fragment stage:
56: TypePointer Input 6(float)
57(lowfin): 56(ptr) Variable Input
59(mediumfin): 56(ptr) Variable Input
62: TypePointer PrivateGlobal 6(float)
63(global_highp): 62(ptr) Variable PrivateGlobal
62: TypePointer Private 6(float)
63(global_highp): 62(ptr) Variable Private
66: TypePointer Function 21(fvec4)
70: TypePointer Output 21(fvec4)
71(mediumfout): 70(ptr) Variable Output
80: 34(int) Constant 4
82: TypeVector 34(int) 2
99: TypePointer UniformConstant 15(bvec2)
100(ub2): 99(ptr) Variable UniformConstant
107: 6(float) Constant 1065353216
90: TypeInt 32 0
91: 90(int) Constant 0
101: TypePointer UniformConstant 15(bvec2)
102(ub2): 101(ptr) Variable UniformConstant
109: 6(float) Constant 1065353216
4(main): 2 Function None 3
5: Label
36(sum): 35(ptr) Variable Function
......@@ -91,7 +90,7 @@ Linked fragment stage:
53(arg2): 50(ptr) Variable Function
55(d): 50(ptr) Variable Function
67(local_highp): 66(ptr) Variable Function
101(param): 16(ptr) Variable Function
103(param): 16(ptr) Variable Function
39: 34(int) Load 38(uniform_medium)
41: 34(int) Load 40(uniform_high)
42: 34(int) IAdd 39 41
......@@ -108,10 +107,10 @@ Linked fragment stage:
Store 53(arg2) 54
58: 6(float) Load 57(lowfin)
60: 6(float) Load 59(mediumfin)
61: 6(float) ExtInst 1(GLSL.std.450) 66(Distance) 58 60
61: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 58 60
Store 55(d) 61
64: 21(fvec4) Load 23(highfin)
65: 6(float) ExtInst 1(GLSL.std.450) 65(Length) 64
65: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 64
Store 63(global_highp) 65
68: 6(float) Load 63(global_highp)
69: 21(fvec4) CompositeConstruct 68 68 68 68
......@@ -133,29 +132,29 @@ Linked fragment stage:
87: 34(int) Load 40(uniform_high)
88: 82(ivec2) CompositeConstruct 87 87
89: 82(ivec2) IAdd 86 88
90: 34(int) CompositeExtract 89 0
91: 34(int) IAdd 80 90
92: 34(int) Load 36(sum)
93: 34(int) IAdd 92 91
Store 36(sum) 93
92: 34(int) CompositeExtract 89 0
93: 34(int) IAdd 80 92
94: 34(int) Load 36(sum)
95: 6(float) ConvertSToF 94
96: 21(fvec4) CompositeConstruct 95 95 95 95
97: 21(fvec4) Load 71(mediumfout)
98: 21(fvec4) FAdd 97 96
Store 71(mediumfout) 98
102: 15(bvec2) Load 100(ub2)
Store 101(param) 102
103: 14(bool) FunctionCall 19(boolfun(vb2;) 101(param)
SelectionMerge 105 None
BranchConditional 103 104 105
104: Label
106: 21(fvec4) Load 71(mediumfout)
108: 21(fvec4) CompositeConstruct 107 107 107 107
109: 21(fvec4) FAdd 106 108
Store 71(mediumfout) 109
Branch 105
105: Label
95: 34(int) IAdd 94 93
Store 36(sum) 95
96: 34(int) Load 36(sum)
97: 6(float) ConvertSToF 96
98: 21(fvec4) CompositeConstruct 97 97 97 97
99: 21(fvec4) Load 71(mediumfout)
100: 21(fvec4) FAdd 99 98
Store 71(mediumfout) 100
104: 15(bvec2) Load 102(ub2)
Store 103(param) 104
105: 14(bool) FunctionCall 19(boolfun(vb2;) 103(param)
SelectionMerge 107 None
BranchConditional 105 106 107
106: Label
108: 21(fvec4) Load 71(mediumfout)
110: 21(fvec4) CompositeConstruct 109 109 109 109
111: 21(fvec4) FAdd 108 110
Store 71(mediumfout) 111
Branch 107
107: Label
Return
FunctionEnd
12(foo(vf3;): 9(fvec2) Function None 10
......
......@@ -3,16 +3,16 @@ spv.prepost.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 96
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 94
Source GLSL 140
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Source GLSL 140
Name 4 "main"
Name 8 "index"
Name 14 "s"
......@@ -23,8 +23,7 @@ Linked fragment stage:
Name 61 "y"
Name 66 "z"
Name 73 "v"
Name 92 "gl_FragColor"
Decorate 92(gl_FragColor) BuiltIn FragColor
Name 90 "gl_FragColor"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -47,8 +46,12 @@ Linked fragment stage:
74: 10(float) Constant 1077936128
75: 10(float) Constant 1082130432
76: 71(fvec4) ConstantComposite 28 19 74 75
91: TypePointer Output 71(fvec4)
92(gl_FragColor): 91(ptr) Variable Output
77: 11(int) Constant 2
81: 11(int) Constant 1
83: 11(int) Constant 3
87: 11(int) Constant 0
89: TypePointer Output 71(fvec4)
90(gl_FragColor): 89(ptr) Variable Output
4(main): 2 Function None 3
5: Label
8(index): 7(ptr) Variable Function
......@@ -124,27 +127,21 @@ Linked fragment stage:
70: 10(float) FMul 67 68
Store 66(z) 70
Store 73(v) 76
77: 71(fvec4) Load 73(v)
78: 10(float) CompositeExtract 77 2
79: 10(float) FSub 78 28
80: 71(fvec4) Load 73(v)
81: 71(fvec4) CompositeInsert 79 80 2
Store 73(v) 81
82: 71(fvec4) Load 73(v)
83: 71(fvec4) CompositeInsert 78 82 1
Store 73(v) 83
84: 71(fvec4) Load 73(v)
85: 10(float) CompositeExtract 84 3
78: 20(ptr) AccessChain 73(v) 77
79: 10(float) Load 78
80: 10(float) FSub 79 28
Store 78 80
82: 20(ptr) AccessChain 73(v) 81
Store 82 79
84: 20(ptr) AccessChain 73(v) 83
85: 10(float) Load 84
86: 10(float) FSub 85 28
87: 71(fvec4) Load 73(v)
88: 71(fvec4) CompositeInsert 86 87 3
Store 73(v) 88
89: 71(fvec4) Load 73(v)
90: 71(fvec4) CompositeInsert 86 89 0
Store 73(v) 90
93: 10(float) Load 66(z)
94: 71(fvec4) Load 73(v)
95: 71(fvec4) VectorTimesScalar 94 93
Store 92(gl_FragColor) 95
Store 84 86
88: 20(ptr) AccessChain 73(v) 87
Store 88 86
91: 10(float) Load 66(z)
92: 71(fvec4) Load 73(v)
93: 71(fvec4) VectorTimesScalar 92 91
Store 90(gl_FragColor) 93
Return
FunctionEnd
......@@ -5,15 +5,15 @@ Warning, version 430 is not yet complete; most version-specific features are pre
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
Source GLSL 430
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 11 9 13 15 17 19 23 24
Source GLSL 430
Name 4 "main"
Name 9 "outVc"
Name 11 "inV"
......@@ -23,15 +23,11 @@ Linked vertex stage:
Name 19 "outVcn"
Name 23 "gl_VertexID"
Name 24 "gl_InstanceID"
Decorate 9(outVc) Smooth
Decorate 13(outVs) Smooth
Decorate 15(outVf) Flat
Decorate 17(outVn) Noperspective
Decorate 19(outVcn) Noperspective
Decorate 17(outVn) NoPerspective
Decorate 19(outVcn) NoPerspective
Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 23(gl_VertexID) NoStaticUse
Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -5,16 +5,16 @@ Warning, version 430 is not yet complete; most version-specific features are pre
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 211
Source GLSL 430
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Source GLSL 430
Name 4 "main"
Name 9 "lod"
Name 13 "samp1D"
......@@ -41,8 +41,6 @@ Linked fragment stage:
Name 176 "usampCubeA"
Name 206 "sampBuf"
Name 210 "sampRect"
Decorate 206(sampBuf) NoStaticUse
Decorate 210(sampRect) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -5,35 +5,31 @@ Warning, version 450 is not yet complete; most version-specific features are pre
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 25
Source GLSL 450
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 9 23 24
Source GLSL 450
Name 4 "main"
Name 9 "color"
Name 10 "setBuf"
MemberName 10(setBuf) 0 "color"
Name 12 "setBufInst"
Name 21 "sampler"
Name 21 "samp2D"
Name 23 "gl_VertexID"
Name 24 "gl_InstanceID"
Decorate 9(color) Smooth
Decorate 10(setBuf) GLSLShared
Decorate 10(setBuf) BufferBlock
Decorate 12(setBufInst) DescriptorSet 0
Decorate 12(setBufInst) Binding 8
Decorate 21(sampler) DescriptorSet 4
Decorate 21(sampler) Binding 7
Decorate 21(sampler) NoStaticUse
Decorate 21(samp2D) DescriptorSet 4
Decorate 21(samp2D) Binding 7
Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 23(gl_VertexID) NoStaticUse
Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -49,7 +45,7 @@ Linked vertex stage:
18: TypeImage 6(float) 2D sampled format:Unknown
19: TypeSampledImage 18
20: TypePointer UniformConstant 19
21(sampler): 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
......
......@@ -5,16 +5,16 @@ Warning, version 400 is not yet complete; most version-specific features are pre
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 143
Source GLSL 400
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 12 23
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
Name 4 "main"
Name 8 "foo("
Name 12 "of1"
......@@ -27,10 +27,6 @@ Linked fragment stage:
Name 138 "uv4"
Name 141 "ub41"
Name 142 "ub42"
Decorate 136(uiv4) NoStaticUse
Decorate 138(uv4) NoStaticUse
Decorate 141(ub41) NoStaticUse
Decorate 142(ub42) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeBool
......
......@@ -5,26 +5,22 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 22
Source GLSL 150
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 12
ExecutionMode 4 OriginLowerLeft
Source GLSL 150
Name 4 "main"
Name 9 "foo("
Name 12 "BaseColor"
Name 16 "gl_FragColor"
Name 19 "bigColor"
Name 21 "d"
Decorate 12(BaseColor) Smooth
Decorate 16(gl_FragColor) BuiltIn FragColor
Decorate 19(bigColor) NoStaticUse
Decorate 21(d) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
......@@ -3,15 +3,15 @@ spv.simpleMat.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 43
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 42
Source GLSL 330
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 15 23 34 19 9 40 41
Source GLSL 330
Name 4 "main"
Name 9 "glPos"
Name 12 "mvp"
......@@ -19,14 +19,10 @@ Linked vertex stage:
Name 19 "f"
Name 23 "am3"
Name 34 "arraym"
Name 41 "gl_VertexID"
Name 42 "gl_InstanceID"
Decorate 9(glPos) Smooth
Decorate 19(f) Smooth
Decorate 41(gl_VertexID) BuiltIn VertexId
Decorate 41(gl_VertexID) NoStaticUse
Decorate 42(gl_InstanceID) BuiltIn InstanceId
Decorate 42(gl_InstanceID) NoStaticUse
Name 40 "gl_VertexID"
Name 41 "gl_InstanceID"
Decorate 40(gl_VertexID) BuiltIn VertexId
Decorate 41(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -46,29 +42,28 @@ Linked vertex stage:
23(am3): 22(ptr) Variable Input
24: TypeInt 32 1
25: 24(int) Constant 2
26: TypePointer Input 20(fvec3)
30: TypeInt 32 0
31: 30(int) Constant 3
26: TypeInt 32 0
27: 26(int) Constant 1
28: TypePointer Input 6(float)
31: 26(int) Constant 3
32: TypeArray 10 31
33: TypePointer Input 32
34(arraym): 33(ptr) Variable Input
35: 24(int) Constant 1
40: TypePointer Input 24(int)
41(gl_VertexID): 40(ptr) Variable Input
42(gl_InstanceID): 40(ptr) Variable Input
39: TypePointer Input 24(int)
40(gl_VertexID): 39(ptr) Variable Input
41(gl_InstanceID): 39(ptr) Variable Input
4(main): 2 Function None 3
5: Label
13: 10 Load 12(mvp)
16: 7(fvec4) Load 15(v)
17: 7(fvec4) MatrixTimesVector 13 16
Store 9(glPos) 17
27: 26(ptr) AccessChain 23(am3) 25
28: 20(fvec3) Load 27
29: 6(float) CompositeExtract 28 1
36: 14(ptr) AccessChain 34(arraym) 35 25
37: 7(fvec4) Load 36
38: 6(float) CompositeExtract 37 3
39: 6(float) FAdd 29 38
Store 19(f) 39
29: 28(ptr) AccessChain 23(am3) 25 27
30: 6(float) Load 29
36: 28(ptr) AccessChain 34(arraym) 35 25 31
37: 6(float) Load 36
38: 6(float) FAdd 30 37
Store 19(f) 38
Return
FunctionEnd
......@@ -5,16 +5,16 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 50
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 44
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 8 "lunarStruct1"
MemberName 8(lunarStruct1) 0 "i"
......@@ -32,12 +32,9 @@ Linked fragment stage:
Name 22 "locals2"
Name 27 "foo2"
Name 31 "gl_FragColor"
Name 40 "sampler"
Name 40 "samp2D"
Name 44 "coord"
Name 49 "foo"
Decorate 31(gl_FragColor) BuiltIn FragColor
Decorate 44(coord) Smooth
Decorate 49(foo) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -62,7 +59,7 @@ Linked fragment stage:
37: TypeImage 7(float) 2D sampled format:Unknown
38: TypeSampledImage 37
39: TypePointer UniformConstant 38
40(sampler): 39(ptr) Variable UniformConstant
40(samp2D): 39(ptr) Variable UniformConstant
42: TypeVector 7(float) 2
43: TypePointer Input 42(fvec2)
44(coord): 43(ptr) Variable Input
......@@ -88,7 +85,7 @@ Linked fragment stage:
20: Label
35: 34(ptr) AccessChain 22(locals2) 32 33
36: 7(float) Load 35
41: 38 Load 40(sampler)
41: 38 Load 40(samp2D)
45: 42(fvec2) Load 44(coord)
46: 29(fvec4) ImageSampleImplicitLod 41 45
47: 29(fvec4) VectorTimesScalar 46 36
......
......@@ -5,16 +5,16 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 120
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 123
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 61
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 8 "s0"
MemberName 8(s0) 0 "i"
......@@ -41,14 +41,11 @@ Linked fragment stage:
MemberName 54(s00) 0 "s0_0"
Name 56 "locals00"
Name 61 "coord"
Name 68 "foo0"
Name 83 "foo00"
Name 96 "gl_FragColor"
Name 113 "sampler"
Name 119 "foo2"
Decorate 61(coord) Smooth
Decorate 96(gl_FragColor) BuiltIn FragColor
Decorate 119(foo2) NoStaticUse
Name 71 "foo0"
Name 86 "foo00"
Name 99 "gl_FragColor"
Name 116 "samp2D"
Name 122 "foo2"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
......@@ -92,27 +89,30 @@ Linked fragment stage:
59: TypeVector 7(float) 2
60: TypePointer Input 59(fvec2)
61(coord): 60(ptr) Variable Input
67: TypePointer UniformConstant 8(s0)
68(foo0): 67(ptr) Variable UniformConstant
72: 7(float) Constant 1073741824
73: 7(float) Constant 1077936128
74: 7(float) Constant 1082130432
75: 7(float) Constant 1084227584
76: 38 ConstantComposite 41 29 72 73 74 75
82: TypePointer UniformConstant 54(s00)
83(foo00): 82(ptr) Variable UniformConstant
85: TypePointer Function 6(int)
88: 6(int) Constant 5
94: TypeVector 7(float) 4
95: TypePointer Output 94(fvec4)
96(gl_FragColor): 95(ptr) Variable Output
103: 6(int) Constant 3
110: TypeImage 7(float) 2D sampled format:Unknown
111: TypeSampledImage 110
112: TypePointer UniformConstant 111
113(sampler): 112(ptr) Variable UniformConstant
118: TypePointer UniformConstant 10(s2)
119(foo2): 118(ptr) Variable UniformConstant
62: 11(int) Constant 0
63: TypePointer Input 7(float)
67: 11(int) Constant 1
70: TypePointer UniformConstant 8(s0)
71(foo0): 70(ptr) Variable UniformConstant
75: 7(float) Constant 1073741824
76: 7(float) Constant 1077936128
77: 7(float) Constant 1082130432
78: 7(float) Constant 1084227584
79: 38 ConstantComposite 41 29 75 76 77 78
85: TypePointer UniformConstant 54(s00)
86(foo00): 85(ptr) Variable UniformConstant
88: TypePointer Function 6(int)
91: 6(int) Constant 5
97: TypeVector 7(float) 4
98: TypePointer Output 97(fvec4)
99(gl_FragColor): 98(ptr) Variable Output
106: 6(int) Constant 3
113: TypeImage 7(float) 2D sampled format:Unknown
114: TypeSampledImage 113
115: TypePointer UniformConstant 114
116(samp2D): 115(ptr) Variable UniformConstant
121: TypePointer UniformConstant 10(s2)
122(foo2): 121(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
27(locals2): 26(ptr) Variable Function
......@@ -138,55 +138,55 @@ Linked fragment stage:
Store 56(locals00) 57
Branch 25
58: Label
62: 59(fvec2) Load 61(coord)
63: 7(float) CompositeExtract 62 0
64: 30(ptr) AccessChain 27(locals2) 28
Store 64 63
65: 59(fvec2) Load 61(coord)
66: 7(float) CompositeExtract 65 1
69: 8(s0) Load 68(foo0)
70: 9(s1) CompositeConstruct 28 66 69
71: 35(ptr) AccessChain 27(locals2) 32
Store 71 70
Store 40(fArray) 76
77: 35(ptr) AccessChain 27(locals2) 32
78: 9(s1) Load 77
79: 35(ptr) AccessChain 46(locals1Array) 47
Store 79 78
80: 67(ptr) AccessChain 49(foo1) 32
81: 8(s0) Load 80
Store 53(locals0) 81
84: 54(s00) Load 83(foo00)
Store 56(locals00) 84
64: 63(ptr) AccessChain 61(coord) 62
65: 7(float) Load 64
66: 30(ptr) AccessChain 27(locals2) 28
Store 66 65
68: 63(ptr) AccessChain 61(coord) 67
69: 7(float) Load 68
72: 8(s0) Load 71(foo0)
73: 9(s1) CompositeConstruct 28 69 72
74: 35(ptr) AccessChain 27(locals2) 32
Store 74 73
Store 40(fArray) 79
80: 35(ptr) AccessChain 27(locals2) 32
81: 9(s1) Load 80
82: 35(ptr) AccessChain 46(locals1Array) 47
Store 82 81
83: 70(ptr) AccessChain 49(foo1) 32
84: 8(s0) Load 83
Store 53(locals0) 84
87: 54(s00) Load 86(foo00)
Store 56(locals00) 87
Branch 25
25: Label
86: 85(ptr) AccessChain 53(locals0) 17
87: 6(int) Load 86
89: 22(bool) SGreaterThan 87 88
SelectionMerge 91 None
BranchConditional 89 90 91
90: Label
92: 52(ptr) AccessChain 56(locals00) 17
93: 8(s0) Load 92
Store 53(locals0) 93
Branch 91
91: Label
97: 85(ptr) AccessChain 53(locals0) 17
98: 6(int) Load 97
99: 7(float) ConvertSToF 98
100: 30(ptr) AccessChain 46(locals1Array) 47 28
101: 7(float) Load 100
102: 7(float) FAdd 99 101
104: 30(ptr) AccessChain 40(fArray) 103
105: 7(float) Load 104
106: 7(float) FAdd 102 105
107: 30(ptr) AccessChain 27(locals2) 32 28
89: 88(ptr) AccessChain 53(locals0) 17
90: 6(int) Load 89
92: 22(bool) SGreaterThan 90 91
SelectionMerge 94 None
BranchConditional 92 93 94
93: Label
95: 52(ptr) AccessChain 56(locals00) 17
96: 8(s0) Load 95
Store 53(locals0) 96
Branch 94
94: Label
100: 88(ptr) AccessChain 53(locals0) 17
101: 6(int) Load 100
102: 7(float) ConvertSToF 101
103: 30(ptr) AccessChain 46(locals1Array) 47 28
104: 7(float) Load 103
105: 7(float) FAdd 102 104
107: 30(ptr) AccessChain 40(fArray) 106
108: 7(float) Load 107
109: 7(float) FAdd 106 108
114: 111 Load 113(sampler)
115: 59(fvec2) Load 61(coord)
116: 94(fvec4) ImageSampleImplicitLod 114 115
117: 94(fvec4) VectorTimesScalar 116 109
Store 96(gl_FragColor) 117
109: 7(float) FAdd 105 108
110: 30(ptr) AccessChain 27(locals2) 32 28
111: 7(float) Load 110
112: 7(float) FAdd 109 111
117: 114 Load 116(samp2D)
118: 59(fvec2) Load 61(coord)
119: 97(fvec4) ImageSampleImplicitLod 117 118
120: 97(fvec4) VectorTimesScalar 119 112
Store 99(gl_FragColor) 120
Return
FunctionEnd
......@@ -5,16 +5,16 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 61
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 60
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 54
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 8 "scale"
Name 18 "lunarStruct1"
......@@ -26,13 +26,10 @@ Linked fragment stage:
MemberName 21(lunarStruct2) 1 "f"
MemberName 21(lunarStruct2) 2 "s1_1"
Name 24 "foo2"
Name 46 "gl_FragColor"
Name 51 "sampler"
Name 55 "coord"
Name 60 "foo"
Decorate 46(gl_FragColor) BuiltIn FragColor
Decorate 55(coord) Smooth
Decorate 60(foo) NoStaticUse
Name 45 "gl_FragColor"
Name 50 "samp2D"
Name 54 "coord"
Name 59 "foo"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -59,20 +56,20 @@ Linked fragment stage:
28: TypePointer UniformConstant 10(int)
31: TypeBool
35: 10(int) Constant 2
36: TypePointer UniformConstant 16(fvec4)
36: 11(int) Constant 0
37: TypePointer UniformConstant 6(float)
41: 10(int) Constant 1
42: TypePointer UniformConstant 6(float)
45: TypePointer Output 16(fvec4)
46(gl_FragColor): 45(ptr) Variable Output
48: TypeImage 6(float) 2D sampled format:Unknown
49: TypeSampledImage 48
50: TypePointer UniformConstant 49
51(sampler): 50(ptr) Variable UniformConstant
53: TypeVector 6(float) 2
54: TypePointer Input 53(fvec2)
55(coord): 54(ptr) Variable Input
59: TypePointer UniformConstant 18(lunarStruct1)
60(foo): 59(ptr) Variable UniformConstant
44: TypePointer Output 16(fvec4)
45(gl_FragColor): 44(ptr) Variable Output
47: TypeImage 6(float) 2D sampled format:Unknown
48: TypeSampledImage 47
49: TypePointer UniformConstant 48
50(samp2D): 49(ptr) Variable UniformConstant
52: TypeVector 6(float) 2
53: TypePointer Input 52(fvec2)
54(coord): 53(ptr) Variable Input
58: TypePointer UniformConstant 18(lunarStruct1)
59(foo): 58(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
8(scale): 7(ptr) Variable Function
......@@ -83,22 +80,21 @@ Linked fragment stage:
SelectionMerge 34 None
BranchConditional 32 33 40
33: Label
37: 36(ptr) AccessChain 24(foo2) 25 35 35 35 25
38: 16(fvec4) Load 37
39: 6(float) CompositeExtract 38 0
38: 37(ptr) AccessChain 24(foo2) 25 35 35 35 25 36
39: 6(float) Load 38
Store 8(scale) 39
Branch 34
40: Label
43: 42(ptr) AccessChain 24(foo2) 25 35 35 41 25
44: 6(float) Load 43
Store 8(scale) 44
42: 37(ptr) AccessChain 24(foo2) 25 35 35 41 25
43: 6(float) Load 42
Store 8(scale) 43
Branch 34
34: Label
47: 6(float) Load 8(scale)
52: 49 Load 51(sampler)
56: 53(fvec2) Load 55(coord)
57: 16(fvec4) ImageSampleImplicitLod 52 56
58: 16(fvec4) VectorTimesScalar 57 47
Store 46(gl_FragColor) 58
46: 6(float) Load 8(scale)
51: 48 Load 50(samp2D)
55: 52(fvec2) Load 54(coord)
56: 16(fvec4) ImageSampleImplicitLod 51 55
57: 16(fvec4) VectorTimesScalar 56 46
Store 45(gl_FragColor) 57
Return
FunctionEnd
......@@ -8,16 +8,16 @@ WARNING: 0:139: 'switch' : last case/default label not followed by statements
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 260
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 263
Source ESSL 310
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 73 221
ExecutionMode 4 OriginLowerLeft
Source ESSL 310
Name 4 "main"
Name 15 "foo1(vf4;vf4;i1;"
Name 12 "v1"
......@@ -39,14 +39,13 @@ Linked fragment stage:
Name 228 "param"
Name 230 "param"
Name 232 "param"
Name 238 "param"
Name 240 "param"
Name 242 "param"
Name 244 "param"
Decorate 58(local) RelaxedPrecision
Decorate 60(c) RelaxedPrecision
Decorate 71(f) RelaxedPrecision
Decorate 73(x) RelaxedPrecision
Decorate 73(x) Smooth
Decorate 127(d) RelaxedPrecision
Decorate 153(i) RelaxedPrecision
Decorate 171(j) RelaxedPrecision
......@@ -82,6 +81,9 @@ Linked fragment stage:
221(color): 220(ptr) Variable Output
226: TypePointer UniformConstant 7(fvec4)
227(v): 226(ptr) Variable UniformConstant
235: TypeInt 32 0
236: 235(int) Constant 1
247: 235(int) Constant 2
4(main): 2 Function None 3
5: Label
58(local): 10(ptr) Variable Function
......@@ -91,9 +93,9 @@ Linked fragment stage:
228(param): 8(ptr) Variable Function
230(param): 8(ptr) Variable Function
232(param): 10(ptr) Variable Function
238(param): 8(ptr) Variable Function
240(param): 8(ptr) Variable Function
242(param): 10(ptr) Variable Function
242(param): 8(ptr) Variable Function
244(param): 10(ptr) Variable Function
61: 9(int) Load 60(c)
Store 58(local) 61
62: 9(int) Load 58(local)
......@@ -218,7 +220,7 @@ Linked fragment stage:
155: Label
158: 9(int) Load 153(i)
161: 160(bool) SLessThan 158 159
LoopMerge 156 None
LoopMerge 156 155 None
BranchConditional 161 157 156
157: Label
162: 9(int) Load 60(c)
......@@ -237,7 +239,7 @@ Linked fragment stage:
173: Label
176: 9(int) Load 171(j)
178: 160(bool) SLessThan 176 177
LoopMerge 174 None
LoopMerge 174 173 None
BranchConditional 178 175 174
175: Label
179: 6(float) Load 71(f)
......@@ -310,36 +312,36 @@ Linked fragment stage:
233: 9(int) Load 60(c)
Store 232(param) 233
234: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param)
235: 6(float) CompositeExtract 234 1
236: 6(float) Load 221(color)
237: 6(float) FAdd 236 235
Store 221(color) 237
239: 7(fvec4) Load 227(v)
Store 238(param) 239
237: 6(float) CompositeExtract 234 1
238: 6(float) Load 221(color)
239: 6(float) FAdd 238 237
Store 221(color) 239
241: 7(fvec4) Load 227(v)
Store 240(param) 241
243: 9(int) Load 60(c)
243: 7(fvec4) Load 227(v)
Store 242(param) 243
244: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 238(param) 240(param) 242(param)
245: 6(float) CompositeExtract 244 2
246: 6(float) Load 221(color)
247: 6(float) FAdd 246 245
Store 221(color) 247
248: 9(int) Load 60(c)
SelectionMerge 251 None
Switch 248 250
case 0: 249
249: Label
Branch 251
250: Label
Branch 251
251: Label
255: 9(int) Load 60(c)
SelectionMerge 257 None
Switch 255 256
256: Label
Branch 257
257: Label
245: 9(int) Load 60(c)
Store 244(param) 245
246: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 240(param) 242(param) 244(param)
248: 6(float) CompositeExtract 246 2
249: 6(float) Load 221(color)
250: 6(float) FAdd 249 248
Store 221(color) 250
251: 9(int) Load 60(c)
SelectionMerge 254 None
Switch 251 253
case 0: 252
252: Label
Branch 254
253: Label
Branch 254
254: Label
258: 9(int) Load 60(c)
SelectionMerge 260 None
Switch 258 259
259: Label
Branch 260
260: Label
Return
FunctionEnd
15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11
......
spv.test.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 55
Source GLSL 110
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
EntryPoint Fragment 4 "main" 20 38
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
Name 4 "main"
Name 8 "blendscale"
Name 12 "v"
......@@ -25,9 +27,6 @@ Linked fragment stage:
Name 44 "gl_FragColor"
Name 47 "u"
Name 50 "blend"
Decorate 20(t) Smooth
Decorate 38(coords) Smooth
Decorate 44(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......@@ -83,7 +82,7 @@ Linked fragment stage:
51: 6(float) Load 50(blend)
52: 6(float) Load 8(blendscale)
53: 6(float) FMul 51 52
54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 45 48 53
54: 10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 45 48 53
Store 44(gl_FragColor) 54
Return
FunctionEnd
......@@ -5,15 +5,15 @@ WARNING: 0:5: attribute deprecated in version 130; may be removed in future rele
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 27
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
EntryPoint Vertex 4 "main" 21 11 9 26
Source GLSL 130
Name 4 "main"
Name 9 "uv"
Name 11 "uv_in"
......@@ -21,10 +21,8 @@ Linked vertex stage:
Name 18 "transform"
Name 21 "position"
Name 26 "gl_VertexID"
Decorate 9(uv) Smooth
Decorate 15(gl_Position) BuiltIn Position
Decorate 26(gl_VertexID) BuiltIn VertexId
Decorate 26(gl_VertexID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment