summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_cache.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-11-13 03:39:45 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-11-23 01:28:47 +0100
commitdbeb52387979c7e28c0acb03dfc1468146947104 (patch)
tree8c8e681dcc11a137517839dd64d839541cb6f9ce /src/video_core/renderer_opengl/gl_shader_cache.cpp
parentgl_shader_cache: Specialize shader workgroup (diff)
downloadyuzu-dbeb52387979c7e28c0acb03dfc1468146947104.tar
yuzu-dbeb52387979c7e28c0acb03dfc1468146947104.tar.gz
yuzu-dbeb52387979c7e28c0acb03dfc1468146947104.tar.bz2
yuzu-dbeb52387979c7e28c0acb03dfc1468146947104.tar.lz
yuzu-dbeb52387979c7e28c0acb03dfc1468146947104.tar.xz
yuzu-dbeb52387979c7e28c0acb03dfc1468146947104.tar.zst
yuzu-dbeb52387979c7e28c0acb03dfc1468146947104.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index a5789b6d3..982c4e23a 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -8,7 +8,9 @@
#include <thread>
#include <unordered_set>
#include <boost/functional/hash.hpp>
+#include "common/alignment.h"
#include "common/assert.h"
+#include "common/logging/log.h"
#include "common/scope_exit.h"
#include "core/core.h"
#include "core/frontend/emu_window.h"
@@ -322,6 +324,11 @@ CachedProgram BuildShader(const Device& device, u64 unique_identifier, ProgramTy
source +=
fmt::format("layout (local_size_x = {}, local_size_y = {}, local_size_z = {}) in;\n",
variant.block_x, variant.block_y, variant.block_z);
+
+ if (variant.shared_memory_size > 0) {
+ source += fmt::format("shared uint smem[{}];",
+ Common::AlignUp(variant.shared_memory_size, 4) / 4);
+ }
}
source += '\n';