1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-28 02:19:26 +01:00

[dxvk] Properly suspend render pass in various functions

Otherwise we'll flush clears for no reason at all.
This commit is contained in:
Philip Rebohle 2025-03-24 03:45:54 +01:00
parent c421560da9
commit e14f7f4078

View File

@ -1292,9 +1292,11 @@ namespace dxvk {
if (imageView->info().mipCount <= 1)
return;
this->spillRenderPass(false);
this->spillRenderPass(true);
this->invalidateState();
this->prepareImage(imageView->image(), imageView->imageSubresources());
// Make sure we can both render to and read from the image
VkFormat viewFormat = imageView->info().format;
@ -4139,7 +4141,7 @@ namespace dxvk {
attachmentIndex = -1;
if (attachmentIndex < 0) {
this->spillRenderPass(false);
this->spillRenderPass(true);
this->prepareImage(imageView->image(), imageView->imageSubresources());
this->flushPendingAccesses(*imageView->image(), imageView->imageSubresources(), DxvkAccess::Write);
@ -4243,7 +4245,7 @@ namespace dxvk {
DxvkCmdBuffer cmdBuffer = DxvkCmdBuffer::InitBuffer;
if (!prepareOutOfOrderTransfer(imageView->image(), DxvkAccess::Write)) {
spillRenderPass(false);
spillRenderPass(true);
invalidateState();
prepareImage(imageView->image(), imageView->imageSubresources());