diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-07-16 21:02:46 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-07-16 21:02:46 +0200 |
commit | a5a72cbd201489319856baaec88f02a6607423ae (patch) | |
tree | a260784d8810d6c3f982d77e7c7ebaa5dbf957c7 /src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |
parent | Merge pull request #4342 from lioncash/endian (diff) | |
download | yuzu-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.cpp | 11 |
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;", |