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
..
2016-03-03 12:12:07 -05:00
2016-07-19 15:13:47 -06:00
2014-04-14 16:14:30 +00:00
2017-07-23 13:54:15 -06:00
2017-07-23 13:54:15 -06:00
2017-07-23 13:54:15 -06:00
2017-07-23 13:54:15 -06:00
2017-07-23 13:54:15 -06:00
2017-07-23 13:54:15 -06:00
2017-07-23 11:49:42 -06:00
2015-06-26 10:48:26 -06:00
2013-03-04 23:50:08 +00:00
2015-06-26 10:48:26 -06:00
2016-11-21 18:25:08 -07:00
2017-08-23 14:33:31 -06:00
2017-06-26 17:52:22 -06:00
2017-03-03 18:19:03 -07:00
2017-03-22 11:38:22 -06:00
2013-11-12 03:31:24 +00:00
2017-09-27 15:06:05 -06:00
2013-11-12 03:31:24 +00:00
2013-02-08 18:56:56 +00:00