John Kessenich
b9e39120b4
HLSL: Partially address issue #463 : accept GLSL layout(...).
...
This includes all "per variable" layout qualifiers, but the
key ones mattering and tested for now are:
set=
binding=
constant_id=
push_constant
2016-08-17 17:38:45 -06:00
Dan Baker
2c646b7afa
Updating tests, sadly every single HLSL test needs updating becuase of the language identifier
2016-08-15 16:25:55 -04:00
steve-lunarg
61da5e41f7
HLSL: Put intrinsics in symbol table for all stages
2016-08-11 07:29:30 -06:00
steve-lunarg
c4a1307403
HLSL: add implicit promotions for assignments and function returns.
2016-08-09 13:48:47 -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
bbd1b0ef76
Tests: Add some location-decoration tests, to aid PR #422 .
2016-08-05 15:19:46 -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
steve-lunarg
cb88de5e5e
HLSL: allow semicolons between global scope declarations.
2016-08-03 07:08:06 -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
steve-lunarg
fe5a3ff2f3
HLSL: allow trailing commas in initializer lists & scalar initialization
2016-07-30 10:47:33 -06:00
John Kessenich
b38f071605
HLSL: Add back in the [subcomponent] part of a 'register' decl.
2016-07-30 10:30:51 -06:00
steve-lunarg
5964c64b2a
HLSL: Fix a grammar error related to constructors in parenthetical expressions
2016-07-30 08:09:09 -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
c552aece83
Merge pull request #417 from steve-lunarg/buffers
...
HLSL: add Buffer support for Load method
2016-07-28 16:56:39 -06:00
John Kessenich
c21badf2a1
Merge pull request #419 from steve-lunarg/lerp-fix
...
HLSL: add missing vec,vec,scalar form of lerp(), + test
2016-07-28 16:56:25 -06:00
steve-lunarg
2de329112b
HLSL: allow uint literals, and add test for numeric suffixes
2016-07-28 14:49:48 -06:00
steve-lunarg
cf57c04401
HLSL: add missing vec,vec,scalar form of lerp(), + test
2016-07-28 13:23:22 -06:00
steve-lunarg
d53f717fd3
HLSL: add Buffer support for Load method
2016-07-27 15:57:31 -06:00
John Kessenich
414f735443
Front-end: Fix issue #409 , check for implicitly-sized binding arrays.
2016-07-27 14:55:06 -06:00
steve-lunarg
68f2c144e3
HLSL: Add CalculateLevelOfDetail, and unimplemented errors for *Unclamped and GetSamplePosition
2016-07-27 10:46:33 -06:00
John Kessenich
00957f8110
HLSL: Implement ?: grammar productions.
...
Missing are implicit conversions between int/bool/etc.
2016-07-27 10:39:57 -06:00
steve-lunarg
1e19d90043
HLSL: add 2DMS texture formats, and matching Load / GetDimensions support
2016-07-27 07:37:21 -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
731cd83ef6
Merge pull request #405 from steve-lunarg/samplers
...
HLSL: Add gather, improve proto generator machine for upcoming 2DMS/S…
2016-07-26 09:40:46 -06:00
John Kessenich
64723c20b5
Merge pull request #406 from steve-lunarg/pp_line
...
HLSL: enable #line extension by default for HLSL source.
2016-07-26 09:39:48 -06:00
John Kessenich
3d157c510f
HLSL: cbuffer and tbuffer grammar and production.
2016-07-25 16:05:33 -06:00
LoopDawg
6256146ef3
HLSL: enable #line extension by default for HLSL source.
2016-07-23 10:45:00 -06:00
LoopDawg
a2f3d285a8
HLSL: Add gather, improve proto generator machine for upcoming 2DMS/Shadow
2016-07-22 12:46:11 -06:00
John Kessenich
630e1bc636
Merge pull request #402 from steve-lunarg/samplers
...
HLSL: Add SampleLevel method
2016-07-21 15:47:27 -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
5c08ecb419
Tests: line-number change only: make room for more component tests.
2016-07-21 15:39:23 -06:00
LoopDawg
3ef7852ef6
HLSL: Add SampleLevel method
2016-07-21 15:02:30 -06:00
LoopDawg
f245101954
HLSL: Add texture Load method & decomposition
2016-07-21 09:42:35 -06:00
LoopDawg
a78b02941b
HLSL: Add SampleCmp and SampleCmpLevelZero texture methods
2016-07-20 09:57:03 -06:00
John Kessenich
934855a642
Fix issue #382 : Detect implicitly-sized atomic_uint arrays.
2016-07-19 15:50:58 -06:00
John Kessenich
f2cfe27021
Fix issue #388 .
...
Protect more against error recovery of bad built-in variable redeclarations.
2016-07-19 15:13:47 -06:00
John Kessenich
31a51becd2
Fix issue #391 : input stack underflow on too few macro arguments.
2016-07-19 14:32:52 -06: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