John Kessenich
ab89bbe702
Merge branch 'overloaded-400' of github.com:KhronosGroup/glslang
2016-08-23 18:30:20 -06:00
John Kessenich
32c169dbdf
Front-end: Warn for likely missed change in default precisions.
...
This is part of the change to have desktop shaders respect precision
qualifiers on Vulkan, but since the defaults are all highp, and that's
different from ES fragment shaders, detect likely cases and warn about
them (but being careful to not be too noisy if it's unlikely to be a
problem).
2016-08-23 18:13:08 -06:00
John Kessenich
4d535640e4
Front-End: Non-ES trigger for processing precision qualifiers.
...
Initially non-functional: Have an independent test for whether to obey
precision qualifiers other than whether the profile is es.
2016-08-23 18:12:25 -06:00
John Kessenich
219b025d7e
Non-functional: Fix commit 98f164ec48.
...
Fix previous commit to not use tabs and otherwise match local coding
conventions better.
2016-08-23 17:51:13 -06:00
John Kessenich
2c6038ecf1
Merge branch 'cpp-headers'
2016-08-11 10:01:13 -06:00
John Kessenich
0a6fb85494
Infrastructure: Make shared symbol-table cache complete, delete work around.
...
Fixes issue #370 and replaces PR #371 .
2016-08-09 19:15:17 -06:00
John Kessenich
426542ba57
Front-end: Fix issue #443 : dvec3 uses only 2 components of second location.
2016-08-08 15:34:00 -06:00
John Kessenich
34177cd778
Tests: Test base case for fixing issue #443 .
2016-08-08 15:29:25 -06:00
John Kessenich
4583b61e20
HLSL: Smear scalars to match vectors for relational operations.
...
Yield a vector relational compare and a vector result.
2016-08-07 19:14:22 -06:00
John Kessenich
267590d452
Whitespace: Nonfunctional: fix inconsistent white space, esp. no tabs.
2016-08-05 17:34:34 -06:00
John Kessenich
bbd1b0ef76
Tests: Add some location-decoration tests, to aid PR #422 .
2016-08-05 15:19:46 -06:00
John Kessenich
66ec80e01b
Build: C++ headers: Replace PR #366 with a more directed version.
2016-08-05 14:04:23 -06:00
John Kessenich
9f9bad09b4
PP: Add missing atoms that effect -E mode.
...
When preprocessing only, some tokens were emitted as <bad token>.
This fixes them to preserve their original content.
This supplants PR #182 , with a correction and test results.
2016-08-04 22:46:19 -06:00
John Kessenich
f6640761c4
Front-end: Implement 2nd task of issue #400 ; precision of result and operation.
...
From the ES spec + Bugzilla 15931 and GL_KHR_vulkan_glsl:
- Update precision qualifiers for all built-in function prototypes.
- Implement the new algorithm used to distinguish built-in function
operation precisions from result precisions.
Also add tracking of separate result and operation precisions, and
use that in generating SPIR-V.
(SPIR-V cares about precision of operation, while the front-end
cares about precision of result, for propagation.)
2016-08-02 21:48:02 -06:00
John Kessenich
1176530bf5
SPV: Prevent issue #415 with better semantic checking.
2016-07-31 12:39:46 -06:00
John Kessenich
11e1a073f3
PP: Fix issue #407 ; handle empty identifier.
...
The sequence
#define m()
int m"
creates a token of no length (a string of 0 size). Protect
against a string of 0 size as well as the existing protect
against a null string.
2016-07-30 13:39:52 -06:00
John Kessenich
7208473c69
PP: Non-functional; fix typos and blank spaces.
2016-07-30 13:25:33 -06:00
John Kessenich
73d4fb5bc5
PP: Fix issue #408 : # as last character in macro.
...
This would look ahead for a second #, for token pasting, and if not
found, backup one token. This is fine, unless at the end of line,
which would backup the #, rather than the look ahead.
2016-07-30 12:41:35 -06:00
John Kessenich
b38f071605
HLSL: Add back in the [subcomponent] part of a 'register' decl.
2016-07-30 10:30:51 -06:00
John Kessenich
ff13213547
Front-ends GLSL/HLSL: Fix initializer lists for structs of one member.
...
Single member structs initialized with an initializer list had
an incorrect argument for constructor emulation.
2016-07-29 18:29:06 -06:00
John Kessenich
96e9f47cbb
HLSL: Implement the register production.
2016-07-29 14:28:39 -06:00
John Kessenich
82d6baf86f
HLSL: Implement packoffset production.
2016-07-29 13:03:50 -06:00
John Kessenich
64076ed7e9
HLSL: Fix binary-expression associativity and termination issue.
2016-07-28 21:48:25 -06:00
John Kessenich
fea226ba43
HLSL: Add shape conversions for scalar -> vector assigments.
...
Also, this allows turning on the error check for a failed assigment
when parsing.
This makes 39 HLSL tests have a working assignment that was previously
silently dropped, due to lack of this functionality.
2016-07-28 18:41:20 -06:00
John Kessenich
a26a5170a3
Non-functional: Rationalize location and use of mapTypeToConstructor().
2016-07-28 16:56:52 -06:00
John Kessenich
414f735443
Front-end: Fix issue #409 , check for implicitly-sized binding arrays.
2016-07-27 14:55:06 -06:00
John Kessenich
e15509e450
Infrastructure: Address issue #414 , build instructions.
2016-07-27 13:14:36 -06:00
John Kessenich
b783d712ab
HLSL: Report failed assignments; some were silently not happening.
...
Starting out with this turned off, so tests can be locally fixed,
then will turn it on.
2016-07-27 10:31:11 -06:00
John Kessenich
8c8505c604
SPV: For AST interpolateAt* ops consuming a swizzle, invert the order.
...
Apply the interpolation first, then apply the swizzle to the result,
the inverse of the order requested by the AST. This fixes issue #411 .
2016-07-26 12:53:54 -06:00
John Kessenich
0c4702407c
README: Fix numbered list.
2016-07-25 16:27:24 -06:00
John Kessenich
fd6b0fd51e
README: Update the component list.
2016-07-25 16:21:08 -06:00
John Kessenich
3d157c510f
HLSL: cbuffer and tbuffer grammar and production.
2016-07-25 16:05:33 -06:00
John Kessenich
c8f6903b1d
Front-end: Fix default layout(component) widths and correct for doubles.
...
Replaces PR #372 .
2016-07-21 15:43:00 -06:00
John Kessenich
bc9e1d118a
Infrastructure: Remove bad characters from file.
2016-07-21 15:41:10 -06:00
John Kessenich
5c08ecb419
Tests: line-number change only: make room for more component tests.
2016-07-21 15:39:23 -06:00
John Kessenich
b84313dca1
Versions: Update version output.
...
Also, the per-build part had stopped auto-updating,
which is fixed locally as a git hook.
2016-07-20 16:03:29 -06:00
John Kessenich
6c292d3ba7
SPV: Implement Vulkan version of GLSL (KHR_vulkan_glsl).
2016-02-15 21:46:55 -07:00
John Kessenich
e0b6cad44f
SPV: Generalize multiple struct-type instances for interpolation/invariant qualifiers.
2015-12-24 10:30:13 -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
50e57560a1
SPV: Don't make MissingFunctionality() exit anymore.
2015-12-21 21:21:11 -07:00
John Kessenich
2211835b4d
SPV: Implement composite comparisons (reductions across hierchical compare).
2015-12-21 20:54:09 -07:00
John Kessenich
59420fd356
SPV: Move to deterministic results for OpEntryPoint, for test stability across platforms.
2015-12-21 11:45:34 -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
f85e806e44
SPV: Nested layouts: Recursively send around the top-level std140 or std430 packing.
...
This also distinguishes between the same struct included in multiple parent packings.
2015-12-19 15:21:38 -07:00
John Kessenich
297bb3f2d0
Tests for PR: Fix results for 4f68b83ea1.
2015-12-19 11:05:44 -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
John Kessenich
e7c83cfb8c
SPV GLSL.std.450: Add needed smear operations for min, max, clamp, mix, step, and smoothstep.
2015-12-13 13:34:37 -07:00
John Kessenich
6feb4989fe
SPV texturing: Use comp. 2 as the 3rd comp. for Dref in ImageSampleProjDrefImplicitLod.
2015-12-13 12:23:33 -07: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