glslang-zig/glslang/MachineIndependent
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
..
preprocessor HLSL: fix preprocessor concatenation behaviour. 2017-08-29 00:35:01 +02:00
Constant.cpp Implement extension GL_AMD_gpu_shader_int16 2017-06-09 17:11:23 +08:00
gl_types.h [lumped builds] Add include guards (#pragma once) to header files that did not have any. 2017-05-10 16:58:38 +03:00
glslang.y GLSL: Promote HLSL entry-point renaming code to be used by GLSL as well. 2017-09-12 09:40:54 -06:00
glslang_tab.cpp GLSL: Promote HLSL entry-point renaming code to be used by GLSL as well. 2017-09-12 09:40:54 -06:00
glslang_tab.cpp.h GLSL: Promote HLSL entry-point renaming code to be used by GLSL as well. 2017-09-12 09:40:54 -06:00
InfoSink.cpp Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
Initialize.cpp Implement extension GL_NV_shader_atomic_int64 2017-09-27 12:06:27 +08:00
Initialize.h Build fix: Make string assignment simpler to avoid some compiler issues. 2017-05-09 23:30:56 -06:00
Intermediate.cpp HLSL: Translate directive [flatten] and [branch] to SPV control mask. 2017-07-06 11:31:33 +08:00
intermOut.cpp HLSL: add subpass input types and methods 2017-10-02 12:46:55 -06:00
IntermTraverse.cpp Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
iomapper.cpp HLSL: add subpass input types and methods 2017-10-02 12:46:55 -06:00
iomapper.h Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
limits.cpp Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
linkValidate.cpp Implement SPV_KHR_post_depth_coverage 2017-07-05 12:27:15 -07:00
LiveTraverser.h [lumped builds] Add include guards (#pragma once) to header files that did not have any. 2017-05-10 16:58:38 +03:00
localintermediate.h HLSL: Remove workarounds for assigning to opaques. 2017-09-29 09:53:24 -06:00
parseConst.cpp HLSL: Allow empty struct initializers 2017-04-27 18:22:52 -06:00
ParseContextBase.cpp HLSL: Add bounds checking, shared with GLSL. Partially address #1032. 2017-09-14 20:04:20 -06:00
ParseHelper.cpp Implement extension GL_NV_shader_atomic_int64 2017-09-27 12:06:27 +08:00
ParseHelper.h Fix #1060: Could crash if using --source-entry-point with -e; fixed. 2017-09-29 17:51:52 -06:00
parseVersions.h Implement extension GL_AMD_gpu_shader_int16 2017-06-09 17:11:23 +08:00
PoolAlloc.cpp Memory/constructor/warning clean-up. Addresses issue #705. 2017-02-02 14:55:02 -07:00
propagateNoContraction.cpp HLSL: Add EOpMatrixSwizzle, selectively decomposed to other ops, for issue #670. 2017-01-13 12:35:01 -07:00
propagateNoContraction.h [lumped builds] Add include guards (#pragma once) to header files that did not have any. 2017-05-10 16:58:38 +03:00
reflection.cpp GLSL reflection: Fix #985: reflect runtime sized arrays having no constant index. 2017-07-28 17:37:31 -06:00
reflection.h Reflection: Fix #977: Expose getBinding(), use in new getUniformBinding(). 2017-07-20 16:44:17 -06:00
RemoveTree.cpp Non-functional: White space after "//", mostly for copyrights. 2017-01-06 12:34:14 -07:00
RemoveTree.h [lumped builds] Add include guards (#pragma once) to header files that did not have any. 2017-05-10 16:58:38 +03:00
Scan.cpp Add support for GL_OES_EGL_image_external_essl3 2017-09-05 14:56:26 +01:00
Scan.h Fix #1043: set all scan string-locations to have bias, not just the first one. 2017-09-11 20:35:49 -06:00
ScanContext.h [lumped builds] Add include guards (#pragma once) to header files that did not have any. 2017-05-10 16:58:38 +03:00
ShaderLang.cpp GLSL: Promote HLSL entry-point renaming code to be used by GLSL as well. 2017-09-12 09:40:54 -06:00
SymbolTable.cpp HLSL: add methods to track user structure in texture return type. 2017-08-15 16:40:21 -06:00
SymbolTable.h HLSL: Implement member functions calling member functions. 2017-05-17 02:20:34 -06:00
Versions.cpp Implement extension GL_NV_shader_atomic_int64 2017-09-27 12:06:27 +08:00
Versions.h Implement extension GL_NV_shader_atomic_int64 2017-09-27 12:06:27 +08:00