diff options
author | bunnei <bunneidev@gmail.com> | 2021-01-27 15:27:53 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-27 15:27:53 -0800 |
commit | 45b13c303731b9971ebce8eca9f63bbc2c6f22b9 (patch) | |
tree | 0ef519ae519b90ac88d470087966dcffb9a482dc | |
parent | ef6cc3aa1dcb9f8983177a0471dbd8061c88753c (diff) | |
parent | 436457b6e780ee21fc4d69f1ffc652e39c320f2c (diff) |
Merge pull request #5786 from ReinUsesLisp/glsl-cbuf
gl_shader_decompiler: Fix constant buffer size calculation
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 2e1fa252d..c35b71b6b 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -14,6 +14,7 @@ #include "common/alignment.h" #include "common/assert.h" #include "common/common_types.h" +#include "common/div_ceil.h" #include "common/logging/log.h" #include "video_core/engines/maxwell_3d.h" #include "video_core/engines/shader_type.h" @@ -877,7 +878,7 @@ private: u32 binding = device.GetBaseBindings(stage).uniform_buffer; for (const auto& [index, info] : ir.GetConstantBuffers()) { - const u32 num_elements = Common::AlignUp(info.GetSize(), 4) / 4; + const u32 num_elements = Common::DivCeil(info.GetSize(), 4 * sizeof(u32)); const u32 size = info.IsIndirect() ? MAX_CONSTBUFFER_ELEMENTS : num_elements; code.AddLine("layout (std140, binding = {}) uniform {} {{", binding++, GetConstBufferBlock(index)); |