diff options
| author | Stenzek <stenzek@gmail.com> | 2016-03-05 20:22:08 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2016-05-08 12:08:25 +1000 |
| commit | 32599559dbdcbebf3f13e7e7dc6a815ff308811c (patch) | |
| tree | e6de38037de6fefe320a17c97d8f3eeca9468374 /Source/Core/VideoBackends/D3D12/FramebufferManager.cpp | |
| parent | 984da2d62475771e8562c5aa275b950828a00361 (diff) | |
D3D12: Use helper method for binding EFB render targets
Diffstat (limited to 'Source/Core/VideoBackends/D3D12/FramebufferManager.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D12/FramebufferManager.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp b/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp index a3c8064318..a28d1cf6ef 100644 --- a/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp +++ b/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp @@ -197,12 +197,19 @@ void FramebufferManager::ResolveDepthTexture() FramebufferManager::GetEFBColorTexture()->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_RENDER_TARGET); FramebufferManager::GetEFBDepthTexture()->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_DEPTH_WRITE); - D3D::current_command_list->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTexture()->GetRTV12(), FALSE, &FramebufferManager::GetEFBDepthTexture()->GetDSV12()); + FramebufferManager::RestoreEFBRenderTargets(); // Restores proper viewport/scissor settings. g_renderer->RestoreAPIState(); } +void FramebufferManager::RestoreEFBRenderTargets() +{ + D3D::current_command_list->OMSetRenderTargets(1, + &FramebufferManager::GetEFBColorTexture()->GetRTV12(), FALSE, + &FramebufferManager::GetEFBDepthTexture()->GetDSV12()); +} + u32 FramebufferManager::ReadEFBColorAccessCopy(u32 x, u32 y) { if (!m_efb.color_access_readback_map) @@ -325,7 +332,7 @@ void FramebufferManager::MapEFBColorAccessCopy() m_efb.color_tex->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_RENDER_TARGET); // Restore state after resetting command list - D3D::current_command_list->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTexture()->GetRTV12(), FALSE, &FramebufferManager::GetEFBDepthTexture()->GetDSV12()); + RestoreEFBRenderTargets(); g_renderer->RestoreAPIState(); // Resource copy has finished, so safe to map now @@ -377,7 +384,7 @@ void FramebufferManager::MapEFBDepthAccessCopy() m_efb.depth_tex->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_DEPTH_WRITE); // Restore state after resetting command list - D3D::current_command_list->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTexture()->GetRTV12(), FALSE, &FramebufferManager::GetEFBDepthTexture()->GetDSV12()); + RestoreEFBRenderTargets(); g_renderer->RestoreAPIState(); // Resource copy has finished, so safe to map now @@ -448,7 +455,7 @@ void XFBSource::CopyEFB(float gamma) FramebufferManager::GetEFBColorTexture()->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_RENDER_TARGET); FramebufferManager::GetEFBDepthTexture()->TransitionToResourceState(D3D::current_command_list, D3D12_RESOURCE_STATE_DEPTH_WRITE ); - D3D::current_command_list->OMSetRenderTargets(1, &FramebufferManager::GetEFBColorTexture()->GetRTV12(), FALSE, &FramebufferManager::GetEFBDepthTexture()->GetDSV12()); + FramebufferManager::RestoreEFBRenderTargets(); // Restores proper viewport/scissor settings. g_renderer->RestoreAPIState(); |
