Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions.
Added the built-in functions EmitVertex(), EndPrimitive(), barrier(), memoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(), memoryBarrierImage(), memoryBarrierShared(), and groupMemoryBarrier(). Have not added any new built-in variables. Also changed the linear performance relateToOperator() to a high-performance version. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22659 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
317f1af217
commit
c027579631
28 changed files with 520 additions and 299 deletions
|
|
@ -373,10 +373,12 @@ public:
|
|||
}
|
||||
explicit TSymbolTable(TSymbolTable& symTable)
|
||||
{
|
||||
table.push_back(symTable.table[0]);
|
||||
adoptedLevels = 1;
|
||||
uniqueId = symTable.uniqueId;
|
||||
noBuiltInRedeclarations = symTable.noBuiltInRedeclarations;
|
||||
if (! symTable.isEmpty()) {
|
||||
table.push_back(symTable.table[0]);
|
||||
adoptedLevels = 1;
|
||||
uniqueId = symTable.uniqueId;
|
||||
noBuiltInRedeclarations = symTable.noBuiltInRedeclarations;
|
||||
} // else should only be to handle error paths
|
||||
}
|
||||
~TSymbolTable()
|
||||
{
|
||||
|
|
@ -391,6 +393,9 @@ public:
|
|||
// built-ins specific to a compile are at level 1 and the shader
|
||||
// globals are at level 2.
|
||||
//
|
||||
// TODO: compile-time memory: have an even earlier level for all built-ins
|
||||
// common to all stages. Currently, each stage has copy.
|
||||
//
|
||||
bool isEmpty() { return table.size() == 0; }
|
||||
bool atBuiltInLevel() { return atSharedBuiltInLevel() || atDynamicBuiltInLevel(); }
|
||||
bool atSharedBuiltInLevel() { return table.size() == 1; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue