aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan/vk_rasterizer.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2024-01-26 22:27:34 -0500
committerLiam <byteslice@airmail.cc>2024-01-31 11:27:20 -0500
commit453091f61100effba637950dc840da41d95be477 (patch)
tree0e1d46a7c5a354769d04b9bde090b5a9b1f02eb7 /src/video_core/renderer_vulkan/vk_rasterizer.cpp
parent80de01a5b4a7f57ec7850079fbd38fac76b9d08f (diff)
video_core: consistently account for resolution scaling when rendering
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_rasterizer.cpp')
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index e593d7225..aa0a027bb 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -788,18 +788,22 @@ std::optional<FramebufferTextureInfo> RasterizerVulkan::AccelerateDisplay(
return {};
}
std::scoped_lock lock{texture_cache.mutex};
- ImageView* const image_view =
+ const auto [image_view, scaled] =
texture_cache.TryFindFramebufferImageView(config, framebuffer_addr);
if (!image_view) {
return {};
}
query_cache.NotifySegment(false);
+ const auto& resolution = Settings::values.resolution_info;
+
FramebufferTextureInfo info{};
info.image = image_view->ImageHandle();
info.image_view = image_view->Handle(Shader::TextureType::Color2D);
info.width = image_view->size.width;
info.height = image_view->size.height;
+ info.scaled_width = scaled ? resolution.ScaleUp(info.width) : info.width;
+ info.scaled_height = scaled ? resolution.ScaleUp(info.height) : info.height;
return info;
}