Vulkan: Only recreate swapchain if the frame is bigger than the swap image.
This commit is contained in:
parent
d07397931a
commit
737e6e531c
|
@ -683,7 +683,8 @@ public:
|
||||||
} else {
|
} else {
|
||||||
this->m_memory.WriteBlockUnsafe(this->m_addr, this->data(), this->size_bytes());
|
this->m_memory.WriteBlockUnsafe(this->m_addr, this->data(), this->size_bytes());
|
||||||
}
|
}
|
||||||
} else if constexpr ((FLAGS & GuestMemoryFlags::Safe) || (FLAGS & GuestMemoryFlags::Cached)) {
|
} else if constexpr ((FLAGS & GuestMemoryFlags::Safe) ||
|
||||||
|
(FLAGS & GuestMemoryFlags::Cached)) {
|
||||||
this->m_memory.InvalidateRegion(this->m_addr, this->size_bytes());
|
this->m_memory.InvalidateRegion(this->m_addr, this->size_bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -329,7 +329,7 @@ void PresentManager::CopyToSwapchainImpl(Frame* frame) {
|
||||||
// to account for that.
|
// to account for that.
|
||||||
const bool is_suboptimal = swapchain.NeedsRecreation();
|
const bool is_suboptimal = swapchain.NeedsRecreation();
|
||||||
const bool size_changed =
|
const bool size_changed =
|
||||||
swapchain.GetWidth() != frame->width || swapchain.GetHeight() != frame->height;
|
swapchain.GetWidth() < frame->width || swapchain.GetHeight() < frame->height;
|
||||||
if (is_suboptimal || size_changed) {
|
if (is_suboptimal || size_changed) {
|
||||||
RecreateSwapchain(frame);
|
RecreateSwapchain(frame);
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue