glslang-zig/glslang
LoopDawg 7f93d56ef2 HLSL: add subpass input types and methods
Add support for Subpass Input proposal of issue #1069.

Subpass input types are given as:

    layout(input_attachment_index = 1) SubpassInput<float4> subpass_f;
    layout(input_attachment_index = 2) SubpassInput<int4>   subpass_i;
    layout(input_attachment_index = 3) SubpassInput<uint4>  subpass_u;

    layout(input_attachment_index = 1) SubpassInputMS<float4> subpass_ms_f;
    layout(input_attachment_index = 2) SubpassInputMS<int4>   subpass_ms_i;
    layout(input_attachment_index = 3) SubpassInputMS<uint4>  subpass_ms_u;

The input attachment may also be specified using attribute syntax:

    [[vk::input_attachment_index(7)]] SubpassInput subpass_2;

The template type may be a shorter-than-vec4 vector, but currently user
structs are not supported.  (An unimplemented error will be issued).

The load operations are methods on objects of the above type:

    float4 result = subpass_f.SubpassLoad();
    int4   result = subpass_i.SubpassLoad();
    uint4  result = subpass_u.SubpassLoad();

    float4 result = subpass_ms_f.SubpassLoad(samp);
    int4   result = subpass_ms_i.SubpassLoad(samp);
    uint4  result = subpass_ms_u.SubpassLoad(samp);

Additionally, the AST printer could not print EOpSubpass* nodes.  Now it can.

Fixes #1069
2017-10-02 12:46:55 -06:00
..
GenericCodeGen Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
Include SPV: rationalize parameter handling for "original" and "writable" parameters. 2017-09-29 09:58:11 -06:00
MachineIndependent HLSL: add subpass input types and methods 2017-10-02 12:46:55 -06:00
OSDependent Merge pull request #969 from d3x0r/patch-1 2017-07-04 11:00:42 -06:00
Public SPV: Add auto location mapping of non-opaque non-block uniform variables. 2017-08-26 15:47:25 -06:00
CMakeLists.txt Merge pull request #969 from d3x0r/patch-1 2017-07-04 11:00:42 -06:00
updateGrammar Bison: Non-functional: Move to revision 3.0.4. 2016-05-04 12:54:56 -06:00