platform/upstream/glslang.git
10 years agoUpdate Linux binaries
John Kessenich [Mon, 11 Nov 2013 23:31:44 +0000 (23:31 +0000)]
Update Linux binaries

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

10 years agoAdd GL_OES_EGL_image_external. Includes new keyword, type, name mangling, built...
John Kessenich [Mon, 11 Nov 2013 23:29:59 +0000 (23:29 +0000)]
Add GL_OES_EGL_image_external.  Includes new keyword, type, name mangling, built-in function calls, etc.

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

10 years agoAdd GL_EXT_frag_depth.
John Kessenich [Mon, 11 Nov 2013 20:51:50 +0000 (20:51 +0000)]
Add GL_EXT_frag_depth.

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

10 years agoAdd GL_OES_standard_derivatives. Also added extension infrastructure that allows...
John Kessenich [Mon, 11 Nov 2013 20:31:45 +0000 (20:31 +0000)]
Add GL_OES_standard_derivatives.  Also added extension infrastructure that allows built-in symbols to be tagged with extensions and automatically error checked against them.

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

10 years agoAdd GL_OES_texture_3D extension. Also, minor tweaks to extension adding infrastructure.
John Kessenich [Mon, 11 Nov 2013 18:50:06 +0000 (18:50 +0000)]
Add GL_OES_texture_3D extension.  Also, minor tweaks to extension adding infrastructure.

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

10 years agoUpdate Linux binaries
John Kessenich [Mon, 11 Nov 2013 17:01:55 +0000 (17:01 +0000)]
Update Linux binaries

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

10 years agoMinor consistency fix: Define built-in functions to have bodies.
John Kessenich [Mon, 11 Nov 2013 04:59:32 +0000 (04:59 +0000)]
Minor consistency fix: Define built-in functions to have bodies.

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

10 years agoMore subtle checking for redeclarations:
John Kessenich [Mon, 11 Nov 2013 04:21:31 +0000 (04:21 +0000)]
More subtle checking for redeclarations:
 - 300 doesn't allow built-in overload, while 100 does, while neither allows redefining
 - block name can't be reused for block name within the same interface
   (though, the spec. isn't clear about that, it's easier than verifying member matches, will file bug on it)

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

10 years agoFix several issues in the preprocessor:
John Kessenich [Sun, 10 Nov 2013 23:07:36 +0000 (23:07 +0000)]
Fix several issues in the preprocessor:
 - macro expansion of hexidecimal numbers
 - give errors instead of warnings/silence on extra tokens after #endif, #else, etc.
 - give errors on reserved macro name use, reuse of argument, and redefinition with different whitespace presence
 - detect and give error for all cases of #elif and #else after #else

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

10 years agoupdate linux binaries
John Kessenich [Sat, 9 Nov 2013 00:19:17 +0000 (00:19 +0000)]
update linux binaries

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

10 years agoAdded constant folding for relational (e.g. lessThan) built-ins, relational built...
John Kessenich [Sat, 9 Nov 2013 00:18:22 +0000 (00:18 +0000)]
Added constant folding for relational (e.g. lessThan) built-ins, relational built-ins for uints, and bitwise ops for mixed scalars and vectors.

Also, allow comments to precede "#version 100".

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

10 years agoMisc. constant-folding fixes: Check % for 0, mat(mat) constructor, index range checki...
John Kessenich [Fri, 8 Nov 2013 21:47:56 +0000 (21:47 +0000)]
Misc. constant-folding fixes: Check % for 0, mat(mat) constructor, index range checking (within constant objects).  Also, rationalize addConst*() methods.

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

10 years agoUpdate glslang_vs2010 project to use C7 Compatible Debug information (/C7) so that...
John Kessenich [Fri, 8 Nov 2013 12:59:26 +0000 (12:59 +0000)]
Update glslang_vs2010 project to use C7 Compatible Debug information (/C7) so that projects that link against it don't have LNK4204 warnings.  Also fix errant space in "StandAlone _vs2010.sln".

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

10 years agoupdate linux binaries
John Kessenich [Fri, 8 Nov 2013 07:14:31 +0000 (07:14 +0000)]
update linux binaries

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

10 years agoAdd some missing invariant semantic checks, replace some misplaced sampler semantic...
John Kessenich [Fri, 8 Nov 2013 07:13:18 +0000 (07:13 +0000)]
Add some missing invariant semantic checks, replace some misplaced sampler semantic checks, add parameter and structure member checks against new qualifiers.

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

10 years agoComplete hook up all the compile/link errors to the command-line exit status. (Also...
John Kessenich [Thu, 7 Nov 2013 23:33:24 +0000 (23:33 +0000)]
Complete hook up all the compile/link errors to the command-line exit status. (Also, an updated test left from the last check-in.)

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

10 years agoStop emitting the "#version missing" warning, and hook up the existing "suppress...
John Kessenich [Thu, 7 Nov 2013 17:44:20 +0000 (17:44 +0000)]
Stop emitting the "#version missing" warning, and hook up the existing "suppress warnings" to a command-line option (-w).

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

10 years agoremove ^M
John Kessenich [Thu, 7 Nov 2013 01:48:13 +0000 (01:48 +0000)]
remove ^M

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

10 years agoFix some Linux issues.
John Kessenich [Thu, 7 Nov 2013 01:36:56 +0000 (01:36 +0000)]
Fix some Linux issues.

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

10 years agoAdd and partially implement an interface for doing uniform reflection. It includes...
John Kessenich [Thu, 7 Nov 2013 01:06:34 +0000 (01:06 +0000)]
Add and partially implement an interface for doing uniform reflection.  It includes an AST traversal to identify live accesses.

It does not yet correctly compute block offsets, give correct GL-API-style type values, or handle arrays.

This is tied to the new -q flag.

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

10 years agoClean up/resolve a bunch of TODO, which included implementing pixel_center_integer...
John Kessenich [Tue, 5 Nov 2013 18:07:25 +0000 (18:07 +0000)]
Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names.

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

10 years agoInterface and naming improvements:
John Kessenich [Fri, 1 Nov 2013 17:41:52 +0000 (17:41 +0000)]
Interface and naming improvements:
 - the new C++ style interface now stands on its own, with the addition of glslang::InitializeProcess() and glslang::FinalizeProcess()
 - more "global" pool names from a decade ago are fixed to be thread names
 - StandAlone.cpp fully uses one of the old-style interface or new C++ style interface

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

10 years agoInclude per-shader and per-program pools in the new C++ interface to glslang. (And...
John Kessenich [Fri, 1 Nov 2013 03:08:40 +0000 (03:08 +0000)]
Include per-shader and per-program pools in the new C++ interface to glslang.  (And picked up missing test result from previous check in.)

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

10 years agoFix parameter count bug in ambiguity checking for overloaded function matching under...
John Kessenich [Thu, 31 Oct 2013 18:05:50 +0000 (18:05 +0000)]
Fix parameter count bug in ambiguity checking for overloaded function matching under implicit conversions.

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

10 years agoImplement 1.20 style function signature matching under implicit conversion. This...
John Kessenich [Wed, 30 Oct 2013 23:17:34 +0000 (23:17 +0000)]
Implement 1.20 style function signature matching under implicit conversion.  This was the last key unimplemented feature of versions 120 through 330.

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

10 years agoFix recursion detection (it was detecting cycles in the call graph that were not...
John Kessenich [Wed, 30 Oct 2013 01:22:04 +0000 (01:22 +0000)]
Fix recursion detection (it was detecting cycles in the call graph that were not directed cycles).

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

10 years agoAdd VS2010 version of solution file and projects. These differ from the VS2012 versi...
John Kessenich [Tue, 29 Oct 2013 16:25:15 +0000 (16:25 +0000)]
Add VS2010 version of solution file and projects.  These differ from the VS2012 versions checked in as follows:

- Added 64-bit build targets.
- Output libraries to lib/[x86|x64]/[Debug|Release]
- Use Multithreaded Debug and Multithreaded static Runtime Libraries (instead of DLL versions)
- Set _HAS_ITERATOR_DEBUGGING=0

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

10 years agoFix bug where bracket dereferences were incorrectly keeping the base's qualifier...
John Kessenich [Mon, 28 Oct 2013 19:49:16 +0000 (19:49 +0000)]
Fix bug where bracket dereferences were incorrectly keeping the base's qualifier (for example constBase[i] would still be a const instead of EvqTemporary).

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

10 years agoImprove preprocessor by using GLSL scanner, allowing read-only strings to be compiled...
John Kessenich [Mon, 28 Oct 2013 18:12:06 +0000 (18:12 +0000)]
Improve preprocessor by using GLSL scanner, allowing read-only strings to be compiled, unifying of line # tracking, and correct detection that ES #version appeared after a comment.

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

10 years agoAdd geometry shader input array sizing/checking WRT declared input primitive layout.
John Kessenich [Thu, 24 Oct 2013 22:41:04 +0000 (22:41 +0000)]
Add geometry shader input array sizing/checking WRT declared input primitive layout.

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

10 years agoAdd redeclarations of built-in blocks.
John Kessenich [Thu, 24 Oct 2013 01:25:40 +0000 (01:25 +0000)]
Add redeclarations of built-in blocks.

Note: lots of test results changed due to listing the members of a block when printing types.

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

10 years agoAdd geometry-shader stream, invocations, max_vertices, lines, triangles, etc. layout...
John Kessenich [Wed, 23 Oct 2013 19:34:05 +0000 (19:34 +0000)]
Add geometry-shader stream, invocations, max_vertices, lines, triangles, etc. layout qualifiers, and their default/inheritance behaviors, and some other misc. geometry shader features.  (Geometry shaders are not yet done though.)

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

10 years agoAdd built-in constants through version 440. Some still need to be consumed when...
John Kessenich [Tue, 22 Oct 2013 01:50:39 +0000 (01:50 +0000)]
Add built-in constants through version 440.  Some still need to be consumed when initializing the symbol table.

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

10 years agoTie "location = " to the right stages/versions/extensions. Also add "#define extensi...
John Kessenich [Tue, 22 Oct 2013 00:21:04 +0000 (00:21 +0000)]
Tie "location = " to the right stages/versions/extensions.  Also add "#define extension 1" extension support and instructions.

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

10 years agoFor portability, use std::map instead of std::hash_map in recent preprocessor fix.
John Kessenich [Mon, 21 Oct 2013 19:50:14 +0000 (19:50 +0000)]
For portability, use std::map instead of std::hash_map in recent preprocessor fix.

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

10 years agoAdd texture gather functions (and extension check) for GLSL 400 and GL_ARB_texture_ga...
John Kessenich [Mon, 21 Oct 2013 19:25:59 +0000 (19:25 +0000)]
Add texture gather functions (and extension check) for GLSL 400 and GL_ARB_texture_gather.

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

10 years agoUpdate Linux binaries
John Kessenich [Mon, 21 Oct 2013 16:13:46 +0000 (16:13 +0000)]
Update Linux binaries

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

10 years agoUpdate Window's binary.
John Kessenich [Mon, 21 Oct 2013 16:12:23 +0000 (16:12 +0000)]
Update Window's binary.

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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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

10 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