glslang-zig/glslang/MachineIndependent
LoopDawg 08a14422c1 Add per-descriptor-set IO mapping shift values.
This PR adds the ability to provide per-descriptor-set IO mapping shift
values.  If a particular binding does not land into a per-set value,
then it falls back to the prior behavior (global shifts per resource class).

Because there were already 6 copies of many different methods and internal
variables and functions, and this PR would have added 6 more, a new API is
introduced to cut down on replication and present a cleaner interface.
For the global (non-set-specific) API, the old entry points still exist
for backward compatibility, but are phrased internally in terms of the
following.

    // Resource type for IO resolver
    enum TResourceType {
        EResSampler,
        EResTexture,
        EResImage,
        EResUbo,
        EResSsbo,
        EResUav,
        EResCount
    };

Methods on TShader:

    void setShiftBinding(TResourceType res, unsigned int base);
    void setShiftBindingForSet(TResourceType res, unsigned int set, unsigned int base);

The first method replaces the 6 prior entry points of various spellings, which
exist now in depreciated form.  The second provides per-resource-set functionality.
Both accept an enum from the list above.

From the command line, the existing options can accept either a single shift value as
before, or a series of 1 or more [set offset] pairs.  Both can be provided, as in:

    ... --stb 20 --stb 2 25 3 30 ...

which will use the offset 20 for anything except descriptor set 2 (which uses 25) and
3 (which uses 30).
2017-10-19 11:50:30 -06:00
..
preprocessor PP: Fix #1104: Missing check for #if overflow. 2017-10-16 15:29:07 -06: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 Add per-descriptor-set IO mapping shift values. 2017-10-19 11:50:30 -06: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 Add per-descriptor-set IO mapping shift values. 2017-10-19 11:50:30 -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 Add per-descriptor-set IO mapping shift values. 2017-10-19 11:50:30 -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 Add per-descriptor-set IO mapping shift values. 2017-10-19 11:50:30 -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