SPIRV-Cross-Vulnerable/reference/opt
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
..
shaders Support the SPV_KHR_device_group extension. 2019-07-13 16:45:54 -05:00
shaders-hlsl Fall back to complex loop if non-trivial continue block is found. 2019-07-08 11:54:29 +02:00
shaders-msl Support the SPV_KHR_device_group extension. 2019-07-13 16:45:54 -05:00