From 3c2f825c8476595a30108b067b384e82c3301387 Mon Sep 17 00:00:00 2001 From: Wunkolo Date: Sat, 11 Nov 2023 11:07:10 -0800 Subject: [PATCH] config: Make `sample_count` a pow/log-2 index Sample counts increment in powers of two(1,2,4,8). Rather than storing a direct integer of the number of samples, just store the pow2 index. --- src/common/settings.h | 2 +- src/video_core/renderer_base.cpp | 2 +- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/settings.h b/src/common/settings.h index 0835dc445..2d3478580 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -475,7 +475,7 @@ struct Values { SwitchableSetting use_vsync_new{true, "use_vsync_new"}; Setting use_shader_jit{true, "use_shader_jit"}; SwitchableSetting resolution_factor{1, 0, 10, "resolution_factor"}; - SwitchableSetting sample_count{1, 0, 8, "sample_count"}; + SwitchableSetting sample_count{0, 0, 3, "sample_count"}; SwitchableSetting frame_limit{100, 0, 1000, "frame_limit"}; SwitchableSetting texture_filter{TextureFilter::None, "texture_filter"}; SwitchableSetting texture_sampling{TextureSampling::GameControlled, diff --git a/src/video_core/renderer_base.cpp b/src/video_core/renderer_base.cpp index dc4a15690..5096ff914 100644 --- a/src/video_core/renderer_base.cpp +++ b/src/video_core/renderer_base.cpp @@ -37,7 +37,7 @@ u8 RendererBase::GetSampleCount() const { return 1; } - return Settings::values.sample_count.GetValue(); + return static_cast(1u << Settings::values.sample_count.GetValue()); } void RendererBase::UpdateCurrentFramebufferLayout(bool is_portrait_mode) { diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 394368589..138560a64 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -766,7 +766,7 @@ bool RasterizerVulkan::AccelerateDisplay(const Pica::FramebufferConfig& config, src_params.stride = pixel_stride; src_params.is_tiled = false; src_params.pixel_format = VideoCore::PixelFormatFromGPUPixelFormat(config.color_format); - src_params.sample_count = Settings::values.sample_count.GetValue(); + src_params.sample_count = (1u << Settings::values.sample_count.GetValue()); src_params.UpdateParams(); const auto [src_surface_id, src_rect] =