GS/Vulkan: Copy entire target when ds == tex

Also for DX12. Shadow Hearts 3 does a downsample, and we don't copy enough
if we limit to the render area.

Really, the texture cache should be handling this. But since we have the
target height more correct now, the perf hit shouldn't be much.
This commit is contained in:
Connor McLaughlin 2022-11-01 19:16:05 +10:00 committed by refractionpcsx2
parent 0b98c7a352
commit 9cc852a097
2 changed files with 4 additions and 3 deletions

View File

@ -2565,8 +2565,8 @@ void GSDevice12::RenderHW(GSHWDrawConfig& config)
config.drawarea.left, config.drawarea.top, config.drawarea.left, config.drawarea.top,
config.drawarea.width(), config.drawarea.height()); config.drawarea.width(), config.drawarea.height());
copy_ds->SetState(GSTexture::State::Invalidated); pxAssert(copy_ds->GetState() == GSTexture::State::Invalidated);
CopyRect(config.ds, copy_ds, config.drawarea, config.drawarea.left, config.drawarea.top); CopyRect(config.ds, copy_ds, GSVector4i(config.ds->GetSize()).zwxy(), 0, 0);
PSSetShaderResource(0, copy_ds, true); PSSetShaderResource(0, copy_ds, true);
} }
} }

View File

@ -3009,7 +3009,8 @@ void GSDeviceVK::RenderHW(GSHWDrawConfig& config)
config.drawarea.left, config.drawarea.top, config.drawarea.left, config.drawarea.top,
config.drawarea.width(), config.drawarea.height()); config.drawarea.width(), config.drawarea.height());
CopyRect(config.ds, copy_ds, config.drawarea, config.drawarea.left, config.drawarea.top); pxAssert(copy_ds->GetState() == GSTexture::State::Invalidated);
CopyRect(config.ds, copy_ds, GSVector4i(config.ds->GetSize()).zwxy(), 0, 0);
PSSetShaderResource(0, copy_ds, true); PSSetShaderResource(0, copy_ds, true);
} }
} }