Felix Kaaman
09d16c3ec1
Fix missing const qualifier on TUnorderedMap template type
2015-07-25 16:31:50 +02:00
John Kessenich
917ec4ac8c
Front-end atomics: Finish adding atomic built-in functions (non-image) into the AST.
2015-07-22 19:58:15 -06:00
John Kessenich
1056110c30
Perf: Put in a portable std::hash that works with the pool. This turns on the 10-15% perf gain.
2015-07-20 23:59:32 -06:00
John Kessenich
68965c0fa9
Fix g++ build break (portibility problems with stl hash). This partly turns off the stl improvements.
...
It also removes some old code that ancient compilers used to need.
However, the main issue is getting access to hash functions for
unordered_map in portable way.
2015-07-20 02:06:22 -06:00
John Kessenich
6ab3d582d6
Preprocessor: 1) Rationalize the "fixed atom" scheme, 2) remove redundant lookups when the text is already available.
...
This simplification is a prelude to eliminating what I appear unnecessary
symbol inserts into tables when tokenizing in the preprecessor, which
show up as taking notable time. (Performance issue.) It also simply makes
the preprocessor easier to understand, which it is badly in need of.
2015-07-19 22:59:24 -06:00
John Kessenich
2f273369e4
Performance: Simple upgrade/cleanup of stl c++11 containers (10% perf. increase).
2015-07-19 12:03:51 -06:00
John Kessenich
2b4b9bd65b
Front-end: Add error-recovery code for a switch statement that ends with a case/default that has no statements.
2015-07-18 11:13:14 -06:00
John Kessenich
73fcdefaac
Add some missing 'const' and texture-op guards, for future change to enum-based texture calls.
...
The infrastructure is in place to not do text comparisons for "texture" ... for deducing type of
texture call. But, it is not yet turned on, as it could break some consumers. Am soliciting
any feedback on that.
See in Initialize.cpp: const bool PureOperatorBuiltins = false; // could break backward compatibility; pending feedback
2015-07-11 13:37:02 -06:00
John Kessenich
ff5abf34a8
Clear up a C++ compile warning
2015-07-06 21:02:26 -06:00
John Kessenich
e0603a441e
Front-end: move to rational internal array-of-array interfaces and design. (A-of-A is not yet implemented though.)
2015-07-06 21:00:03 -06:00
John Kessenich
b63263267d
Second round line ending clean up, from fresh round trip.
2015-06-26 16:42:50 -06: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
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
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
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
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
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
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
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
aa657c117e
Implement 'index' layout qualifier for fragment outputs. Based partly on a submission.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27759 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-19 02:12:44 +00:00
John Kessenich
d1888f83f6
Implement conservative depth layout qualifiers. Based partly on a submission.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27758 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-18 21:27:53 +00:00
John Kessenich
d6c72a44ab
A patch submitted for MinGW building.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27757 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-18 19:42:35 +00:00
John Kessenich
cd77f8e922
Implement GL_ARB_shader_texture_image_samples. Also add in gl_MaxSamples and the float imageAtomicExchange.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27721 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-13 16:54:02 +00:00
John Kessenich
df1d81a958
Add ES 3.1 compatibility to 4.5 and the atomic memory functions (e.g. atomicAdd).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27715 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-13 08:32:15 +00:00
John Kessenich
699684180f
Implement cull distances for GLSL 4.5 (but not as an extension yet, just a 4.5 feature).
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27714 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-13 06:37:59 +00:00
John Kessenich
13fd6c9dd7
Implement GL_ARB_derivative_control.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27713 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-13 04:15:56 +00:00
John Kessenich
265f5fb80e
Finish virtually all of the remaining atomic counter functionality. Still need offset collision detection.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27712 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-13 01:04:28 +00:00
John Kessenich
4d57090da5
Turn on ESSL 3.1 for most features:
...
- images: load/store, memory qualifiers
- buffer blocks
- compute shaders
- atomic counters
- texture gather
- SSO
- uniform locations
- all the numeric-based version # comparisons
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27710 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-12 22:07:22 +00:00
John Kessenich
bedb1bc2db
Partial implementation of atomic counters.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27701 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-12 03:52:51 +00:00
John Kessenich
cc7f4eb5a0
Remove the now dead 'shared' type field, and add semantic check for buffer on non-block.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27700 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-12 03:23:43 +00:00
John Kessenich
67cf1f6179
Turn on basic support for shader storage buffer objects, but not yet the entire extension.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27699 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-12 02:11:55 +00:00
John Kessenich
79cddfcb56
Finish implementing compute shaders, within #version 430, partly based on a submission.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27674 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-11 02:32:30 +00:00
John Kessenich
ddea678e3e
Implement GL_ARB_shader_image_load_store. Partly done (format layout qualifiers) from a submission.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27670 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-08-10 18:19:36 +00:00
John Kessenich
92f9038388
Create dummy side project.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27519 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-07-28 04:21:04 +00:00
John Kessenich
a63faa7907
Non-functional: Encapsulate testing for IO that is supposed to be arrayed with extra level for per-vertex data.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27169 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-06-27 06:17:16 +00:00
John Kessenich
9dedb13447
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
2014-06-03 00:20:41 +00:00
John Kessenich
ad47ee8909
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
2014-05-12 18:12:04 +00:00
John Kessenich
0b9e112da6
420Pack: Implement length() on vectors and matrices. Also, tweak line-continuation semantics to understand the extension.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26601 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-05-10 22:24:50 +00:00
John Kessenich
150b7acd9a
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
2014-04-14 14:59:51 +00:00
John Kessenich
f2d042a1fe
Non-functional, infrastructure: Be more explicit about "implicit array sizes", improving the infrastructure for handling them. Also fix some output that was too big for its buffer.
...
There is more upcoming functionality for link-time sizing of implicitly-sized arrays that will use this.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@26176 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-04-02 02:27:26 +00:00
John Kessenich
75694fdacd
Implement implicit conversions of function-call arguments (both in and out) as explicit conversions in the AST, through handleArgumentConversions().
...
Also
- uniformly handle EvqConstReadOnly as an input argument in a function, with
isParamInput() and isParamOutput() queries in TQualifier.
- provide a makeTemporary() in TQualifier, for erasing original qualification when making a temp
- provide a makeInternalVariable() call to make a shader variable not seen in the shader source
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25912 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-03-16 23:03:07 +00:00
John Kessenich
6b57784690
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
2014-03-08 00:17:27 +00:00
John Kessenich
8922ce7353
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
2014-02-24 21:36:08 +00:00
John Kessenich
b35e9bfa21
Track things like "(3)" and "+3" as expressions, not literals.
...
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@25511 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2014-02-24 21:16:19 +00:00
John Kessenich
35f04bde8a
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
2014-02-19 02:47:20 +00:00