1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-19 05:52:11 +01:00

[dxvk] Don't flush barriers in renderPassBindFramebuffer

Instead, any pending barriers must be flushed manually if necessary.
This commit is contained in:
Philip Rebohle 2019-01-22 15:49:16 +01:00
parent 5b90b6a7ce
commit 1631243c64
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -542,6 +542,12 @@ namespace dxvk {
if (attachmentIndex < 0) {
this->spillRenderPass();
if (m_barriers.isImageDirty(
imageView->image(),
imageView->subresources(),
DxvkAccess::Write))
m_barriers.recordCommands(m_cmd);
// Set up and bind a temporary framebuffer
DxvkRenderTargets attachments;
DxvkRenderPassOps ops;
@ -1764,6 +1770,12 @@ namespace dxvk {
if (attachmentIndex < 0) {
this->spillRenderPass();
if (m_barriers.isImageDirty(
imageView->image(),
imageView->subresources(),
DxvkAccess::Write))
m_barriers.recordCommands(m_cmd);
// Set up a temporary framebuffer
DxvkRenderTargets attachments;
DxvkRenderPassOps ops;
@ -2374,6 +2386,8 @@ namespace dxvk {
m_flags.set(DxvkContextFlag::GpRenderPassBound);
m_flags.clr(DxvkContextFlag::GpClearRenderTargets);
m_barriers.recordCommands(m_cmd);
this->renderPassBindFramebuffer(
m_state.om.framebuffer,
m_state.om.renderPassOps,
@ -2433,8 +2447,6 @@ namespace dxvk {
info.clearValueCount = clearValueCount;
info.pClearValues = clearValues;
m_barriers.recordCommands(m_cmd);
m_cmd->cmdBeginRenderPass(&info,
VK_SUBPASS_CONTENTS_INLINE);