platform/upstream/glslang.git
11 years agoNon-functional: Use better token names for the preprocessor.
John Kessenich [Sun, 20 Oct 2013 18:37:53 +0000 (18:37 +0000)]
Non-functional: Use better token names for the preprocessor.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23624 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix memory corruption problem in the preprocessor, removing custom hash-tables/etc...
John Kessenich [Sun, 20 Oct 2013 18:18:36 +0000 (18:18 +0000)]
Fix memory corruption problem in the preprocessor, removing custom hash-tables/etc. and replacing with std containers.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23623 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd layout binding qualifier for blocks and samplers (atomics are not yet in, nor...
John Kessenich [Fri, 18 Oct 2013 21:37:55 +0000 (21:37 +0000)]
Add layout binding qualifier for blocks and samplers (atomics are not yet in, nor link validation).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23590 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd swizzles to scalars.
John Kessenich [Fri, 18 Oct 2013 03:56:23 +0000 (03:56 +0000)]
Add swizzles to scalars.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23580 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoMinor preprocessor fix for error message line/string numbers coming from source line...
John Kessenich [Fri, 18 Oct 2013 03:09:37 +0000 (03:09 +0000)]
Minor preprocessor fix for error message line/string numbers coming from source line, not macro line.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23576 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd function "const", where the initializer does not have to be a compile-time constant.
John Kessenich [Thu, 17 Oct 2013 20:55:30 +0000 (20:55 +0000)]
Add function "const", where the initializer does not have to be a compile-time constant.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23566 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd C-style curly-brace initializers.
John Kessenich [Thu, 17 Oct 2013 19:43:43 +0000 (19:43 +0000)]
Add C-style curly-brace initializers.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23565 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd all built-in variables for all versions/profiles/stages of GLSL. Also, made more...
John Kessenich [Wed, 16 Oct 2013 22:28:35 +0000 (22:28 +0000)]
Add all built-in variables for all versions/profiles/stages of GLSL. Also, made more readable; declarations are cut and paste from the specs, with quotes around them.  This does not include built-in constants yet (other than MaxClipDistances), just the non-constants.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23551 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoHave block members use EvqVaryingIn rather than EvqIn, etc., confining the EvqIn...
John Kessenich [Wed, 16 Oct 2013 04:08:21 +0000 (04:08 +0000)]
Have block members use EvqVaryingIn rather than EvqIn, etc., confining the EvqIn-class of qualifier just to parameters and parse time (before it's known if something is a parameter). Also, have member error messages report their actual line, rather than the block's line.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23499 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd ES 3.0 fragment output link-time test for outputs having or not having location...
John Kessenich [Tue, 15 Oct 2013 21:46:20 +0000 (21:46 +0000)]
Add ES 3.0 fragment output link-time test for outputs having or not having location qualifiers.

Also split linker validation into its own file, removed dead "QualifierAlive" files, printed errors for parsing problems with built-in symbols,  updated the Windows binary, and added some tests.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23490 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoImplement ES 2.0 (version 100) limitations for non-inductive loop detection and array...
John Kessenich [Mon, 14 Oct 2013 22:42:16 +0000 (22:42 +0000)]
Implement ES 2.0 (version 100) limitations for non-inductive loop detection and array indexes needing "constant-index-expressions" (inductive variables and constant expressions).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23478 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoTurn on non-uniform blocks (in/out/buffer), and prevent new stages from working with...
John Kessenich [Fri, 11 Oct 2013 19:46:10 +0000 (19:46 +0000)]
Turn on non-uniform blocks (in/out/buffer), and prevent new stages from working with "no profile" (before 150) shaders.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23470 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoGeneralize the symbol hierarchy to transparently handle anonymous-block members better.
John Kessenich [Fri, 11 Oct 2013 17:29:19 +0000 (17:29 +0000)]
Generalize the symbol hierarchy to transparently handle anonymous-block members better.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23469 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoMemory management hygiene: Use compare() instead of substr(), and put a few more...
John Kessenich [Fri, 11 Oct 2013 16:28:43 +0000 (16:28 +0000)]
Memory management hygiene: Use compare() instead of substr(), and put a few more things intrinsically in the memory pool.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23467 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoNon-functional: Remove use of the unused structure 'remapper', and other minor inter...
John Kessenich [Wed, 9 Oct 2013 00:20:26 +0000 (00:20 +0000)]
Non-functional:  Remove use of the unused structure 'remapper', and other minor internal improvements.  Triggered by some bigger changes in the works.  Also, turned on an existing test that was not included in the test list.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23426 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix g++ complaint about taking address of temporary.
John Kessenich [Mon, 7 Oct 2013 22:02:36 +0000 (22:02 +0000)]
Fix g++ complaint about taking address of temporary.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23410 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate Linux binaries
John Kessenich [Mon, 7 Oct 2013 22:01:27 +0000 (22:01 +0000)]
Update Linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23409 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate Windows binary.
John Kessenich [Mon, 7 Oct 2013 21:54:43 +0000 (21:54 +0000)]
Update Windows binary.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23408 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoNon-functional changes: Typo in error message and in comment, remove unneeded argumen...
John Kessenich [Sat, 5 Oct 2013 19:03:50 +0000 (19:03 +0000)]
Non-functional changes: Typo in error message and in comment, remove unneeded arguments, separate constructor-op mapping from handling constructors.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23389 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoImprove robustness of extension checking, and its intersection with ES 100 features.
John Kessenich [Fri, 4 Oct 2013 21:09:36 +0000 (21:09 +0000)]
Improve robustness of extension checking, and its intersection with ES 100 features.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23388 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoMake ES 100 gl_FragData be a mediump, and fix some warnings from g++.
John Kessenich [Fri, 4 Oct 2013 03:05:45 +0000 (03:05 +0000)]
Make ES 100 gl_FragData be a mediump, and fix some warnings from g++.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23380 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoMake some portability improvements identified by Christophe: A few size_t, a couple...
John Kessenich [Fri, 4 Oct 2013 02:27:06 +0000 (02:27 +0000)]
Make some portability improvements identified by Christophe: A few size_t, a couple "../Include", and a whole bunch of parenthesizing "(A && B) || (C && D)", because some compilers don't believe humans know && is higher precedence than ||.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23379 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoDocument how to add a new feature enabled by an extension in Versions.cpp. Also...
John Kessenich [Thu, 3 Oct 2013 20:23:57 +0000 (20:23 +0000)]
Document how to add a new feature enabled by an extension in Versions.cpp.  Also reorganized slightly to localize related functions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23376 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd the following ESSL 2.0 (#version 100) limitations to the configuration file,...
John Kessenich [Wed, 2 Oct 2013 05:10:48 +0000 (05:10 +0000)]
Add the following ESSL 2.0 (#version 100) limitations to the configuration file, internal infrastructure, and test cases.  Still need to implement the actual detection of non-inductive loops and array accesses.  While and do-while loop detection is done.

nonInductiveForLoops
whileLoops
doWhileLoops
generalUniformIndexing
generalAttributeMatrixVectorIndexing
generalVaryingIndexing
generalSamplerIndexing
generalVariableIndexing
generalConstantMatrixVectorIndexing

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23323 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAllow ES version 100 to redeclare built-in functions.
John Kessenich [Wed, 2 Oct 2013 01:30:14 +0000 (01:30 +0000)]
Allow ES version 100 to redeclare built-in functions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23322 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd message indicating level of completeness for not-yet-complete versions.
John Kessenich [Tue, 1 Oct 2013 23:13:50 +0000 (23:13 +0000)]
Add message indicating level of completeness for not-yet-complete versions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23313 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate Window's binary.
John Kessenich [Tue, 1 Oct 2013 22:05:18 +0000 (22:05 +0000)]
Update Window's binary.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23311 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate Linux binaries
John Kessenich [Tue, 1 Oct 2013 22:04:33 +0000 (22:04 +0000)]
Update Linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23310 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd function recursion testing to the link-time validation.
John Kessenich [Tue, 1 Oct 2013 21:58:43 +0000 (21:58 +0000)]
Add function recursion testing to the link-time validation.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23309 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd full support for uniforms with initializers, including intra-stage link validatio...
John Kessenich [Sat, 28 Sep 2013 04:02:08 +0000 (04:02 +0000)]
Add full support for uniforms with initializers, including intra-stage link validation of aggregate constant initializers.

This included
 - encapsulating aggregate constants
 - removal of constant-aggregate comparison algorithms, instead using a flattened and direct std::vector comparison
 - adding structure type comparison for independently declared structures that still might match types

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23274 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix g++ complaint with previous check in.
John Kessenich [Thu, 26 Sep 2013 00:53:10 +0000 (00:53 +0000)]
Fix g++ complaint with previous check in.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23247 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUnify the 8 grammar productions for declaring variables. This greatly simplifies...
John Kessenich [Thu, 26 Sep 2013 00:45:21 +0000 (00:45 +0000)]
Unify the 8 grammar productions for declaring variables.  This greatly simplifies making changes for this set of productions.

This change also naturally picks up redeclarations of built-in arrays and the addition of the remaining linker objects of const, arrays, etc.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23246 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd basic intra-stage linking validation for matching types and qualification of...
John Kessenich [Tue, 24 Sep 2013 21:18:46 +0000 (21:18 +0000)]
Add basic intra-stage linking validation for matching types and qualification of uniforms/ins/outs/globals, function body duplication, and mixing ES/non-ES shaders.

Still need to handle arrays and built-in redeclarations, and many more rules, but this puts the basics in place.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23225 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoTest for and prevent any dead-code elimination, as all code is needed in the AST...
John Kessenich [Fri, 20 Sep 2013 06:20:21 +0000 (06:20 +0000)]
Test for and prevent any dead-code elimination, as all code is needed in the AST for static-use analysis.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23163 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate Linux binaries
John Kessenich [Tue, 17 Sep 2013 22:44:35 +0000 (22:44 +0000)]
Update Linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23109 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate the windows executable.
John Kessenich [Tue, 17 Sep 2013 22:42:02 +0000 (22:42 +0000)]
Update the windows executable.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23108 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd optional configuration file for specifying (existing) limits. Details explained...
John Kessenich [Tue, 17 Sep 2013 19:26:08 +0000 (19:26 +0000)]
Add optional configuration file for specifying (existing) limits.  Details explained by usage statement.  More limits to be added in the future.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23105 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoBasic infrastructure for redeclaring built-in variables (like gl_FragCoord) so shader...
John Kessenich [Tue, 17 Sep 2013 18:45:24 +0000 (18:45 +0000)]
Basic infrastructure for redeclaring built-in variables (like gl_FragCoord) so shaders can change their type/layout.

A modifiable copy is made at the shader's global scope.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23103 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFull thread safety working:
John Kessenich [Sun, 8 Sep 2013 21:04:46 +0000 (21:04 +0000)]
Full thread safety working:
 - don't use [] for map lookups, it can modify the map
 - copy up built-in symbols out of shared symbol table levels before modifying them
 - enforce shallow vs. deep TType copies
 - combine maxArraySize with the array dimensions vector, encapsulate
 - remove chaining of array types

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22953 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoEnsure the shared symbol table levels are read-only to make multi-threading safe...
John Kessenich [Fri, 6 Sep 2013 19:52:57 +0000 (19:52 +0000)]
Ensure the shared symbol table levels are read-only to make multi-threading safe.  Also removed inadvertent extra copies of the symbol table shared across all stages.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22939 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd link validation infrastructure for multiple compilation units per stage. Include...
John Kessenich [Wed, 4 Sep 2013 21:19:27 +0000 (21:19 +0000)]
Add link validation infrastructure for multiple compilation units per stage.  Includes a new, straightforward, C++ interface to the front end.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22927 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoSome rationalization of TIntermediate (to own it's own tree root) and TParseHelper...
John Kessenich [Tue, 3 Sep 2013 22:57:27 +0000 (22:57 +0000)]
Some rationalization of TIntermediate (to own it's own tree root) and TParseHelper for better encapsulation.  Needed by some upcoming intra-stage link validation.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22914 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoRemove TIntermediate's dependency on infoSink, simplify folding of constant aggregate...
John Kessenich [Tue, 3 Sep 2013 22:14:59 +0000 (22:14 +0000)]
Remove TIntermediate's dependency on infoSink, simplify folding of constant aggregates, and infoSink use in constant folding.

Added a few deep aggregate constant folding testing cases.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22912 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoRestore TDebugOptions, as code consuming this interface is still using it, even thoug...
John Kessenich [Tue, 3 Sep 2013 15:16:03 +0000 (15:16 +0000)]
Restore TDebugOptions, as code consuming this interface is still using it, even though the front-end proper no longer uses it.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22910 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoOption rationalization and minor clean up.
John Kessenich [Sat, 31 Aug 2013 02:41:30 +0000 (02:41 +0000)]
Option rationalization and minor clean up.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22907 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd more constant folding cases for min, max, step, smoothstep, mix, clamp, atan...
John Kessenich [Fri, 30 Aug 2013 00:45:57 +0000 (00:45 +0000)]
Add more constant folding cases for min, max, step, smoothstep, mix, clamp, atan, and pow.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22903 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoPut all glslang internals (but not the external interface) into the glslang namespace.
John Kessenich [Thu, 29 Aug 2013 00:39:25 +0000 (00:39 +0000)]
Put all glslang internals (but not the external interface) into the glslang namespace.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22882 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoMove the complex pieces of C++ code from glslang.y to ParseHelper.cpp. Updated some...
John Kessenich [Tue, 27 Aug 2013 05:57:15 +0000 (05:57 +0000)]
Move the complex pieces of C++ code from glslang.y to ParseHelper.cpp.  Updated some tests.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22846 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoGive new scopes to non-compound (simple) if-then-else substatements, correcting scopi...
John Kessenich [Tue, 27 Aug 2013 03:59:04 +0000 (03:59 +0000)]
Give new scopes to non-compound (simple) if-then-else substatements, correcting scoping for declarations they contain.

Also, updated several tests and the Todo list.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22845 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoRemove unnecessary TString constructors.
John Kessenich [Tue, 27 Aug 2013 03:43:13 +0000 (03:43 +0000)]
Remove unnecessary TString constructors.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22844 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoDynamically allocate symbol table containers, so timing of clean up can be more easil...
John Kessenich [Tue, 13 Aug 2013 00:58:49 +0000 (00:58 +0000)]
Dynamically allocate symbol table containers, so timing of clean up can be more easily controlled WRT memory pool cleanup.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22681 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoShare built-in symbols common to all stages for desktop (but still per profile per...
John Kessenich [Fri, 9 Aug 2013 20:31:43 +0000 (20:31 +0000)]
Share built-in symbols common to all stages for desktop (but still per profile per version).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22662 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoPut in infrastructure for tessellation, geometry, and compute stages, and partially...
John Kessenich [Fri, 9 Aug 2013 17:14:49 +0000 (17:14 +0000)]
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

11 years agoUpdate Linux binaries for name-mangling bug fix
John Kessenich [Thu, 8 Aug 2013 16:26:36 +0000 (16:26 +0000)]
Update Linux binaries for name-mangling bug fix

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22654 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoRemove a mangled-name cache in the type that was sometimes stale.
John Kessenich [Thu, 8 Aug 2013 16:22:54 +0000 (16:22 +0000)]
Remove a mangled-name cache in the type that was sometimes stale.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22653 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd parse-time constant folding for isinf() and isnan().
John Kessenich [Tue, 6 Aug 2013 20:22:51 +0000 (20:22 +0000)]
Add parse-time constant folding for isinf() and isnan().

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22621 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate Linux binaries
John Kessenich [Mon, 5 Aug 2013 17:11:37 +0000 (17:11 +0000)]
Update Linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22605 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate the Windows binary.
John Kessenich [Mon, 5 Aug 2013 17:09:24 +0000 (17:09 +0000)]
Update the Windows binary.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22604 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoLinux abs() needs to be fabs(); a few other minor Linux tweaks.
John Kessenich [Mon, 5 Aug 2013 16:36:49 +0000 (16:36 +0000)]
Linux abs() needs to be fabs(); a few other minor Linux tweaks.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22603 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoTrack expected test results and add more README information.
John Kessenich [Mon, 5 Aug 2013 15:52:03 +0000 (15:52 +0000)]
Track expected test results and add more README information.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22602 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAllow unsigned int in the "location = " grammar, and generally improve recognition...
John Kessenich [Sun, 4 Aug 2013 23:51:37 +0000 (23:51 +0000)]
Allow unsigned int in the "location = " grammar, and generally improve recognition of numeric literals to be up to spec.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22597 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd windows executable.
John Kessenich [Sat, 3 Aug 2013 00:27:08 +0000 (00:27 +0000)]
Add windows executable.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22595 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd Linux executables
John Kessenich [Sat, 3 Aug 2013 00:16:49 +0000 (00:16 +0000)]
Add Linux executables

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22594 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoSet up infrastructure for installing an executable. Changes the standalone name to...
John Kessenich [Sat, 3 Aug 2013 00:04:10 +0000 (00:04 +0000)]
Set up infrastructure for installing an executable. Changes the standalone name to glslangValidator.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22593 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix bison file naming issues from upgrading to version 2.7 of bison.
John Kessenich [Thu, 1 Aug 2013 18:04:50 +0000 (18:04 +0000)]
Fix bison file naming issues from upgrading to version 2.7 of bison.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22578 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoMake previous check in compile correctly on linux.
John Kessenich [Wed, 31 Jul 2013 23:19:17 +0000 (23:19 +0000)]
Make previous check in compile correctly on linux.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22568 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoImprove multi-threading and move Standalone to a multi-threading model (currently...
John Kessenich [Wed, 31 Jul 2013 18:44:13 +0000 (18:44 +0000)]
Improve multi-threading and move Standalone to a multi-threading model (currently off though).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22565 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUpdate index.
John Kessenich [Mon, 22 Jul 2013 22:31:08 +0000 (22:31 +0000)]
Update index.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22513 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoPush index page now that SVN access is setup.
John Kessenich [Mon, 22 Jul 2013 22:29:42 +0000 (22:29 +0000)]
Push index page now that SVN access is setup.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22512 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoPut on hold pending configuring glslang for public access.
John Kessenich [Mon, 22 Jul 2013 07:53:37 +0000 (07:53 +0000)]
Put on hold pending configuring glslang for public access.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22491 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoLink glslang project into site nav.
John Kessenich [Mon, 22 Jul 2013 07:40:27 +0000 (07:40 +0000)]
Link glslang project into site nav.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22487 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix warning in release build. Update to-do list.
John Kessenich [Tue, 9 Jul 2013 23:57:13 +0000 (23:57 +0000)]
Fix warning in release build.  Update to-do list.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22315 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoTie missing default-precision error checks to EShMsgRelaxedErrors.
John Kessenich [Tue, 9 Jul 2013 17:23:39 +0000 (17:23 +0000)]
Tie missing default-precision error checks to EShMsgRelaxedErrors.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22304 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFinal linux tweak.
John Kessenich [Mon, 8 Jul 2013 21:50:31 +0000 (21:50 +0000)]
Final linux tweak.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22294 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoA few linux improvements/fixes for the previous check in.
John Kessenich [Mon, 8 Jul 2013 20:51:29 +0000 (20:51 +0000)]
A few linux improvements/fixes for the previous check in.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22292 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoReframe the preprocessor as a C++ class, with instances, removing all C code, removin...
John Kessenich [Mon, 8 Jul 2013 19:39:16 +0000 (19:39 +0000)]
Reframe the preprocessor as a C++ class, with instances, removing all C code, removing all global variables.  Upgrade bison version to pass a parse context on through to the preprocessor.  All the basic things to make something thread safe.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22291 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoEliminate flex as the GLSL lexical analyzer, going from two nested lexical analyzers...
John Kessenich [Sat, 6 Jul 2013 19:54:21 +0000 (19:54 +0000)]
Eliminate flex as the GLSL lexical analyzer, going from two nested lexical analyzers down to one, leaving just the preprocessor's lexical analysis.  A new layer replaces it, to translate from the preprocessor's view of tokenization to glslang's view of tokenization.

Also:
 - change source locations from an int to TSourceLoc (shader number, line number) throughout
 - various improvements to the preprocessor

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22277 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoRationalize naming/access to current thread-local-storage scheme. However, the prepr...
John Kessenich [Tue, 2 Jul 2013 20:18:59 +0000 (20:18 +0000)]
Rationalize naming/access to current thread-local-storage scheme.  However, the preprocessor tokenizer is not thread-safe, so this may all change.

Also adding missing test.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22249 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years ago1) Don't propagate precision of built-in function arguments to return type when retur...
John Kessenich [Mon, 1 Jul 2013 17:56:24 +0000 (17:56 +0000)]
1) Don't propagate precision of built-in function arguments to return type when return type is bool (e.g., isnan).
2) Check an additional path for missing default precision qualification, except allow built-in declarations to pass the check.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22241 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix bug dropping some qualifiers when merging with block member default qualification.
John Kessenich [Mon, 1 Jul 2013 04:54:28 +0000 (04:54 +0000)]
Fix bug dropping some qualifiers when merging with block member default qualification.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22240 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoUse the default of "smooth" for interpolation qualification for vertex outs and fragm...
John Kessenich [Fri, 28 Jun 2013 05:32:15 +0000 (05:32 +0000)]
Use the default of "smooth" for interpolation qualification for vertex outs and fragment ins (rather than all fragment IO).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22222 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix preprocessor memory leak.
John Kessenich [Wed, 26 Jun 2013 23:41:30 +0000 (23:41 +0000)]
Fix preprocessor memory leak.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22195 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoHandle bad input file.
John Kessenich [Wed, 26 Jun 2013 22:42:55 +0000 (22:42 +0000)]
Handle bad input file.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22194 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoSemantic checks for .length(), switch/case/default, and multidimensional arrays.
John Kessenich [Wed, 26 Jun 2013 05:54:40 +0000 (05:54 +0000)]
Semantic checks for .length(), switch/case/default, and multidimensional arrays.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22175 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd semantic check for precision qualifier on wrong kind of type. Added a few more...
John Kessenich [Tue, 25 Jun 2013 21:53:59 +0000 (21:53 +0000)]
Add semantic check for precision qualifier on wrong kind of type.  Added a few more tests.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22170 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoSupport line-continuation (backslash before newline) for tokens and one-line comments...
John Kessenich [Tue, 25 Jun 2013 21:09:47 +0000 (21:09 +0000)]
Support line-continuation (backslash before newline) for tokens and one-line comments in the preprocessor.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22168 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoRemove the -a option, it doesn't belong here.
John Kessenich [Tue, 25 Jun 2013 18:31:47 +0000 (18:31 +0000)]
Remove the -a option, it doesn't belong here.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22166 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd scanner that can find '#version' across an array of non-null terminated, length...
John Kessenich [Tue, 25 Jun 2013 18:10:05 +0000 (18:10 +0000)]
Add scanner that can find '#version' across an array of non-null terminated, length-based, strings.  Handle the ES error where #version is not the first thing found, while still supporting desktop behavior, and more generally support length-based multiple strings for a single shader.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22165 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd the 6 hyperbolic trig functions.
John Kessenich [Mon, 24 Jun 2013 22:40:19 +0000 (22:40 +0000)]
Add the 6 hyperbolic trig functions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22149 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoDisallow variable indexing into sampler array for ES and desktop before version 400.
John Kessenich [Mon, 24 Jun 2013 21:52:41 +0000 (21:52 +0000)]
Disallow variable indexing into sampler array for ES and desktop before version 400.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22148 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd semantic checks for order of qualification and repetition within a class of quali...
John Kessenich [Mon, 24 Jun 2013 21:22:03 +0000 (21:22 +0000)]
Add semantic checks for order of qualification and repetition within a class of qualifiers.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22145 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAddress a g++ complaint.
John Kessenich [Mon, 24 Jun 2013 18:24:23 +0000 (18:24 +0000)]
Address a g++ complaint.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22143 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoCreate linkage symbol nodes in the AST so a linker has access to all global objects...
John Kessenich [Mon, 24 Jun 2013 17:26:56 +0000 (17:26 +0000)]
Create linkage symbol nodes in the AST so a linker has access to all global objects that were declared, for error checking, etc.  Use it now for all ins/outs/uniforms as well as gl_VertexID and gl_InstanceID.

Also fixed a confusing name and added more 'const'.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22142 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix bug of accidentally overriding initial layout location with 0, which does not...
John Kessenich [Fri, 21 Jun 2013 19:43:44 +0000 (19:43 +0000)]
Fix bug of accidentally overriding initial layout location with 0, which does not mean no location.  Added in/out structure tests.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22120 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd grammar productions for the syntax "layout(...) uniform;" for setting global...
John Kessenich [Thu, 20 Jun 2013 22:54:40 +0000 (22:54 +0000)]
Add grammar productions for the syntax "layout(...) uniform;" for setting global defaults.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22112 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoAdd grammar productions for adding 'invariant' to already declared variables.
John Kessenich [Wed, 19 Jun 2013 20:44:17 +0000 (20:44 +0000)]
Add grammar productions for adding 'invariant' to already declared variables.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22083 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoTrack separate precision defaults for each kind of sampler, give initial defaults...
John Kessenich [Wed, 19 Jun 2013 05:41:25 +0000 (05:41 +0000)]
Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default.  Modify/add tests to adapt to these changes.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22066 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoEncapsulate warnings like errors. Add warning for missing #version.
John Kessenich [Mon, 17 Jun 2013 21:47:23 +0000 (21:47 +0000)]
Encapsulate warnings like errors.  Add warning for missing #version.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22041 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoFix linux build problem.
John Kessenich [Fri, 14 Jun 2013 17:32:46 +0000 (17:32 +0000)]
Fix linux build problem.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22002 e7fa87d3-cd2b-0410-9028-fcbf551c1848

11 years agoImplement __VERSION__ macro, make ftransform() non-ES only, add more tests.
John Kessenich [Thu, 13 Jun 2013 23:56:04 +0000 (23:56 +0000)]
Implement __VERSION__ macro, make ftransform() non-ES only, add more tests.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22000 e7fa87d3-cd2b-0410-9028-fcbf551c1848