vk: Implement copy-to-buffer and copy-from-buffer for depth_stencil

formats
- Allows D24S8 and D32S8 transport via typeless channels
- Allows uploading and downloading D24S8 data easily
- TODO: Implement optional byteswapping to fix flushed readbacks with
the same method
This commit is contained in:
kd-11 2019-04-02 15:16:52 +03:00 committed by kd-11
parent 366e4c2422
commit 0f7af391d7
4 changed files with 344 additions and 70 deletions

View file

@ -1528,14 +1528,14 @@ namespace rsx
{
case CELL_GCM_TEXTURE_X16:
{
// NOP, a simple way to quickly read DEPTH16 data without shadow comparison
// A simple way to quickly read DEPTH16 data without shadow comparison
break;
}
case CELL_GCM_TEXTURE_A8R8G8B8:
case CELL_GCM_TEXTURE_D8R8G8B8:
case CELL_GCM_TEXTURE_A4R4G4B4: //TODO
case CELL_GCM_TEXTURE_R5G6B5: //TODO
{
// Reading depth data as XRGB8 is supported with in-shader conversion
// TODO: Optionally add support for 16-bit formats (not necessary since type casts are easy with that)
u32 remap = tex.remap();
result.redirected_textures |= (1 << i);
result.texture_scale[i][2] = (f32&)remap;