Преглед изворни кода

Presentation: Fix turning FSR on and off in settings

Marshall Mohror пре 4 година
родитељ
комит
7506ac4118
1 измењених фајлова са 11 додато и 0 уклоњено
  1. 11 0
      src/video_core/renderer_vulkan/vk_blit_screen.cpp

+ 11 - 0
src/video_core/renderer_vulkan/vk_blit_screen.cpp

@@ -362,6 +362,17 @@ void VKBlitScreen::CreateDynamicResources() {
 }
 }
 
 
 void VKBlitScreen::RefreshResources(const Tegra::FramebufferConfig& framebuffer) {
 void VKBlitScreen::RefreshResources(const Tegra::FramebufferConfig& framebuffer) {
+    if (Settings::values.scaling_filter.GetValue() == Settings::ScalingFilter::Fsr) {
+        if (!fsr) {
+            const auto& layout = render_window.GetFramebufferLayout();
+            fsr = std::make_unique<FSR>(
+                device, memory_allocator, image_count,
+                VkExtent2D{.width = layout.screen.GetWidth(), .height = layout.screen.GetHeight()});
+        }
+    } else {
+        fsr.reset();
+    }
+
     if (framebuffer.width == raw_width && framebuffer.height == raw_height && !raw_images.empty()) {
     if (framebuffer.width == raw_width && framebuffer.height == raw_height && !raw_images.empty()) {
         return;
         return;
     }
     }