summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-07-16 21:02:46 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-07-16 21:02:46 +0200
commita5a72cbd201489319856baaec88f02a6607423ae (patch)
treea260784d8810d6c3f982d77e7c7ebaa5dbf957c7 /src/video_core/renderer_opengl/gl_shader_decompiler.cpp
parentMerge pull request #4342 from lioncash/endian (diff)
downloadyuzu-a5a72cbd201489319856baaec88f02a6607423ae.tar
yuzu-a5a72cbd201489319856baaec88f02a6607423ae.tar.gz
yuzu-a5a72cbd201489319856baaec88f02a6607423ae.tar.bz2
yuzu-a5a72cbd201489319856baaec88f02a6607423ae.tar.lz
yuzu-a5a72cbd201489319856baaec88f02a6607423ae.tar.xz
yuzu-a5a72cbd201489319856baaec88f02a6607423ae.tar.zst
yuzu-a5a72cbd201489319856baaec88f02a6607423ae.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_shader_decompiler.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 2c49aeaac..6a9602ff8 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -602,8 +602,15 @@ private:
return;
}
const auto& info = registry.GetComputeInfo();
- if (const u32 size = info.shared_memory_size_in_words; size > 0) {
- code.AddLine("shared uint smem[{}];", size);
+ if (u32 size = info.shared_memory_size_in_words * 4; size > 0) {
+ const u32 limit = device.GetMaxComputeSharedMemorySize();
+ if (size > limit) {
+ LOG_ERROR(Render_OpenGL, "Shared memory size {} is clamped to host's limit {}",
+ size, limit);
+ size = limit;
+ }
+
+ code.AddLine("shared uint smem[{}];", size / 4);
code.AddNewLine();
}
code.AddLine("layout (local_size_x = {}, local_size_y = {}, local_size_z = {}) in;",