summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2023-12-31 21:00:23 +0100
committerGravatar Fernando Sahmkow2023-12-31 21:03:46 +0100
commit737e6e531c8eb155fcbd19ddd679336332bbc8c6 (patch)
treee7446a2cbc3bb9e8fc683eb7b5f1fdfeadbb0f2a /src
parentMaxwellDMA: Don't flush the outputs of a dma copy. (diff)
downloadyuzu-737e6e531c8eb155fcbd19ddd679336332bbc8c6.tar.gz
yuzu-737e6e531c8eb155fcbd19ddd679336332bbc8c6.tar.xz
yuzu-737e6e531c8eb155fcbd19ddd679336332bbc8c6.zip
Vulkan: Only recreate swapchain if the frame is bigger than the swap image.
Diffstat (limited to '')
-rw-r--r--src/core/memory.h3
-rw-r--r--src/video_core/renderer_vulkan/vk_present_manager.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/core/memory.h b/src/core/memory.h
index 7bf05e177..e325dd613 100644
--- a/src/core/memory.h
+++ b/src/core/memory.h
@@ -683,7 +683,8 @@ public:
683 } else { 683 } else {
684 this->m_memory.WriteBlockUnsafe(this->m_addr, this->data(), this->size_bytes()); 684 this->m_memory.WriteBlockUnsafe(this->m_addr, this->data(), this->size_bytes());
685 } 685 }
686 } else if constexpr ((FLAGS & GuestMemoryFlags::Safe) || (FLAGS & GuestMemoryFlags::Cached)) { 686 } else if constexpr ((FLAGS & GuestMemoryFlags::Safe) ||
687 (FLAGS & GuestMemoryFlags::Cached)) {
687 this->m_memory.InvalidateRegion(this->m_addr, this->size_bytes()); 688 this->m_memory.InvalidateRegion(this->m_addr, this->size_bytes());
688 } 689 }
689 } 690 }
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.cpp b/src/video_core/renderer_vulkan/vk_present_manager.cpp
index 5e7518d96..792ed9615 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_present_manager.cpp
@@ -329,7 +329,7 @@ void PresentManager::CopyToSwapchainImpl(Frame* frame) {
329 // to account for that. 329 // to account for that.
330 const bool is_suboptimal = swapchain.NeedsRecreation(); 330 const bool is_suboptimal = swapchain.NeedsRecreation();
331 const bool size_changed = 331 const bool size_changed =
332 swapchain.GetWidth() != frame->width || swapchain.GetHeight() != frame->height; 332 swapchain.GetWidth() < frame->width || swapchain.GetHeight() < frame->height;
333 if (is_suboptimal || size_changed) { 333 if (is_suboptimal || size_changed) {
334 RecreateSwapchain(frame); 334 RecreateSwapchain(frame);
335 } 335 }