SPIRV-Cross/reference/shaders-msl
Chip Davis cb35934248 MSL: Support dynamic offsets for buffers in argument buffers.
Vulkan has two types of buffer descriptors,
`VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC` and
`VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC`, which allow the client to
offset the buffers by an amount given when the descriptor set is bound
to a pipeline. Metal provides no direct support for this when the buffer
in question is in an argument buffer, so once again we're on our own.
These offsets cannot be stored or associated in any way with the
argument buffer itself, because they are set at bind time.  Different
pipelines may have different offsets set. Therefore, we must use a
separate buffer, not in any argument buffer, to hold these offsets. Then
the shader must manually offset the buffer pointer.

This change fully supports arrays, including arrays of arrays, even
though Vulkan forbids them. It does not, however, support runtime
arrays. Perhaps later.
2019-09-05 23:29:00 -05:00
..
amd MSL: Support the SPV_AMD_shader_trinary_minmax extension. 2019-07-13 16:43:57 -05:00
asm Update tests to account for all non-entry-point functions being inlined 2019-08-30 09:39:06 +12:00
comp MSL: Support dynamic offsets for buffers in argument buffers. 2019-09-05 23:29:00 -05:00
desktop-only Merge pull request #1141 from troughton/inline-everything 2019-08-30 11:05:04 +02:00
flatten Use to_unpacked_row_major_expression to unify row-major in MSL/GLSL. 2019-07-23 11:36:54 +02:00
frag Support the SPV_EXT_fragment_shader_interlock extension. 2019-09-02 12:31:10 -05:00
intel MSL: Support the SPV_INTEL_shader_integer_functions2 extension. 2019-07-15 09:42:36 -05:00
legacy/vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
tesc Update tests to account for all non-entry-point functions being inlined 2019-08-30 09:39:06 +12:00
tese Update tests to account for all non-entry-point functions being inlined 2019-08-30 09:39:06 +12:00
vert Merge pull request #1141 from troughton/inline-everything 2019-08-30 11:05:04 +02:00
vulkan MSL: Add {Base,}{Vertex,Instance}Index to bitcast_from_builtin_load. 2019-08-29 13:56:37 +02:00