From 21d81f99ff9d51cb1dd845260e8655753bf0db4b Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 28 Feb 2019 20:35:17 +1000 Subject: [PATCH] VideoBackends: Fix GPU decoding of XFB buffers Was using UNORM instead of UINT, resulting in invalid values. --- Source/Core/VideoBackends/D3D/VertexManager.cpp | 2 +- Source/Core/VideoBackends/OGL/VertexManager.cpp | 2 +- Source/Core/VideoBackends/Vulkan/VertexManager.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/VideoBackends/D3D/VertexManager.cpp b/Source/Core/VideoBackends/D3D/VertexManager.cpp index 5159be74dea9..479f60103747 100644 --- a/Source/Core/VideoBackends/D3D/VertexManager.cpp +++ b/Source/Core/VideoBackends/D3D/VertexManager.cpp @@ -108,7 +108,7 @@ bool VertexManager::Initialize() format_mapping = {{ {TEXEL_BUFFER_FORMAT_R8_UINT, DXGI_FORMAT_R8_UINT}, {TEXEL_BUFFER_FORMAT_R16_UINT, DXGI_FORMAT_R16_UINT}, - {TEXEL_BUFFER_FORMAT_RGBA8_UINT, DXGI_FORMAT_R8G8B8A8_UNORM}, + {TEXEL_BUFFER_FORMAT_RGBA8_UINT, DXGI_FORMAT_R8G8B8A8_UINT}, {TEXEL_BUFFER_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_UINT}, }}; for (const auto& it : format_mapping) diff --git a/Source/Core/VideoBackends/OGL/VertexManager.cpp b/Source/Core/VideoBackends/OGL/VertexManager.cpp index 543a85dac8c3..60bac67ee92d 100644 --- a/Source/Core/VideoBackends/OGL/VertexManager.cpp +++ b/Source/Core/VideoBackends/OGL/VertexManager.cpp @@ -75,7 +75,7 @@ bool VertexManager::Initialize() format_mapping = {{ {TEXEL_BUFFER_FORMAT_R8_UINT, GL_R8UI}, {TEXEL_BUFFER_FORMAT_R16_UINT, GL_R16UI}, - {TEXEL_BUFFER_FORMAT_RGBA8_UINT, GL_RGBA8}, + {TEXEL_BUFFER_FORMAT_RGBA8_UINT, GL_RGBA8UI}, {TEXEL_BUFFER_FORMAT_R32G32_UINT, GL_RG32UI}, }}; glGenTextures(static_cast(m_texel_buffer_views.size()), m_texel_buffer_views.data()); diff --git a/Source/Core/VideoBackends/Vulkan/VertexManager.cpp b/Source/Core/VideoBackends/Vulkan/VertexManager.cpp index 7fcbf8401333..336d3ad48005 100644 --- a/Source/Core/VideoBackends/Vulkan/VertexManager.cpp +++ b/Source/Core/VideoBackends/Vulkan/VertexManager.cpp @@ -101,7 +101,7 @@ bool VertexManager::Initialize() format_mapping = {{ {TEXEL_BUFFER_FORMAT_R8_UINT, VK_FORMAT_R8_UINT}, {TEXEL_BUFFER_FORMAT_R16_UINT, VK_FORMAT_R16_UINT}, - {TEXEL_BUFFER_FORMAT_RGBA8_UINT, VK_FORMAT_R8G8B8A8_UNORM}, + {TEXEL_BUFFER_FORMAT_RGBA8_UINT, VK_FORMAT_R8G8B8A8_UINT}, {TEXEL_BUFFER_FORMAT_R32G32_UINT, VK_FORMAT_R32G32_UINT}, }}; for (const auto& it : format_mapping)