From d8d72c4327fab6495b020cbc72e3ad0d50cc5da0 Mon Sep 17 00:00:00 2001 From: vlj Date: Mon, 1 Jun 2015 18:28:54 +0200 Subject: [PATCH] d3d12: Implement R5G6B5 texture format Make sonic works, but with wrong color --- rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp b/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp index fc10f050a..d91984425 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12Texture.cpp @@ -101,7 +101,6 @@ size_t D3D12GSRender::UploadTextures() { case CELL_GCM_TEXTURE_A1R5G5B5: case CELL_GCM_TEXTURE_A4R4G4B4: - case CELL_GCM_TEXTURE_R5G6B5: case CELL_GCM_TEXTURE_G8B8: case CELL_GCM_TEXTURE_R6G5B5: case CELL_GCM_TEXTURE_DEPTH24_D8: @@ -123,6 +122,11 @@ size_t D3D12GSRender::UploadTextures() default: LOG_ERROR(RSX, "Unimplemented Texture format : %x", format); break; + case CELL_GCM_TEXTURE_R5G6B5: + dxgiFormat = DXGI_FORMAT_B5G6R5_UNORM; + blockSizeInByte = 2; + blockWidthInPixel = 1, blockHeightInPixel = 1; + break; case CELL_GCM_TEXTURE_D8R8G8B8: dxgiFormat = DXGI_FORMAT_R8G8B8A8_UNORM; blockSizeInByte = 4; @@ -281,7 +285,6 @@ size_t D3D12GSRender::UploadTextures() { case CELL_GCM_TEXTURE_A1R5G5B5: case CELL_GCM_TEXTURE_A4R4G4B4: - case CELL_GCM_TEXTURE_R5G6B5: case CELL_GCM_TEXTURE_G8B8: case CELL_GCM_TEXTURE_R6G5B5: case CELL_GCM_TEXTURE_DEPTH24_D8: @@ -303,6 +306,9 @@ size_t D3D12GSRender::UploadTextures() default: LOG_ERROR(RSX, "Unimplemented Texture format : %x", format); break; + case CELL_GCM_TEXTURE_R5G6B5: + srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; + break; case CELL_GCM_TEXTURE_D8R8G8B8: { const int RemapValue[4] =