Commit d8af9783 by John Kessenich

Merge GitHub 'master' into GitLab master

parents 0197ea97 50e57560
...@@ -134,7 +134,7 @@ protected: ...@@ -134,7 +134,7 @@ protected:
bool inMain; bool inMain;
bool mainTerminated; bool mainTerminated;
bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used
std::unordered_set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface
const glslang::TIntermediate* glslangIntermediate; const glslang::TIntermediate* glslangIntermediate;
spv::Id stdBuiltins; spv::Id stdBuiltins;
...@@ -786,16 +786,14 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T ...@@ -786,16 +786,14 @@ bool TGlslangToSpvTraverser::visitBinary(glslang::TVisit /* visit */, glslang::T
convertGlslangToSpvType(node->getType()), left, right, convertGlslangToSpvType(node->getType()), left, right,
node->getLeft()->getType().getBasicType()); node->getLeft()->getType().getBasicType());
builder.clearAccessChain();
if (! result) { if (! result) {
spv::MissingFunctionality("unknown glslang binary operation"); spv::MissingFunctionality("unknown glslang binary operation");
return true; // pick up a child as the place-holder result
} else { } else {
builder.clearAccessChain();
builder.setAccessChainRValue(result); builder.setAccessChainRValue(result);
return false; return false;
} }
return true;
} }
bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node) bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TIntermUnary* node)
...@@ -908,10 +906,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI ...@@ -908,10 +906,8 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
default: default:
spv::MissingFunctionality("unknown glslang unary"); spv::MissingFunctionality("unknown glslang unary");
break; return true; // pick up operand as placeholder result
} }
return true;
} }
bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TIntermAggregate* node) bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TIntermAggregate* node)
...@@ -1251,7 +1247,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt ...@@ -1251,7 +1247,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt
if (! result) { if (! result) {
spv::MissingFunctionality("unknown glslang aggregate"); spv::MissingFunctionality("unknown glslang aggregate");
return true; return true; // pick up a child as a placeholder operand
} else { } else {
builder.clearAccessChain(); builder.clearAccessChain();
builder.setAccessChainRValue(result); builder.setAccessChainRValue(result);
...@@ -2274,7 +2270,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv ...@@ -2274,7 +2270,7 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv
if (reduceComparison && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) { if (reduceComparison && (builder.isVector(left) || builder.isMatrix(left) || builder.isAggregate(left))) {
assert(op == glslang::EOpEqual || op == glslang::EOpNotEqual); assert(op == glslang::EOpEqual || op == glslang::EOpNotEqual);
return builder.createCompare(precision, left, right, op == glslang::EOpEqual); return builder.createCompositeCompare(precision, left, right, op == glslang::EOpEqual);
} }
switch (op) { switch (op) {
......
...@@ -435,7 +435,7 @@ Op Builder::getMostBasicTypeClass(Id typeId) const ...@@ -435,7 +435,7 @@ Op Builder::getMostBasicTypeClass(Id typeId) const
} }
} }
int Builder::getNumTypeComponents(Id typeId) const int Builder::getNumTypeConstituents(Id typeId) const
{ {
Instruction* instr = module.getInstruction(typeId); Instruction* instr = module.getInstruction(typeId);
...@@ -447,7 +447,10 @@ int Builder::getNumTypeComponents(Id typeId) const ...@@ -447,7 +447,10 @@ int Builder::getNumTypeComponents(Id typeId) const
return 1; return 1;
case OpTypeVector: case OpTypeVector:
case OpTypeMatrix: case OpTypeMatrix:
case OpTypeArray:
return instr->getImmediateOperand(1); return instr->getImmediateOperand(1);
case OpTypeStruct:
return instr->getNumOperands();
default: default:
assert(0); assert(0);
return 1; return 1;
...@@ -1366,14 +1369,12 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter ...@@ -1366,14 +1369,12 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
case Dim2D: case Dim2D:
case DimCube: case DimCube:
case DimRect: case DimRect:
case DimSubpassData:
numComponents = 2; numComponents = 2;
break; break;
case Dim3D: case Dim3D:
numComponents = 3; numComponents = 3;
break; break;
case DimSubpassData:
MissingFunctionality("input-attachment dim");
break;
default: default:
assert(0); assert(0);
...@@ -1411,88 +1412,78 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter ...@@ -1411,88 +1412,78 @@ Id Builder::createTextureQueryCall(Op opCode, const TextureParameters& parameter
return query->getResultId(); return query->getResultId();
} }
// Comments in header // External comments in header.
Id Builder::createCompare(Decoration precision, Id value1, Id value2, bool equal) // Operates recursively to visit the composite's hierarchy.
Id Builder::createCompositeCompare(Decoration precision, Id value1, Id value2, bool equal)
{ {
Id boolType = makeBoolType(); Id boolType = makeBoolType();
Id valueType = getTypeId(value1); Id valueType = getTypeId(value1);
assert(valueType == getTypeId(value2)); assert(valueType == getTypeId(value2));
assert(! isScalar(value1));
// Vectors Id resultId;
if (isVectorType(valueType)) { int numConstituents = getNumTypeConstituents(valueType);
Id boolVectorType = makeVectorType(boolType, getNumTypeComponents(valueType));
Id boolVector; // Scalars and Vectors
if (isScalarType(valueType) || isVectorType(valueType)) {
// These just need a single comparison, just have
// to figure out what it is.
Op op; Op op;
if (getMostBasicTypeClass(valueType) == OpTypeFloat) switch (getMostBasicTypeClass(valueType)) {
case OpTypeFloat:
op = equal ? OpFOrdEqual : OpFOrdNotEqual; op = equal ? OpFOrdEqual : OpFOrdNotEqual;
else break;
case OpTypeInt:
op = equal ? OpIEqual : OpINotEqual; op = equal ? OpIEqual : OpINotEqual;
break;
case OpTypeBool:
op = equal ? OpLogicalEqual : OpLogicalNotEqual;
precision = NoPrecision;
break;
}
boolVector = createBinOp(op, boolVectorType, value1, value2); if (isScalarType(valueType)) {
setPrecision(boolVector, precision); // scalar
resultId = createBinOp(op, boolType, value1, value2);
// Reduce vector compares with any() and all(). setPrecision(resultId, precision);
} else {
op = equal ? OpAll : OpAny; // vector
resultId = createBinOp(op, makeVectorType(boolType, numConstituents), value1, value2);
setPrecision(resultId, precision);
// reduce vector compares...
resultId = createUnaryOp(equal ? OpAll : OpAny, boolType, resultId);
}
return createUnaryOp(op, boolType, boolVector); return resultId;
} }
spv::MissingFunctionality("Composite comparison of non-vectors"); // Only structs, arrays, and matrices should be left.
// They share in common the reduction operation across their constituents.
return NoResult; assert(isAggregateType(valueType) || isMatrixType(valueType));
// Recursively handle aggregates, which include matrices, arrays, and structures
// and accumulate the results.
// Matrices
// Arrays // Compare each pair of constituents
for (int constituent = 0; constituent < numConstituents; ++constituent) {
std::vector<unsigned> indexes(1, constituent);
Id constituentType = getContainedTypeId(valueType, constituent);
Id constituent1 = createCompositeExtract(value1, constituentType, indexes);
Id constituent2 = createCompositeExtract(value2, constituentType, indexes);
//int numElements; Id subResultId = createCompositeCompare(precision, constituent1, constituent2, equal);
//const llvm::ArrayType* arrayType = llvm::dyn_cast<llvm::ArrayType>(value1->getType());
//if (arrayType)
// numElements = (int)arrayType->getNumElements();
//else {
// // better be structure
// const llvm::StructType* structType = llvm::dyn_cast<llvm::StructType>(value1->getType());
// assert(structType);
// numElements = structType->getNumElements();
//}
//assert(numElements > 0); if (constituent == 0)
resultId = subResultId;
//for (int element = 0; element < numElements; ++element) { else
// // Get intermediate comparison values resultId = createBinOp(equal ? OpLogicalAnd : OpLogicalOr, boolType, resultId, subResultId);
// llvm::Value* element1 = builder.CreateExtractValue(value1, element, "element1"); }
// setInstructionPrecision(element1, precision);
// llvm::Value* element2 = builder.CreateExtractValue(value2, element, "element2");
// setInstructionPrecision(element2, precision);
// llvm::Value* subResult = createCompare(precision, element1, element2, equal, "comp");
// // Accumulate intermediate comparison
// if (element == 0)
// result = subResult;
// else {
// if (equal)
// result = builder.CreateAnd(result, subResult);
// else
// result = builder.CreateOr(result, subResult);
// setInstructionPrecision(result, precision);
// }
//}
//return result; return resultId;
} }
// OpCompositeConstruct // OpCompositeConstruct
Id Builder::createCompositeConstruct(Id typeId, std::vector<Id>& constituents) Id Builder::createCompositeConstruct(Id typeId, std::vector<Id>& constituents)
{ {
assert(isAggregateType(typeId) || (getNumTypeComponents(typeId) > 1 && getNumTypeComponents(typeId) == (int)constituents.size())); assert(isAggregateType(typeId) || (getNumTypeConstituents(typeId) > 1 && getNumTypeConstituents(typeId) == (int)constituents.size()));
Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct); Instruction* op = new Instruction(getUniqueId(), typeId, OpCompositeConstruct);
for (int c = 0; c < (int)constituents.size(); ++c) for (int c = 0; c < (int)constituents.size(); ++c)
...@@ -2258,7 +2249,6 @@ void TbdFunctionality(const char* tbd) ...@@ -2258,7 +2249,6 @@ void TbdFunctionality(const char* tbd)
void MissingFunctionality(const char* fun) void MissingFunctionality(const char* fun)
{ {
printf("Missing functionality: %s\n", fun); printf("Missing functionality: %s\n", fun);
exit(1);
} }
Builder::Loop::Loop(Builder& builder, bool testFirstArg) Builder::Loop::Loop(Builder& builder, bool testFirstArg)
......
...@@ -116,7 +116,8 @@ public: ...@@ -116,7 +116,8 @@ public:
Op getTypeClass(Id typeId) const { return getOpCode(typeId); } Op getTypeClass(Id typeId) const { return getOpCode(typeId); }
Op getMostBasicTypeClass(Id typeId) const; Op getMostBasicTypeClass(Id typeId) const;
int getNumComponents(Id resultId) const { return getNumTypeComponents(getTypeId(resultId)); } int getNumComponents(Id resultId) const { return getNumTypeComponents(getTypeId(resultId)); }
int getNumTypeComponents(Id typeId) const; int getNumTypeConstituents(Id typeId) const;
int getNumTypeComponents(Id typeId) const { return getNumTypeConstituents(typeId); }
Id getScalarTypeId(Id typeId) const; Id getScalarTypeId(Id typeId) const;
Id getContainedTypeId(Id typeId) const; Id getContainedTypeId(Id typeId) const;
Id getContainedTypeId(Id typeId, int) const; Id getContainedTypeId(Id typeId, int) const;
...@@ -150,7 +151,7 @@ public: ...@@ -150,7 +151,7 @@ public:
int getTypeNumColumns(Id typeId) const int getTypeNumColumns(Id typeId) const
{ {
assert(isMatrixType(typeId)); assert(isMatrixType(typeId));
return getNumTypeComponents(typeId); return getNumTypeConstituents(typeId);
} }
int getNumColumns(Id resultId) const { return getTypeNumColumns(getTypeId(resultId)); } int getNumColumns(Id resultId) const { return getTypeNumColumns(getTypeId(resultId)); }
int getTypeNumRows(Id typeId) const int getTypeNumRows(Id typeId) const
...@@ -265,11 +266,13 @@ public: ...@@ -265,11 +266,13 @@ public:
// (No true lvalue or stores are used.) // (No true lvalue or stores are used.)
Id createLvalueSwizzle(Id typeId, Id target, Id source, std::vector<unsigned>& channels); Id createLvalueSwizzle(Id typeId, Id target, Id source, std::vector<unsigned>& channels);
// If the value passed in is an instruction and the precision is not EMpNone, // If the value passed in is an instruction and the precision is not NoPrecision,
// it gets tagged with the requested precision. // it gets tagged with the requested precision.
void setPrecision(Id /* value */, Decoration /* precision */) void setPrecision(Id /* value */, Decoration precision)
{ {
// TODO if (precision != NoPrecision) {
;// TODO
}
} }
// Can smear a scalar to a vector for the following forms: // Can smear a scalar to a vector for the following forms:
...@@ -322,7 +325,7 @@ public: ...@@ -322,7 +325,7 @@ public:
Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id); Id createBitFieldInsertCall(Decoration precision, Id, Id, Id, Id);
// Reduction comparision for composites: For equal and not-equal resulting in a scalar. // Reduction comparision for composites: For equal and not-equal resulting in a scalar.
Id createCompare(Decoration precision, Id, Id, bool /* true if for equal, fales if for not-equal */); Id createCompositeCompare(Decoration precision, Id, Id, bool /* true if for equal, false if for not-equal */);
// OpCompositeConstruct // OpCompositeConstruct
Id createCompositeConstruct(Id typeId, std::vector<Id>& constituents); Id createCompositeConstruct(Id typeId, std::vector<Id>& constituents);
......
...@@ -12,7 +12,7 @@ Linked fragment stage: ...@@ -12,7 +12,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 185 17 68 79 187 99 173 184 186 EntryPoint Fragment 4 "main" 17 68 79 99 173 184 185 186 187
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
SourceExtension "GL_ARB_gpu_shader5" SourceExtension "GL_ARB_gpu_shader5"
......
...@@ -10,7 +10,7 @@ Linked geometry stage: ...@@ -10,7 +10,7 @@ Linked geometry stage:
Capability Geometry Capability Geometry
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 18 10 29 49 33 47 51 70 EntryPoint Geometry 4 "main" 10 18 29 33 47 49 51 70
ExecutionMode 4 InputTrianglesAdjacency ExecutionMode 4 InputTrianglesAdjacency
ExecutionMode 4 Invocations 1 ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputTriangleStrip
......
...@@ -10,7 +10,7 @@ Linked vertex stage: ...@@ -10,7 +10,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 13 49 17 39 48 EntryPoint Vertex 4 "main" 13 17 39 48 49
Source GLSL 150 Source GLSL 150
Name 4 "main" Name 4 "main"
Name 11 "gl_PerVertex" Name 11 "gl_PerVertex"
......
...@@ -10,7 +10,7 @@ Linked vertex stage: ...@@ -10,7 +10,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 11 39 23 33 25 EntryPoint Vertex 4 "main" 11 23 25 33 39
Source ESSL 300 Source ESSL 300
Name 4 "main" Name 4 "main"
Name 8 "i" Name 8 "i"
......
...@@ -10,7 +10,7 @@ Linked vertex stage: ...@@ -10,7 +10,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 129 121 9 99 163 11 109 101 164 EntryPoint Vertex 4 "main" 9 11 99 101 109 121 129 163 164
Source ESSL 300 Source ESSL 300
Name 4 "main" Name 4 "main"
Name 9 "pos" Name 9 "pos"
......
...@@ -10,7 +10,7 @@ Linked vertex stage: ...@@ -10,7 +10,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 81 9 73 51 115 11 61 53 116 EntryPoint Vertex 4 "main" 9 11 51 53 61 73 81 115 116
Source ESSL 300 Source ESSL 300
Name 4 "main" Name 4 "main"
Name 9 "pos" Name 9 "pos"
......
...@@ -12,7 +12,7 @@ Linked fragment stage: ...@@ -12,7 +12,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 44 50 96 56 117 69 119 EntryPoint Fragment 4 "main" 11 44 50 56 69 96 117 119
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 400 Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects" SourceExtension "GL_ARB_separate_shader_objects"
......
...@@ -12,7 +12,7 @@ Linked tessellation control stage: ...@@ -12,7 +12,7 @@ Linked tessellation control stage:
Capability Tessellation Capability Tessellation
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 79 87 23 40 83 43 46 52 66 73 84 88 91 92 EntryPoint TessellationControl 4 "main" 23 40 43 46 52 66 73 79 83 84 87 88 91 92
ExecutionMode 4 OutputVertices 4 ExecutionMode 4 OutputVertices 4
Source GLSL 400 Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects" SourceExtension "GL_ARB_separate_shader_objects"
......
...@@ -12,7 +12,7 @@ Linked tessellation evaluation stage: ...@@ -12,7 +12,7 @@ Linked tessellation evaluation stage:
Capability Tessellation Capability Tessellation
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 4 "main" 77 61 53 21 38 81 41 47 68 82 86 90 93 94 97 EntryPoint TessellationEvaluation 4 "main" 21 38 41 47 53 61 68 77 81 82 86 90 93 94 97
ExecutionMode 4 Triangles ExecutionMode 4 Triangles
ExecutionMode 4 SpacingFractionalOdd ExecutionMode 4 SpacingFractionalOdd
ExecutionMode 4 VertexOrderCcw ExecutionMode 4 VertexOrderCcw
......
...@@ -12,7 +12,7 @@ Linked geometry stage: ...@@ -12,7 +12,7 @@ Linked geometry stage:
Capability Geometry Capability Geometry
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 46 14 23 28 33 EntryPoint Geometry 4 "main" 14 23 28 33 46
ExecutionMode 4 Triangles ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 4 ExecutionMode 4 Invocations 4
ExecutionMode 4 OutputLineStrip ExecutionMode 4 OutputLineStrip
......
...@@ -12,7 +12,7 @@ Linked vertex stage: ...@@ -12,7 +12,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 44 12 23 34 61 45 62 EntryPoint Vertex 4 "main" 12 23 34 44 45 61 62
Source GLSL 430 Source GLSL 430
Name 4 "main" Name 4 "main"
Name 10 "gl_PerVertex" Name 10 "gl_PerVertex"
......
...@@ -12,7 +12,7 @@ Linked vertex stage: ...@@ -12,7 +12,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 47 23 48 EntryPoint Vertex 4 "main" 23 47 48
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
Name 10 "foo(b1;" Name 10 "foo(b1;"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 448 39 454 446 157 53 322 450 452 EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 107 11 18 EntryPoint Fragment 4 "main" 11 18 107
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 110 Source GLSL 110
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 35 11 97 EntryPoint Fragment 4 "main" 11 35 97
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
Name 4 "main" Name 4 "main"
......
...@@ -12,7 +12,7 @@ Linked vertex stage: ...@@ -12,7 +12,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 121 9 47 15 21 26 83 67 100 142 146 156 173 182 247 268 269 EntryPoint Vertex 4 "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247 268 269
Source ESSL 310 Source ESSL 310
Name 4 "main" Name 4 "main"
Name 9 "iout" Name 9 "iout"
......
...@@ -12,7 +12,7 @@ Linked fragment stage: ...@@ -12,7 +12,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 13 24 41 33 99 EntryPoint Fragment 4 "main" 13 24 33 41 99
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
......
...@@ -13,7 +13,7 @@ Linked fragment stage: ...@@ -13,7 +13,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 96 40 106 EntryPoint Fragment 4 "main" 40 96 106
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 148 140 28 12 166 14 EntryPoint Fragment 4 "main" 12 14 28 140 148 166
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 16 173 37 150 38 65 87 139 210 211 212 EntryPoint Fragment 4 "main" 12 16 37 38 65 87 139 150 173 210 211 212
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 150 Source GLSL 150
Name 4 "main" Name 4 "main"
......
...@@ -12,7 +12,7 @@ Linked fragment stage: ...@@ -12,7 +12,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 17 81 26 29 55 247 84 91 277 EntryPoint Fragment 4 "main" 17 26 29 55 81 84 91 247 277
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 430 Source GLSL 430
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked vertex stage: ...@@ -10,7 +10,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 28 12 55 EntryPoint Vertex 4 "main" 12 28 55
Source GLSL 120 Source GLSL 120
Name 4 "main" Name 4 "main"
Name 9 "a" Name 9 "a"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 71 23 57 59 EntryPoint Fragment 4 "main" 23 57 59 71
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source ESSL 300 Source ESSL 300
Name 4 "main" Name 4 "main"
...@@ -168,7 +168,7 @@ Linked fragment stage: ...@@ -168,7 +168,7 @@ Linked fragment stage:
18(bv2): 16(ptr) FunctionParameter 18(bv2): 16(ptr) FunctionParameter
20: Label 20: Label
27: 15(bvec2) Load 18(bv2) 27: 15(bvec2) Load 18(bv2)
31: 15(bvec2) IEqual 27 30 31: 15(bvec2) LogicalEqual 27 30
32: 14(bool) All 31 32: 14(bool) All 31
ReturnValue 32 ReturnValue 32
FunctionEnd FunctionEnd
...@@ -12,7 +12,7 @@ Linked vertex stage: ...@@ -12,7 +12,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 17 9 19 11 13 23 15 24 EntryPoint Vertex 4 "main" 9 11 13 15 17 19 23 24
Source GLSL 430 Source GLSL 430
Name 4 "main" Name 4 "main"
Name 9 "outVc" Name 9 "outVc"
......
...@@ -12,7 +12,7 @@ Linked fragment stage: ...@@ -12,7 +12,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 25 9 EntryPoint Fragment 4 "main" 9 25
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 450 Source GLSL 450
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked vertex stage: ...@@ -10,7 +10,7 @@ Linked vertex stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 41 9 23 15 19 34 40 EntryPoint Vertex 4 "main" 9 15 19 23 34 40 41
Source GLSL 330 Source GLSL 330
Name 4 "main" Name 4 "main"
Name 9 "glPos" Name 9 "glPos"
......
...@@ -12,7 +12,7 @@ Linked fragment stage: ...@@ -12,7 +12,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 44 20 38 EntryPoint Fragment 4 "main" 20 38 44
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 400 Source GLSL 400
Name 4 "main" Name 4 "main"
......
...@@ -10,7 +10,7 @@ Linked fragment stage: ...@@ -10,7 +10,7 @@ Linked fragment stage:
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 134 94 104 168 144 154 114 164 124 EntryPoint Fragment 4 "main" 94 104 114 124 134 144 154 164 168
ExecutionMode 4 OriginLowerLeft ExecutionMode 4 OriginLowerLeft
Source GLSL 130 Source GLSL 130
Name 4 "main" Name 4 "main"
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "SPIRV99.861" #define GLSLANG_REVISION "SPIRV99.864"
#define GLSLANG_DATE "20-Dec-2015" #define GLSLANG_DATE "21-Dec-2015"
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