John Kessenich
bae44b74d4
Finish GL_ARB_shading_language_420pack: *ProgramTexelOffset built-in constants. Also, make comma operation not fold constants.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26602 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-05-11 01:07:31 +00:00
John Kessenich
0b9e112da6
420Pack: Implement length() on vectors and matrices. Also, tweak line-continuation semantics to understand the extension.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26601 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-05-10 22:24:50 +00:00
John Kessenich
d7dfe2c2b2
Prevent crash when bad shader redeclares built-in array names it is not supposed to redeclare.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26520 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-05-06 22:58:55 +00:00
John Kessenich
8a1a4a7a8b
Implement implicit conversions on function return expressions to the function's type.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26501 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-05-06 06:02:01 +00:00
John Kessenich
2ea882fdae
Change ERROR to WARNING to finish fixing bug 11904, comment 3: bug 11856 resolved to drop the ERROR regarding no statements after the last label in the switch.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26479 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-05-01 16:48:18 +00:00
John Kessenich
8d6ce1c227
Improve the 150.geom test.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26445 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-29 23:09:26 +00:00
John Kessenich
f000058fd9
Allow the pre-150 built-in redeclarations when using SSO: gl_Position, gl_PointSize, gl_ClipVertex, and gl_FogFragCoord.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26399 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-24 22:38:50 +00:00
John Kessenich
e96ee859a8
Establish desktop completeness through version 1.50. (gl_MaxVaryingFloats, implicit-cconversion safety, cube-sampler-array fix, add tests)
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26253 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-14 22:08:16 +00:00
John Kessenich
447c65c978
Two missing test file sources.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26230 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-14 16:14:30 +00:00
John Kessenich
263a134edd
Correct the test results from the last check in.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26229 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-14 16:11:00 +00:00
John Kessenich
2bbd2a3be8
Add missing tests and test results.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26228 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-14 16:10:01 +00:00
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
585982e32a
Add getStage() and getIntermediate() methods for consumers. Also removed dead options and update test file.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26126 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-28 17:49:10 +00:00
John Kessenich
f5dd2f5c7c
Expand implicit argument conversions to also include handling built-in function calls.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26080 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-26 03:17:31 +00:00
John Kessenich
71e01cbab9
Make switch statements have their own nested scope (bug 11904).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25949 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-17 22:48:25 +00:00
John Kessenich
c63759ef01
Additional test results for previous check in.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25913 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-16 23:18:34 +00:00
John Kessenich
75694fdacd
Implement implicit conversions of function-call arguments (both in and out) as explicit conversions in the AST, through handleArgumentConversions().
...
Also
- uniformly handle EvqConstReadOnly as an input argument in a function, with
isParamInput() and isParamOutput() queries in TQualifier.
- provide a makeTemporary() in TQualifier, for erasing original qualification when making a temp
- provide a makeInternalVariable() call to make a shader variable not seen in the shader source
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25912 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-16 23:03:07 +00:00
John Kessenich
71241d8221
Allow choice of DLL or static CRT libraries through CMake options.
...
Also, some trivial miscellaneous build-related changes.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25811 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-12 02:34:44 +00:00
John Kessenich
3ce1058dbe
update Linux build for latest CMake changes from Windows
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25793 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-11 06:35:42 +00:00
John Kessenich
d18e2d8adc
Add CMake support for Visual Studio and installation, with an expected "install" for CMAKE_INSTALL_PREFIX, and updated test scripts to consume the CMake installation.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25791 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-11 02:10:26 +00:00
John Kessenich
b35e9bfa21
Track things like "(3)" and "+3" as expressions, not literals.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25511 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-02-24 21:16:19 +00:00
John Kessenich
52c351442c
Update rules for "GL_", "gl_", and "__" to match latest specification bug fixes.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25392 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-02-18 21:55:42 +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
782aa830b6
Correct which versions can support the extensions GL_ARB_separate_shader_objects and GL_ARB_shading_language_420pack. They'd only gone back to 150, rather than 130/140.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25314 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-02-12 05:15:49 +00:00
John Kessenich
4094630ca3
GL_ARB_enhanced_layouts, final. #extension tests, built-in constants, and bug fix for non-constant expression in layout(...=expr).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25220 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-02-03 16:28:23 +00:00
John Kessenich
ac1e188f3b
GL_ARB_enhanced_layouts, part 6: Numerical side of uniform offset and align semantics. Included
...
- moving offset calculations for std140/std430 from reflection to linkValidate.cpp
- applying the offset/align rules on top of std140/std430
- removing caching the structure's number of components (and correcting that this is components, not size)
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25174 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-01-31 02:40:19 +00:00
John Kessenich
04b1c6ed4c
GL_ARB_enhanced_layouts, part 5: uniform offset and align semantics. Numerical computations not yet done.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25092 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-01-28 21:13:59 +00:00
John Kessenich
e5fbec8a17
Support GL_ARB_texture_cube_map_array extension for desktop.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25025 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-01-26 22:22:54 +00:00
John Kessenich
c7776ec3fd
GL_ARB_enhanced_layouts, part 4: Numerical side of xfb_*: offset computation, size computation, alias detection, paddings, overflow, implicit strides, gl_Max* checks, etc.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25014 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-01-26 01:37:13 +00:00
John Kessenich
44b807e1d0
GL_ARB_enhanced_layouts, part 3: Semantics for xfb_*: where they can go, inheritance, etc., but not yet the backing arithmetic for offsets and strides.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24916 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-01-21 04:43:23 +00:00
John Kessenich
4f9aebf659
update Makefile dependencies
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24738 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-01-10 21:25:05 +00:00
John Kessenich
68546c6ca4
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
2014-01-08 23:25:18 +00:00
John Kessenich
b76d6d6496
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
2014-01-07 18:14:48 +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
7054075804
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
2013-12-31 23:02:24 +00:00
John Kessenich
99b0ffd468
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
2013-12-31 00:13:26 +00:00
John Kessenich
ddbe0befd7
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
2013-12-30 20:44:49 +00:00
John Kessenich
bd306b89a4
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
2013-12-30 20:40:03 +00:00
John Kessenich
fcb4ed054c
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
2013-12-30 20:34:28 +00:00
John Kessenich
08d182470b
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
2013-12-20 18:36:27 +00:00
John Kessenich
e8fe7b81d7
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
2013-12-18 18:47:12 +00:00
John Kessenich
7c908d2543
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
2013-12-18 03:06:24 +00:00
John Kessenich
bd95819123
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
2013-12-16 23:58:15 +00:00
John Kessenich
27151efa71
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
2013-12-13 19:26:54 +00:00
John Kessenich
f3e2a89452
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
2013-12-13 18:38:43 +00:00
John Kessenich
116c30b6ed
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
2013-12-12 01:25:37 +00:00
John Kessenich
3a4687d782
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
2013-12-11 22:38:19 +00:00