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
steve-lunarg
7dfcf4d1ad
HLSL: Add GatherRed/Green/Blue/Alpha methods, inc 4-offset forms
2016-08-03 13:34:39 -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
2f003ac4e6
Merge pull request #393 from steve-lunarg/warning-enable
...
Build: Add g++/clang warnings to match some enabled by /W4 in MSVC
2016-07-21 14:46:21 -06:00
John Kessenich
75e547c0f2
Merge pull request #401 from steve-lunarg/samplers
...
HLSL: Add texture Load method & decomposition
2016-07-21 14:41:47 -06:00
John Kessenich
df018fa994
Merge pull request #398 from amdrexu/feature
...
AMD: Implement 4 AMD-specific extensions.
2016-07-21 14:39:27 -06:00
LoopDawg
6d478956ac
Add g++/clang warnings to match some enabled by /W4 in MSVC.
2016-07-21 09:59:18 -06:00
LoopDawg
f245101954
HLSL: Add texture Load method & decomposition
2016-07-21 09:42:35 -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
Rex Xu
9d93a2370d
Implement 4 AMD-specific extensions.
...
- Support GL_AMD_shader_ballot (SPV_AMD_shader_ballot).
- Support GL_AMD_shader_trinary_minmax (SPV_AMD_shader_trinary_minmax).
- Support GL_AMD_shader_explicit_vertex_parameter
(SPV_AMD_shader_explicit_vertex_parameter).
- Support GL_AMD_gcn_shader (SPV_AMD_gcn_shader).
2016-07-20 16:18:05 +08:00
LoopDawg
5d58faecc0
HLSL: Add tx.GetDimensions method (uint returns only)
2016-07-18 16:40:21 -06:00
LoopDawg
a2b7991497
HLSL: Add SampleBias and SampleGrad, and associated tests
2016-07-15 11:38:49 -06:00
Lei Zhang
b1165f49d5
Reorder fields to avoid compiler initialization order error.
2016-07-15 11:25:28 -04:00
LoopDawg
4886f69734
HLSL: Sampler/texture declarations, method syntax, partial Sample method
2016-07-12 15:57:46 -06:00
John Kessenich
7f349c73db
Build: Remove causes of pedantic warnings. Addresses issue #352 and PR #242 .
2016-07-08 22:09:10 -06:00
John Kessenich
b501a7501c
Front end: Fix issue #374 : put a limit on how big a type name can get.
2016-07-08 14:49:48 -06:00
LoopDawg
1b7fd0f7b7
Add asdouble, fma, & mad intrinsics and change profile to allow doubles when parsing prototypes
2016-06-28 15:38:38 -06:00