platform/upstream/glslang.git
11 years agoMake the default version be 100.
John Kessenich [Fri, 8 Feb 2013 18:56:56 +0000 (18:56 +0000)]
Make the default version be 100.

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

11 years agoSupport multiple default versions, to enable ES vs. desktop contexts, for shaders...
John Kessenich [Wed, 6 Feb 2013 23:06:52 +0000 (23:06 +0000)]
Support multiple default versions, to enable ES vs. desktop contexts, for shaders missing a #version statement.

This also moved some parseContext code from the flex file to the proper C++ file.

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

11 years agoUpdate copyrights.
John Kessenich [Wed, 6 Feb 2013 19:46:32 +0000 (19:46 +0000)]
Update copyrights.

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

11 years agoFix a preprocessor defect, where nested dead #if-#endif had nesting depth off by...
John Kessenich [Wed, 6 Feb 2013 02:23:47 +0000 (02:23 +0000)]
Fix a preprocessor defect, where nested dead #if-#endif had nesting depth off by one level, turning what should be dead code into live code.

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

11 years agoAdd some CPP tests.
John Kessenich [Wed, 6 Feb 2013 00:14:16 +0000 (00:14 +0000)]
Add some CPP tests.

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

11 years agoImplement non-square matrices, and make a few type improvements. Cleaned up a few...
John Kessenich [Mon, 4 Feb 2013 23:54:58 +0000 (23:54 +0000)]
Implement non-square matrices, and make a few type improvements.  Cleaned up a few old issues. Added two tests.

Details
 - added all the new non-square types
 - separated concepts of matrix size and vector size
 - removed VS 6.0 comments/workarounds
 - removed obsolete concept of matrix fields

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

11 years agoAdd ability to treat keywords as identifiers in versions that had not yet reserved...
John Kessenich [Thu, 31 Jan 2013 22:55:53 +0000 (22:55 +0000)]
Add ability to treat keywords as identifiers in versions that had not yet reserved the keyword.

Used this for precision keywords and double matrix keywords.

Also added a few missing reserved words.

Also removed redundant "syntax error" when there is a parse error.

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

11 years agoHave non-ES profiles always use EpqNone (no precision qualifier) rather than using...
John Kessenich [Tue, 29 Jan 2013 17:24:14 +0000 (17:24 +0000)]
Have non-ES profiles always use EpqNone (no precision qualifier) rather than using highp.  This keeps precision qualifiers out of error messages, IL dumps, etc., and avoids the precision propagation algorithm.

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

11 years agoPut in basic propagation algorithm for precision qualifiers. Some corner cases are...
John Kessenich [Mon, 28 Jan 2013 23:52:49 +0000 (23:52 +0000)]
Put in basic propagation algorithm for precision qualifiers.  Some corner cases are document as TODO.

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

11 years agoHard code to ES profile for #version 100.
John Kessenich [Mon, 28 Jan 2013 18:28:28 +0000 (18:28 +0000)]
Hard code to ES profile for #version 100.

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

11 years agoAdd precision.frag test.
John Kessenich [Mon, 28 Jan 2013 17:40:21 +0000 (17:40 +0000)]
Add precision.frag test.

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

11 years agoImplement the full scheme for ES precision qualifiers, generalizing existing storage...
John Kessenich [Thu, 24 Jan 2013 23:10:51 +0000 (23:10 +0000)]
Implement the full scheme for ES precision qualifiers, generalizing existing storage qualifiers to be able to include multiple independent kinds of qualifiers.

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

11 years agoFix: version 100 does not accept the 'es' profile
John Kessenich [Thu, 24 Jan 2013 22:37:46 +0000 (22:37 +0000)]
Fix: version 100 does not accept the 'es' profile

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

11 years agoNon functional: Simplify accesses to the parseContext in the flex file.
John Kessenich [Thu, 24 Jan 2013 22:33:43 +0000 (22:33 +0000)]
Non functional:  Simplify accesses to the parseContext in the flex file.

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

11 years agoUpdate copyrights to 2013 for files with real change in them.
John Kessenich [Fri, 11 Jan 2013 18:55:57 +0000 (18:55 +0000)]
Update copyrights to 2013 for files with real change in them.

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

11 years agoUpdate copyrights to 2013 for files with real change in them.
John Kessenich [Fri, 11 Jan 2013 18:40:40 +0000 (18:40 +0000)]
Update copyrights to 2013 for files with real change in them.

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

11 years agoProperly declare versions for precision qualifiers, in/out/attribute/varying.
John Kessenich [Thu, 10 Jan 2013 18:20:47 +0000 (18:20 +0000)]
Properly declare versions for precision qualifiers, in/out/attribute/varying.

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

11 years agoSupport in/out for stage inputs/outputs, tied to being desktop version 150 or ES...
John Kessenich [Thu, 10 Jan 2013 01:47:54 +0000 (01:47 +0000)]
Support in/out for stage inputs/outputs, tied to being desktop version 150 or ES 300.

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

11 years agoFix "forward" -> "faceforward" typo, which had caused the operator for it to not...
John Kessenich [Fri, 21 Dec 2012 04:28:05 +0000 (04:28 +0000)]
Fix "forward" -> "faceforward" typo, which had caused the operator for it to not be mapped, and instead passed through as a function call.

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

11 years agoBug fix: Make the type of the result of a structure assignment be the type of the...
John Kessenich [Wed, 19 Dec 2012 00:50:42 +0000 (00:50 +0000)]
Bug fix: Make the type of the result of a structure assignment be the type of the structure assigned.  That is, the type of the result of the "=" itself, if used in a broader expression.  This probably fixes some other subtle problems as well.

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

11 years agoAdd a simple test list for regression testing. A much broader test base is needed...
John Kessenich [Thu, 13 Dec 2012 01:37:04 +0000 (01:37 +0000)]
Add a simple test list for regression testing.  A much broader test base is needed, however.

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

11 years agoChange the core of glslang to be a static library rather than a DLL.
John Kessenich [Thu, 13 Dec 2012 00:09:49 +0000 (00:09 +0000)]
Change the core of glslang to be a static library rather than a DLL.

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

11 years agoAdd a new shader-versioning infrastructure capable of handling multiple profiles...
John Kessenich [Thu, 13 Dec 2012 00:05:26 +0000 (00:05 +0000)]
Add a new shader-versioning infrastructure capable of handling multiple profiles, desktop/ES, many versions, features coming and going in different versions across different profiles, and extensions.

NB: *Use* of this infrastructure is so far only skeletal.

Fixed a few typos and minor issues along the way.

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

11 years agoSupport suffixes for floats and doubles (none were supported in 110).
John Kessenich [Wed, 12 Dec 2012 22:42:30 +0000 (22:42 +0000)]
Support suffixes for floats and doubles (none were supported in 110).

Add preprocessor support for parsing doubles.

Add double support to the flex stage.

Put in some of the basic double supported needed in the front end.

Add generic support for version numbers in the preprocessor, and the core, compatibility, and es profiles.

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

11 years ago1) Improve error recovery from arrays sized with a non constant. 2) Add double vecto...
John Kessenich [Wed, 12 Dec 2012 21:34:14 +0000 (21:34 +0000)]
1) Improve error recovery from arrays sized with a non constant.  2) Add double vectors to the lexer.  3) Default to vertex shaders for unrecognized file name suffixes.

Also fix issue where the keyword "shared" conflicts with the layout qualifier identifier "shared" by allowing the keyword in the layout qualifier identifier list.

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

11 years agoAdd arrays of arrays grammar, and adapt existing 1D array semantics to keep working...
John Kessenich [Wed, 12 Dec 2012 21:26:43 +0000 (21:26 +0000)]
Add arrays of arrays grammar, and adapt existing 1D array semantics to keep working as before.

Also add buffer and shared keywords and grammar, which brings the grammar up to 4.3.

N.B. There is a problem for "shared": it is both a keyword (as a storage qualifier) and an identifier (for layouts).

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

11 years agoRemove the pack/unpack languages and bring grammar up from 1.1 to 4.2 and fix the...
John Kessenich [Wed, 12 Dec 2012 21:23:55 +0000 (21:23 +0000)]
Remove the pack/unpack languages and bring grammar up from 1.1 to 4.2 and fix the affected 1.1 productions and semantics to still work correctly for 1.1 shaders.

For 4.2, largely, it is only the grammar that is working.  Productions and semantics are mostly missing.  Lexical analysis is mostly done, but not in the preprocessor, which still can't handle uint and double literals.

The grammar and token names are reorganized to match the specification, to allow easier comparison between the specification and the working grammar.

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

11 years agoBring up to date with VS 10 express.
John Kessenich [Wed, 12 Dec 2012 21:21:23 +0000 (21:21 +0000)]
Bring up to date with VS 10 express.

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

11 years agoCreate a base GLSL front-end from the 3Dlabs glslang front-end from 20-Sep-2005.
John Kessenich [Wed, 12 Dec 2012 21:15:54 +0000 (21:15 +0000)]
Create a base GLSL front-end from the 3Dlabs glslang front-end from 20-Sep-2005.

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