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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
John Kessenich [Thu, 14 Nov 2013 15:28:57 +0000 (15:28 +0000)]
Fix for build error in vs2013: #include <algorithm> to get definition of std::min and std::max
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24063
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 14 Nov 2013 00:16:43 +0000 (00:16 +0000)]
Add GetEsslVersionString() and GetGlslVersionString().
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24054
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 13 Nov 2013 20:50:21 +0000 (20:50 +0000)]
fix g++ compilation issues
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24043
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 13 Nov 2013 19:07:43 +0000 (19:07 +0000)]
Reflection: Add translation from glslang types to the API #define types.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24042
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 13 Nov 2013 05:40:44 +0000 (05:40 +0000)]
Reflection: Implement the std140 block offset calculation rules.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24027
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 22:05:09 +0000 (22:05 +0000)]
Update Linux binaries
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24024
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 22:04:23 +0000 (22:04 +0000)]
Update Window's binary.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24023
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 22:02:36 +0000 (22:02 +0000)]
Disallow arrays in initializers for non-array-object versions (assignment, etc. were already caught, but not initialization).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24022
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 22:01:32 +0000 (22:01 +0000)]
Fix line-continuation bug.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24021
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 03:36:35 +0000 (03:36 +0000)]
Update Linux binaries
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24012
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 03:31:24 +0000 (03:31 +0000)]
Fixes to scanning:
- do version checking for the line-continuation character
- check for built-in names in #undef
- bug fix for #elif after #else
- do version checking for use of floating point suffixes (f, LF, etc.)
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24011
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 12 Nov 2013 01:02:51 +0000 (01:02 +0000)]
Misc semantics fixes:
- don't allow pre-array object versions to return a struct containing an array
- special case -
2147483648 / -1
- include "~" in the full integer functionality checks
- handle multiple function parameters having the same name
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24010
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 11 Nov 2013 23:51:57 +0000 (23:51 +0000)]
Don't allow invariant in a function.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24009
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
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
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
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
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
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
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
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
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
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