609 Commits

Author SHA1 Message Date
John Kessenich
bf63ef05d9 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
2013-11-14 00:16:43 +00:00
John Kessenich
e4f45cbf49 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
2013-11-13 20:50:21 +00:00
John Kessenich
ec252dfd3b 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
2013-11-13 19:07:43 +00:00
John Kessenich
568bc3ae55 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
2013-11-13 05:40:44 +00:00
John Kessenich
c043498b02 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
2013-11-12 22:05:09 +00:00
John Kessenich
9511ae8d70 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
2013-11-12 22:04:23 +00:00
John Kessenich
ffa66d3bc7 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
2013-11-12 22:02:36 +00:00
John Kessenich
029d746bad 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
2013-11-12 22:01:32 +00:00
John Kessenich
df0488dd0f 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
2013-11-12 03:36:35 +00:00
John Kessenich
69aa9c1b84 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
2013-11-12 03:31:24 +00:00
John Kessenich
67c9f3a720 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
2013-11-12 01:02:51 +00:00
John Kessenich
09709c1521 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
2013-11-11 23:51:57 +00:00
John Kessenich
e74fe56b02 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
2013-11-11 23:31:44 +00:00
John Kessenich
bd1a5b7727 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
2013-11-11 23:29:59 +00:00
John Kessenich
99296369d3 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
2013-11-11 20:51:50 +00:00
John Kessenich
06a37c3964 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
2013-11-11 20:31:45 +00:00
John Kessenich
115a0adc29 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
2013-11-11 18:50:06 +00:00
John Kessenich
df81ce90c3 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
2013-11-11 17:01:55 +00:00
John Kessenich
359326b866 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
2013-11-11 04:59:32 +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
4d6570a1b3 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
2013-11-10 23:07:36 +00:00
John Kessenich
cfe3ba5a18 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
2013-11-09 00:19:17 +00:00
John Kessenich
77d908af8a 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
2013-11-09 00:18:22 +00:00
John Kessenich
0876a58203 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
2013-11-08 21:47:56 +00:00
John Kessenich
6d7fe63d76 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
2013-11-08 12:59:26 +00:00
John Kessenich
49d6121288 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
2013-11-08 07:14: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
c999ba2816 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
2013-11-07 23:33:24 +00:00
John Kessenich
b0a7eb599b 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
2013-11-07 17:44:20 +00:00
John Kessenich
d627502d07 remove ^M
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23940 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-11-07 01:48:13 +00:00
John Kessenich
3ac3578968 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
2013-11-07 01:36:56 +00:00
John Kessenich
11f9fc7247 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
2013-11-07 01:06:34 +00:00
John Kessenich
8ec55cdcd2 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
2013-11-05 18:07:25 +00:00
John Kessenich
c36e1d8e51 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
2013-11-01 17:41:52 +00:00
John Kessenich
5b0f13acbc 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
2013-11-01 03:08:40 +00:00
John Kessenich
83a6b1edfc 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
2013-10-31 18:05:50 +00:00
John Kessenich
0d22e31c75 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
2013-10-30 23:17:34 +00:00
John Kessenich
8cbd18ecaa 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
2013-10-30 01:22:04 +00:00
John Kessenich
d492aafad7 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
2013-10-29 16:25:15 +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
ea869fb403 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
2013-10-28 18:12:06 +00:00
John Kessenich
9497485e14 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
2013-10-24 22:41:04 +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
284231c9c5 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
2013-10-22 01:50:39 +00:00
John Kessenich
c78a126ba6 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
2013-10-22 00:21:04 +00:00
John Kessenich
bf688510a8 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
2013-10-21 19:50:14 +00:00
John Kessenich
21a8770f92 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
2013-10-21 19:25:59 +00:00
John Kessenich
a65dc63d46 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
2013-10-21 16:13:46 +00:00
John Kessenich
028dbad0e9 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
2013-10-21 16:12:23 +00:00