From 5d613bf565a4099f2a94e6bdcbaf9b18786d301c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 17 Mar 2017 16:56:45 +0100 Subject: [PATCH] Set pitch correctly when uploading converted CLUT textures --- GPU/D3D11/DepalettizeShaderD3D11.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/GPU/D3D11/DepalettizeShaderD3D11.cpp b/GPU/D3D11/DepalettizeShaderD3D11.cpp index cf454e4c7..a0d9e7dff 100644 --- a/GPU/D3D11/DepalettizeShaderD3D11.cpp +++ b/GPU/D3D11/DepalettizeShaderD3D11.cpp @@ -85,7 +85,7 @@ ID3D11ShaderResourceView *DepalShaderCacheD3D11::GetClutTexture(GEPaletteFormat } int texturePixels = clutFormat == GE_CMODE_32BIT_ABGR8888 ? 256 : 512; - + int bpp = clutFormat == GE_CMODE_32BIT_ABGR8888 ? 4 : 2; DXGI_FORMAT dstFmt; uint32_t *expanded = nullptr; if (expandTo32bit && clutFormat != GE_CMODE_32BIT_ABGR8888) { @@ -103,6 +103,7 @@ ID3D11ShaderResourceView *DepalShaderCacheD3D11::GetClutTexture(GEPaletteFormat } rawClut = expanded; dstFmt = DXGI_FORMAT_B8G8R8A8_UNORM; + bpp = 4; } else { dstFmt = GetClutDestFormatD3D11(clutFormat); @@ -121,7 +122,7 @@ ID3D11ShaderResourceView *DepalShaderCacheD3D11::GetClutTexture(GEPaletteFormat D3D11_SUBRESOURCE_DATA data{}; data.pSysMem = rawClut; // Regardless of format, the CLUT should always be 1024 bytes. - data.SysMemPitch = 1024; + data.SysMemPitch = texturePixels * bpp; DepalTextureD3D11 *tex = new DepalTextureD3D11(); // TODO: Look into 1D textures