diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index c47db2a0eb..c89b82ac79 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -835,6 +835,20 @@ void BufferCache
::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32
return;
}
const u32 offset = buffer.Offset(device_addr);
+
+ if constexpr (!IS_OPENGL) {
+ if constexpr (requires(const Runtime& r) { r.GetUniformBufferAlignment(); }) {
+ const u32 ubo_align = runtime.GetUniformBufferAlignment();
+ if (ubo_align != 0 && (offset % ubo_align) != 0) {
+ if constexpr (HAS_PERSISTENT_UNIFORM_BUFFER_BINDINGS) {
+ channel_state->uniform_buffer_binding_sizes[stage][binding_index] = size;
+ }
+ const std::span