diff options
| author | Djihads80 <mahboubijoujou111@gmail.com> | 2026-10-30 19:34:38 +0100 |
|---|---|---|
| committer | Djihads80 <mahboubijoujou111@gmail.com> | 2026-10-30 19:37:31 +0100 |
| commit | 8a72dc011e0a30a6bddd1f2476a94927787e6e15 (patch) | |
| tree | 9a316df86ae1a2d7bdf4986af591ab8600754591 /src/video_core/renderer_vulkan/present/layer.cpp | |
| parent | ea33ad1865970ee731e5f74dbcc26ca472798afe (diff) | |
Added FSR 3 Upscaling and Frame Generation
Diffstat (limited to 'src/video_core/renderer_vulkan/present/layer.cpp')
| -rw-r--r-- | src/video_core/renderer_vulkan/present/layer.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/present/layer.cpp b/src/video_core/renderer_vulkan/present/layer.cpp index 8a11c356ff..fa24c02f6d 100644 --- a/src/video_core/renderer_vulkan/present/layer.cpp +++ b/src/video_core/renderer_vulkan/present/layer.cpp @@ -15,6 +15,7 @@ #include "common/settings.h" #include "video_core/framebuffer_config.h" #include "video_core/renderer_vulkan/present/fsr.h" +#include "video_core/renderer_vulkan/present/fsr3.h" #include "video_core/renderer_vulkan/present/sgsr.h" #include "video_core/renderer_vulkan/present/fxaa.h" #include "video_core/renderer_vulkan/present/layer.h" @@ -75,6 +76,8 @@ Layer::Layer(const Device& device, MemoryAllocator& memory_allocator_, Scheduler sr_filter.emplace<SGSR>(device, memory_allocator, image_count, output_size, false); } else if (filters.get_scaling_filter() == Settings::ScalingFilter::SgsrEdge) { sr_filter.emplace<SGSR>(device, memory_allocator, image_count, output_size, true); + } else if (filters.get_scaling_filter() == Settings::ScalingFilter::Fsr3) { + sr_filter.emplace<FSR3>(device, memory_allocator, image_count, output_size); } } @@ -146,6 +149,10 @@ void Layer::ConfigureDraw(const Device& device, PresentPushConstants* out_push_c source_image_view, render_extent, crop_rect); crop_rect = {0, 0, 1, 1}; } + } else if (auto* fsr3 = std::get_if<FSR3>(&sr_filter)) { + source_image_view = fsr3->Draw(device, scheduler, image_index, source_image, + source_image_view, render_extent, crop_rect); + crop_rect = {0, 0, 1, 1}; } SetMatrixData(device, *out_push_constants, layout); |
