Просмотр исходного кода

Presentation: Fix turning FSR on and off in settings

Marshall Mohror 4 лет назад
Родитель
Сommit
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) {
+    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()) {
         return;
     }