John Kessenich [Mon, 23 Jun 2014 23:30:48 +0000 (23:30 +0000)]
Update test result.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27129
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 18 Jun 2014 23:02:00 +0000 (23:02 +0000)]
Add more allowances for relaxed error checking mode: Warn instead of error on use of a disabled extension, allow 'f' suffix on floating point literals, and allow #version after tokens.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27113
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 5 Jun 2014 16:30:53 +0000 (16:30 +0000)]
Non-functional trivial clean up.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26972
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 3 Jun 2014 19:28:48 +0000 (19:28 +0000)]
Add partial support for GL_ARB_shader_texture_lod.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26945
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 3 Jun 2014 00:20:41 +0000 (00:20 +0000)]
Add missing matrix constructor test, and add a size() method for downstream consumers of constArrays.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26937
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 27 May 2014 01:34:38 +0000 (01:34 +0000)]
Fix, and add missing tests for, error catching for applying swizzles to arrays.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26858
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 14 May 2014 02:38:14 +0000 (02:38 +0000)]
Fix bug where an anonymous member of a built-in block containing another member with an implicitly-sized array caused two copies of the block to be referenced.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26633
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 14 May 2014 00:40:30 +0000 (00:40 +0000)]
Update Windows executable.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26631
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 14 May 2014 00:38:21 +0000 (00:38 +0000)]
Update readme for no .so
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26630
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 14 May 2014 00:13:32 +0000 (00:13 +0000)]
update Linux binary, no .so needed
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26627
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 14 May 2014 00:12:51 +0000 (00:12 +0000)]
No longer using a shared object model.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26626
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 12 May 2014 18:12:04 +0000 (18:12 +0000)]
Non-functional tweak to hidden-member (of anonymous block) semantics.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26610
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sun, 11 May 2014 01:07:31 +0000 (01:07 +0000)]
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
John Kessenich [Sat, 10 May 2014 22:24:50 +0000 (22:24 +0000)]
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
John Kessenich [Sat, 10 May 2014 19:52:01 +0000 (19:52 +0000)]
Code simplification: Add (and use) helper functions for building constant scalar AST nodes for bool, int, uint, float, and double, shortening all the code segments that were doing that.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26600
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 8 May 2014 23:57:13 +0000 (23:57 +0000)]
Add access methods for consuming adapters to get the top-level shader modes like number of invocations, vertex spacing, primitives, etc.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26586
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 6 May 2014 22:58:55 +0000 (22:58 +0000)]
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
John Kessenich [Tue, 6 May 2014 06:02:01 +0000 (06:02 +0000)]
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
John Kessenich [Thu, 1 May 2014 16:48:18 +0000 (16:48 +0000)]
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
John Kessenich [Tue, 29 Apr 2014 23:09:26 +0000 (23:09 +0000)]
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
John Kessenich [Thu, 24 Apr 2014 22:38:50 +0000 (22:38 +0000)]
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
John Kessenich [Tue, 22 Apr 2014 19:06:23 +0000 (19:06 +0000)]
Just make computeTypeLocationSize const.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26354
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 14 Apr 2014 22:08:16 +0000 (22:08 +0000)]
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
John Kessenich [Mon, 14 Apr 2014 16:14:30 +0000 (16:14 +0000)]
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
John Kessenich [Mon, 14 Apr 2014 16:11:00 +0000 (16:11 +0000)]
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
John Kessenich [Mon, 14 Apr 2014 16:10:01 +0000 (16:10 +0000)]
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
John Kessenich [Mon, 14 Apr 2014 15:46:40 +0000 (15:46 +0000)]
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
John Kessenich [Mon, 14 Apr 2014 15:07:33 +0000 (15:07 +0000)]
Restore r26192, r26240, r26241: Two missing files from last check in.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26224
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 14 Apr 2014 14:59:51 +0000 (14:59 +0000)]
Restore r26192, r26240, r26241: All three about implicit-array sizing design and implementation. *Minus* test results.
r26192: Link-time sizing of implicitly-sized arrays and handling of anonymous blocks containing implicitly-sized members. Also changed "__anon" to "anon@" and encapsulated it.
r26240: Solidify the sharing of struct and array information between nodes and variables: A single copy now allows for simultaneously setting array size for all effected nodes and symbols of a given type. This allowed removal of ioArrayNodeResizeList and makes nodes of implicitly sized arrays know the final size.
r26241: Fix g++ issue with wanting non-const iterator.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26218
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 14 Apr 2014 14:45:55 +0000 (14:45 +0000)]
Restore r26190: make code PIC
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26211
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 2 Apr 2014 02:27:26 +0000 (02:27 +0000)]
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
John Kessenich [Mon, 31 Mar 2014 22:20:47 +0000 (22:20 +0000)]
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
John Kessenich [Mon, 31 Mar 2014 00:10:51 +0000 (00:10 +0000)]
CMake fix for Linux for previous check in
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26138
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 31 Mar 2014 00:06:32 +0000 (00:06 +0000)]
CMake: Collapse into a single library all the libraries under the glslang directory, and represent the proper hierarchy in MSVS. There are still a total of 3 libraries to link against: glslang, OGLCompiler, and OSDependent.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26137
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 28 Mar 2014 18:07:35 +0000 (18:07 +0000)]
Make use of the v110 tool set be Win32 specific.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26127
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 28 Mar 2014 17:49:10 +0000 (17:49 +0000)]
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
John Kessenich [Wed, 26 Mar 2014 03:17:31 +0000 (03:17 +0000)]
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
John Kessenich [Mon, 17 Mar 2014 23:56:45 +0000 (23:56 +0000)]
Allow selection of the "Platform Toolset", so that XP binaries can be built.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25952
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 17 Mar 2014 22:48:25 +0000 (22:48 +0000)]
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
John Kessenich [Sun, 16 Mar 2014 23:18:34 +0000 (23:18 +0000)]
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
John Kessenich [Sun, 16 Mar 2014 23:03:07 +0000 (23:03 +0000)]
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
John Kessenich [Fri, 14 Mar 2014 17:47:46 +0000 (17:47 +0000)]
remove bison-generated header from library dependencies
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25897
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 14 Mar 2014 17:32:51 +0000 (17:32 +0000)]
Add new Linux set up script.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25896
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 12 Mar 2014 02:34:44 +0000 (02:34 +0000)]
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
John Kessenich [Tue, 11 Mar 2014 06:35:42 +0000 (06:35 +0000)]
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
John Kessenich [Tue, 11 Mar 2014 02:10:26 +0000 (02:10 +0000)]
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
John Kessenich [Sat, 8 Mar 2014 00:17:27 +0000 (00:17 +0000)]
Use more modern bison %parse-param and %lex-param rather than #defined YYPARSE_PARAM and YYLEX_PARAM. This should make it build across a broader range of modern versions of bison, as well as avoid void* and type casting.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25746
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Feb 2014 21:36:08 +0000 (21:36 +0000)]
Fix bug 11736: Minor glslang compilation fixes: Correct "currentChar" logic for recently switched to unsigned size_t locations, and protect more pool guard code with #ifdef.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25512
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Mon, 24 Feb 2014 21:16:19 +0000 (21:16 +0000)]
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
John Kessenich [Wed, 19 Feb 2014 02:47:20 +0000 (02:47 +0000)]
Make 64-bit VS compile clean. Mostly size_t vs. int tweaks.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25411
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 19 Feb 2014 01:00:58 +0000 (01:00 +0000)]
Check in a much improved submitted set of makefiles for Linux builds. This eliminates dependencies on system headers, and generally simplifies the makefiles.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25408
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 19 Feb 2014 00:27:03 +0000 (00:27 +0000)]
Correct newlines and executable bit for BuildLinuxCMake.sh
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25404
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 19 Feb 2014 00:18:25 +0000 (00:18 +0000)]
Add submitted CMake files for Linux builds. All existing ways of building remain in tact.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25403
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 19 Feb 2014 00:08:59 +0000 (00:08 +0000)]
Check-in a couple submitted char* string portability bug fixes: correct sizing of buffers and stop overwriting preprocessor token names with themselves.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25402
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 18 Feb 2014 23:37:57 +0000 (23:37 +0000)]
Fix the few non-portable uses of "char" (where a -1 might be relevant): All uses of char are now either "int", "unsigned char" or char arrays for storing strings. Also, went to consistent "char* foo" coding convention. (There were only a few ambiguous uses.)
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25400
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 18 Feb 2014 21:55:42 +0000 (21:55 +0000)]
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
John Kessenich [Thu, 13 Feb 2014 19:15:53 +0000 (19:15 +0000)]
update linux binary
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25352
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 13 Feb 2014 19:14:33 +0000 (19:14 +0000)]
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
John Kessenich [Wed, 12 Feb 2014 05:15:49 +0000 (05:15 +0000)]
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
John Kessenich [Mon, 3 Feb 2014 16:28:23 +0000 (16:28 +0000)]
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
John Kessenich [Fri, 31 Jan 2014 02:42:25 +0000 (02:42 +0000)]
ESSL 1.0: Add GL_FRAGMENT_PRECISION_HIGH to ESSL 1.0. It was in desktop, and properly not in ES 3.0, but missing in ES 1.0.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25175
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 31 Jan 2014 02:40:19 +0000 (02:40 +0000)]
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
John Kessenich [Tue, 28 Jan 2014 21:13:59 +0000 (21:13 +0000)]
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
John Kessenich [Mon, 27 Jan 2014 20:02:12 +0000 (20:02 +0000)]
Fix build errors:
- VS2013: #include <algorithm> in Common.h for std::max
- VS2010 32-bit: explicitly cast size_t to unsigned int to avoid compile error with TInfoSink::operator<< (size_t and unsigned int ambiguous)
JohnK approved check-in by E-mail.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25043
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sun, 26 Jan 2014 22:22:54 +0000 (22:22 +0000)]
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
John Kessenich [Sun, 26 Jan 2014 07:56:43 +0000 (07:56 +0000)]
x86 (32-bit) fix for last g++ fix.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25018
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sun, 26 Jan 2014 01:44:34 +0000 (01:44 +0000)]
fix g++ complaint
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25015
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sun, 26 Jan 2014 01:37:13 +0000 (01:37 +0000)]
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
John Kessenich [Thu, 23 Jan 2014 21:40:33 +0000 (21:40 +0000)]
Support both dynamic CRT and static CRT configurations on VS11 build. The public download needs the static one for user simplicity, while some downstream tools need the dynamic one.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24977
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Thu, 23 Jan 2014 00:35:24 +0000 (00:35 +0000)]
Move to the v110_xp toolset to support XP.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24964
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 22 Jan 2014 23:37:55 +0000 (23:37 +0000)]
Bug 11531: Use %zu when printing size_t values in printf and use "friend class" instead of "friend".
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24959
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Wed, 22 Jan 2014 23:23:19 +0000 (23:23 +0000)]
Remove Windows VS 11 executable dependencies on MSVCP110.dll and MSVCR110.dll. The only DLL needed now is the standard KERNEL32.DLL.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24957
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Tue, 21 Jan 2014 04:43:23 +0000 (04:43 +0000)]
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
John Kessenich [Sat, 11 Jan 2014 20:35:26 +0000 (20:35 +0000)]
Fix g++ warning and update Window's binary.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24741
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Sat, 11 Jan 2014 19:29:55 +0000 (19:29 +0000)]
Improvement to the AST traversal infrastructure.
Note: This affects any downstream consumers of glslang's traverser. Let me know if there are any issues. Essentially, you will need to change the functions that were pointed to into overriding base-class members instead. See the examples in this check in.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24740
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
John Kessenich [Fri, 10 Jan 2014 21:25:05 +0000 (21:25 +0000)]
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
John Kessenich [Fri, 10 Jan 2014 21:09:51 +0000 (21:09 +0000)]
Several miscellaneous portability improvements (no functional changes).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24737
e7fa87d3-cd2b-0410-9028-
fcbf551c1848
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