John Kessenich
c555dddd53
glslang preprocessing: Add -E option to print out preprocessed GLSL, and do the work needed to generate a preprocessed stream. From Andrew Woloszyn <awoloszyn@google.com>.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31508 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-17 02:38:44 +00:00
John Kessenich
9288f46b95
glslang front-end: Added a callback mechanism for #line/#pragma/#version/#extension. From Andrew Woloszyn <awoloszyn@google.com>.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31507 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-16 23:08:00 +00:00
John Kessenich
47632b7aaf
glslang front-end: track column numbers (they don't go anywhere yet, just get tracked). Andrew Woloszyn <awoloszyn@google.com>.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31506 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-16 19:49:22 +00:00
John Kessenich
edadf45605
glslang: Add API override of version and profile for testing purposes. From Lei Zhang <antiagainst@google.com>.
...
Add defaultProfile and forceDefaultVersionAndProfile into shader
compilation interface.
forceDefaultVersionAndProfile allows us to force parsing the input
shaders using defaultVersion and defaultProfile, regardless of
the #version directive in input shaders.
These two parameters enables us to programmatically invoke glslang
but specify version and profile from somewhere else like command
line.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31504 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-16 19:01:56 +00:00
John Kessenich
9e41f362a6
glslang AEP: Full semantics for *_shader_io_blocks.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31490 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-15 15:08:41 +00:00
John Kessenich
f6deb6203a
glslang AEP: Geometry shader features nominally working. (Full semantic check and turn on pending.) Also picked up partial tessellation shader interface, shader_io_blocks, and mirrored OES set of extensions functionality.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31487 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-14 21:36:44 +00:00
John Kessenich
93930d6f9a
glslang ES reference: Don't allow std430 on uniform blocks (bug 14095).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31484 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-12 22:09:25 +00:00
John Kessenich
453bb26ef5
glslang AEP: The extension scheme, extension-enabled stage-existence testing, and compute-shader interface. Still needs in/out blocks, unsized arrays, etc. before real testing can be done.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31479 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-12 05:01:25 +00:00
John Kessenich
4751ce3fc1
glslang front-end: Support relaxed error checking for bug 13724 "...initializer must be a constant expression..." because that change breaks existing shipping applications. (Normal validation for portability testing still gives an error.)
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31475 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-11 16:39:01 +00:00
John Kessenich
fae38ee277
glslang portability: Fixed a slew of OSX compilation warnings (but not all).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31469 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-10 23:23:12 +00:00
John Kessenich
b8478d7eac
glslang: Allow programmatically prepending code to a shader without worrying about #version being first, to implement command-line-defined macros. From Dejan Mircevski <deki@google.com>.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31448 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-08 18:31:23 +00:00
John Kessenich
a49fe84a4e
glslang ref. front-end: Add missing image format for desktop (but these are still yet to be used.)
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31447 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-06-08 17:48:26 +00:00
John Kessenich
2fde45a1eb
Requesting input on Bug 1346: checking in, turned off, enum-based operators for texturing and image operations. Please reply there with any input, thanks.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31289 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-26 01:36:50 +00:00
John Kessenich
40e391184c
glslang -> SPV: Use the new TBuiltInVariable instead of string compares to get the type of SPV built in. Also fixed gl_FragData and gl_PrimitiveIDIn.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31226 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-18 23:25:32 +00:00
John Kessenich
dff18a2be0
glslang: Formally track all built-in variables, right from the beginning, to enable avoiding all textual compares at any subsequent stage in the stack. (To be used in future check ins.)
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31224 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-18 16:45:49 +00:00
John Kessenich
ca3457f1a7
glslang: Fix a few more warnings, and see it using nullptr causes anyone problems (testing c++11 portability).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31218 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-18 01:59:45 +00:00
John Kessenich
b06127c513
glslang PP: make decimal number parser clearer and add boundary tests. Also, disable the warning for "do {} while (true);"
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31215 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-16 01:15:41 +00:00
John Kessenich
e7cbfa5cab
glslang tests: Get same form of IEEE INF across platforms. Submitted by Lei Zhang (antiagainst@google.com) and David Neto (dneto@google.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31210 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-15 20:26:13 +00:00
John Kessenich
93dfbe1309
glslang: Fix over 100 warnings from MSVC warning level 4.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31202 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-15 17:30:55 +00:00
John Kessenich
af9ab5f743
glslang parser: Arrays-of-arrays name-mangling and error messages (lots of A-of-A stuff to come a bit later). This patch from Google, David Neto <dneto@google.com>.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31137 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-11 16:16:49 +00:00
John Kessenich
f75276ba5c
glslang tear down: Include deleting the keyword map in tear down. From johnk and sawato shusaku (shusaku.sawato@dmprof.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31115 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-08 02:28:33 +00:00
John Kessenich
6add20a835
glslang linker: Make some methods static that can be static. Contributor: Lei Zhang (antiagainst@google.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31113 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-08 01:44:42 +00:00
John Kessenich
0f4ef5b088
glslang build: Always run a custom command for Bison. The Cmake BISON_TARGET rule doesn't understand this use of --defines, and so the targets are always rebuilt even if no source files change. Contributor: Stefanus Du Toit (stefanus@google.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31111 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-08 01:12:45 +00:00
John Kessenich
57193ecdc3
glslang: In ShFinalize: 1) Delete CommonSymbolTable entries. 2) After deleting objects, set the pointers to NULL. This allows us to cleanly restart glslang a second time in the same process, because it forces a new allocation. Contributor: Andrew Woloszyn (awoloszyn@google.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31110 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-08 01:03:55 +00:00
John Kessenich
bb8c3de8b3
glslang parser: Fix crash for ES shader with a uniform block with an unsized array that is later accessed. David Neto (dneto@google.com).
...
Instead of crashing, exit early from the implicit-sized-array-size-update routine so we can get to a real error message which is emitted later.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31109 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-08 00:54:34 +00:00
John Kessenich
a0096021d9
glslang parser: Fix precedence bug, submitted (as was the previous one) by Andrew Woloszyn (awoloszyn@google.com).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31103 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-07 16:23:04 +00:00
John Kessenich
11f5fc04b8
glslang preprocassor: Fix operator precedence bug.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31087 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-05-07 01:04:29 +00:00
John Kessenich
968c8f8e78
glslang: Bug 13724: ES global initializers must be constant.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30990 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-30 03:22:41 +00:00
John Kessenich
09388459a8
glslang: Correct global precision qualifiers to make the qualifier global instead of temp (local).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30975 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-29 11:00:28 +00:00
John Kessenich
8b37b04ecc
glslang AST output: include global vs. temp (local) in the printed output. This only effects test results, but a future check-in is going to fix some globals.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30973 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-29 10:16:56 +00:00
John Kessenich
6dc09cd0f3
glslang: support negation of doubles.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30795 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-17 22:03:30 +00:00
John Kessenich
edd181944e
glslang and SPIR-V: Some basic turn on for doubles (previously untested but existed code). Partly from a submission, partly addressing bug 13772.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30794 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-17 21:47:07 +00:00
John Kessenich
87a5e2a84b
glslang: Allow GL_ARB_explicit_attrib_location to add "layout" keyword pre version 140.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30647 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-09 21:04:44 +00:00
John Kessenich
837c6380f3
glslang: include 0 as not being a power of 2
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30613 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-04-08 15:51:14 +00:00
John Kessenich
0df0cdeeeb
glslangValidator: Add straightforward SPIR-V support (non-optimizing, ~3.x functionality).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30032 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-03-03 17:09:43 +00:00
John Kessenich
50d542e6b9
Implement ES-3.0-specific error semantics for redefining predefined macros.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29353 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-01-07 18:47:57 +00:00
John Kessenich
548ec2c12c
Include ?: in the tests for flow control.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29348 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-01-07 06:36:55 +00:00
John Kessenich
05a62bf528
Implement barrier() control-flow rules: in flow control, non-main, and post-return.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29347 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2015-01-07 06:14:06 +00:00
John Kessenich
c311d35500
Fix default precision check for formal parameters; it was one level too deep. This will accept more fragment shaders with no default precision before declaring functions.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29281 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-12-21 20:30:04 +00:00
John Kessenich
33a5423f76
Still generate switch statement when WARNING about missing statements is given. It was correct behave when this used to be an error, but not now that it is a warning.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29279 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-12-21 16:48:29 +00:00
John Kessenich
2b20dcb64d
Fix public bug 1277: #line L sets the next line to L+1 or just L, based on the version of the language.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29277 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-12-20 07:03:18 +00:00
John Kessenich
6df2904391
Implement specification change in 'restrict', allowing it to come and go across function calls.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29195 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-12-11 00:17:42 +00:00
John Kessenich
c47175c7bb
Add memory qualifiers (coherent volatile restrict) to imageSize(), imageLoad(), imageStore(), atomic*(), and imageAtomic*(), to remove errors about dropping qualifiers.
...
Several bugs are related to this, and this is a slightly speculative fix, bit it is certainly wrong to either do it the way it was or to reflect the current specifications.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28968 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-11-17 16:45:10 +00:00
John Kessenich
6ab7bf20f0
Non-functional: Change %pure_parser to %pure-parser, to improve portability.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28857 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-11-05 16:36:44 +00:00
John Kessenich
b07957cf22
ES check for vertex out or fragment in containing any of
...
• An array of arrays
• An array of structures
• A structure containing an array
• A structure containing a structure
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28745 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-10-28 05:24:14 +00:00
John Kessenich
ad54b24fba
Implement GL_ARB_viewport_array extension.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28653 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-10-17 20:01:27 +00:00
John Kessenich
f0fce80aa7
Do qualifier-based checking independent of declaring a variable. Bug 11903.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28502 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-10-08 21:29:29 +00:00
John Kessenich
39cf638945
Include GL_FRAGMENT_PRECISION_HIGH in ES 300/310.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28494 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-10-08 16:31:44 +00:00
John Kessenich
3ce4e59090
Increase portability. (Submission from Nikita Kindt, as were some recent related submissions.)
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28444 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-10-06 19:57:34 +00:00
John Kessenich
f57aa7bd91
Add missing precision qualifier checks to function formal parameter declarations.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@28442 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-10-06 19:39:13 +00:00