diff options
author | Jan Sikorski <jsikorski@codeweavers.com> | 2020-10-29 12:02:07 +0300 |
---|---|---|
committer | Jan Sikorski <jsikorski@codeweavers.com> | 2020-11-09 13:23:01 +0300 |
commit | f0239bce05b343281215d3a17edc4fc73a407b09 (patch) | |
tree | e0382cf22c0251cf9945b3e21d77d6de6e1367ff /shaders-msl | |
parent | 6fc2a0581ab84189d948486822bd1bf045a0111e (diff) |
MSL: extract global variables from subgroup ballot operations
Fixes #1513.
Diffstat (limited to 'shaders-msl')
-rw-r--r-- | shaders-msl/frag/subgroup-globals-extract.msl22.frag | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/shaders-msl/frag/subgroup-globals-extract.msl22.frag b/shaders-msl/frag/subgroup-globals-extract.msl22.frag new file mode 100644 index 00000000..f763163d --- /dev/null +++ b/shaders-msl/frag/subgroup-globals-extract.msl22.frag @@ -0,0 +1,30 @@ +#version 450 +#extension GL_KHR_shader_subgroup_basic : require +#extension GL_KHR_shader_subgroup_ballot : require + +layout(location = 0) out uvec2 FragColor; + +uint sub1() { + return subgroupBallotFindLSB(uvec4(1,2,3,4)); +} + +uint sub2() { + return subgroupBallotFindMSB(uvec4(1,2,3,4)); +} + +uint sub3() { + return subgroupBallotBitCount(uvec4(1,2,3,4)); +} + +uint sub4() { + return subgroupBallotInclusiveBitCount(uvec4(1,2,3,4)); +} + +uint sub5() { + return subgroupBallotExclusiveBitCount(uvec4(1,2,3,4)); +} + +void main() +{ + FragColor.x = sub1() + sub2() + sub3() + sub4() + sub5(); +} |