summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@users.noreply.github.com>2017-04-18 21:58:14 +1000
committerGitHub <noreply@github.com>2017-04-18 21:58:14 +1000
commit16a947a88b6fee5ce96373550140bcb4b3911565 (patch)
tree9cb794bc0aab5c2812f9a48ad2a048457c320276 /Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
parent936910163aaddf63dc439b8206cb09951a158353 (diff)
parent3fd1e6c2f69f83d8c818c5a253a161502868a355 (diff)
Merge pull request #5270 from stenzek/vulkan-aa
Vulkan: MSAA and frame dumping fixes
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp b/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
index 9b07f8645e..f4caacfc6a 100644
--- a/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
+++ b/Source/Core/VideoBackends/Vulkan/FramebufferManager.cpp
@@ -462,6 +462,12 @@ Texture2D* FramebufferManager::ResolveEFBColorTexture(const VkRect2D& region)
// Can't resolve within a render pass.
StateTracker::GetInstance()->EndRenderPass();
+ // It's not valid to resolve out-of-bounds coordinates.
+ // Ensuring the region is within the image is the caller's responsibility.
+ _assert_(region.offset.x >= 0 && region.offset.y >= 0 &&
+ (static_cast<u32>(region.offset.x) + region.extent.width) <= m_efb_width &&
+ (static_cast<u32>(region.offset.y) + region.extent.height) <= m_efb_height);
+
// Resolving is considered to be a transfer operation.
m_efb_color_texture->TransitionToLayout(g_command_buffer_mgr->GetCurrentCommandBuffer(),
VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);