- 03 Jan, 2017 6 commits
-
-
John Kessenich authored
Add D3DCOLORtoUBYTE4 decomposition
-
John Kessenich authored
HLSL: default function parameters
-
steve-lunarg authored
-
John Kessenich authored
Also correctly test and handle missing newline.
-
John Kessenich authored
-
John Kessenich authored
-
- 02 Jan, 2017 1 commit
-
-
John Kessenich authored
-
- 30 Dec, 2016 2 commits
-
-
John Kessenich authored
-
John Kessenich authored
-
- 29 Dec, 2016 1 commit
-
-
steve-lunarg authored
This PR adds support for default function parameters in the following cases: 1. Simple constants, such as void fn(int x, float myparam = 3) 2. Expressions that can be const folded, such a ... myparam = sin(some_const) 3. Initializer lists that can be const folded, such as ... float2 myparam = {1,2} New tests are added: hlsl.params.default.frag and hlsl.params.default.err.frag (for testing error situations, such as ambiguity or non-const-foldable). In order to avoid sampler method ambiguity, the hlsl better() lambda now considers sampler matches. Previously, all sampler types looked identical since only the basic type of EbtSampler was considered.
-
- 22 Dec, 2016 1 commit
-
-
John Kessenich authored
Modify shader ballot extension by adding OpSubgroupReadInvocationKHR
-
- 21 Dec, 2016 10 commits
-
-
John Kessenich authored
-
chaoc authored
-
John Kessenich authored
-
John Kessenich authored
-
John Kessenich authored
Add support for SPV_NV_geometry_shader_passthrough
-
John Kessenich authored
Fix a large number of Clang warnings about inconsistent usage of 'override'
-
Henrik Rydgård authored
-
John Kessenich authored
Also, eliminate the 'atom' field of TPpToken. Parsing a real 300 line shader, through to making the AST, is about 10% faster. Memory is slightly reduced (< 1%). The whole google-test suite, inclusive of all testing overhead, SPIR-V generation, etc., runs 3% faster. Since this is a code *simplification* that leads to perf. improvement, I'm not going to invest too much more in measuring the perf. than this. The PP code is simply now in a better state to see how to further rationalize/improve it.
-
John Kessenich authored
Always keep 'token' outside. Always return the string to upper levels inside.
-
John Kessenich authored
-
- 20 Dec, 2016 8 commits
-
-
chaoc authored
-
John Kessenich authored
CMake: Add option to make it possible to not build the executables
-
John Kessenich authored
Add support for SPV_NV_sample_mask_override_coverage
-
John Kessenich authored
Removed the preprocesser memory pool. Removed extra copies and unnecessary allocations of objects related to the ones that were using the pool. Replaced some allocated pointers with objects instead, generally using more modern techiques. There end up being fewer memory allocations/deletions to get right. Overall combined effect of all changes is to use slightly less memory and run slightly faster (< 1% for both, but noticable). As part of simplifying the code base, this change makes it easier to see PP symbol tracking, which I suspect has an even bigger run-time simplification to make.
-
Henrik Rydgård authored
-
John Kessenich authored
Also, checking both 'atom' and 'name' is redundant, and I'm hoping to eliminate more atom stuff.
-
chaoc authored
-
chaoc authored
-
- 19 Dec, 2016 7 commits
-
-
John Kessenich authored
-
John Kessenich authored
PP: Implement token pasting for PP identifiers.
-
John Kessenich authored
WIP: Remapper: remove debug info for IDs stripped in other passes
-
John Kessenich authored
HLSL: allow "sample" in expressions.
-
John Kessenich authored
Unbreak build on FreeBSD with GCC/libstdc++ 6.2.0
-
John Kessenich authored
Implement token pasting as per the C++ specification, within the current style of the PP code. Non-identifiers (turning 12 ## 10 into the numeral 1210) is not yet covered; they should be a simple incremental change built on this one. Addresses issue #255.
-
steve-lunarg authored
Unlike other qualifiers, HLSL allows "sample" to be either a qualifier keyword or an identifier (e.g, a variable or function name). A fix to allow this was made a while ago, but that fix was insufficient when 'sample' was used in an expression. The problem was around the initial ambiguity between: sample float a; // "sample" is part of a fully specified type and sample.xyz; // sample is a keyword in a dot expression Both start the same. The "sample" was being accepted as a qualifier before enough further parsing was done to determine we were not a declaration after all. This consumed the token, causing it to fail for its real purpose. Now, when accepting a fully specified type, the token is pushed back onto the stack if the thing is not a fully specified type. This leaves it available for subsequent purposes. Changed the "hlsl.identifier.sample.frag" test to exercise this situation, distilled down from a production shaders.
-
- 17 Dec, 2016 1 commit
-
-
John Kessenich authored
-
- 15 Dec, 2016 1 commit
-
-
John Kessenich authored
-
- 14 Dec, 2016 2 commits
-
-
John Kessenich authored
Change unicode dash to ASCII.
-
Jamie Madill authored
This change is helpful for integration with Chromium, which recently added a compiler option to warn when compiling any source files which use extended characters. In this case the offending character was a single unicode dash in a comment.
-