John Kessenich
906cc21816
Linker: Eliminate uncalled functions, because they can be ill-defined.
...
Fixes issue #610 . Also provides a testing option to keep uncalled functions.
2016-12-09 19:22:20 -07:00
John Kessenich
bf6d7f43fd
Linker: Track the mangled entry-point name along with the non-mangled one.
2016-12-09 17:29:07 -07:00
John Kessenich
4b6ce415ef
GLSL Linker: Track entry point across compilation units.
...
This wasn't needed until the recent generalization of "main" to "entry point",
so makes some HLSL-specific code be generic now, for GLSL functional correctness.
2016-12-09 17:14:27 -07:00
John Kessenich
6a60c2f9ea
Linker: Walk the call graph to report an error on missing bodies.
2016-12-08 23:22:21 -07:00
John Kessenich
9df6aa5361
GLSL: Allow desktop shaders to call functions from outside main().
...
Fixes issue #239 .
2016-12-05 21:36:48 -07:00
John Kessenich
fb06e9552e
Don't print the "Linked stage" message unless the AST is being dumped.
2016-12-03 13:59:51 -07:00
John Kessenich
21b11f4cc1
Merge branch 'intrinsic-promotion' of https://github.com/steve-lunarg/glslang into steve-lunarg-intrinsic-promotion
2016-12-03 13:27:22 -07:00
John Kessenich
8ce6e2ba49
Fix non-Windows build error.
2016-11-27 23:00:14 -07:00
John Kessenich
f97f2ce603
HLSL: Support the constructor idiom "(struct type)0".
...
This highly leverages the previous commit to handle partial initializers.
2016-11-27 22:51:36 -07:00
John Kessenich
98ad485321
HLSL: Support {...} initializer lists that are too short.
2016-11-27 17:39:07 -07:00
John Kessenich
1c98904014
Fix crash by returning early from finalCheck() if there is no tree to process.
2016-11-27 17:32:19 -07:00
John Kessenich
5307eb2d1b
Non-functional: Change a bunch of 0 to nullptr.
2016-11-27 17:30:14 -07:00
John Kessenich
509c4216e6
Non-functional: Fix typos.
2016-11-27 17:26:21 -07:00
John Kessenich
e50dc536ff
Warn on HLSL not finding entry point. Issue #588 .
2016-11-26 13:45:18 -07:00
John Kessenich
517fe7a6ad
Non-functional: Rename some entry-point variables to entryPoint, not main.
2016-11-26 13:31:47 -07:00
John Kessenich
fca826212c
Always correctly terminate main. Issue #588 , PR #600 .
2016-11-26 13:23:20 -07:00
John Kessenich
fabe7d6a61
Test results: Fix incorrect test result caused by parallel development. Issue #594 .
2016-11-14 21:22:05 -07:00
John Kessenich
5d45eadedc
HLSL: Turn on tests for groupshared.
2016-10-16 12:22:20 -06:00
John Kessenich
b50fd17acb
HLSL: Support SV_Coverage and SV_DispatchThreadId; catch SV_GroupIndex.
2016-10-16 12:12:11 -06:00
John Kessenich
4a3467933e
Build: Fix unsigned/signed warning.
2016-10-16 11:50:46 -06:00
John Kessenich
19bdf90eba
SPV: Distinguish between SPV and non-SPV rules for member overlap.
2016-10-07 11:50:25 -06:00
John Kessenich
087a454af2
HLSL: Add shape conversions for return values.
2016-10-06 16:56:54 -06:00
John Kessenich
ed33e05762
HLSL: Do structure conversion for return type struct-punning on non-entry-point functions.
2016-10-06 13:06:13 -06:00
John Kessenich
c056adcddd
Allow for larger binding numbers. 65K instead of 255.
2016-10-05 12:31:24 -06:00
John Kessenich
de97fe0ad4
Non-functional: Rationalizing parse helper hierarchy, step 3 (effected editable symbols and IO resize).
2016-10-01 18:44:38 -06:00
John Kessenich
a2a5dd474e
Non-functional: Rationalizing parse helper hierarchy, step 2 (effected error messaging and cascading errors).
2016-10-01 18:07:57 -06:00
John Kessenich
273060c2d3
Non-functional: Rationalizing parse helper hierarchy, step 1 (effected memory of HLSL keyword map).
2016-10-01 17:47:40 -06:00
John Kessenich
a08c929d8e
HLSL: Line numbers only: Set locations (line numbers) on synthesized flattening code.
2016-10-01 17:17:55 -06:00
John Kessenich
d8fe2ca8e5
HLSL: Handle flattened I/O structs passed to function *out* parameters.
2016-10-01 17:11:21 -06:00
John Kessenich
c86d38bb2b
Non-functional: Better use of .isParamOutput() and some other methods.
2016-10-01 13:30:37 -06:00
John Kessenich
ba56e23e8a
Fix typo in error message.
2016-10-01 12:36:19 -06:00
John Kessenich
f571d0c037
Non-functional: Use isOpaque() instead of compare against EbtSampler.
2016-10-01 12:35:01 -06:00
John Kessenich
df98cc26d5
Add amend ability for anonymous blocks, so they can grow between function bodies.
2016-09-29 23:59:26 -06:00
John Kessenich
21e7e32126
HLSL: Fix merge conflict.
2016-09-29 10:27:57 -06:00
John Kessenich
4e55988a47
HLSL Tests: Tests for previous commit, to make it easier to see what's changing.
2016-09-29 10:25:15 -06:00
John Kessenich
6dbc0a7a33
Support a uniform block to hold global uniform variables.
...
Used initially just by HLSL, for $Global. Could be an option
for GLSL -> Vulkan.
2016-09-29 10:25:15 -06:00
John Kessenich
e82061de08
HLSL: Rationalize combination of type arrayness and name arrayness.
2016-09-29 10:25:15 -06:00
John Kessenich
10f7fc739c
HLSL: Reverse what the driver is told about row/column majorness, matching the row-column reversal.
2016-09-25 20:26:03 -06:00
John Kessenich
6714bcc2ca
HLSL: Fix result type of passing a flattened-aggregate to a function.
2016-09-21 17:50:12 -06:00
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
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