John Kessenich
cf0206c341
Restore r26245 and all tests and test results since 4/1:
...
r26245: Remove "not yet complete" warning for versions 130 and 140, after tidying up a bit and adding tests. Token pasting is the only known missing feature, and gives its own message now on use.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26226 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-14 15:46:40 +00:00
John Kessenich
f2d042a1fe
Non-functional, infrastructure: Be more explicit about "implicit array sizes", improving the infrastructure for handling them. Also fix some output that was too big for its buffer.
...
There is more upcoming functionality for link-time sizing of implicitly-sized arrays that will use this.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26176 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-02 02:27:26 +00:00
John Kessenich
b4ef9e0d56
Track which extensions were enabled or required, in the intermediate representation, for reflection of the consumer.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26155 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-31 22:20:47 +00:00
John Kessenich
56876dcfe7
Fix missing semantic check: Disallow layout qualifiers when augmenting an already declared variable with a qualifier.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25351 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-02-13 19:14:33 +00:00
John Kessenich
5053a39578
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
2014-01-07 17:44:41 +00:00
John Kessenich
7cbfdf4394
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
2014-01-06 21:27:56 +00:00
John Kessenich
623833fabc
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
2013-12-11 18:57:40 +00:00
John Kessenich
afda2411c0
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
2013-12-04 20:41:33 +00:00
John Kessenich
b88c60b03f
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
2013-12-04 19:43:05 +00:00
John Kessenich
34bd4fbef7
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
2013-12-04 16:43:00 +00:00
John Kessenich
6ec8f28960
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
2013-12-03 21:05:07 +00:00
John Kessenich
143c8bf10f
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
2013-12-03 21:04:03 +00:00
John Kessenich
13221d2f7a
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
2013-12-02 18:09:08 +00:00
John Kessenich
5134b9cf57
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
2013-11-20 21:12:43 +00:00
John Kessenich
a4351c55e8
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
2013-11-11 04:21:31 +00:00
John Kessenich
01c22afa37
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
2013-11-08 07:13:18 +00:00
John Kessenich
e17ef84753
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
2013-10-28 19:49:16 +00:00
John Kessenich
ab41fe5df6
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
2013-10-24 01:25:40 +00:00
John Kessenich
94fdd1117b
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
2013-10-23 19:34:05 +00:00
John Kessenich
f2ee3dd46a
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
2013-09-28 04:02:08 +00:00
John Kessenich
9839e2440e
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
2013-09-26 00:45:21 +00:00
John Kessenich
337dbc7d8c
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
2013-09-24 21:18:46 +00:00
John Kessenich
5f753e0222
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
2013-09-08 21:04:46 +00:00
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