platform/upstream/glslang.git
10 years agoUpdate rules for "GL_", "gl_", and "__" to match latest specification bug fixes.
John Kessenich [Tue, 18 Feb 2014 21:55:42 +0000 (21:55 +0000)]
Update rules for "GL_", "gl_", and "__" to match latest specification bug fixes.

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

10 years agoupdate linux binary
John Kessenich [Thu, 13 Feb 2014 19:15:53 +0000 (19:15 +0000)]
update linux binary

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

10 years agoFix missing semantic check: Disallow layout qualifiers when augmenting an already...
John Kessenich [Thu, 13 Feb 2014 19:14:33 +0000 (19:14 +0000)]
Fix missing semantic check: Disallow layout qualifiers when augmenting an already declared variable with a qualifier.

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

10 years agoCorrect which versions can support the extensions GL_ARB_separate_shader_objects...
John Kessenich [Wed, 12 Feb 2014 05:15:49 +0000 (05:15 +0000)]
Correct which versions can support the extensions GL_ARB_separate_shader_objects and GL_ARB_shading_language_420pack.  They'd only gone back to 150, rather than 130/140.

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

10 years agoGL_ARB_enhanced_layouts, final. #extension tests, built-in constants, and bug fix...
John Kessenich [Mon, 3 Feb 2014 16:28:23 +0000 (16:28 +0000)]
GL_ARB_enhanced_layouts, final.  #extension tests, built-in constants, and bug fix for non-constant expression in layout(...=expr).

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

10 years agoESSL 1.0: Add GL_FRAGMENT_PRECISION_HIGH to ESSL 1.0. It was in desktop, and properl...
John Kessenich [Fri, 31 Jan 2014 02:42:25 +0000 (02:42 +0000)]
ESSL 1.0: Add GL_FRAGMENT_PRECISION_HIGH to ESSL 1.0.  It was in desktop, and properly not in ES 3.0, but missing in ES 1.0.

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

10 years agoGL_ARB_enhanced_layouts, part 6: Numerical side of uniform offset and align semantics...
John Kessenich [Fri, 31 Jan 2014 02:40:19 +0000 (02:40 +0000)]
GL_ARB_enhanced_layouts, part 6: Numerical side of uniform offset and align semantics. Included
 - moving offset calculations for std140/std430 from reflection to linkValidate.cpp
 - applying the offset/align rules on top of std140/std430
 - removing caching the structure's number of components (and correcting that this is components, not size)

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

10 years agoGL_ARB_enhanced_layouts, part 5: uniform offset and align semantics. Numerical compu...
John Kessenich [Tue, 28 Jan 2014 21:13:59 +0000 (21:13 +0000)]
GL_ARB_enhanced_layouts, part 5: uniform offset and align semantics.  Numerical computations not yet done.

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

10 years agoFix build errors:
John Kessenich [Mon, 27 Jan 2014 20:02:12 +0000 (20:02 +0000)]
Fix build errors:

- VS2013: #include <algorithm> in Common.h for std::max
- VS2010 32-bit: explicitly cast size_t to unsigned int to avoid compile error with TInfoSink::operator<< (size_t and unsigned int ambiguous)

JohnK approved check-in by E-mail.

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

10 years agoSupport GL_ARB_texture_cube_map_array extension for desktop.
John Kessenich [Sun, 26 Jan 2014 22:22:54 +0000 (22:22 +0000)]
Support GL_ARB_texture_cube_map_array extension for desktop.

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

10 years agox86 (32-bit) fix for last g++ fix.
John Kessenich [Sun, 26 Jan 2014 07:56:43 +0000 (07:56 +0000)]
x86 (32-bit) fix for last g++ fix.

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

10 years agofix g++ complaint
John Kessenich [Sun, 26 Jan 2014 01:44:34 +0000 (01:44 +0000)]
fix g++ complaint

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

10 years agoGL_ARB_enhanced_layouts, part 4: Numerical side of xfb_*: offset computation, size...
John Kessenich [Sun, 26 Jan 2014 01:37:13 +0000 (01:37 +0000)]
GL_ARB_enhanced_layouts, part 4:  Numerical side of xfb_*: offset computation, size computation, alias detection, paddings, overflow, implicit strides, gl_Max* checks, etc.

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

10 years agoSupport both dynamic CRT and static CRT configurations on VS11 build. The public...
John Kessenich [Thu, 23 Jan 2014 21:40:33 +0000 (21:40 +0000)]
Support both dynamic CRT and static CRT configurations on VS11 build.  The public download needs the static one for user simplicity, while some downstream tools need the dynamic one.

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

10 years agoMove to the v110_xp toolset to support XP.
John Kessenich [Thu, 23 Jan 2014 00:35:24 +0000 (00:35 +0000)]
Move to the v110_xp toolset to support XP.

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

10 years agoBug 11531: Use %zu when printing size_t values in printf and use "friend class" inste...
John Kessenich [Wed, 22 Jan 2014 23:37:55 +0000 (23:37 +0000)]
Bug 11531: Use %zu when printing size_t values in printf and use "friend class" instead of "friend".

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

10 years agoRemove Windows VS 11 executable dependencies on MSVCP110.dll and MSVCR110.dll. The...
John Kessenich [Wed, 22 Jan 2014 23:23:19 +0000 (23:23 +0000)]
Remove Windows VS 11 executable dependencies on MSVCP110.dll and MSVCR110.dll.  The only DLL needed now is the standard KERNEL32.DLL.

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

10 years agoGL_ARB_enhanced_layouts, part 3: Semantics for xfb_*: where they can go, inheritance...
John Kessenich [Tue, 21 Jan 2014 04:43:23 +0000 (04:43 +0000)]
GL_ARB_enhanced_layouts, part 3: Semantics for xfb_*: where they can go, inheritance, etc., but not yet the backing arithmetic for offsets and strides.

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

10 years agoFix g++ warning and update Window's binary.
John Kessenich [Sat, 11 Jan 2014 20:35:26 +0000 (20:35 +0000)]
Fix g++ warning and update Window's binary.

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

10 years agoImprovement to the AST traversal infrastructure.
John Kessenich [Sat, 11 Jan 2014 19:29:55 +0000 (19:29 +0000)]
Improvement to the AST traversal infrastructure.

Note:  This affects any downstream consumers of glslang's traverser.  Let me know if there are any issues.  Essentially, you will need to change the functions that were pointed to into overriding base-class members instead.  See the examples in this check in.

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

10 years agoupdate Makefile dependencies
John Kessenich [Fri, 10 Jan 2014 21:25:05 +0000 (21:25 +0000)]
update Makefile dependencies

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

10 years agoSeveral miscellaneous portability improvements (no functional changes).
John Kessenich [Fri, 10 Jan 2014 21:09:51 +0000 (21:09 +0000)]
Several miscellaneous portability improvements (no functional changes).

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

10 years agoGL_ARB_enhanced_layouts, part 2: Full implementation of location/component, plus...
John Kessenich [Wed, 8 Jan 2014 23:25:18 +0000 (23:25 +0000)]
GL_ARB_enhanced_layouts, part 2:  Full implementation of location/component, plus the parsing for xfb* and align/offset (but not yet full semantics for align/offset).

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

10 years agoGL_ARB_enhanced_layouts, part 1: Track whether constants are literals, to enable...
John Kessenich [Tue, 7 Jan 2014 18:14:48 +0000 (18:14 +0000)]
GL_ARB_enhanced_layouts, part 1:  Track whether constants are literals, to enable version-specific checking of layout(... = literal) vs. layout(... = expression).

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

10 years agoFix slight inconsistencies in which qualifiers are inherited into block members:
John Kessenich [Tue, 7 Jan 2014 17:44:41 +0000 (17:44 +0000)]
Fix slight inconsistencies in which qualifiers are inherited into block members:
 - don't inherit 'binding'
 - always set the member storage qualifier, not just when the shader explicitly set it
 - don't include in/out members as objects that are resized by geometry/primitive layout specifiers
As a side effect, this makes built-in redeclarations (like gl_ClipDistance) require in/out.

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

10 years agoMinor infrastructure changes, to simplify an upcoming check in:
John Kessenich [Mon, 6 Jan 2014 21:27:56 +0000 (21:27 +0000)]
Minor infrastructure changes, to simplify an upcoming check in:
 - print out block member types when printing a block (makes all test results change)
 - const versions of all intermediate.h type-identification methods
 - layoutSlotLocation -> layoutLocation

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

10 years agoTests: add a few more test cases.
John Kessenich [Tue, 31 Dec 2013 23:02:24 +0000 (23:02 +0000)]
Tests: add a few more test cases.

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

10 years agoupdate linux binary
John Kessenich [Tue, 31 Dec 2013 00:16:26 +0000 (00:16 +0000)]
update linux binary

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

10 years agoProperly handle 'default' nested in flow control, as well as default/case outside...
John Kessenich [Tue, 31 Dec 2013 00:13:26 +0000 (00:13 +0000)]
Properly handle 'default' nested in flow control, as well as default/case outside switch statements.

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

10 years agoUpdate windows binaries.
John Kessenich [Mon, 30 Dec 2013 20:44:49 +0000 (20:44 +0000)]
Update windows binaries.

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

10 years agofix g++ complaint and update binaries
John Kessenich [Mon, 30 Dec 2013 20:40:03 +0000 (20:40 +0000)]
fix g++ complaint and update binaries

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

10 years agoPreprocessor: Rationalize, simplify, and correct the stack of input sources and their...
John Kessenich [Mon, 30 Dec 2013 20:34:28 +0000 (20:34 +0000)]
Preprocessor: Rationalize, simplify, and correct the stack of input sources and their tokenization.  This included
 - consistently dealing with EOF and its effect on error recovery (bug 11444, #1)
 - turning a simulated OO hierarchy of function pointers and typecasting into a real C++ class hierarchy
 - correctly handling '\' everywhere, in all classes of tokens, as a layer before preprocessing itself
 - conditionally handling '\n' in macro expansion input, depending on whether it is in a macro expression or not
 - delete some unused "memory cleanup" code

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

10 years agoAdd array sizing/checking/overlapping semantics for tessellation inputs.
John Kessenich [Fri, 20 Dec 2013 18:36:27 +0000 (18:36 +0000)]
Add array sizing/checking/overlapping semantics for tessellation inputs.

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

10 years agoAllow tessellation shaders to work on versions back to 150. Also combined all the...
John Kessenich [Wed, 18 Dec 2013 18:47:12 +0000 (18:47 +0000)]
Allow tessellation shaders to work on versions back to 150.  Also combined all the tessellation tests into a single run.

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

10 years agoAdditional semantic checking for tessellation shaders and related clean up:
John Kessenich [Wed, 18 Dec 2013 03:06:24 +0000 (03:06 +0000)]
Additional semantic checking for tessellation shaders and related clean up:
 - non-arrayed geometry inputs and tessellation-control outputs
 - include user blocks in i/o array resizing based on primitive type
 - things belonging only to 'in' or 'out' are verified only on 'in' or 'out'
 - invocation number changing
 - move shader-scoped qualifier checking into its class
 - remove an incidental union of two levels of the node hierarchy in the yacc stack
 - remove layout(location=) default tracking when setting on a variable

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

10 years agoUpdate Linux script and binaries
John Kessenich [Tue, 17 Dec 2013 00:28:00 +0000 (00:28 +0000)]
Update Linux script and binaries

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

10 years ago1) Allow '\' before a non-newline as a token in the preprocessor, and 2) localize...
John Kessenich [Mon, 16 Dec 2013 23:58:15 +0000 (23:58 +0000)]
1) Allow '\' before a non-newline as a token in the preprocessor, and 2) localize line-continuation to just the pp scanner.

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

10 years agoTessellation: Smaller changes: Take tessellation control output arrayness into accou...
John Kessenich [Fri, 13 Dec 2013 19:26:54 +0000 (19:26 +0000)]
Tessellation:  Smaller changes: Take tessellation control output arrayness into account in location overlap testing, better error message for redeclaring a built-in with size to be unsized.

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

10 years agoTessellation: Implicit array sizing and consistency checking of control-shader output...
John Kessenich [Fri, 13 Dec 2013 18:38:43 +0000 (18:38 +0000)]
Tessellation: Implicit array sizing and consistency checking of control-shader output arrays based on layout(vertices=...).

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

10 years agoTessellation: implement 'patch' semantics.
John Kessenich [Thu, 12 Dec 2013 01:25:37 +0000 (01:25 +0000)]
Tessellation: implement 'patch' semantics.

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

10 years agoUpdate Linux binaries
John Kessenich [Wed, 11 Dec 2013 22:42:17 +0000 (22:42 +0000)]
Update Linux binaries

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

10 years agoAdd missing check that a function call is not using the same name as a variable hidin...
John Kessenich [Wed, 11 Dec 2013 22:38:19 +0000 (22:38 +0000)]
Add missing check that a function call is not using the same name as a variable hiding the function's name.  Also, support version 110 separate name spaces for functions and variable names.

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

10 years agoTessellation partial implementation (not ready for use yet), including:
John Kessenich [Wed, 11 Dec 2013 18:57:40 +0000 (18:57 +0000)]
Tessellation partial implementation (not ready for use yet), including:
 - the built-in constants
 - built-in variable declarations, some dependent on gl_MaxPatchVertices
 - layout qualifier for vertices (shared with geometry shader max_vertices)
 - layout qualifiers for vertex spacing, vertex order, point mode, and primitive type
 - link semantics for layout qualifiers

Still TBD:
 - patch qualifier and arrayed input handling
 - sizing of gl_out[]
 - additional semantic checking
 - supporting the extension on version 150

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

10 years agoUpdate Linux binaries
John Kessenich [Tue, 10 Dec 2013 00:27:59 +0000 (00:27 +0000)]
Update Linux binaries

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

10 years agoPreprocessor: Implement skipping of macros that evaluate to nothing while evaluating...
John Kessenich [Tue, 10 Dec 2013 00:25:14 +0000 (00:25 +0000)]
Preprocessor:  Implement skipping of macros that evaluate to nothing while evaluating expressions.  They had been causing early termination of an expression's evaluation.

Also includes some unrelated updates of documentation.

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

10 years agoFlesh out 4.x block redeclaration semantics:
John Kessenich [Mon, 9 Dec 2013 00:37:46 +0000 (00:37 +0000)]
Flesh out 4.x block redeclaration semantics:
 - hide non-redeclared anonymous members
 - array size limit checking
 - illegal member qualifiers
 - additional members

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

10 years agoAllow layout aliasing for desktop vertex inputs.
John Kessenich [Sat, 7 Dec 2013 00:28:07 +0000 (00:28 +0000)]
Allow layout aliasing for desktop vertex inputs.

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

10 years agoDesktop array size limit checking for gl_ClipDistance[] and gl_TexCoord[].
John Kessenich [Fri, 6 Dec 2013 23:57:42 +0000 (23:57 +0000)]
Desktop array size limit checking for gl_ClipDistance[] and gl_TexCoord[].

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

10 years agoMade '\' at end of C++ comments be a warning. It is line continuation for some versi...
John Kessenich [Fri, 6 Dec 2013 21:45:15 +0000 (21:45 +0000)]
Made '\' at end of C++ comments be a warning.  It is line continuation for some versions, but not others.

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

10 years agoUpdate Linux binaries
John Kessenich [Fri, 6 Dec 2013 18:30:06 +0000 (18:30 +0000)]
Update Linux binaries

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

10 years agoFix g++ warnings.
John Kessenich [Fri, 6 Dec 2013 18:24:47 +0000 (18:24 +0000)]
Fix g++ warnings.

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

10 years agoPreprocessor: Add short-circuit logic so ES errors are not given on undefined variabl...
John Kessenich [Fri, 6 Dec 2013 18:19:22 +0000 (18:19 +0000)]
Preprocessor: Add short-circuit logic so ES errors are not given on undefined variables that are short circuited in && and || preprocessing expressions.

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

10 years agoPreprocessor: Fixed that some comments incorrectly substituted a new line instead...
John Kessenich [Fri, 6 Dec 2013 16:13:47 +0000 (16:13 +0000)]
Preprocessor:  Fixed that some comments incorrectly substituted a new line instead of space.  Also generally cleaned up the space-related coding.

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

10 years agoFixed a couple places that missed the error check for #else/#elif after #else.
John Kessenich [Thu, 5 Dec 2013 21:51:40 +0000 (21:51 +0000)]
Fixed a couple places that missed the error check for #else/#elif after #else.

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

10 years agoRemove one layer of arrayness on geometry shader inputs before checking for location...
John Kessenich [Thu, 5 Dec 2013 20:58:16 +0000 (20:58 +0000)]
Remove one layer of arrayness on geometry shader inputs before checking for location overlaps.  I think there is a spec. bug here.

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

10 years agoImplement location overlap error checking.
John Kessenich [Thu, 5 Dec 2013 20:07:56 +0000 (20:07 +0000)]
Implement location overlap error checking.

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

10 years agoUpdate Linux binaries
John Kessenich [Wed, 4 Dec 2013 21:51:22 +0000 (21:51 +0000)]
Update Linux binaries

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

10 years agoUpdate Window's binary.
John Kessenich [Wed, 4 Dec 2013 21:50:38 +0000 (21:50 +0000)]
Update Window's binary.

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

10 years agoTrack the flow-control (and {}) nesting level to prevent case statements from being...
John Kessenich [Wed, 4 Dec 2013 21:48:20 +0000 (21:48 +0000)]
Track the flow-control (and {}) nesting level to prevent case statements from being a different nesting level than their switch statement.

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

10 years agoCheck for packing qualifiers on block members.
John Kessenich [Wed, 4 Dec 2013 21:01:32 +0000 (21:01 +0000)]
Check for packing qualifiers on block members.

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

10 years agoCheck for structures out from vertex or into fragment for ES 100 or desktop pre-150.
John Kessenich [Wed, 4 Dec 2013 20:41:33 +0000 (20:41 +0000)]
Check for structures out from vertex or into fragment for ES 100 or desktop pre-150.

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

10 years agoDetect and give error on second occurrence of #version.
John Kessenich [Wed, 4 Dec 2013 20:08:16 +0000 (20:08 +0000)]
Detect and give error on second occurrence of #version.

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

10 years agoUpdate Linux binaries
John Kessenich [Wed, 4 Dec 2013 19:47:13 +0000 (19:47 +0000)]
Update Linux binaries

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

10 years agoUpdate Window's binary.
John Kessenich [Wed, 4 Dec 2013 19:46:19 +0000 (19:46 +0000)]
Update Window's binary.

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

10 years agoTrack whether function declarations are prototypes, and only allow at most one protot...
John Kessenich [Wed, 4 Dec 2013 19:43:05 +0000 (19:43 +0000)]
Track whether function declarations are prototypes, and only allow at most one prototype for ES 100.

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

10 years agoRe-allow non-language characters in ES 100 comments, including '\', except for '...
John Kessenich [Wed, 4 Dec 2013 17:23:03 +0000 (17:23 +0000)]
Re-allow non-language characters in ES 100 comments, including '\', except for '\' just before a new line.

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

10 years agoFix ES unsized-array checking: it was one level too low, disallowing some unsized...
John Kessenich [Wed, 4 Dec 2013 16:43:00 +0000 (16:43 +0000)]
Fix ES unsized-array checking: it was one level too low, disallowing some unsized syntax that is legal.

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

10 years agoUpdate Linux binaries
John Kessenich [Wed, 4 Dec 2013 04:49:23 +0000 (04:49 +0000)]
Update Linux binaries

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

10 years agoUpdate Window's binary.
John Kessenich [Wed, 4 Dec 2013 04:47:57 +0000 (04:47 +0000)]
Update Window's binary.

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

10 years agoAdd a versioning system and tie it to the -v command-line option. System is describe...
John Kessenich [Wed, 4 Dec 2013 04:43:40 +0000 (04:43 +0000)]
Add a versioning system and tie it to the -v command-line option.  System is described in glslang/Include/revision.template.

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

10 years agoUpdate Linux binaries
John Kessenich [Tue, 3 Dec 2013 21:05:59 +0000 (21:05 +0000)]
Update Linux binaries

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

10 years agoUpdate test results.
John Kessenich [Tue, 3 Dec 2013 21:05:07 +0000 (21:05 +0000)]
Update test results.

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

10 years agoGive error when overloaded functions differ only on a parameter's precision qualifier.
John Kessenich [Tue, 3 Dec 2013 21:04:03 +0000 (21:04 +0000)]
Give error when overloaded functions differ only on a parameter's precision qualifier.

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

10 years agoDisallow non-language characters in comments for ES version 100.
John Kessenich [Tue, 3 Dec 2013 20:09:57 +0000 (20:09 +0000)]
Disallow non-language characters in comments for ES version 100.

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

10 years agoAdd #line functionality to allow expressions instead of just literals. Also made...
John Kessenich [Tue, 3 Dec 2013 17:19:03 +0000 (17:19 +0000)]
Add #line functionality to allow expressions instead of just literals.  Also made some preprocessor code slightly more clear.

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

10 years agoNon-functional: missing test result and slight coding change from yesterday's constan...
John Kessenich [Tue, 3 Dec 2013 16:13:22 +0000 (16:13 +0000)]
Non-functional: missing test result and slight coding change from yesterday's constant folding check in.

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

10 years agoFinish compile-time constant folding for multi-argument built-ins: distance(), dot...
John Kessenich [Tue, 3 Dec 2013 01:18:06 +0000 (01:18 +0000)]
Finish compile-time constant folding for multi-argument built-ins:  distance(), dot(), cross(), faceforward(), reflect(), refract(), and outerProduct().

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

10 years agoUpdate Linux binaries
John Kessenich [Mon, 2 Dec 2013 18:10:10 +0000 (18:10 +0000)]
Update Linux binaries

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

10 years agoFix logic error in steering which stages get bias vs. non-bias texturing functions.
John Kessenich [Mon, 2 Dec 2013 18:09:08 +0000 (18:09 +0000)]
Fix logic error in steering which stages get bias vs. non-bias texturing functions.

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

10 years agoFix crash from attempting ES precision propagation through a constant folded built...
John Kessenich [Mon, 2 Dec 2013 16:38:53 +0000 (16:38 +0000)]
Fix crash from attempting ES precision propagation through a constant folded built-in function call when the expression tree has unknown precisions.

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

10 years agoPreprocessor fixes:
John Kessenich [Mon, 2 Dec 2013 15:56:38 +0000 (15:56 +0000)]
Preprocessor fixes:
 - Correctly handle non-directive lines starting with "#"
 - Correctly ignore unrecognized #pragma
 - Partial fix for new lines in the middle of macro invocation

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

10 years agoSimplify and rationalize constant folding for dereferences (array, matrix, vector...
John Kessenich [Sun, 1 Dec 2013 23:37:08 +0000 (23:37 +0000)]
Simplify and rationalize constant folding for dereferences (array, matrix, vector, swizzle, struct).

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

10 years agoCompile-time check on sampler binding size, link-time merging and checking of bindings.
John Kessenich [Wed, 27 Nov 2013 02:41:52 +0000 (02:41 +0000)]
Compile-time check on sampler binding size, link-time merging and checking of bindings.

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

10 years agoFix for glslang_vs2013.vcxproj: One source file was marked as CLInclude instead of...
John Kessenich [Tue, 26 Nov 2013 13:37:57 +0000 (13:37 +0000)]
Fix for glslang_vs2013.vcxproj: One source file was marked as CLInclude instead of CLCompile, which caused link errors.

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

10 years agoCorrect textureGather*() extension support:
John Kessenich [Sat, 23 Nov 2013 21:10:51 +0000 (21:10 +0000)]
Correct textureGather*() extension support:
 - add extension behavior and warning message for partial extension support
 - add partial support for gpu_shader5 for textureGather*
 - add interactions between texture rectangle and textureGather*
 - add checks to distinguish between gpu_shader5 and texture_gather extension feature differences

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

10 years agoReflection: Eliminate redundant arrayed block entries, and use block name instead...
John Kessenich [Sat, 23 Nov 2013 00:44:18 +0000 (00:44 +0000)]
Reflection: Eliminate redundant arrayed block entries, and use block name instead of instance name for active uniform enumeration.

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

10 years agoUpdate Linux binaries
John Kessenich [Fri, 22 Nov 2013 17:54:04 +0000 (17:54 +0000)]
Update Linux binaries

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

10 years agoAdd missing non-square matrixCompMult built-in functions.
John Kessenich [Fri, 22 Nov 2013 17:52:58 +0000 (17:52 +0000)]
Add missing non-square matrixCompMult built-in functions.

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

10 years agoUpdate Linux binaries
John Kessenich [Fri, 22 Nov 2013 17:32:52 +0000 (17:32 +0000)]
Update Linux binaries

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

10 years agoImplement GL_EXT_shader_texture_lod.
John Kessenich [Fri, 22 Nov 2013 17:30:34 +0000 (17:30 +0000)]
Implement GL_EXT_shader_texture_lod.

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

10 years agoReflection: Expand out block arrays to N different blocks.
John Kessenich [Thu, 21 Nov 2013 00:54:57 +0000 (00:54 +0000)]
Reflection: Expand out block arrays to N different blocks.

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

10 years agoAdd limit checking for constant texture texel offsets and max_vertices.
John Kessenich [Wed, 20 Nov 2013 23:46:57 +0000 (23:46 +0000)]
Add limit checking for constant texture texel offsets and max_vertices.

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

10 years agoAdd link-time checks for max_vertices, input primitive, and output primitive for...
John Kessenich [Wed, 20 Nov 2013 22:16:41 +0000 (22:16 +0000)]
Add link-time checks for max_vertices, input primitive, and output primitive for existence and matching.

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

10 years agoTrack what ins/outs/uniforms are used, so that errors like "declare after use" or...
John Kessenich [Wed, 20 Nov 2013 21:12:43 +0000 (21:12 +0000)]
Track what ins/outs/uniforms are used, so that errors like "declare after use" or "can't use both XXX and YYY" can be issued.  So far, used this for invariant, gl_FragColor et. al., and gl_FragCoord use before redeclaration.

Also made all tests in testlist include linker tests.

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

10 years agoAdd new convenience pool allocators for arbitrary types, and use them to keep all...
John Kessenich [Wed, 20 Nov 2013 18:37:12 +0000 (18:37 +0000)]
Add new convenience pool allocators for arbitrary types, and use them to keep all TSymbol content in the pool, so they don't have to be deleted.

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

10 years agoFix a preprocessor memory leak by cleaning up some preprocessor memory management.
John Kessenich [Tue, 19 Nov 2013 20:52:56 +0000 (20:52 +0000)]
Fix a preprocessor memory leak by cleaning up some preprocessor memory management.

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

10 years agoReflection: Flesh out expansions of complex aggregates not fully dereferenced, visit...
John Kessenich [Fri, 15 Nov 2013 20:41:31 +0000 (20:41 +0000)]
Reflection: Flesh out expansions of complex aggregates not fully dereferenced, visit all array elements for a variable index, and correct max array index when a later occurrence is larger than an earlier one.

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

10 years agoReflection: Optimize leaf-array sizes for largest index used in a live path.
John Kessenich [Fri, 15 Nov 2013 05:28:51 +0000 (05:28 +0000)]
Reflection: Optimize leaf-array sizes for largest index used in a live path.

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

10 years agoReflection:
John Kessenich [Fri, 15 Nov 2013 01:34:27 +0000 (01:34 +0000)]
Reflection:
 - correct block data size
 - handle deep dereference chains (block.member.member.member)
 - more clear interface argument names

(Still TBD: optimizing array size based on biggest used index and handling variable array index in middle of deep dereference chain)

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

10 years agoAdd VS2013 projects. Also, update VS2010 project to:
John Kessenich [Thu, 14 Nov 2013 16:05:13 +0000 (16:05 +0000)]
Add VS2013 projects.  Also, update VS2010 project to:

* Include reflection.cpp/.h
* Adding /d2Zi+ for optimized debugging support
* Added _ALLOW_RUNTIME_LIBRARY_MISMATCH;_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH;_ALLOW_MSC_VER_MISMATCH to suppress some future mismatch errors
* Fixed the 64-bit output directories to have the trailing slash that msbuild really wants

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