diff --git a/src/common/settings.cpp b/src/common/settings.cpp index a17e13bb9..02db52f5a 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -364,3 +364,9 @@ void SetConfiguringGlobal(bool is_global) { } } // namespace Settings + +#include "common/settings_setting.h" +#include "common/settings_enums.h" + +// generate the vtable for the linker +template class Settings::SwitchableSetting; diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index c8d14c78c..d32f228e2 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -114,7 +114,7 @@ void BufferCache

::RunGarbageCollector() { base_iterations = 32; break; case Settings::GCAggressiveness::Heavy: - base_ticks = std::max(1ULL, eviction_frames / 2); + base_ticks = std::max(1ULL, static_cast(eviction_frames / 2)); base_iterations = 64; break; case Settings::GCAggressiveness::Extreme: @@ -134,7 +134,7 @@ void BufferCache

::RunGarbageCollector() { LOG_WARNING(Render_Vulkan, "Buffer cache emergency GC: usage={}MB, limit={}MB", total_used_memory / 1_MiB, vram_limit_bytes / 1_MiB); } else if (aggressive_gc) { - ticks_to_destroy = std::max(1ULL, base_ticks / 2); + ticks_to_destroy = std::max(1ULL, static_cast(base_ticks / 2)); num_iterations = base_iterations * 2; } else { ticks_to_destroy = base_ticks; diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index f16b0c6fe..a121d7b7e 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -156,7 +156,7 @@ void TextureCache

::RunGarbageCollector() { base_iterations = 10; break; case Settings::GCAggressiveness::Heavy: - base_ticks = std::max(1ULL, eviction_frames / 2); + base_ticks = std::max(1ULL, static_cast(eviction_frames / 2)); base_iterations = 20; break; case Settings::GCAggressiveness::Extreme: @@ -171,7 +171,7 @@ void TextureCache

::RunGarbageCollector() { ticks_to_destroy = 1; num_iterations = base_iterations * 4; } else if (aggressive_mode) { - ticks_to_destroy = std::max(1ULL, base_ticks / 2); + ticks_to_destroy = std::max(1ULL, static_cast(base_ticks / 2)); num_iterations = base_iterations * 2; } else if (high_priority_mode) { ticks_to_destroy = base_ticks;