platform/upstream/glslang.git
10 years agoUpdate Linux binaries
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

10 years agoUpdate Window's binary.
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

10 years agoTrack the flow-control (and {}) nesting level to prevent case statements from being...
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

10 years agoCheck for packing qualifiers on block members.
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

10 years agoCheck for structures out from vertex or into fragment for ES 100 or desktop pre-150.
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

10 years agoDetect and give error on second occurrence of #version.
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

10 years agoUpdate Linux binaries
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

10 years agoUpdate Window's binary.
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

10 years agoTrack whether function declarations are prototypes, and only allow at most one protot...
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

10 years agoRe-allow non-language characters in ES 100 comments, including '\', except for '...
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

10 years agoFix ES unsized-array checking: it was one level too low, disallowing some unsized...
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

10 years agoUpdate Linux binaries
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

10 years agoUpdate Window's binary.
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

10 years agoAdd a versioning system and tie it to the -v command-line option. System is describe...
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

10 years agoUpdate Linux binaries
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

10 years agoUpdate test results.
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

10 years agoGive error when overloaded functions differ only on a parameter's precision qualifier.
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

10 years agoDisallow non-language characters in comments for ES version 100.
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

10 years agoAdd #line functionality to allow expressions instead of just literals. Also made...
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

10 years agoNon-functional: missing test result and slight coding change from yesterday's constan...
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

10 years agoFinish compile-time constant folding for multi-argument built-ins: distance(), dot...
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

10 years agoUpdate Linux binaries
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

10 years agoFix logic error in steering which stages get bias vs. non-bias texturing functions.
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

10 years agoFix crash from attempting ES precision propagation through a constant folded built...
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

10 years agoPreprocessor fixes:
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

10 years agoSimplify and rationalize constant folding for dereferences (array, matrix, vector...
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

10 years agoCompile-time check on sampler binding size, link-time merging and checking of bindings.
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

10 years agoFix for glslang_vs2013.vcxproj: One source file was marked as CLInclude instead of...
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

10 years agoCorrect textureGather*() extension support:
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

10 years agoReflection: Eliminate redundant arrayed block entries, and use block name instead...
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

10 years agoUpdate Linux binaries
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

10 years agoAdd missing non-square matrixCompMult built-in functions.
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

10 years agoUpdate Linux binaries
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

10 years agoImplement GL_EXT_shader_texture_lod.
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

10 years agoReflection: Expand out block arrays to N different blocks.
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

10 years agoAdd limit checking for constant texture texel offsets and max_vertices.
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

10 years agoAdd link-time checks for max_vertices, input primitive, and output primitive for...
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

10 years agoTrack what ins/outs/uniforms are used, so that errors like "declare after use" or...
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

10 years agoAdd new convenience pool allocators for arbitrary types, and use them to keep all...
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

10 years agoFix a preprocessor memory leak by cleaning up some preprocessor memory management.
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

10 years agoReflection: Flesh out expansions of complex aggregates not fully dereferenced, visit...
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

10 years agoReflection: Optimize leaf-array sizes for largest index used in a live path.
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

10 years agoReflection:
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

10 years agoAdd VS2013 projects. Also, update VS2010 project to:
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

10 years agoFix for build error in vs2013: #include <algorithm> to get definition of std::min...
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

10 years agoAdd GetEsslVersionString() and GetGlslVersionString().
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

10 years agofix g++ compilation issues
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

10 years agoReflection: Add translation from glslang types to the API #define types.
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

10 years agoReflection: Implement the std140 block offset calculation rules.
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

10 years agoUpdate Linux binaries
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

10 years agoUpdate Window's binary.
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

10 years agoDisallow arrays in initializers for non-array-object versions (assignment, etc. were...
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

10 years agoFix line-continuation bug.
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

10 years agoUpdate Linux binaries
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

10 years agoFixes to scanning:
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

10 years agoMisc semantics fixes:
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

10 years agoDon't allow invariant in a function.
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

10 years agoUpdate Linux binaries
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

10 years agoAdd GL_OES_EGL_image_external. Includes new keyword, type, name mangling, built...
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

10 years agoAdd GL_EXT_frag_depth.
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

10 years agoAdd GL_OES_standard_derivatives. Also added extension infrastructure that allows...
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

10 years agoAdd GL_OES_texture_3D extension. Also, minor tweaks to extension adding infrastructure.
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

10 years agoUpdate Linux binaries
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

10 years agoMinor consistency fix: Define built-in functions to have bodies.
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

10 years agoMore subtle checking for redeclarations:
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

10 years agoFix several issues in the preprocessor:
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

10 years agoupdate linux binaries
John Kessenich [Sat, 9 Nov 2013 00:19:17 +0000 (00:19 +0000)]
update linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23975 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdded constant folding for relational (e.g. lessThan) built-ins, relational built...
John Kessenich [Sat, 9 Nov 2013 00:18:22 +0000 (00:18 +0000)]
Added constant folding for relational (e.g. lessThan) built-ins, relational built-ins for uints, and bitwise ops for mixed scalars and vectors.

Also, allow comments to precede "#version 100".

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23974 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoMisc. constant-folding fixes: Check % for 0, mat(mat) constructor, index range checki...
John Kessenich [Fri, 8 Nov 2013 21:47:56 +0000 (21:47 +0000)]
Misc. constant-folding fixes: Check % for 0, mat(mat) constructor, index range checking (within constant objects).  Also, rationalize addConst*() methods.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23973 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoUpdate glslang_vs2010 project to use C7 Compatible Debug information (/C7) so that...
John Kessenich [Fri, 8 Nov 2013 12:59:26 +0000 (12:59 +0000)]
Update glslang_vs2010 project to use C7 Compatible Debug information (/C7) so that projects that link against it don't have LNK4204 warnings.  Also fix errant space in "StandAlone _vs2010.sln".

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23966 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoupdate linux binaries
John Kessenich [Fri, 8 Nov 2013 07:14:31 +0000 (07:14 +0000)]
update linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23963 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd some missing invariant semantic checks, replace some misplaced sampler semantic...
John Kessenich [Fri, 8 Nov 2013 07:13:18 +0000 (07:13 +0000)]
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

10 years agoComplete hook up all the compile/link errors to the command-line exit status. (Also...
John Kessenich [Thu, 7 Nov 2013 23:33:24 +0000 (23:33 +0000)]
Complete hook up all the compile/link errors to the command-line exit status. (Also, an updated test left from the last check-in.)

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23961 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoStop emitting the "#version missing" warning, and hook up the existing "suppress...
John Kessenich [Thu, 7 Nov 2013 17:44:20 +0000 (17:44 +0000)]
Stop emitting the "#version missing" warning, and hook up the existing "suppress warnings" to a command-line option (-w).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23952 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoremove ^M
John Kessenich [Thu, 7 Nov 2013 01:48:13 +0000 (01:48 +0000)]
remove ^M

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23940 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoFix some Linux issues.
John Kessenich [Thu, 7 Nov 2013 01:36:56 +0000 (01:36 +0000)]
Fix some Linux issues.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23939 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd and partially implement an interface for doing uniform reflection. It includes...
John Kessenich [Thu, 7 Nov 2013 01:06:34 +0000 (01:06 +0000)]
Add and partially implement an interface for doing uniform reflection.  It includes an AST traversal to identify live accesses.

It does not yet correctly compute block offsets, give correct GL-API-style type values, or handle arrays.

This is tied to the new -q flag.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23938 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoClean up/resolve a bunch of TODO, which included implementing pixel_center_integer...
John Kessenich [Tue, 5 Nov 2013 18:07:25 +0000 (18:07 +0000)]
Clean up/resolve a bunch of TODO, which included implementing pixel_center_integer and origin_upper_left and adjusting what versions see legacy texturing names.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23874 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoInterface and naming improvements:
John Kessenich [Fri, 1 Nov 2013 17:41:52 +0000 (17:41 +0000)]
Interface and naming improvements:
 - the new C++ style interface now stands on its own, with the addition of glslang::InitializeProcess() and glslang::FinalizeProcess()
 - more "global" pool names from a decade ago are fixed to be thread names
 - StandAlone.cpp fully uses one of the old-style interface or new C++ style interface

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23851 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoInclude per-shader and per-program pools in the new C++ interface to glslang. (And...
John Kessenich [Fri, 1 Nov 2013 03:08:40 +0000 (03:08 +0000)]
Include per-shader and per-program pools in the new C++ interface to glslang.  (And picked up missing test result from previous check in.)

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23844 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoFix parameter count bug in ambiguity checking for overloaded function matching under...
John Kessenich [Thu, 31 Oct 2013 18:05:50 +0000 (18:05 +0000)]
Fix parameter count bug in ambiguity checking for overloaded function matching under implicit conversions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23827 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoImplement 1.20 style function signature matching under implicit conversion. This...
John Kessenich [Wed, 30 Oct 2013 23:17:34 +0000 (23:17 +0000)]
Implement 1.20 style function signature matching under implicit conversion.  This was the last key unimplemented feature of versions 120 through 330.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23798 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoFix recursion detection (it was detecting cycles in the call graph that were not...
John Kessenich [Wed, 30 Oct 2013 01:22:04 +0000 (01:22 +0000)]
Fix recursion detection (it was detecting cycles in the call graph that were not directed cycles).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23761 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd VS2010 version of solution file and projects. These differ from the VS2012 versi...
John Kessenich [Tue, 29 Oct 2013 16:25:15 +0000 (16:25 +0000)]
Add VS2010 version of solution file and projects.  These differ from the VS2012 versions checked in as follows:

- Added 64-bit build targets.
- Output libraries to lib/[x86|x64]/[Debug|Release]
- Use Multithreaded Debug and Multithreaded static Runtime Libraries (instead of DLL versions)
- Set _HAS_ITERATOR_DEBUGGING=0

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23753 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoFix bug where bracket dereferences were incorrectly keeping the base's qualifier...
John Kessenich [Mon, 28 Oct 2013 19:49:16 +0000 (19:49 +0000)]
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

10 years agoImprove preprocessor by using GLSL scanner, allowing read-only strings to be compiled...
John Kessenich [Mon, 28 Oct 2013 18:12:06 +0000 (18:12 +0000)]
Improve preprocessor by using GLSL scanner, allowing read-only strings to be compiled, unifying of line # tracking, and correct detection that ES #version appeared after a comment.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23721 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd geometry shader input array sizing/checking WRT declared input primitive layout.
John Kessenich [Thu, 24 Oct 2013 22:41:04 +0000 (22:41 +0000)]
Add geometry shader input array sizing/checking WRT declared input primitive layout.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23698 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd redeclarations of built-in blocks.
John Kessenich [Thu, 24 Oct 2013 01:25:40 +0000 (01:25 +0000)]
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

10 years agoAdd geometry-shader stream, invocations, max_vertices, lines, triangles, etc. layout...
John Kessenich [Wed, 23 Oct 2013 19:34:05 +0000 (19:34 +0000)]
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

10 years agoAdd built-in constants through version 440. Some still need to be consumed when...
John Kessenich [Tue, 22 Oct 2013 01:50:39 +0000 (01:50 +0000)]
Add built-in constants through version 440.  Some still need to be consumed when initializing the symbol table.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23634 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoTie "location = " to the right stages/versions/extensions. Also add "#define extensi...
John Kessenich [Tue, 22 Oct 2013 00:21:04 +0000 (00:21 +0000)]
Tie "location = " to the right stages/versions/extensions.  Also add "#define extension 1" extension support and instructions.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23633 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoFor portability, use std::map instead of std::hash_map in recent preprocessor fix.
John Kessenich [Mon, 21 Oct 2013 19:50:14 +0000 (19:50 +0000)]
For portability, use std::map instead of std::hash_map in recent preprocessor fix.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23632 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd texture gather functions (and extension check) for GLSL 400 and GL_ARB_texture_ga...
John Kessenich [Mon, 21 Oct 2013 19:25:59 +0000 (19:25 +0000)]
Add texture gather functions (and extension check) for GLSL 400 and GL_ARB_texture_gather.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23631 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoUpdate Linux binaries
John Kessenich [Mon, 21 Oct 2013 16:13:46 +0000 (16:13 +0000)]
Update Linux binaries

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23629 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoUpdate Window's binary.
John Kessenich [Mon, 21 Oct 2013 16:12:23 +0000 (16:12 +0000)]
Update Window's binary.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23628 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoNon-functional: Use better token names for the preprocessor.
John Kessenich [Sun, 20 Oct 2013 18:37:53 +0000 (18:37 +0000)]
Non-functional: Use better token names for the preprocessor.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23624 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoFix memory corruption problem in the preprocessor, removing custom hash-tables/etc...
John Kessenich [Sun, 20 Oct 2013 18:18:36 +0000 (18:18 +0000)]
Fix memory corruption problem in the preprocessor, removing custom hash-tables/etc. and replacing with std containers.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23623 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd layout binding qualifier for blocks and samplers (atomics are not yet in, nor...
John Kessenich [Fri, 18 Oct 2013 21:37:55 +0000 (21:37 +0000)]
Add layout binding qualifier for blocks and samplers (atomics are not yet in, nor link validation).

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23590 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoAdd swizzles to scalars.
John Kessenich [Fri, 18 Oct 2013 03:56:23 +0000 (03:56 +0000)]
Add swizzles to scalars.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23580 e7fa87d3-cd2b-0410-9028-fcbf551c1848

10 years agoMinor preprocessor fix for error message line/string numbers coming from source line...
John Kessenich [Fri, 18 Oct 2013 03:09:37 +0000 (03:09 +0000)]
Minor preprocessor fix for error message line/string numbers coming from source line, not macro line.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23576 e7fa87d3-cd2b-0410-9028-fcbf551c1848