Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Sikorski <jsikorski@codeweavers.com>2020-10-29 12:02:07 +0300
committerJan Sikorski <jsikorski@codeweavers.com>2020-11-09 13:23:01 +0300
commitf0239bce05b343281215d3a17edc4fc73a407b09 (patch)
treee0382cf22c0251cf9945b3e21d77d6de6e1367ff /shaders-msl
parent6fc2a0581ab84189d948486822bd1bf045a0111e (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.frag30
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();
+}