summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2016-03-15 22:26:01 +1000
committerStenzek <stenzek@gmail.com>2016-05-08 23:18:59 +1000
commitccf9470241309114bdc46d9dc80bb9b99aed4a41 (patch)
tree81fe92b0101399b9ecf1d935b4f5628cfd67a5b2 /Source/Core/VideoBackends/D3D12/FramebufferManager.cpp
parentfde7dee652674f3d42d80e2f4a3ae0ff30ecaa06 (diff)
D3D12: Specify read/write ranges when calling Map/Unmap
Diffstat (limited to 'Source/Core/VideoBackends/D3D12/FramebufferManager.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D12/FramebufferManager.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp b/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp
index fb925aaaf0..f7cfb2b9a7 100644
--- a/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp
+++ b/Source/Core/VideoBackends/D3D12/FramebufferManager.cpp
@@ -332,7 +332,8 @@ void FramebufferManager::MapEFBColorAccessCopy()
D3D::command_list_mgr->ExecuteQueuedWork(true);
// Resource copy has finished, so safe to map now
- m_efb.color_access_readback_buffer->Map(0, nullptr, reinterpret_cast<void**>(&m_efb.color_access_readback_map));
+ D3D12_RANGE read_range = { 0, m_efb.color_access_readback_pitch * EFB_HEIGHT };
+ m_efb.color_access_readback_buffer->Map(0, &read_range, reinterpret_cast<void**>(&m_efb.color_access_readback_map));
}
void FramebufferManager::MapEFBDepthAccessCopy()
@@ -380,20 +381,23 @@ void FramebufferManager::MapEFBDepthAccessCopy()
D3D::command_list_mgr->ExecuteQueuedWork(true);
// Resource copy has finished, so safe to map now
- m_efb.depth_access_readback_buffer->Map(0, nullptr, reinterpret_cast<void**>(&m_efb.depth_access_readback_map));
+ D3D12_RANGE read_range = { 0, m_efb.depth_access_readback_pitch * EFB_HEIGHT };
+ m_efb.depth_access_readback_buffer->Map(0, &read_range, reinterpret_cast<void**>(&m_efb.depth_access_readback_map));
}
void FramebufferManager::InvalidateEFBAccessCopies()
{
+ D3D12_RANGE write_range = {};
+
if (m_efb.color_access_readback_map)
{
- m_efb.color_access_readback_buffer->Unmap(0, nullptr);
+ m_efb.color_access_readback_buffer->Unmap(0, &write_range);
m_efb.color_access_readback_map = nullptr;
}
if (m_efb.depth_access_readback_map)
{
- m_efb.depth_access_readback_buffer->Unmap(0, nullptr);
+ m_efb.depth_access_readback_buffer->Unmap(0, &write_range);
m_efb.depth_access_readback_map = nullptr;
}
}