John Kessenich
a1e2d4952e
HLSL: Move to correct parsing of annotations, improving all annotations and recent string grammar.
2016-09-20 13:22:58 -06:00
John Kessenich
2572b19e94
HLSL: Turn on reflection, with basic test file, to catch regressions.
...
This is not a claim that reflection is working right, only a way to
see it is occurring and catch any regression.
2016-09-19 23:12:48 -06:00
John Kessenich
6b71c400f8
HLSL: Remove extraneous built-in member decorations for IO structs used in non-IO situations.
2016-09-19 22:16:09 -06:00
John Kessenich
86f7138706
HLSL: Add string basic type and recognize string declaration grammar.
...
This includes the "< decl ; decl ; >" syntax which has its own namespace.
This functionality is not implemented, just silently accepted.
2016-09-19 20:29:45 -06:00
John Kessenich
eee9d536bc
Track separate entry-point names and mangled names...
...
... and use each in the correct way at consumption sites.
This completes issue #513 .
2016-09-19 18:09:30 -06:00
John Kessenich
632f575ecc
Merge pull request #512 from steve-lunarg/liveness-traverser
...
Refactor TLiveTraverser from the former reflection traverser, for fut…
2016-09-19 17:19:25 -06:00
steve-lunarg
55717302ef
Refactor TLiveTraverser from the former reflection traverser, for future use in binding mapping.
...
This PR factors out the code that knows how to walk just the live parts of the AST.
The traverser in reflect.cpp is renamed to TReflectionTraverser, and inherits from
TLiveTraverser, which will also be used by a future binding offset PR.
The code is now smart about the entry point name (no longer hardcoded to "main").
There is an option to traverse all code (live+dead), because a consumer of the
class may wish to use it for both purposes without wanting a whole separate
class hierarchy.
2016-09-19 16:33:02 -06:00
John Kessenich
6fccb3cd75
Non-functional: Sweep through the stack for consistent with "main" and entry point.
...
Partially addresses issue #513 .
2016-09-19 16:01:41 -06:00
John Kessenich
142785f324
HLSL: Change the final syntax-error printf to go to the infoLog.
...
Fixes issue #510 .
2016-09-19 14:56:55 -06:00
John Kessenich
28b28140bb
HLSL: Fix assert: ensure flattened shadow is EvqTemporary.
2016-09-19 00:19:49 -06:00
John Kessenich
5159d4f1af
HLSL: Intercept flatten aggregates passed to a function input, and copy member-by-member.
2016-09-19 00:06:19 -06:00
John Kessenich
f911500db8
HLSL: Non-functional; make flatten semantics be about aggregates, not just structures.
2016-09-18 23:36:39 -06:00
John Kessenich
fcea302dbc
HLSL: Fix bug in previous checkin when non-flattened objects are not simple l-values.
2016-09-16 21:16:04 -06:00
John Kessenich
d2ce838a58
HLSL: Handle flatten for reads from flatten structs and parameter passing.
2016-09-16 20:24:14 -06:00
John Kessenich
34e7ee79bb
HLSL: Improve setting and testing of interpolation qualifiers.
...
Notably, use of 'linear' on a non-input could mark it as an input.
2016-09-16 18:05:44 -06:00
John Kessenich
d21baed6bc
HLSL: Flatten whole-struct assigns and returns when targeting flattened I/O structs.
2016-09-16 03:20:03 -06:00
John Kessenich
f8e494c18c
HLSL: Flatten all input/output structs, regardless of stage.
...
This is needed because an output structure can contain embedded built-ins
(like SV_Position) which should not get locations assigned.
2016-09-16 01:52:14 -06:00
John Kessenich
7dc630f3da
HLSL: Flatten a return struct from an entry point and assign locations after flattening.
...
Locations now get assigned in order, but skipping built-ins, which can be
done post flattening.
2016-09-16 01:44:43 -06:00
John Kessenich
7f702124ec
HLSL: return correct error when HLSL parsing fails.
...
At least partially addresses issue #510 .
2016-09-15 22:49:31 -06:00
John Kessenich
315b6b9f68
Merge pull request #508 from amdrexu/bugfix
...
SPV: Support simultaneous l-value swizzle and dynamic component selection.
2016-09-15 22:41:37 -06:00
Rex Xu
64b9743ce0
SPV: Support simultaneous l-value swizzle and dynamic component selection.
2016-09-14 14:43:55 +08:00
John Kessenich
deb4940c17
HLSL: Register all entry-point in/out as part of the interface.
...
This makes the interface be invariant, whether or not individual
variables are used.
2016-09-12 11:55:47 -06:00
John Kessenich
b3e24e4359
SPV: Fix issue #506 : generalize struct deep copy to include arrays.
2016-09-11 12:33:43 -06:00
John Kessenich
cd0a78a0d9
HLSL: Flatten vertex input and fragment output structures.
...
Vulkan can't handle structures into the vertex stage or out
of the fragment stage.
2016-09-10 11:09:24 -06:00
John Kessenich
6295c27900
Merge pull request #505 from steve-lunarg/rowmajor-fix-2a
...
HLSL: alias HLSL matrix-row-column onto AST matrix-column-row
2016-09-09 14:00:27 -06:00
steve-lunarg
297ae211f1
WIP: HLSL: Treat HLSL rows as GLSL columns.
...
WIP: HLSL: EOpGenMul arg reversal
2016-09-09 12:02:42 -06:00
John Kessenich
d4032293ce
HLSL: Report an error if SPIR-V for Vulkan wasn't selected.
2016-09-09 11:43:11 -06:00
John Kessenich
a21187a7f9
Merge branch 'amdrexu-bugfix2'
2016-09-09 10:46:43 -06:00
John Kessenich
4bfb32e17b
Merge branch 'bugfix2' of https://github.com/amdrexu/glslang into amdrexu-bugfix2
2016-09-09 10:46:10 -06:00
John Kessenich
3152718630
Merge pull request #503 from amdrexu/feature3
...
SPV: Use OpBitcast to implement 4 pack/unpack built-in functions.
2016-09-09 10:41:16 -06:00
Rex Xu
c9f349234f
SPV: Use OpBitcast to implement 4 pack/unpack built-in functions.
2016-09-09 17:50:07 +08:00
Rex Xu
99c4dd16db
Preprocessor: UINT_MAX is translated to constant incorrectly.
2016-09-09 17:06:15 +08:00
John Kessenich
cfd7ce87cd
HLSL: Support register(..., spaceN) for setting the descriptor set.
...
This was suggested in issue #454 .
2016-09-05 16:03:45 -06:00
John Kessenich
e3218e270e
HLSL: Accept layout(...) also as a post-decl. Issue #454 .
2016-09-05 14:37:03 -06:00
John Kessenich
7735b94403
HLSL Non-Functional: Move to more robust capturing of postDecls into a qualifier.
...
This will prevent a possible future defect of thinking the type can be changed,
where there is a code path today that would drop that change.
2016-09-05 12:40:06 -06:00
John Kessenich
b804de605c
HLSL: Track binding numbers to struct instances; fixes issue #496 .
2016-09-05 12:19:18 -06:00
John Kessenich
58d2843c6a
Merge pull request #498 from amdrexu/bugfix
...
Parser: Add 64-bit type conversion for specialization constant.
2016-09-05 11:35:34 -06:00
Rex Xu
64bcfdb632
Parser: Add 64-bit type conversion for specialization constant.
2016-09-05 22:20:28 +08:00
John Kessenich
7d01bd6f0b
HLSL: Handle swizzles on vectors of size 1. Addresses issue #453 .
2016-09-02 22:21:25 -06:00
John Kessenich
841db35bb3
HLSL: Fix issue #442 , smear and truncate shape conversions for == and !=.
2016-09-02 21:12:23 -06:00
John Kessenich
07350f3382
HLSL: Handle "fake" entry points, by undoing their built-in variable declarations.
2016-09-02 20:24:07 -06:00
John Kessenich
9e079535a0
HLSL: Handle greater/less depth modes. Fixes issue #489 .
2016-09-02 20:05:52 -06:00
John Kessenich
a305166ea4
HLSL: Error if funcion with return type doesn't return a value.
2016-09-02 19:13:36 -06:00
John Kessenich
1a4b775cd5
HLSL: Correct line numbers for function definitions.
2016-09-02 19:05:24 -06:00
John Kessenich
4bf7155051
SPV: Flatten structs for copy when they are GLSL type aliases.
...
Addresses issue #304 and issue #307 by replacing unmatched type OpStores with
per-member copies. Covers assignment statements and most argument passing, but
does not yet cover r-value-based argument passing.
2016-09-02 16:35:01 -06:00
John Kessenich
31207bc20a
Merge pull request #495 from steve-lunarg/remapper-tests-2
...
Remapper: move remapper tests into the glslangtests executable.
2016-09-02 10:57:24 -06:00
steve-lunarg
65564a4ad6
Remapper: move remapper tests into the glslangtests executable.
2016-09-02 09:21:12 -06:00
John Kessenich
f2b7f3353b
SPV: Tighten up number of struct-types declared based on decoration.
...
Takes some pressure off of issue #304 .
Structures don't inherit locations and then explicitly decorate
members with them, so removed this reason to have another instance
of a structure type.
2016-09-01 17:05:23 -06:00
John Kessenich
5e56423046
Front-ends: Remove now defunct afterEOF and related, use scanner's instead.
...
Code using atEndOfFile was dead, instead do something useful with
the scanners atEndOfInput(). This allows a better error message
for early termination of cascading errors.
2016-08-31 13:46:50 -06:00
John Kessenich
830b0cc98b
HLSL: Start location numbering with the entry-point return value.
...
Also, increment location numbers by the size of the objects.
2016-08-29 18:10:47 -06:00