From 7bc82d87a2290c19173aa70fe604b181deba95f1 Mon Sep 17 00:00:00 2001 From: Ronny Stiftel Date: Wed, 25 Feb 2026 18:40:34 +0100 Subject: [PATCH] use eR8G8B8A8Unorm image format instead of eR16G16B16A16Sfloat when hdr is disabled --- src/video_core/renderer_vulkan/host_passes/fsr_pass.cpp | 8 ++++---- src/video_core/renderer_vulkan/host_passes/fsr_pass.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/video_core/renderer_vulkan/host_passes/fsr_pass.cpp b/src/video_core/renderer_vulkan/host_passes/fsr_pass.cpp index 8f58f3499f6..ec648ddf87f 100644 --- a/src/video_core/renderer_vulkan/host_passes/fsr_pass.cpp +++ b/src/video_core/renderer_vulkan/host_passes/fsr_pass.cpp @@ -161,7 +161,7 @@ vk::ImageView FsrPass::Render(vk::CommandBuffer cmdbuf, vk::ImageView input, } if (img.dirty) { - CreateImages(img); + CreateImages(img, hdr); } if (Config::getVkHostMarkersEnabled()) { @@ -404,12 +404,12 @@ void FsrPass::ResizeAndInvalidate(u32 width, u32 height) { } } -void FsrPass::CreateImages(Img& img) const { +void FsrPass::CreateImages(Img& img, bool hdr) const { img.dirty = false; vk::ImageCreateInfo image_create_info{ .imageType = vk::ImageType::e2D, - .format = vk::Format::eR16G16B16A16Sfloat, + .format = hdr ? vk::Format::eR16G16B16A16Sfloat : vk::Format::eR8G8B8A8Unorm, .extent{ .width = cur_size.width, .height = cur_size.height, @@ -434,7 +434,7 @@ void FsrPass::CreateImages(Img& img) const { vk::ImageViewCreateInfo image_view_create_info{ .image = img.intermediary_image, .viewType = vk::ImageViewType::e2D, - .format = vk::Format::eR16G16B16A16Sfloat, + .format = hdr ? vk::Format::eR16G16B16A16Sfloat : vk::Format::eR8G8B8A8Unorm, .subresourceRange{ .aspectMask = vk::ImageAspectFlagBits::eColor, .levelCount = 1, diff --git a/src/video_core/renderer_vulkan/host_passes/fsr_pass.h b/src/video_core/renderer_vulkan/host_passes/fsr_pass.h index 3d48d85be6b..f62aae76741 100644 --- a/src/video_core/renderer_vulkan/host_passes/fsr_pass.h +++ b/src/video_core/renderer_vulkan/host_passes/fsr_pass.h @@ -35,7 +35,7 @@ class FsrPass { }; void ResizeAndInvalidate(u32 width, u32 height); - void CreateImages(Img& img) const; + void CreateImages(Img& img, bool hdr) const; vk::Device device{}; u32 num_images{};