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
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
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
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
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
d4032293ce
HLSL: Report an error if SPIR-V for Vulkan wasn't selected.
2016-09-09 11:43:11 -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
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
7d01bd6f0b
HLSL: Handle swizzles on vectors of size 1. Addresses issue #453 .
2016-09-02 22:21:25 -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
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
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
John Kessenich
a05d8b5604
HLSL: Remove recent change to put locations on SV_TARGET*.
...
This put locations on members of structures, which is not allowed
in either AST or SPIR-V.
This was caught by asserts in the debug build.
2016-08-29 16:49:39 -06:00
John Kessenich
510d83b384
HLSL: Create test results for the previous commits.
2016-08-29 16:34:12 -06:00
John Kessenich
81d4714908
Merge branch 'HLSL_Semantic_Mapping' of https://github.com/dankbaker/glslang into dankbaker-HLSL_Semantic_Mapping
2016-08-29 16:07:29 -06:00
John Kessenich
6a70eb7161
HLSL: Emulate write-to-output on return-from-entry-point, for return value.
...
This fixes issue #487 and #480 .
It also correctly handles output parameters from the entry point.
2016-08-28 20:13:07 -06:00
John Kessenich
81cd764b5f
Non-functional: Add some missing const, related to signature selection.
2016-08-26 14:01:43 -06:00
John Kessenich
e3f2c8f98a
HLSL: Include shape-changing conversions in overloaded signature selection.
...
This also enables vecN -> vec1 shape conversions for all places doing shape
conversions.
For signature selection, makes shape changes worse than any other comparison
when deciding what conversions are better than others.
2016-08-25 23:57:39 -06:00
John Kessenich
90dd70f752
HLSL: Allow arbitrary baseType -> baseType conversion of calling arguments.
...
This also puts a stake in the ground as to which is better when selection
from multiple signatures.
2016-08-25 10:51:29 -06:00
John Kessenich
fcc0aa3b64
HLSL: Switch to generic selector, but using GLSL #version 400 rules.
...
Next step is to modify for HLSL rules.
2016-08-24 18:34:43 -06:00
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 98f164ec488f85af5a44b701477a34e810f2deb1.
...
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