aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan/present/layer.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2024-01-27 19:10:22 -0500
committerLiam <byteslice@airmail.cc>2024-02-09 09:20:53 -0500
commitba17a8c2b8fe3c315737898a14b2df22dd608914 (patch)
tree5c48687e626ff1a5dd1b993aa57d26c752812725 /src/video_core/renderer_vulkan/present/layer.cpp
parentce72818075947566fd09c2157c831d6ab71abba0 (diff)
gpu: dependency-inject scaling/antialiasing filter state for capture layers
Diffstat (limited to 'src/video_core/renderer_vulkan/present/layer.cpp')
-rw-r--r--src/video_core/renderer_vulkan/present/layer.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/video_core/renderer_vulkan/present/layer.cpp b/src/video_core/renderer_vulkan/present/layer.cpp
index 550955d4da..3847a9a130 100644
--- a/src/video_core/renderer_vulkan/present/layer.cpp
+++ b/src/video_core/renderer_vulkan/present/layer.cpp
@@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "video_core/present.h"
#include "video_core/renderer_vulkan/vk_rasterizer.h"
#include "common/settings.h"
@@ -48,12 +49,12 @@ VkFormat GetFormat(const Tegra::FramebufferConfig& framebuffer) {
Layer::Layer(const Device& device_, MemoryAllocator& memory_allocator_, Scheduler& scheduler_,
Tegra::MaxwellDeviceMemoryManager& device_memory_, size_t image_count_,
- VkExtent2D output_size, VkDescriptorSetLayout layout)
+ VkExtent2D output_size, VkDescriptorSetLayout layout, const PresentFilters& filters_)
: device(device_), memory_allocator(memory_allocator_), scheduler(scheduler_),
- device_memory(device_memory_), image_count(image_count_) {
+ device_memory(device_memory_), filters(filters_), image_count(image_count_) {
CreateDescriptorPool();
CreateDescriptorSets(layout);
- if (Settings::values.scaling_filter.GetValue() == Settings::ScalingFilter::Fsr) {
+ if (filters.get_scaling_filter() == Settings::ScalingFilter::Fsr) {
CreateFSR(output_size);
}
}
@@ -171,11 +172,11 @@ void Layer::RefreshResources(const Tegra::FramebufferConfig& framebuffer) {
}
void Layer::SetAntiAliasPass() {
- if (anti_alias && anti_alias_setting == Settings::values.anti_aliasing.GetValue()) {
+ if (anti_alias && anti_alias_setting == filters.get_anti_aliasing()) {
return;
}
- anti_alias_setting = Settings::values.anti_aliasing.GetValue();
+ anti_alias_setting = filters.get_anti_aliasing();
const VkExtent2D render_area{
.width = Settings::values.resolution_info.ScaleUp(raw_width),