From f536584d7a169d9242ab30909e78ea8005f21adc Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sun, 19 Jun 2022 13:49:28 +1000 Subject: [PATCH] VulkanHostDisplay: Fix uploading unaligned texture sizes --- pcsx2/Frontend/VulkanHostDisplay.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pcsx2/Frontend/VulkanHostDisplay.cpp b/pcsx2/Frontend/VulkanHostDisplay.cpp index 370f315442..6c255189d2 100644 --- a/pcsx2/Frontend/VulkanHostDisplay.cpp +++ b/pcsx2/Frontend/VulkanHostDisplay.cpp @@ -195,8 +195,8 @@ std::string VulkanHostDisplay::GetDriverInfo() const static bool UploadBufferToTexture( Vulkan::Texture* texture, VkCommandBuffer cmdbuf, u32 width, u32 height, const void* data, u32 data_stride) { - const u32 upload_stride = Common::AlignUpPow2(Vulkan::Util::GetTexelSize(texture->GetFormat()) * width, - g_vulkan_context->GetBufferCopyRowPitchAlignment()); + const u32 texel_size = Vulkan::Util::GetTexelSize(texture->GetFormat()); + const u32 upload_stride = Common::AlignUpPow2(texel_size * width, g_vulkan_context->GetBufferCopyRowPitchAlignment()); const u32 upload_size = upload_stride * height; Vulkan::StreamBuffer& buf = g_vulkan_context->GetTextureUploadBuffer(); @@ -216,7 +216,7 @@ static bool UploadBufferToTexture( StringUtil::StrideMemCpy(buf.GetCurrentHostPointer(), upload_stride, data, data_stride, upload_stride, height); buf.CommitMemory(upload_size); - texture->UpdateFromBuffer(cmdbuf, 0, 0, 0, 0, width, height, width, buf.GetBuffer(), buf_offset); + texture->UpdateFromBuffer(cmdbuf, 0, 0, 0, 0, width, height, upload_stride / texel_size, buf.GetBuffer(), buf_offset); return true; }