From 952fd0d2eef19e7e28f5a439051f02be9aa72ec5 Mon Sep 17 00:00:00 2001 From: rcaridade145 Date: Mon, 18 Nov 2024 22:15:30 +0000 Subject: [PATCH] Add missing readbacks --- .../HW/Latte/Renderer/Vulkan/TextureReadbackVk.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Cafe/HW/Latte/Renderer/Vulkan/TextureReadbackVk.cpp b/src/Cafe/HW/Latte/Renderer/Vulkan/TextureReadbackVk.cpp index b055fe7e..07b9f6c7 100644 --- a/src/Cafe/HW/Latte/Renderer/Vulkan/TextureReadbackVk.cpp +++ b/src/Cafe/HW/Latte/Renderer/Vulkan/TextureReadbackVk.cpp @@ -22,7 +22,7 @@ uint32 LatteTextureReadbackInfoVk::GetImageSize(LatteTextureView* textureView) cemu_assert(textureFormat == VK_FORMAT_R8G8B8A8_UNORM); return baseTexture->width * baseTexture->height * 4; } - else if (textureView->format == Latte::E_GX2SURFFMT::R8_UNORM) + else if (textureView->format == Latte::E_GX2SURFFMT::R8_UNORM ) { cemu_assert(textureFormat == VK_FORMAT_R8_UNORM); return baseTexture->width * baseTexture->height * 1; @@ -79,6 +79,16 @@ uint32 LatteTextureReadbackInfoVk::GetImageSize(LatteTextureView* textureView) // todo - if driver does not support VK_FORMAT_D24_UNORM_S8_UINT this is represented as VK_FORMAT_D32_SFLOAT_S8_UINT which is 8 bytes return baseTexture->width * baseTexture->height * 4; } + else if (textureView->format == Latte::E_GX2SURFFMT::R5_G6_B5_UNORM ) + { + cemu_assert(textureFormat == VK_FORMAT_R8G8B8A8_UNORM); + return baseTexture->width * baseTexture->height * 4; + } + else if (textureView->format == Latte::E_GX2SURFFMT::R5_G5_B5_A1_UNORM ) + { + cemu_assert(textureFormat == VK_FORMAT_R8G8B8A8_UNORM); + return baseTexture->width * baseTexture->height * 4; + } else { cemuLog_log(LogType::Force, "Unsupported texture readback format {:04x}", (uint32)textureView->format);