| 
							
							
								 John Kessenich | 4586dbdc1b | 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 | 2013-08-05 15:52:03 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 41a5918eaa | 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 | 2013-08-04 23:51:37 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 54f6e5661d | 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 | 2013-08-03 00:04:10 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 5f1a0b7998 | 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 | 2013-07-06 19:54:21 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 73ed17a87b | 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 | 2013-07-02 20:18:59 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 1fde51d3fb | 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 | 2013-07-01 17:56:24 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | e369bfccfe | 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 | 2013-06-26 05:54:40 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ef84d10e4c | 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 | 2013-06-25 21:53:59 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | d3f85891a7 | 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 | 2013-06-25 21:09:47 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ebf0825ec4 | 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 | 2013-06-24 22:40:19 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | eebed6f60b | 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 | 2013-06-24 21:52:41 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 01fc0645cb | 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 | 2013-06-24 21:22:03 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 06f8464fb5 | 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 | 2013-06-24 17:26:56 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | b29ba33089 | 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 | 2013-06-21 19:43:44 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 211cba242b | 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 | 2013-06-20 22:54:40 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 60d9f7a881 | 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 | 2013-06-19 20:44:17 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 41a36bbb2f | 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 | 2013-06-19 05:41:25 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | f78fff94e9 | 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 | 2013-06-13 23:56:04 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | fb7044a9a8 | Semantic checks: ES doesn't have unsized arrays or noise*(). git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21998 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-13 20:16:43 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | fbe01520b6 | Get all the scoping rules right for ES and non ES, name hiding, built-in overriding, etc. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21948 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-12 06:13:17 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | a5cecfc6b6 | Add constant folding for the exp*(), log*(), *sqrt(), round*(), floor(), fract(), ceil(), abs(), and sign() built in functions. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21927 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-11 00:09:48 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | fddf3ce3a1 | Unify constant floats and constant doubles; they can all be constant doubles. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21921 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-10 21:56:23 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 50a8cabbbb | Add constant folding for length(), normalize(), fwidth(), dFdx(), and dFdy(). git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21918 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-10 07:37:49 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 00f605b930 | A round of increasing robustness against buffer overruns. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21917 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-10 07:36:26 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 3ce5745ade | Add more tests for built-in variables. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21893 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-07 18:54:19 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 0fbb0c4930 | Block/structure fixes: Merge qualifiers with multiple declarators, handle arrays of blocks, more semantic checks for what's allowed. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21883 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-06 18:31:21 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ceb0623823 | Fix another problem with undefined macros needing to evaluate to 0 within a preprocessor expression, but not outside a preprocessor expression. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21815 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-03 04:15:57 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 04de88f990 | The new test that was to have been added with the previous check in. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21814 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-06-02 22:57:37 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 2327da4784 | Add test for operation semantics, fix one bug it found. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21798 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-05-30 23:31:38 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 8d00fd0e29 | Add missing type check for operands having the same type (after conversion) around the ":" in a "?:" operation. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21721 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-05-28 07:29:58 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 2d0f1e5424 | Add precision qualifier propagation for swizzling, texture lookups, built-in funtions mapped to operators, comma op, and more robustly propagate for all binary/unary ops. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21622 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-05-17 02:51:45 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 52ac67e913 | Make the PP report an error on undefined macro in "#if ..." for ES profiles, unless relaxed error checking is requested.  Still works as normal CPP on non-ES. Also, improved error reporting in general for the PP.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21417 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-05-05 23:46:22 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | c2ff7702be | For all keywords already present, get correct when they could be identifiers, are reserved words, or are keywords, for all versions of ESSL and GLSL. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21282 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-25 16:44:03 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 0576126005 | Add switch/case/default statements, using a switch node that contains a sequence of case/default nodes and top-level nodes of the code chunks in between them. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21131 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-12 03:57:02 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | b51f62c573 | Add the GL_ES macro for ES personalities, along with a general mechanism for adding preambles in front of shaders without effecting line numbers, etc. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21122 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-11 16:31:09 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 63eed3867a | Additional layout-related error checking. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21108 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-10 23:30:05 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | bcd79fe5a3 | Implement default layout qualifiers at global and block levels with proper inheritance.  Also add more error checking of qualifiers. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21107 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-10 22:26:56 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ba04210097 | Add anonymous members as a new symbol table type, so the infrastructure can handle blocks with no names. Also, add more safety to the types involved regarding copy constructors, operator=, etc.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21106 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-10 20:15:16 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | f6648dc12c | Add interface blocks as a basic type and handle uniform blocks that have an instance name.  Includes handling qualifiers on structure members. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21093 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-10 02:06:46 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | e9942d26f5 | Initial implementation of layout qualifiers.  More to come after uniform blocks are in place. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21078 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-09 01:20:01 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 3ed2db58f1 | Put in correct rules for multiple versions of qualification and typing of inputs and outputs.  Also, removed EvqAttribute, merging it with EvqVaryingIn. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21064 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-07 22:43:16 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ad3663be1f | Add ES 300 built-ins trunc, round, roundEven, modf, isnan, isinf, floatBitsToInt, floatBitsToUint, intBitsToFloat, uintBitsToFloat, packSnorm2x16, unpackSnorm2x16, packUnorm2x16, unpackUnorm2x16, packHalf2x16, and unpackHalf2x16, and new form of min, max, clamp, and mix. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21063 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-07 20:04:12 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ebeeece6a7 | Add uint type (big change).  For both int/uint, add the operators >>, <<, &, |, and ^.  Also added unsigned literals and uint precision support.  Also fixed how int/uint literal underflow/overflow is handled. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@21054 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-04-05 04:05:39 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 7d58d655c2 | Add a forward reference function call test. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20945 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-03-21 17:33:38 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 20169715df | Get a clean g++/gcc build.  Runs and gets correct results on linux. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20820 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-03-09 19:50:19 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 53fb465729 | Change infrastructure to support constant folding across built-in functions, as required by 1.2 semantics.  Partially fleshed out with min/max and some trig functions.  Still have to complete all operations. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20806 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-03-07 19:22:07 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 3252b18590 | Minor updates to tests. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20758 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-03-04 23:50:08 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ca8899c9ae | Add productions/data for about 14 qualifiers (versions 1.2 through 4.3). Fixed some case issues for rect/array keywords. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20742 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-03-01 21:53:13 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | 4b67103b02 | Implement operator-based implicit type conversions. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20724 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-02-28 20:49:41 +00:00 |  | 
			
				
					| 
							
							
								 John Kessenich | ef8ae2e345 | Allow gl_FragColor and gl_FragData in non-forward-compatible contexts for non-ES versions 150 - 410. Also add deprecation message for attribute/varying for core profile. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20714 e7fa87d3-cd2b-0410-9028-fcbf551c1848 | 2013-02-27 19:02:52 +00:00 |  |