From ef65c47592b6df04529158db66c7c3b9c802b44e Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 24 Mar 2022 23:25:54 +0300 Subject: [PATCH] vk: Restore UBO alignment - NV requires some very large alignment thresholds --- rpcs3/Emu/RSX/VK/VKGSRender.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 9a668612bf..40a12905e4 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -1958,7 +1958,8 @@ void VKGSRender::load_program_env() { check_heap_status(VK_HEAP_CHECK_TRANSFORM_CONSTANTS_STORAGE); - auto mem = m_transform_constants_ring_info.alloc<1>(transform_constants_size); + const auto alignment = m_device->gpu().get_limits().minUniformBufferOffsetAlignment; + auto mem = m_transform_constants_ring_info.alloc<1>(utils::align(transform_constants_size, alignment)); auto buf = m_transform_constants_ring_info.map(mem, transform_constants_size); const std::vector& constant_ids = (transform_constants_size == 8192) ? std::vector{} : m_vertex_prog->constant_ids;