From 1889602c7a0dc17850692594eae2e77e16ac13fc Mon Sep 17 00:00:00 2001 From: Duck912 <350528965+Duck912@users.noreply.github.com> Date: Tue, 3 Nov 2026 13:18:12 -0500 Subject: video_core: accept an empty Streamline device-extension list Streamline may report that DLSS needs no extra device extensions. The check required a non-empty list, so that result counted as "extensions unavailable": Streamline was stopped and FSR 3.1 used. Only require that every listed extension is supported. Found by CodeRabbit review. Assisted-by: Claude Opus 5.5 (implementation) Signed-off-by: Duck912 <350528965+Duck912@users.noreply.github.com> --- src/video_core/vulkan_common/vulkan_device.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 6309599877..2499f46f87 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -1153,10 +1153,9 @@ bool Device::GetSuitability(bool requires_swapchain) { // The extensions NVIDIA's DLSS asks for, where the device has them all. if (Streamline::WantsDevice()) { const std::vector wanted = Streamline::DeviceExtensions(); - const bool all = - !wanted.empty() && std::ranges::all_of(wanted, [&](const std::string& name) { - return supported_extensions.contains(name); - }); + // Streamline may ask for no extensions at all. + const bool all = std::ranges::all_of( + wanted, [&](const std::string& name) { return supported_extensions.contains(name); }); std::string names; for (const std::string& name : wanted) { if (all) { @@ -1166,7 +1165,7 @@ bool Device::GetSuitability(bool requires_swapchain) { } streamline_extensions = all; LOG_INFO(Render_Vulkan, "NVIDIA DLSS device extensions: {} ({})", - all ? "enabled" : "unavailable", names); + all ? "enabled" : "unavailable", names.empty() ? "none" : names); } #endif -- cgit v1.2.3