On systems not supporting this, the subgroup size is set to 1. Make sure the subgroup size is fixed in the shader, at least until we implement `VK_EXT_subgroup_size_control`. According to the Metal feature set tables, SIMD-group reduction is only supported on Mac family 2 GPUs and Apple family 7 GPUs. Previously, we were exposing these on all Mac GPUs. Quadgroup permutation is supported on all Apple GPUs starting from family 4. We use them for regular group non-uniform ops as well, so these are considered to have a subgroup size of 4. On Mac, it's a bit more complicated. The 2.1 tables say that all Mac GPUs support this, but the 3.0 and 4.0 tables say that only family 2 supports quadgroup ops. I've allowed quad ops on family 1 for now. Unfortunately, my testing shows that SIMD-group functions don't work in fragment shaders on Mojave, so no fragment shader support until Metal 3. Update SPIRV-Cross to pull in changes needed for all this.
2 lines
41 B
Plaintext
2 lines
41 B
Plaintext
3d16060c3243e9f7bfd027de6e2e27c348d1791e
|