SPIRV-Cross/reference
Chip Davis 68908355a9 MSL: Expand subgroup support.
Add support for declaring a fixed subgroup size. Metal, like Vulkan with
`VK_EXT_subgroup_size_control`, allows the thread execution width to
vary depending on factors such as register usage. Unfortunately, this
breaks several tests that depend on the subgroup size being what the
device says it is. So we'll fix the subgroup size at the size the device
declares. The extra invocations in the subgroup will appear to be
inactive. Because of this, the ballot mask builtins are now ANDed with
the active subgroup mask.

Add support for emulating a subgroup of size 1. This is intended to be
used by Vulkan Portability implementations (e.g. MoltenVK) when the
hardware/software combo provides insufficient support for subgroups.
Luckily for us, Vulkan 1.1 only requires that the subgroup size be at
least 1.

Add support for quadgroup and SIMD-group functions which were added to
iOS in Metal 2.2 and 2.3. This will allow clients to take advantage of
expanded quadgroup and SIMD-group support in recent Metal versions and
on recent Apple GPUs (families 6 and 7).

Gut emulation of subgroup builtins in fragment shaders. It turns out
codegen for the SIMD-group functions in fragment wasn't implemented for
AMD on Mojave; it's a safe bet that it wasn't implemented for the other
drivers either. Subgroup support in fragment shaders now requires Metal
2.2.
2020-11-20 15:55:49 -06:00
..
opt MSL: Add missing reference file. 2020-11-11 16:25:01 +01:00
shaders Merge pull request #1530 from rdb/legacy-glsl-round 2020-11-07 16:40:18 +01:00
shaders-hlsl HLSL: Add regression test for SM3.0 texture samplers 2020-11-03 18:15:05 +01:00
shaders-hlsl-no-opt HLSL: Add option to flatten matrix vertex input semantics. 2020-11-03 11:18:32 +01:00
shaders-msl MSL: extract global variables from subgroup ballot operations 2020-11-09 11:23:01 +01:00
shaders-msl-no-opt MSL: Expand subgroup support. 2020-11-20 15:55:49 -06:00
shaders-no-opt Update texture gather test result. 2020-11-08 13:54:30 +01:00
shaders-reflection Parser: Don't assume OpTypePointer will always take a SPIRType. 2020-11-03 10:53:37 +01:00
shaders-ue4/asm MSL: Allow framebuffer fetch on Mac in MSL 2.3. 2020-10-29 10:50:59 -05:00
shaders-ue4-no-opt/asm Implement context-sensitive expression read tracking. 2020-06-29 12:20:35 +02:00