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:
Diffstat (limited to 'reference')
-rw-r--r--reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag (renamed from reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.fxconly.frag)0
-rw-r--r--reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag32
-rw-r--r--reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk15
3 files changed, 47 insertions, 0 deletions
diff --git a/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.fxconly.frag b/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag
index ca9a116f..ca9a116f 100644
--- a/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.fxconly.frag
+++ b/reference/shaders-hlsl-no-opt/frag/nonuniform-constructor.sm51.nonuniformresource.frag
diff --git a/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag b/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag
new file mode 100644
index 00000000..8a918c03
--- /dev/null
+++ b/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag
@@ -0,0 +1,32 @@
+#version 450
+
+#if defined(GL_KHR_shader_subgroup_ballot)
+#extension GL_KHR_shader_subgroup_ballot : require
+#elif defined(GL_NV_shader_thread_group)
+#extension GL_NV_shader_thread_group : require
+#elif defined(GL_ARB_shader_ballot) && defined(GL_ARB_shader_int64)
+#extension GL_ARB_shader_int64 : enable
+#extension GL_ARB_shader_ballot : require
+#else
+#error No extensions available to emulate requested subgroup feature.
+#endif
+
+layout(location = 0) flat in uint INDEX;
+layout(location = 0) out uvec4 SV_Target;
+
+#if defined(GL_KHR_shader_subgroup_ballot)
+#elif defined(GL_NV_shader_thread_group)
+uvec4 subgroupBallot(bool v) { return uvec4(ballotThreadNV(v), 0u, 0u, 0u); }
+#elif defined(GL_ARB_shader_ballot)
+uvec4 subgroupBallot(bool v) { return uvec4(unpackUint2x32(ballotARB(v)), 0u, 0u); }
+#endif
+
+void main()
+{
+ uvec4 _21 = subgroupBallot(INDEX < 100u);
+ SV_Target.x = _21.x;
+ SV_Target.y = _21.y;
+ SV_Target.z = _21.z;
+ SV_Target.w = _21.w;
+}
+
diff --git a/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk b/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk
new file mode 100644
index 00000000..ed5933f3
--- /dev/null
+++ b/reference/shaders-no-opt/asm/frag/subgroup-ballot-only.vk.asm.frag.vk
@@ -0,0 +1,15 @@
+#version 450
+#extension GL_KHR_shader_subgroup_ballot : require
+
+layout(location = 0) flat in uint INDEX;
+layout(location = 0) out uvec4 SV_Target;
+
+void main()
+{
+ uvec4 _21 = subgroupBallot(INDEX < 100u);
+ SV_Target.x = _21.x;
+ SV_Target.y = _21.y;
+ SV_Target.z = _21.z;
+ SV_Target.w = _21.w;
+}
+