d3d12: Add DXT23 & DXT45

This commit is contained in:
raven02 2015-05-30 23:55:35 +08:00 committed by Vincent Lejeune
parent 6877e5e3ba
commit 046e522851
1 changed files with 12 additions and 4 deletions

View File

@ -102,8 +102,6 @@ size_t D3D12GSRender::UploadTextures()
case CELL_GCM_TEXTURE_A1R5G5B5: case CELL_GCM_TEXTURE_A1R5G5B5:
case CELL_GCM_TEXTURE_A4R4G4B4: case CELL_GCM_TEXTURE_A4R4G4B4:
case CELL_GCM_TEXTURE_R5G6B5: case CELL_GCM_TEXTURE_R5G6B5:
case CELL_GCM_TEXTURE_COMPRESSED_DXT23:
case CELL_GCM_TEXTURE_COMPRESSED_DXT45:
case CELL_GCM_TEXTURE_G8B8: case CELL_GCM_TEXTURE_G8B8:
case CELL_GCM_TEXTURE_R6G5B5: case CELL_GCM_TEXTURE_R6G5B5:
case CELL_GCM_TEXTURE_DEPTH24_D8: case CELL_GCM_TEXTURE_DEPTH24_D8:
@ -121,7 +119,7 @@ size_t D3D12GSRender::UploadTextures()
case ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN) & CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8: case ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN) & CELL_GCM_TEXTURE_COMPRESSED_B8R8_G8R8:
case ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN) & CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8: case ~(CELL_GCM_TEXTURE_LN | CELL_GCM_TEXTURE_UN) & CELL_GCM_TEXTURE_COMPRESSED_R8B8_R8G8:
default: default:
LOG_ERROR(RSX, "Unimplemented Texture format"); LOG_ERROR(RSX, "Unimplemented Texture format : %x", format);
break; break;
case CELL_GCM_TEXTURE_D8R8G8B8: case CELL_GCM_TEXTURE_D8R8G8B8:
dxgiFormat = DXGI_FORMAT_R8G8B8A8_UNORM; dxgiFormat = DXGI_FORMAT_R8G8B8A8_UNORM;
@ -138,6 +136,16 @@ size_t D3D12GSRender::UploadTextures()
blockSizeInByte = 8; blockSizeInByte = 8;
blockWidthInPixel = 4, blockHeightInPixel = 4; blockWidthInPixel = 4, blockHeightInPixel = 4;
break; break;
case CELL_GCM_TEXTURE_COMPRESSED_DXT23:
dxgiFormat = DXGI_FORMAT_BC2_UNORM;
blockSizeInByte = 16;
blockWidthInPixel = 4, blockHeightInPixel = 4;
break;
case CELL_GCM_TEXTURE_COMPRESSED_DXT45:
dxgiFormat = DXGI_FORMAT_BC3_UNORM;
blockSizeInByte = 16;
blockWidthInPixel = 4, blockHeightInPixel = 4;
break;
case CELL_GCM_TEXTURE_B8: case CELL_GCM_TEXTURE_B8:
dxgiFormat = DXGI_FORMAT_R8_UNORM; dxgiFormat = DXGI_FORMAT_R8_UNORM;
blockSizeInByte = 1; blockSizeInByte = 1;
@ -299,4 +307,4 @@ size_t D3D12GSRender::UploadTextures()
return usedTexture; return usedTexture;
} }
#endif #endif