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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
John Kessenich [Sat, 3 Aug 2013 00:16:49 +0000 (00:16 +0000)]
Add Linux executables
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22594
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sat, 3 Aug 2013 00:04:10 +0000 (00:04 +0000)]
Set up infrastructure for installing an executable. Changes the standalone name to glslangValidator.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22593
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 1 Aug 2013 18:04:50 +0000 (18:04 +0000)]
Fix bison file naming issues from upgrading to version 2.7 of bison.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22578
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 31 Jul 2013 23:19:17 +0000 (23:19 +0000)]
Make previous check in compile correctly on linux.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22568
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 31 Jul 2013 18:44:13 +0000 (18:44 +0000)]
Improve multi-threading and move Standalone to a multi-threading model (currently off though).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22565
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 22 Jul 2013 22:31:08 +0000 (22:31 +0000)]
Update index.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22513
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 22 Jul 2013 22:29:42 +0000 (22:29 +0000)]
Push index page now that SVN access is setup.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22512
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 22 Jul 2013 07:53:37 +0000 (07:53 +0000)]
Put on hold pending configuring glslang for public access.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22491
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 22 Jul 2013 07:40:27 +0000 (07:40 +0000)]
Link glslang project into site nav.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22487
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 9 Jul 2013 23:57:13 +0000 (23:57 +0000)]
Fix warning in release build. Update to-do list.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22315
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 9 Jul 2013 17:23:39 +0000 (17:23 +0000)]
Tie missing default-precision error checks to EShMsgRelaxedErrors.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22304
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 8 Jul 2013 21:50:31 +0000 (21:50 +0000)]
Final linux tweak.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22294
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 8 Jul 2013 20:51:29 +0000 (20:51 +0000)]
A few linux improvements/fixes for the previous check in.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22292
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 8 Jul 2013 19:39:16 +0000 (19:39 +0000)]
Reframe the preprocessor as a C++ class, with instances, removing all C code, removing all global variables. Upgrade bison version to pass a parse context on through to the preprocessor. All the basic things to make something thread safe.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22291
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sat, 6 Jul 2013 19:54:21 +0000 (19:54 +0000)]
Eliminate flex as the GLSL lexical analyzer, going from two nested lexical analyzers down to one, leaving just the preprocessor's lexical analysis. A new layer replaces it, to translate from the preprocessor's view of tokenization to glslang's view of tokenization.
Also:
- change source locations from an int to TSourceLoc (shader number, line number) throughout
- various improvements to the preprocessor
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22277
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 2 Jul 2013 20:18:59 +0000 (20:18 +0000)]
Rationalize naming/access to current thread-local-storage scheme. However, the preprocessor tokenizer is not thread-safe, so this may all change.
Also adding missing test.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22249
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 1 Jul 2013 17:56:24 +0000 (17:56 +0000)]
1) Don't propagate precision of built-in function arguments to return type when return type is bool (e.g., isnan).
2) Check an additional path for missing default precision qualification, except allow built-in declarations to pass the check.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22241
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 1 Jul 2013 04:54:28 +0000 (04:54 +0000)]
Fix bug dropping some qualifiers when merging with block member default qualification.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22240
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 28 Jun 2013 05:32:15 +0000 (05:32 +0000)]
Use the default of "smooth" for interpolation qualification for vertex outs and fragment ins (rather than all fragment IO).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22222
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 26 Jun 2013 23:41:30 +0000 (23:41 +0000)]
Fix preprocessor memory leak.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22195
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 26 Jun 2013 22:42:55 +0000 (22:42 +0000)]
Handle bad input file.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22194
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 26 Jun 2013 05:54:40 +0000 (05:54 +0000)]
Semantic checks for .length(), switch/case/default, and multidimensional arrays.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22175
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 25 Jun 2013 21:53:59 +0000 (21:53 +0000)]
Add semantic check for precision qualifier on wrong kind of type. Added a few more tests.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22170
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 25 Jun 2013 21:09:47 +0000 (21:09 +0000)]
Support line-continuation (backslash before newline) for tokens and one-line comments in the preprocessor.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22168
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 25 Jun 2013 18:31:47 +0000 (18:31 +0000)]
Remove the -a option, it doesn't belong here.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22166
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 25 Jun 2013 18:10:05 +0000 (18:10 +0000)]
Add scanner that can find '#version' across an array of non-null terminated, length-based, strings. Handle the ES error where #version is not the first thing found, while still supporting desktop behavior, and more generally support length-based multiple strings for a single shader.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22165
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Jun 2013 22:40:19 +0000 (22:40 +0000)]
Add the 6 hyperbolic trig functions.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22149
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Jun 2013 21:52:41 +0000 (21:52 +0000)]
Disallow variable indexing into sampler array for ES and desktop before version 400.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22148
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Jun 2013 21:22:03 +0000 (21:22 +0000)]
Add semantic checks for order of qualification and repetition within a class of qualifiers.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22145
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Jun 2013 18:24:23 +0000 (18:24 +0000)]
Address a g++ complaint.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22143
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Jun 2013 17:26:56 +0000 (17:26 +0000)]
Create linkage symbol nodes in the AST so a linker has access to all global objects that were declared, for error checking, etc. Use it now for all ins/outs/uniforms as well as gl_VertexID and gl_InstanceID.
Also fixed a confusing name and added more 'const'.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22142
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 21 Jun 2013 19:43:44 +0000 (19:43 +0000)]
Fix bug of accidentally overriding initial layout location with 0, which does not mean no location. Added in/out structure tests.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22120
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 20 Jun 2013 22:54:40 +0000 (22:54 +0000)]
Add grammar productions for the syntax "layout(...) uniform;" for setting global defaults.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22112
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 19 Jun 2013 20:44:17 +0000 (20:44 +0000)]
Add grammar productions for adding 'invariant' to already declared variables.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22083
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 19 Jun 2013 05:41:25 +0000 (05:41 +0000)]
Track separate precision defaults for each kind of sampler, give initial defaults as per spec. Also make fragment floats have no default. Modify/add tests to adapt to these changes.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22066
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 17 Jun 2013 21:47:23 +0000 (21:47 +0000)]
Encapsulate warnings like errors. Add warning for missing #version.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22041
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 14 Jun 2013 17:32:46 +0000 (17:32 +0000)]
Fix linux build problem.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22002
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 13 Jun 2013 23:56:04 +0000 (23:56 +0000)]
Implement __VERSION__ macro, make ftransform() non-ES only, add more tests.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22000
e7fa87d3-cd2b-0410-9028-
fcbf551c1848