SPIRV-Cross/reference/shaders-msl
Chip Davis 6a58554568 Support the SPV_KHR_device_group extension.
The only piece added by this extension is the `DeviceIndex` builtin,
which tells the shader which device in a grouped logical device it is
running on.

Metal's pipeline state objects are owned by the `MTLDevice` that created
them. Since Metal doesn't support logical grouping of devices the way
Vulkan does, we'll thus have to create a pipeline state for each device
in a grouped logical device. The upcoming peer group support in Metal 3
will not change this. For this reason, for Metal, the device index is
supplied as a constant at pipeline compile time.

There's an interaction between `VK_KHR_device_group` and
`VK_KHR_multiview` in the
`VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT`, which defines the
view index to be the same as the device index. The new
`view_index_from_device_index` MSL option supports this functionality.
2019-07-13 16:45:54 -05:00
..
asm MSL: Handle coherent, volatile, and restrict. 2019-07-11 10:22:30 -05:00
comp MSL: Handle coherent, volatile, and restrict. 2019-07-11 10:22:30 -05:00
desktop-only MSL: Rewrite how resource indices are fallback-assigned. 2019-06-21 12:54:08 +02:00
flatten MSL: Rewrite how resource indices are fallback-assigned. 2019-06-21 12:54:08 +02:00
frag Merge pull request #1078 from cdavis5e/post-depth-coverage 2019-07-12 09:56:26 +02:00
legacy/vert CompilerMSL support matrices & arrays in stage-in & stage-out. 2018-06-12 11:41:35 -04:00
tesc Fix tests for device->constant address space change in MSL tessellation control shader generation. 2019-04-10 18:37:04 +01:00
tese MSL: Rewrite how resource indices are fallback-assigned. 2019-06-21 12:54:08 +02:00
vert Deal correctly with return sign of bitscan operations. 2019-07-12 10:57:56 +02:00
vulkan Support the SPV_KHR_device_group extension. 2019-07-13 16:45:54 -05:00