Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
d8af9783
Commit
d8af9783
authored
Dec 21, 2015
by
John Kessenich
Browse files
Options
Browse Files
Download
Plain Diff
Merge GitHub 'master' into GitLab master
parents
0197ea97
50e57560
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
101 additions
and
112 deletions
+101
-112
GlslangToSpv.cpp
SPIRV/GlslangToSpv.cpp
+6
-10
SpvBuilder.cpp
SPIRV/SpvBuilder.cpp
+55
-65
SpvBuilder.h
SPIRV/SpvBuilder.h
+9
-6
spv.130.frag.out
Test/baseResults/spv.130.frag.out
+1
-1
spv.150.geom.out
Test/baseResults/spv.150.geom.out
+1
-1
spv.150.vert.out
Test/baseResults/spv.150.vert.out
+1
-1
spv.300BuiltIns.vert.out
Test/baseResults/spv.300BuiltIns.vert.out
+1
-1
spv.300layout.vert.out
Test/baseResults/spv.300layout.vert.out
+1
-1
spv.300layoutp.vert.out
Test/baseResults/spv.300layoutp.vert.out
+1
-1
spv.400.frag.out
Test/baseResults/spv.400.frag.out
+1
-1
spv.400.tesc.out
Test/baseResults/spv.400.tesc.out
+1
-1
spv.400.tese.out
Test/baseResults/spv.400.tese.out
+1
-1
spv.420.geom.out
Test/baseResults/spv.420.geom.out
+1
-1
spv.430.vert.out
Test/baseResults/spv.430.vert.out
+1
-1
spv.aggOps.frag.out
Test/baseResults/spv.aggOps.frag.out
+0
-0
spv.bool.vert.out
Test/baseResults/spv.bool.vert.out
+1
-1
spv.conversion.frag.out
Test/baseResults/spv.conversion.frag.out
+1
-1
spv.earlyReturnDiscard.frag.out
Test/baseResults/spv.earlyReturnDiscard.frag.out
+1
-1
spv.forLoop.frag.out
Test/baseResults/spv.forLoop.frag.out
+1
-1
spv.intOps.vert.out
Test/baseResults/spv.intOps.vert.out
+1
-1
spv.interpOps.frag.out
Test/baseResults/spv.interpOps.frag.out
+1
-1
spv.localAggregates.frag.out
Test/baseResults/spv.localAggregates.frag.out
+1
-1
spv.matrix.frag.out
Test/baseResults/spv.matrix.frag.out
+1
-1
spv.matrix2.frag.out
Test/baseResults/spv.matrix2.frag.out
+1
-1
spv.newTexture.frag.out
Test/baseResults/spv.newTexture.frag.out
+1
-1
spv.nonSquare.vert.out
Test/baseResults/spv.nonSquare.vert.out
+1
-1
spv.precision.frag.out
Test/baseResults/spv.precision.frag.out
+2
-2
spv.qualifiers.vert.out
Test/baseResults/spv.qualifiers.vert.out
+1
-1
spv.shiftOps.frag.out
Test/baseResults/spv.shiftOps.frag.out
+1
-1
spv.simpleMat.vert.out
Test/baseResults/spv.simpleMat.vert.out
+1
-1
spv.test.frag.out
Test/baseResults/spv.test.frag.out
+1
-1
spv.types.frag.out
Test/baseResults/spv.types.frag.out
+1
-1
revision.h
glslang/Include/revision.h
+2
-2
No files found.
SPIRV/GlslangToSpv.cpp
View file @
d8af9783
...
@@ -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
.
createComp
ositeComp
are
(
precision
,
left
,
right
,
op
==
glslang
::
EOpEqual
);
}
}
switch
(
op
)
{
switch
(
op
)
{
...
...
SPIRV/SpvBuilder.cpp
View file @
d8af9783
...
@@ -435,7 +435,7 @@ Op Builder::getMostBasicTypeClass(Id typeId) const
...
@@ -435,7 +435,7 @@ Op Builder::getMostBasicTypeClass(Id typeId) const
}
}
}
}
int
Builder
::
getNumTypeCo
mpon
ents
(
Id
typeId
)
const
int
Builder
::
getNumTypeCo
nstitu
ents
(
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
;
int
numConstituents
=
getNumTypeConstituents
(
valueType
);
if
(
isVectorType
(
valueType
))
{
// Scalars and Vectors
Id
boolVectorType
=
makeVectorType
(
boolType
,
getNumTypeComponents
(
valueType
));
Id
boolVector
;
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
;
boolVector
=
createBinOp
(
op
,
boolVectorType
,
value1
,
value2
);
case
OpTypeBool
:
setPrecision
(
boolVector
,
precision
);
op
=
equal
?
OpLogicalEqual
:
OpLogicalNotEqual
;
precision
=
NoPrecision
;
// Reduce vector compares with any() and all().
break
;
op
=
equal
?
OpAll
:
OpAny
;
return
createUnaryOp
(
op
,
boolType
,
boolVector
);
}
}
spv
::
MissingFunctionality
(
"Composite comparison of non-vectors"
);
if
(
isScalarType
(
valueType
))
{
// scalar
return
NoResult
;
resultId
=
createBinOp
(
op
,
boolType
,
value1
,
value2
);
setPrecision
(
resultId
,
precision
);
// Recursively handle aggregates, which include matrices, arrays, and structures
}
else
{
// and accumulate the results.
// vector
resultId
=
createBinOp
(
op
,
makeVectorType
(
boolType
,
numConstituents
),
value1
,
value2
);
// Matrices
setPrecision
(
resultId
,
precision
);
// reduce vector compares...
// Arrays
resultId
=
createUnaryOp
(
equal
?
OpAll
:
OpAny
,
boolType
,
resultId
);
}
//int numElements;
return
resultId
;
//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);
// Only structs, arrays, and matrices should be left.
// They share in common the reduction operation across their constituents.
assert
(
isAggregateType
(
valueType
)
||
isMatrixType
(
valueType
));
//
for (int element = 0; element < numElements; ++element) {
//
Compare each pair of constituents
// // Get intermediate comparison values
for
(
int
constituent
=
0
;
constituent
<
numConstituents
;
++
constituent
)
{
// llvm::Value* element1 = builder.CreateExtractValue(value1, element, "element1"
);
std
::
vector
<
unsigned
>
indexes
(
1
,
constituent
);
// setInstructionPrecision(element1, precision
);
Id
constituentType
=
getContainedTypeId
(
valueType
,
constituent
);
// llvm::Value* element2 = builder.CreateExtractValue(value2, element, "element2"
);
Id
constituent1
=
createCompositeExtract
(
value1
,
constituentType
,
indexes
);
// setInstructionPrecision(element2, precision
);
Id
constituent2
=
createCompositeExtract
(
value2
,
constituentType
,
indexes
);
// llvm::Value* subResult = createCompare(precision, element1, element2, equal, "comp"
);
Id
subResultId
=
createCompositeCompare
(
precision
,
constituent1
,
constituent2
,
equal
);
// // Accumulate intermediate comparison
if
(
constituent
==
0
)
// if (element == 0)
resultId
=
subResultId
;
// result = subResult;
else
// else {
resultId
=
createBinOp
(
equal
?
OpLogicalAnd
:
OpLogicalOr
,
boolType
,
resultId
,
subResultId
);
// 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
)
||
(
getNumTypeCo
mponents
(
typeId
)
>
1
&&
getNumTypeCompon
ents
(
typeId
)
==
(
int
)
constituents
.
size
()));
assert
(
isAggregateType
(
typeId
)
||
(
getNumTypeCo
nstituents
(
typeId
)
>
1
&&
getNumTypeConstitu
ents
(
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
)
...
...
SPIRV/SpvBuilder.h
View file @
d8af9783
...
@@ -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
getNumTypeCo
mpon
ents
(
typeId
);
return
getNumTypeCo
nstitu
ents
(
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
createComp
are
(
Decoration
precision
,
Id
,
Id
,
bool
/* true if for equal, fales
if for not-equal */
);
Id
createComp
ositeCompare
(
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
);
...
...
Test/baseResults/spv.130.frag.out
View file @
d8af9783
...
@@ -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" 1
85 17 68 79 187 99 173 184 186
EntryPoint Fragment 4 "main" 1
7 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"
...
...
Test/baseResults/spv.150.geom.out
View file @
d8af9783
...
@@ -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" 1
8 10 29 49 33 47
51 70
EntryPoint Geometry 4 "main" 1
0 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
...
...
Test/baseResults/spv.150.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.300BuiltIns.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.300layout.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.300layoutp.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.400.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.400.tesc.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.400.tese.out
View file @
d8af9783
...
@@ -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
...
...
Test/baseResults/spv.420.geom.out
View file @
d8af9783
...
@@ -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
...
...
Test/baseResults/spv.430.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.aggOps.frag.out
View file @
d8af9783
This diff is collapsed.
Click to expand it.
Test/baseResults/spv.bool.vert.out
View file @
d8af9783
...
@@ -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;"
...
...
Test/baseResults/spv.conversion.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.earlyReturnDiscard.frag.out
View file @
d8af9783
...
@@ -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" 1
07 11 18
EntryPoint Fragment 4 "main" 1
1 18 107
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginLowerLeft
Source GLSL 110
Source GLSL 110
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.forLoop.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.intOps.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.interpOps.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.localAggregates.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.matrix.frag.out
View file @
d8af9783
...
@@ -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" 1
48 140 28 12 166 14
EntryPoint Fragment 4 "main" 1
2 14 28 140 148 166
ExecutionMode 4 OriginLowerLeft
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Source GLSL 130
Name 4 "main"
Name 4 "main"
...
...
Test/baseResults/spv.matrix2.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.newTexture.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.nonSquare.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.precision.frag.out
View file @
d8af9783
...
@@ -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)
I
Equal 27 30
31: 15(bvec2)
Logical
Equal 27 30
32: 14(bool) All 31
32: 14(bool) All 31
ReturnValue 32
ReturnValue 32
FunctionEnd
FunctionEnd
Test/baseResults/spv.qualifiers.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.shiftOps.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.simpleMat.vert.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.test.frag.out
View file @
d8af9783
...
@@ -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"
...
...
Test/baseResults/spv.types.frag.out
View file @
d8af9783
...
@@ -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"
...
...
glslang/Include/revision.h
View file @
d8af9783
...
@@ -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.86
1
"
#define GLSLANG_REVISION "SPIRV99.86
4
"
#define GLSLANG_DATE "2
0
-Dec-2015"
#define GLSLANG_DATE "2
1
-Dec-2015"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment