summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Liam2022-10-30 15:04:16 -0400
committerGravatar Liam2022-10-30 15:04:16 -0400
commit808e22984f303789a520a1838efd236069159057 (patch)
treedee2077177e95ca6429515f23809bc4f18b7e0ff
parentMerge pull request #9151 from liamwhite/dram-size (diff)
downloadyuzu-808e22984f303789a520a1838efd236069159057.tar.gz
yuzu-808e22984f303789a520a1838efd236069159057.tar.xz
yuzu-808e22984f303789a520a1838efd236069159057.zip
vk_blit_screen: recreate swapchain images on guest format change
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.cpp6
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.h5
2 files changed, 10 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
index cb7fa2078..89426121f 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
@@ -480,11 +480,15 @@ void BlitScreen::RefreshResources(const Tegra::FramebufferConfig& framebuffer) {
480 fsr.reset(); 480 fsr.reset();
481 } 481 }
482 482
483 if (framebuffer.width == raw_width && framebuffer.height == raw_height && !raw_images.empty()) { 483 if (framebuffer.width == raw_width && framebuffer.height == raw_height &&
484 framebuffer.pixel_format == pixel_format && !raw_images.empty()) {
484 return; 485 return;
485 } 486 }
487
486 raw_width = framebuffer.width; 488 raw_width = framebuffer.width;
487 raw_height = framebuffer.height; 489 raw_height = framebuffer.height;
490 pixel_format = framebuffer.pixel_format;
491
488 ReleaseRawImages(); 492 ReleaseRawImages();
489 493
490 CreateStagingBuffer(framebuffer); 494 CreateStagingBuffer(framebuffer);
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.h b/src/video_core/renderer_vulkan/vk_blit_screen.h
index 29e2ea925..a2b73ec54 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.h
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.h
@@ -28,6 +28,10 @@ namespace VideoCore {
28class RasterizerInterface; 28class RasterizerInterface;
29} 29}
30 30
31namespace Service::android {
32enum class PixelFormat : u32;
33}
34
31namespace Vulkan { 35namespace Vulkan {
32 36
33struct ScreenInfo; 37struct ScreenInfo;
@@ -156,6 +160,7 @@ private:
156 160
157 u32 raw_width = 0; 161 u32 raw_width = 0;
158 u32 raw_height = 0; 162 u32 raw_height = 0;
163 Service::android::PixelFormat pixel_format{};
159 164
160 std::unique_ptr<FSR> fsr; 165 std::unique_ptr<FSR> fsr;
161}; 166};