summaryrefslogtreecommitdiffstats
path: root/src/video_core/host_shaders/vulkan_turbo_mode.comp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-12-20 01:29:58 +0100
committerLiam <byteslice@airmail.cc>2023-01-05 04:22:01 +0100
commit301e9bbc03821ef7943d84b24b32c8b732a39f6a (patch)
tree3afaf56153ba07f4a8ec083bac4b59d119ed2723 /src/video_core/host_shaders/vulkan_turbo_mode.comp
parentMerge pull request #9501 from FernandoS27/yfc-rel-2 (diff)
downloadyuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.tar
yuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.tar.gz
yuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.tar.bz2
yuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.tar.lz
yuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.tar.xz
yuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.tar.zst
yuzu-301e9bbc03821ef7943d84b24b32c8b732a39f6a.zip
Diffstat (limited to 'src/video_core/host_shaders/vulkan_turbo_mode.comp')
-rw-r--r--src/video_core/host_shaders/vulkan_turbo_mode.comp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/video_core/host_shaders/vulkan_turbo_mode.comp b/src/video_core/host_shaders/vulkan_turbo_mode.comp
new file mode 100644
index 000000000..d651001d9
--- /dev/null
+++ b/src/video_core/host_shaders/vulkan_turbo_mode.comp
@@ -0,0 +1,29 @@
+// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#version 460 core
+
+layout (local_size_x = 16, local_size_y = 8, local_size_z = 1) in;
+
+layout (binding = 0) buffer ThreadData {
+ uint data[];
+};
+
+uint xorshift32(uint x) {
+ x ^= x << 13;
+ x ^= x >> 17;
+ x ^= x << 5;
+ return x;
+}
+
+uint getGlobalIndex() {
+ return gl_GlobalInvocationID.x + gl_GlobalInvocationID.y * gl_WorkGroupSize.y * gl_NumWorkGroups.y;
+}
+
+void main() {
+ uint myIndex = xorshift32(getGlobalIndex());
+ uint otherIndex = xorshift32(myIndex);
+
+ uint otherValue = atomicAdd(data[otherIndex % data.length()], 0) + 1;
+ atomicAdd(data[myIndex % data.length()], otherValue);
+}