diff options
| -rw-r--r-- | src/shader_recompiler/backend/glsl/glsl_emit_context.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp b/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp index 9ff4028c2..2f27ef5f9 100644 --- a/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp +++ b/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project | 1 | // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project |
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | 2 | // SPDX-License-Identifier: GPL-2.0-or-later |
| 3 | 3 | ||
| 4 | #include "common/div_ceil.h" | ||
| 4 | #include "shader_recompiler/backend/bindings.h" | 5 | #include "shader_recompiler/backend/bindings.h" |
| 5 | #include "shader_recompiler/backend/glsl/glsl_emit_context.h" | 6 | #include "shader_recompiler/backend/glsl/glsl_emit_context.h" |
| 6 | #include "shader_recompiler/frontend/ir/program.h" | 7 | #include "shader_recompiler/frontend/ir/program.h" |
| @@ -431,9 +432,11 @@ void EmitContext::DefineConstantBuffers(Bindings& bindings) { | |||
| 431 | } | 432 | } |
| 432 | for (const auto& desc : info.constant_buffer_descriptors) { | 433 | for (const auto& desc : info.constant_buffer_descriptors) { |
| 433 | const auto cbuf_type{profile.has_gl_cbuf_ftou_bug ? "uvec4" : "vec4"}; | 434 | const auto cbuf_type{profile.has_gl_cbuf_ftou_bug ? "uvec4" : "vec4"}; |
| 435 | const u32 cbuf_used_size{Common::DivCeil(info.constant_buffer_used_sizes[desc.index], 16U)}; | ||
| 436 | const u32 cbuf_binding_size{info.uses_global_memory ? 0x1000U : cbuf_used_size}; | ||
| 434 | header += fmt::format("layout(std140,binding={}) uniform {}_cbuf_{}{{{} {}_cbuf{}[{}];}};", | 437 | header += fmt::format("layout(std140,binding={}) uniform {}_cbuf_{}{{{} {}_cbuf{}[{}];}};", |
| 435 | bindings.uniform_buffer, stage_name, desc.index, cbuf_type, | 438 | bindings.uniform_buffer, stage_name, desc.index, cbuf_type, |
| 436 | stage_name, desc.index, 4 * 1024); | 439 | stage_name, desc.index, cbuf_binding_size); |
| 437 | bindings.uniform_buffer += desc.count; | 440 | bindings.uniform_buffer += desc.count; |
| 438 | } | 441 | } |
| 439 | } | 442 | } |