Andrew Woloszyn
a132af5b78
Updated the includer interface to allow relative includes.
...
This plumbs both the current file path and the include depth
back up to the includer. This allows the includer to properly
support relative paths.
This also replaces the string copy that was done during include
with a zero-copy method of accomplishing the same thing. This
prevents extra copies of entire files.
2016-03-21 10:19:45 -04:00
John Kessenich
f2d8a5c53f
SPV: Use heuristic to avoid geometry multi-streams when possible.
2016-03-03 22:29:11 -07:00
John Kessenich
52d08596ec
Merge pull request #175 from rdb/master
...
Fix compilation issues with MSVC 2010
2016-02-27 21:29:14 -07:00
baldurk
1be2ffa7cd
GCC/Clang warning fix - unsigned/signed mismatch in comparison
2016-02-25 21:47:14 +01:00
John Kessenich
5184353326
Merge pull request #174 from mgadams/alias_proto_warnings
...
Fix warnings/errors for strict aliasing & function prototypes
2016-02-24 21:43:59 -07:00
rdb
32084e889d
Fix compilation issues with MSVC 2010
...
(mostly by eliminating use of range-based for loops and std::tie)
2016-02-23 22:17:38 +01:00
Mark Adams
18b637f9dc
Fix warnings/errors for strict aliasing & function prototypes
...
This fixes various issues related to gcc's strict-aliasing warning
by using unions. It also handles various cases hit with
gcc's missing-declarations warning.
2016-02-23 12:17:11 -05:00
Hubert Jarosz
6df2cdbb8a
fix #171 - error: ‘isinf’ was not declared in this scope
...
glslang/MachineIndependent/intermOut.cpp used `isinf`,
but it's in `std` namespace, so should use `std::isinf`.
2016-02-23 01:32:37 +01:00
John Kessenich
5047c6f7a7
SPV: Fix Linux build warning.
2016-02-18 19:47:33 -07:00
John Kessenich
6c292d3ba7
SPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).
2016-02-15 21:46:55 -07:00
John Kessenich
ba5685a332
Semantics: Map noise*() to an operator for PureOperatorBuiltins mode.
...
Fixes issue #157 .
2016-02-02 15:59:12 -07:00
John Kessenich
9df51caba9
Fix front-end bug: Constant folding of array-of-struct index op.
...
If a constant object was both an array and a structure, and was
indexed with a constant, the arrayness was ignored and the wrong
subconstant selected. This fixes that.
2016-02-01 11:57:33 -07:00
John Kessenich
f6eae2a54a
SPV: Require desktop 140 or ES 310 or above.
2016-01-22 17:47:22 -07:00
John Kessenich
4bfeed5fe8
Semantics: Spec. changing to reflect reality of int/uint conversion for |^&.
...
This effects 4.x, where int/uint conversions are done, but not earlier.
2016-01-22 15:40:24 -07:00
John Kessenich
28ad350b35
Memory: remove a part of the last merge request that causes crashes in multi-threaded mode.
2016-01-18 11:10:40 -07:00
John Kessenich
3e9add360d
Merge pull request #133 from AWoloszyn/spirv-memory
...
Free memory associated with SPIR-V generation and the pragmaTable.
2016-01-18 10:48:07 -07:00
Andrew Woloszyn
b7946d16bb
Free memory associated with SPIR-V generation.
2016-01-18 10:29:41 -05:00
John Kessenich
712ecb96a2
Doubles: Add all the missing built-in double-based prototypes.
2016-01-16 20:37:43 -07:00
John Kessenich
68f1431a55
Merge pull request #121 from amdrexu/feature
...
Parser & SPV: Implement two extensions regarding GLSL sparse texture.
2016-01-15 00:52:18 -07:00
John Kessenich
863aa667f3
Merge pull request #129 from AWoloszyn/fix-noop-strcpy
...
Preprocessor: Removed strcpy that copied a value to itself.
2016-01-13 19:12:50 -07:00
John Kessenich
5caf936428
Merge pull request #126 from mgadams/win32_warnings
...
Fix several build warnings/error encountered with VS2013
2016-01-13 19:11:05 -07:00
Jason Ekstrand
a76766a434
getBaseAlignment: Use the rowMajor argument for determining matrix strides
...
The argument version is passed in from above and struct handling ensures
that row-majorness gets propagated correctly from one level to the next.
If we just look at the type itself and it's embedded in a struct that's
declared row-major, we may get the wrong stride.
2016-01-13 17:17:39 -08:00
Jason Ekstrand
79b7046a27
getBaseAlignment: Round up structure sizes to max alignment
2016-01-13 17:17:39 -08:00
Andrew Woloszyn
e602d25f09
Removed strcpy that copied to itself.
...
Found by running glslang with -fsanitize=address in clang.
Also fixes a potential buffer-overrun with return from lReadByte.
2016-01-12 15:48:00 -05:00
Mark Adams
364c21c8c0
Fix several build warnings/error encountered with VS2013
...
This also fixes the newlines for spirv.hpp to be consistent with the rest of the files.
2016-01-06 13:41:02 -05:00
Rex Xu
48edadfd24
Parser & SPV: Implement two extensions regarding GLSL sparse texture.
...
Implement extension "GL_ARB_sparse_texture2".
Implement extension "GL_ARB_sparse_texture_clamp".
2016-01-05 16:07:02 +08:00
John Kessenich
4998789d4e
SPV: Fix array strides by explicitly computing them in the getBaseAlignment() algorithm.
2015-12-29 19:20:55 -07:00
John Kessenich
69d01eadd6
Semantics: Catch nested types containing 'int' with non-'flat' interpolation.
2015-12-22 16:39:07 -07:00
John Kessenich
3ac051e41d
SPV: recursively propagate row/col majorness through nested structures.
...
This includes doing structure uniqueness modulo majorness, for shared nested structures.
2015-12-20 12:25:21 -07:00
John Kessenich
a3211bfe72
Merge pull request #120 from amdrexu/bugfix2
...
Parser: Correct the storage qualifier of gl_HelperInvocation.
2015-12-19 11:14:32 -07:00
John Kessenich
61c47a951b
Constant folding: Correct result type of non-square matrix folding.
...
This also made the function easier to read by identifying
left and right operands more clearly.
2015-12-16 15:50:25 -07:00
Rex Xu
1934506555
Parser: Correct the storage qualifier of gl_HelperInvocation.
2015-12-16 14:41:39 +08:00
Mark Adams
22badee09a
Fix compile warning/error due to assignment in while() loop
...
This causes build failures with -Werror=parentheses
2015-12-14 10:48:04 -05:00
John Kessenich
f5ce646546
Fix crash: when no #version for compute shader in es mode.
...
An extra line of error recovery code set a non-sense combination of
es version and core profile.
2015-12-13 11:20:12 -07:00
John Kessenich
61d9fb9048
Semantics: 'invocations' defaults to 1, not 0.
...
'invocations' was using 0 as the "shader never set" flag and as the
default. Formalize this and explicit set to 1 and link time.
2015-12-13 10:59:17 -07:00
John Kessenich
494a02a2b0
Semantics: Geometry stage can support max_vertices = 0.
...
To do this, more generally use a named -1 as a not set value.
2015-12-11 17:54:35 -07:00
Rex Xu
e553ace049
Parser: Extension requirement of gl_PrimitiveID and gl_Layer should be checked only for ESSL instead of GLSL.
2015-12-09 15:03:41 +08:00
John Kessenich
8c1c2ca0d7
Built-ins: fix mapping of packDouble2x32 and unpackDouble2x32.
2015-12-06 19:33:07 -07:00
John Kessenich
dd6ca17845
Semantics: Correct that std430 is universally disallowed with 'uniform'.
2015-12-06 18:10:27 -07:00
John Kessenich
71e04d62a4
Merge pull request #100 from mawww/scanner-optim
...
Scanner optimisations
2015-12-06 17:12:53 -07:00
Aaron Hamilton
af5a123652
In addUnaryMath, check for 'child' being null before dereferencing it.
2015-12-06 01:10:54 +00:00
Mark Adams
a3f53e54d2
Fix ordered pointer comparison build warning/error
2015-12-03 15:31:58 -05:00
John Kessenich
1be8063e01
Require l-value patch-out indexing to be gl_InvocationID.
...
Also, generally allow ES variable indexing of in/out blocks.
2015-11-28 16:52:25 -07:00
John Kessenich
989df85dcd
Array-sizing bug fix: multiple array initializers of different size in the same declaration.
...
Handles the case of
float[] x = float[] (1.0, 2.0, 3.0),
y = float[] (1.0, 2.0, 3.0, 4.0);
where a shallow copy of the type arrayness from the left-most float[]
was getting used twice.
2015-11-28 12:52:29 -07:00
baldurk
5100d5603f
Remove legacy build system
2015-11-16 23:51:35 +01:00
baldurk
876a0e392e
Add an osinclude.h below each OS directory, redirects by platform macro
...
* Linux folder has been renamed to Unix, to match defines and so that it
compiles on OS X.
* This removes the need for a per-platform include search path for the
right OS folder
2015-11-16 18:05:18 +01:00
John Kessenich
55e7d11ce8
SPIR-V: Move from Version .99 Rev 31 to Version 1.0, Rev 2.
2015-11-15 22:31:41 -07:00
Maxime Coste
6998987ecf
Avoid costly indirect calls of tStringInput::(un)?getch through TPpContext
...
There is no calls to the TPpContext that could change the current input,
so every calls to pp->getChar and pp->ungetChar ultimately call this->getch
and this->ungetch while adding overhead of virtual calls and vector::back.
2015-11-11 18:24:37 +00:00
Maxime Coste
29051bd148
Avoid creation of temporary std::string when looking up keywords and reserved words
2015-11-11 18:24:37 +00:00
Mark Adams
ea9112e0a5
Remove obsolete unistd.h file
...
The presence of this file can cause build issues when integrating glslang
into other projects.
2015-10-27 14:27:18 -04:00