xkslang/hlsl
LoopDawg 0fca0bafaf WIP: HLSL: support global const initializers from non-constant rvalues
Semantic test left over from other source languages is removed, since this is permitted by HLSL.
Also, to support the functionality, a targeted test is performed for this case and it is
turned into a EvqGlobal qualifier to create an AST initialization segment when needed.

Constness is now propagated up aggregate chains during initializer construction.  This
handles hierarchical cases such as the distinction between:

    static const float2 a[2] = { { 1, 2 }, { 3, 4} };

vs

    static const float2 a[2] = { { 1, 2 }, { cbuffer_member, 4} };

The first of which can use a first class constant initalization, and the second cannot.
2017-07-11 13:41:39 -06:00
..
CMakeLists.txt Merge pull request #969 from d3x0r/patch-1 2017-07-04 11:00:42 -06:00
hlslAttributes.cpp HLSL: implement [unroll] and [loop] attributes 2017-05-03 13:44:40 -06:00
hlslAttributes.h HLSL: implement [unroll] and [loop] attributes 2017-05-03 13:44:40 -06:00
hlslGrammar.cpp WIP: HLSL: support global const initializers from non-constant rvalues 2017-07-11 13:41:39 -06:00
hlslGrammar.h HLSL: Translate directive [flatten] and [branch] to SPV control mask. 2017-07-06 11:31:33 +08:00
hlslOpMap.cpp HLSL: Add scoping operator, accept static member functions, and support calling them. 2017-03-11 14:13:00 -07:00
hlslOpMap.h Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
hlslParseHelper.cpp WIP: HLSL: support global const initializers from non-constant rvalues 2017-07-11 13:41:39 -06:00
hlslParseHelper.h HLSL: Translate directive [flatten] and [branch] to SPV control mask. 2017-07-06 11:31:33 +08:00
hlslParseables.cpp SPV: When passing structs of opaque types, flatten and pass the members instead. 2017-06-01 18:49:04 -06:00
hlslParseables.h Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
hlslScanContext.cpp Implement extension GL_ARB_shader_stencil_export 2017-06-29 17:50:46 +08:00
hlslScanContext.h HLSL: Non-functional: the symbol field of a token was in practice unused; remove it. 2017-03-21 18:36:04 -06:00
hlslTokenStream.cpp HLSL: Member-functions: capture body token stream for deferred syntax/semantics. 2017-03-11 19:37:29 -07:00
hlslTokenStream.h Merge branch 'TiemoJung-semantic_handling' 2017-03-14 22:44:24 -06:00
hlslTokens.h HLSL: Implement half matrices, and map all half* -> float*. 2017-06-06 23:35:25 -06:00