From c3a5f5930f5598cba8b44a6c8e15a34e4d4dec33 Mon Sep 17 00:00:00 2001
From: crueter <swurl@swurl.xyz>
Date: Wed, 9 Apr 2025 19:11:22 -0400
Subject: [PATCH] Update fmt to allow for v11

Signed-off-by: swurl <swurl@swurl.xyz>
---
 CMakeLists.txt                                   |  2 +-
 src/common/common_precompiled_headers.h          |  2 +-
 src/common/dynamic_library.cpp                   |  2 +-
 src/common/hex_util.h                            |  2 +-
 src/common/logging/backend.cpp                   |  2 +-
 src/common/logging/formatter.h                   |  4 ++--
 src/common/logging/log.h                         |  2 +-
 src/common/nvidia_flags.cpp                      |  2 +-
 src/common/scm_rev.cpp.in                        |  2 +-
 src/common/typed_address.h                       |  8 ++++----
 src/common/uuid.cpp                              |  2 +-
 src/core/arm/dynarmic/dynarmic_cp15.cpp          |  4 ++--
 src/core/crypto/key_manager.h                    |  2 +-
 src/core/file_sys/bis_factory.cpp                |  2 +-
 src/core/file_sys/fs_save_data_types.h           |  2 +-
 src/core/file_sys/system_archive/ng_word.cpp     |  2 +-
 src/core/hle/service/acc/profile_manager.cpp     |  2 +-
 src/core/hle/service/ldn/ldn_types.h             |  2 +-
 src/core/hle/service/nfc/common/device.cpp       |  2 +-
 .../hle/service/nvdrv/devices/nvhost_ctrl.cpp    |  2 +-
 src/core/hle/service/nvdrv/nvdrv.cpp             |  2 +-
 src/core/hle/service/psc/time/common.h           | 10 +++++-----
 src/core/hle/service/service.cpp                 |  2 +-
 src/core/hle/service/sockets/bsd.cpp             |  2 +-
 src/core/perf_stats.cpp                          |  2 +-
 src/core/reporter.cpp                            |  2 +-
 src/hid_core/frontend/emulated_devices.cpp       |  2 +-
 src/input_common/drivers/camera.cpp              |  2 +-
 src/input_common/drivers/gc_adapter.cpp          |  2 +-
 src/input_common/drivers/joycon.cpp              |  2 +-
 src/input_common/drivers/mouse.cpp               |  2 +-
 src/input_common/drivers/tas_input.cpp           |  2 +-
 src/input_common/drivers/udp_client.cpp          |  2 +-
 src/input_common/drivers/virtual_amiibo.cpp      |  2 +-
 .../backend/glasm/glasm_emit_context.h           |  2 +-
 .../backend/glasm/reg_alloc.cpp                  |  2 +-
 src/shader_recompiler/backend/glasm/reg_alloc.h  | 16 ++++++++--------
 .../backend/glsl/glsl_emit_context.h             |  2 +-
 src/shader_recompiler/backend/glsl/var_alloc.cpp |  2 +-
 .../backend/spirv/spirv_emit_context.cpp         |  2 +-
 src/shader_recompiler/frontend/ir/attribute.cpp  |  2 +-
 src/shader_recompiler/frontend/ir/attribute.h    |  4 ++--
 src/shader_recompiler/frontend/ir/condition.cpp  |  2 +-
 src/shader_recompiler/frontend/ir/condition.h    |  4 ++--
 src/shader_recompiler/frontend/ir/flow_test.cpp  |  2 +-
 src/shader_recompiler/frontend/ir/flow_test.h    |  4 ++--
 src/shader_recompiler/frontend/ir/opcodes.h      |  4 ++--
 src/shader_recompiler/frontend/ir/pred.h         |  4 ++--
 src/shader_recompiler/frontend/ir/program.cpp    |  2 +-
 src/shader_recompiler/frontend/ir/reg.h          |  4 ++--
 src/shader_recompiler/frontend/ir/type.h         |  4 ++--
 .../frontend/maxwell/control_flow.cpp            |  2 +-
 .../frontend/maxwell/location.h                  |  4 ++--
 src/shader_recompiler/frontend/maxwell/opcodes.h |  4 ++--
 .../frontend/maxwell/structured_control_flow.cpp |  2 +-
 .../renderer_vulkan/pipeline_statistics.cpp      |  2 +-
 .../renderer_vulkan/renderer_vulkan.cpp          |  2 +-
 .../renderer_vulkan/vk_staging_buffer_pool.cpp   |  2 +-
 src/video_core/texture_cache/formatter.h         |  8 ++++----
 src/video_core/texture_cache/image_info.cpp      |  2 +-
 .../vulkan_common/nsight_aftermath_tracker.cpp   |  2 +-
 src/web_service/verify_user_jwt.h                |  2 +-
 src/web_service/web_backend.cpp                  |  2 +-
 src/yuzu/about_dialog.cpp                        |  2 +-
 src/yuzu/applets/qt_amiibo_settings.cpp          |  2 +-
 src/yuzu/compatibility_list.cpp                  |  2 +-
 src/yuzu/configuration/configure_per_game.cpp    |  2 +-
 src/yuzu/configuration/configure_ringcon.cpp     |  2 +-
 src/yuzu/configuration/input_profiles.cpp        |  2 +-
 src/yuzu/debugger/wait_tree.cpp                  |  2 +-
 src/yuzu/game_list.cpp                           |  2 +-
 src/yuzu/main.cpp                                |  2 +-
 src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp   |  2 +-
 src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp |  2 +-
 src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp   |  2 +-
 vcpkg.json                                       | 10 +++-------
 76 files changed, 106 insertions(+), 110 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6f84a01364..04e315ad99 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -299,7 +299,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
 
 # Enforce the search mode of non-required packages for better and shorter failure messages
 find_package(enet 1.3 MODULE)
-find_package(fmt 9 REQUIRED)
+find_package(fmt 11 REQUIRED)
 find_package(LLVM 17.0.2 MODULE COMPONENTS Demangle)
 find_package(lz4 REQUIRED)
 find_package(nlohmann_json 3.8 REQUIRED)
diff --git a/src/common/common_precompiled_headers.h b/src/common/common_precompiled_headers.h
index be7e5b5f94..b7e719dfd1 100644
--- a/src/common/common_precompiled_headers.h
+++ b/src/common/common_precompiled_headers.h
@@ -8,7 +8,7 @@
 #include <chrono>
 #include <memory>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/assert.h"
 #include "common/common_types.h"
diff --git a/src/common/dynamic_library.cpp b/src/common/dynamic_library.cpp
index 4fabe7e522..566fbed631 100644
--- a/src/common/dynamic_library.cpp
+++ b/src/common/dynamic_library.cpp
@@ -4,7 +4,7 @@
 #include <string>
 #include <utility>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/dynamic_library.h"
 
diff --git a/src/common/hex_util.h b/src/common/hex_util.h
index 618f531522..2f5417143c 100644
--- a/src/common/hex_util.h
+++ b/src/common/hex_util.h
@@ -8,7 +8,7 @@
 #include <cstddef>
 #include <string>
 #include <vector>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/assert.h"
 #include "common/common_types.h"
 
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index f9f7df74e4..291847fcf8 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -6,7 +6,7 @@
 #include <climits>
 #include <thread>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #ifdef _WIN32
 #include <windows.h> // For OutputDebugStringW
diff --git a/src/common/logging/formatter.h b/src/common/logging/formatter.h
index 88e55505de..07efba9c27 100644
--- a/src/common/logging/formatter.h
+++ b/src/common/logging/formatter.h
@@ -5,7 +5,7 @@
 
 #include <type_traits>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 // adapted from https://github.com/fmtlib/fmt/issues/2704
 // a generic formatter for enum classes
@@ -14,7 +14,7 @@ template <typename T>
 struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>>
     : formatter<std::underlying_type_t<T>> {
     template <typename FormatContext>
-    auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out()) {
+    auto format(const T& value, FormatContext& ctx) const -> decltype(ctx.out()) {
         return fmt::formatter<std::underlying_type_t<T>>::format(
             static_cast<std::underlying_type_t<T>>(value), ctx);
     }
diff --git a/src/common/logging/log.h b/src/common/logging/log.h
index 79f710265a..6da9e5231a 100644
--- a/src/common/logging/log.h
+++ b/src/common/logging/log.h
@@ -6,7 +6,7 @@
 #include <algorithm>
 #include <string_view>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/logging/formatter.h"
 #include "common/logging/types.h"
diff --git a/src/common/nvidia_flags.cpp b/src/common/nvidia_flags.cpp
index fa37477821..5e44c0c6ca 100644
--- a/src/common/nvidia_flags.cpp
+++ b/src/common/nvidia_flags.cpp
@@ -3,7 +3,7 @@
 
 #include <cstdlib>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/fs.h"
 #include "common/fs/path_util.h"
diff --git a/src/common/scm_rev.cpp.in b/src/common/scm_rev.cpp.in
index 9e4699be18..ba741c5668 100644
--- a/src/common/scm_rev.cpp.in
+++ b/src/common/scm_rev.cpp.in
@@ -5,7 +5,7 @@
 
 #include <fstream>
 #include <string>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #define GIT_REV "@GIT_REV@"
 #define GIT_BRANCH "@GIT_BRANCH@"
diff --git a/src/common/typed_address.h b/src/common/typed_address.h
index d5e743583d..4df48a99fb 100644
--- a/src/common/typed_address.h
+++ b/src/common/typed_address.h
@@ -5,7 +5,7 @@
 
 #include <compare>
 #include <type_traits>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 
@@ -262,7 +262,7 @@ struct fmt::formatter<Common::PhysicalAddress> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Common::PhysicalAddress& addr, FormatContext& ctx) {
+    auto format(const Common::PhysicalAddress& addr, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
     }
 };
@@ -273,7 +273,7 @@ struct fmt::formatter<Common::ProcessAddress> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Common::ProcessAddress& addr, FormatContext& ctx) {
+    auto format(const Common::ProcessAddress& addr, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
     }
 };
@@ -284,7 +284,7 @@ struct fmt::formatter<Common::VirtualAddress> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Common::VirtualAddress& addr, FormatContext& ctx) {
+    auto format(const Common::VirtualAddress& addr, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:#x}", static_cast<u64>(addr.GetValue()));
     }
 };
diff --git a/src/common/uuid.cpp b/src/common/uuid.cpp
index 035df7fe01..8f0dba452c 100644
--- a/src/common/uuid.cpp
+++ b/src/common/uuid.cpp
@@ -5,7 +5,7 @@
 #include <optional>
 #include <random>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/assert.h"
 #include "common/tiny_mt.h"
diff --git a/src/core/arm/dynarmic/dynarmic_cp15.cpp b/src/core/arm/dynarmic/dynarmic_cp15.cpp
index f3eee0d42a..c663adda19 100644
--- a/src/core/arm/dynarmic/dynarmic_cp15.cpp
+++ b/src/core/arm/dynarmic/dynarmic_cp15.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: 2017 Citra Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/logging/log.h"
 #include "core/arm/dynarmic/arm_dynarmic_32.h"
 #include "core/arm/dynarmic/dynarmic_cp15.h"
@@ -22,7 +22,7 @@ struct fmt::formatter<Dynarmic::A32::CoprocReg> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) {
+    auto format(const Dynarmic::A32::CoprocReg& reg, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "cp{}", static_cast<size_t>(reg));
     }
 };
diff --git a/src/core/crypto/key_manager.h b/src/core/crypto/key_manager.h
index 2250eccec1..7de21f8a45 100644
--- a/src/core/crypto/key_manager.h
+++ b/src/core/crypto/key_manager.h
@@ -11,7 +11,7 @@
 #include <string>
 
 #include <variant>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/common_funcs.h"
 #include "common/common_types.h"
 #include "core/crypto/partition_data_manager.h"
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
index db667438e3..6326b70492 100644
--- a/src/core/file_sys/bis_factory.cpp
+++ b/src/core/file_sys/bis_factory.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/fs/path_util.h"
 #include "core/file_sys/bis_factory.h"
 #include "core/file_sys/registered_cache.h"
diff --git a/src/core/file_sys/fs_save_data_types.h b/src/core/file_sys/fs_save_data_types.h
index 493dba34fb..fbb1b5421f 100644
--- a/src/core/file_sys/fs_save_data_types.h
+++ b/src/core/file_sys/fs_save_data_types.h
@@ -4,7 +4,7 @@
 #pragma once
 
 #include <array>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/common_funcs.h"
 #include "common/common_types.h"
 
diff --git a/src/core/file_sys/system_archive/ng_word.cpp b/src/core/file_sys/system_archive/ng_word.cpp
index 1fa67877dd..a647e19eae 100644
--- a/src/core/file_sys/system_archive/ng_word.cpp
+++ b/src/core/file_sys/system_archive/ng_word.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/common_types.h"
 #include "core/file_sys/system_archive/ng_word.h"
 #include "core/file_sys/vfs/vfs_vector.h"
diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp
index ff68dc15b5..39fed63f9d 100644
--- a/src/core/hle/service/acc/profile_manager.cpp
+++ b/src/core/hle/service/acc/profile_manager.cpp
@@ -4,7 +4,7 @@
 #include <cstring>
 #include <random>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/file.h"
 #include "common/fs/fs.h"
diff --git a/src/core/hle/service/ldn/ldn_types.h b/src/core/hle/service/ldn/ldn_types.h
index 6198aa07b2..fa0cdcbfa7 100644
--- a/src/core/hle/service/ldn/ldn_types.h
+++ b/src/core/hle/service/ldn/ldn_types.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_funcs.h"
 #include "common/common_types.h"
diff --git a/src/core/hle/service/nfc/common/device.cpp b/src/core/hle/service/nfc/common/device.cpp
index 28e3000bd9..96c45b1b51 100644
--- a/src/core/hle/service/nfc/common/device.cpp
+++ b/src/core/hle/service/nfc/common/device.cpp
@@ -14,7 +14,7 @@
 #pragma warning(pop)
 #endif
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/file.h"
 #include "common/fs/fs.h"
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
index 0265d55f27..7a035cd2c0 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
@@ -6,7 +6,7 @@
 #include <cstdlib>
 #include <cstring>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/assert.h"
 #include "common/logging/log.h"
 #include "common/scope_exit.h"
diff --git a/src/core/hle/service/nvdrv/nvdrv.cpp b/src/core/hle/service/nvdrv/nvdrv.cpp
index 03eb507b98..8c618ca258 100644
--- a/src/core/hle/service/nvdrv/nvdrv.cpp
+++ b/src/core/hle/service/nvdrv/nvdrv.cpp
@@ -4,7 +4,7 @@
 
 #include <utility>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "core/core.h"
 #include "core/hle/kernel/k_event.h"
 #include "core/hle/service/ipc_helpers.h"
diff --git a/src/core/hle/service/psc/time/common.h b/src/core/hle/service/psc/time/common.h
index 3e13144a0d..a03322d347 100644
--- a/src/core/hle/service/psc/time/common.h
+++ b/src/core/hle/service/psc/time/common.h
@@ -5,7 +5,7 @@
 
 #include <array>
 #include <chrono>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "common/intrusive_list.h"
@@ -167,7 +167,7 @@ constexpr inline Result GetSpanBetweenTimePoints(s64* out_seconds, const SteadyC
 template <>
 struct fmt::formatter<Service::PSC::Time::TimeType> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
-    auto format(Service::PSC::Time::TimeType type, FormatContext& ctx) {
+    auto format(Service::PSC::Time::TimeType type, FormatContext& ctx) const {
         const string_view name = [type] {
             using Service::PSC::Time::TimeType;
             switch (type) {
@@ -228,7 +228,7 @@ template <>
 struct fmt::formatter<Service::PSC::Time::LocationName> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
     auto format(const Service::PSC::Time::LocationName& name, FormatContext& ctx) const {
-        return formatter<string_view>::format(name.data(), ctx);
+        return fmt::formatter<string_view>::format(name.data(), ctx);
     }
 };
 
@@ -236,7 +236,7 @@ template <>
 struct fmt::formatter<Service::PSC::Time::RuleVersion> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
     auto format(const Service::PSC::Time::RuleVersion& version, FormatContext& ctx) const {
-        return formatter<string_view>::format(version.data(), ctx);
+        return fmt::formatter<string_view>::format(version.data(), ctx);
     }
 };
 
@@ -270,4 +270,4 @@ struct fmt::formatter<Service::PSC::Time::ContinuousAdjustmentTimePoint>
                               time_point.rtc_offset, time_point.diff_scale, time_point.shift_amount,
                               time_point.lower, time_point.upper);
     }
-};
\ No newline at end of file
+};
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index 68527ac8ef..e5779de2fd 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/assert.h"
 #include "common/logging/log.h"
 #include "common/settings.h"
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp
index dd652ca421..ef03203349 100644
--- a/src/core/hle/service/sockets/bsd.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -6,7 +6,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/microprofile.h"
 #include "common/socket_types.h"
diff --git a/src/core/perf_stats.cpp b/src/core/perf_stats.cpp
index 1231c0dc87..f538d83b16 100644
--- a/src/core/perf_stats.cpp
+++ b/src/core/perf_stats.cpp
@@ -9,7 +9,7 @@
 #include <sstream>
 #include <thread>
 #include <fmt/chrono.h>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/fs/file.h"
 #include "common/fs/fs.h"
 #include "common/fs/path_util.h"
diff --git a/src/core/reporter.cpp b/src/core/reporter.cpp
index 1a0138697b..f70350e739 100644
--- a/src/core/reporter.cpp
+++ b/src/core/reporter.cpp
@@ -6,7 +6,7 @@
 #include <iomanip>
 
 #include <fmt/chrono.h>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include <nlohmann/json.hpp>
 
 #include "common/fs/file.h"
diff --git a/src/hid_core/frontend/emulated_devices.cpp b/src/hid_core/frontend/emulated_devices.cpp
index a827aa9b73..f0b543c54c 100644
--- a/src/hid_core/frontend/emulated_devices.cpp
+++ b/src/hid_core/frontend/emulated_devices.cpp
@@ -2,7 +2,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 #include <algorithm>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "hid_core/frontend/emulated_devices.h"
 #include "hid_core/frontend/input_converter.h"
diff --git a/src/input_common/drivers/camera.cpp b/src/input_common/drivers/camera.cpp
index 04970f635d..11ca756406 100644
--- a/src/input_common/drivers/camera.cpp
+++ b/src/input_common/drivers/camera.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/param_package.h"
 #include "input_common/drivers/camera.h"
diff --git a/src/input_common/drivers/gc_adapter.cpp b/src/input_common/drivers/gc_adapter.cpp
index f1184a5fa0..690779c6aa 100644
--- a/src/input_common/drivers/gc_adapter.cpp
+++ b/src/input_common/drivers/gc_adapter.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: 2014 Dolphin Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include <libusb.h>
 
 #include "common/logging/log.h"
diff --git a/src/input_common/drivers/joycon.cpp b/src/input_common/drivers/joycon.cpp
index 72d2951f3d..43f3d6078e 100644
--- a/src/input_common/drivers/joycon.cpp
+++ b/src/input_common/drivers/joycon.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/param_package.h"
 #include "common/polyfill_ranges.h"
diff --git a/src/input_common/drivers/mouse.cpp b/src/input_common/drivers/mouse.cpp
index 9fb824bafe..4af2dd36f5 100644
--- a/src/input_common/drivers/mouse.cpp
+++ b/src/input_common/drivers/mouse.cpp
@@ -2,7 +2,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 #include <thread>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include <math.h>
 
 #include "common/param_package.h"
diff --git a/src/input_common/drivers/tas_input.cpp b/src/input_common/drivers/tas_input.cpp
index f3cb14c56f..528d60b130 100644
--- a/src/input_common/drivers/tas_input.cpp
+++ b/src/input_common/drivers/tas_input.cpp
@@ -3,7 +3,7 @@
 
 #include <cstring>
 #include <sstream>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/file.h"
 #include "common/fs/fs_types.h"
diff --git a/src/input_common/drivers/udp_client.cpp b/src/input_common/drivers/udp_client.cpp
index efeea1ac33..d483cd3490 100644
--- a/src/input_common/drivers/udp_client.cpp
+++ b/src/input_common/drivers/udp_client.cpp
@@ -3,7 +3,7 @@
 
 #include <random>
 #include <boost/asio.hpp>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/logging/log.h"
 #include "common/param_package.h"
diff --git a/src/input_common/drivers/virtual_amiibo.cpp b/src/input_common/drivers/virtual_amiibo.cpp
index 180eb53ef1..a30b10b7b3 100644
--- a/src/input_common/drivers/virtual_amiibo.cpp
+++ b/src/input_common/drivers/virtual_amiibo.cpp
@@ -2,7 +2,7 @@
 // SPDX-License-Identifier: GPL-3.0-or-later
 
 #include <cstring>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/file.h"
 #include "common/fs/fs.h"
diff --git a/src/shader_recompiler/backend/glasm/glasm_emit_context.h b/src/shader_recompiler/backend/glasm/glasm_emit_context.h
index a81d64a9e4..4b8951ddb4 100644
--- a/src/shader_recompiler/backend/glasm/glasm_emit_context.h
+++ b/src/shader_recompiler/backend/glasm/glasm_emit_context.h
@@ -7,7 +7,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/backend/glasm/reg_alloc.h"
 #include "shader_recompiler/stage.h"
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.cpp b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
index 781803e550..3919d63268 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.cpp
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/backend/glasm/reg_alloc.h"
 #include "shader_recompiler/exception.h"
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.h b/src/shader_recompiler/backend/glasm/reg_alloc.h
index bd6e2d929c..9cd0091326 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.h
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.h
@@ -5,7 +5,7 @@
 
 #include <bitset>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/bit_cast.h"
 #include "common/bit_field.h"
@@ -184,7 +184,7 @@ struct fmt::formatter<Shader::Backend::GLASM::Id> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(Shader::Backend::GLASM::Id id, FormatContext& ctx) {
+    auto format(Shader::Backend::GLASM::Id id, FormatContext& ctx) const {
         return Shader::Backend::GLASM::FormatTo<true>(ctx, id);
     }
 };
@@ -195,7 +195,7 @@ struct fmt::formatter<Shader::Backend::GLASM::Register> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::Register& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::Register& value, FormatContext& ctx) const {
         if (value.type != Shader::Backend::GLASM::Type::Register) {
             throw Shader::InvalidArgument("Register value type is not register");
         }
@@ -209,7 +209,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarRegister> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarRegister& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarRegister& value, FormatContext& ctx) const {
         if (value.type != Shader::Backend::GLASM::Type::Register) {
             throw Shader::InvalidArgument("Register value type is not register");
         }
@@ -223,7 +223,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarU32> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarU32& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
@@ -244,7 +244,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarS32> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarS32& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
@@ -265,7 +265,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF32> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarF32& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
@@ -286,7 +286,7 @@ struct fmt::formatter<Shader::Backend::GLASM::ScalarF64> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) {
+    auto format(const Shader::Backend::GLASM::ScalarF64& value, FormatContext& ctx) const {
         switch (value.type) {
         case Shader::Backend::GLASM::Type::Void:
             break;
diff --git a/src/shader_recompiler/backend/glsl/glsl_emit_context.h b/src/shader_recompiler/backend/glsl/glsl_emit_context.h
index 7587f7bab3..331c0588e3 100644
--- a/src/shader_recompiler/backend/glsl/glsl_emit_context.h
+++ b/src/shader_recompiler/backend/glsl/glsl_emit_context.h
@@ -7,7 +7,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/backend/glsl/var_alloc.h"
 #include "shader_recompiler/stage.h"
diff --git a/src/shader_recompiler/backend/glsl/var_alloc.cpp b/src/shader_recompiler/backend/glsl/var_alloc.cpp
index 8b7da539ae..ff6e2d5d5b 100644
--- a/src/shader_recompiler/backend/glsl/var_alloc.cpp
+++ b/src/shader_recompiler/backend/glsl/var_alloc.cpp
@@ -4,7 +4,7 @@
 #include <string>
 #include <string_view>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/backend/glsl/var_alloc.h"
 #include "shader_recompiler/exception.h"
diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
index a27f2f73ac..388ddce2c8 100644
--- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
+++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
@@ -8,7 +8,7 @@
 
 #include <boost/container/static_vector.hpp>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "common/div_ceil.h"
diff --git a/src/shader_recompiler/frontend/ir/attribute.cpp b/src/shader_recompiler/frontend/ir/attribute.cpp
index 1bf9db9353..97f253602d 100644
--- a/src/shader_recompiler/frontend/ir/attribute.cpp
+++ b/src/shader_recompiler/frontend/ir/attribute.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/exception.h"
 #include "shader_recompiler/frontend/ir/attribute.h"
diff --git a/src/shader_recompiler/frontend/ir/attribute.h b/src/shader_recompiler/frontend/ir/attribute.h
index 5f039b6f65..7a06713803 100644
--- a/src/shader_recompiler/frontend/ir/attribute.h
+++ b/src/shader_recompiler/frontend/ir/attribute.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 
@@ -250,7 +250,7 @@ struct fmt::formatter<Shader::IR::Attribute> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Attribute& attribute, FormatContext& ctx) {
+    auto format(const Shader::IR::Attribute& attribute, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(attribute));
     }
 };
diff --git a/src/shader_recompiler/frontend/ir/condition.cpp b/src/shader_recompiler/frontend/ir/condition.cpp
index fb6b141d34..4db0c164f0 100644
--- a/src/shader_recompiler/frontend/ir/condition.cpp
+++ b/src/shader_recompiler/frontend/ir/condition.cpp
@@ -3,7 +3,7 @@
 
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/frontend/ir/condition.h"
 
diff --git a/src/shader_recompiler/frontend/ir/condition.h b/src/shader_recompiler/frontend/ir/condition.h
index 1cad46b9b9..89ac42dbe0 100644
--- a/src/shader_recompiler/frontend/ir/condition.h
+++ b/src/shader_recompiler/frontend/ir/condition.h
@@ -5,7 +5,7 @@
 
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "shader_recompiler/frontend/ir/flow_test.h"
@@ -52,7 +52,7 @@ struct fmt::formatter<Shader::IR::Condition> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Condition& cond, FormatContext& ctx) {
+    auto format(const Shader::IR::Condition& cond, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(cond));
     }
 };
diff --git a/src/shader_recompiler/frontend/ir/flow_test.cpp b/src/shader_recompiler/frontend/ir/flow_test.cpp
index a859efddeb..c2dbe2690f 100644
--- a/src/shader_recompiler/frontend/ir/flow_test.cpp
+++ b/src/shader_recompiler/frontend/ir/flow_test.cpp
@@ -3,7 +3,7 @@
 
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/frontend/ir/flow_test.h"
 
diff --git a/src/shader_recompiler/frontend/ir/flow_test.h b/src/shader_recompiler/frontend/ir/flow_test.h
index 88f7c9e82e..014ae6b659 100644
--- a/src/shader_recompiler/frontend/ir/flow_test.h
+++ b/src/shader_recompiler/frontend/ir/flow_test.h
@@ -4,7 +4,7 @@
 #pragma once
 
 #include <string>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 
@@ -55,7 +55,7 @@ struct fmt::formatter<Shader::IR::FlowTest> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::FlowTest& flow_test, FormatContext& ctx) {
+    auto format(const Shader::IR::FlowTest& flow_test, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(flow_test));
     }
 };
diff --git a/src/shader_recompiler/frontend/ir/opcodes.h b/src/shader_recompiler/frontend/ir/opcodes.h
index e300714f3a..3376daf128 100644
--- a/src/shader_recompiler/frontend/ir/opcodes.h
+++ b/src/shader_recompiler/frontend/ir/opcodes.h
@@ -6,7 +6,7 @@
 #include <algorithm>
 #include <array>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/polyfill_ranges.h"
 #include "shader_recompiler/frontend/ir/type.h"
@@ -103,7 +103,7 @@ struct fmt::formatter<Shader::IR::Opcode> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Opcode& op, FormatContext& ctx) {
+    auto format(const Shader::IR::Opcode& op, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", Shader::IR::NameOf(op));
     }
 };
diff --git a/src/shader_recompiler/frontend/ir/pred.h b/src/shader_recompiler/frontend/ir/pred.h
index a77c1e2a7a..4c9e8b6bdf 100644
--- a/src/shader_recompiler/frontend/ir/pred.h
+++ b/src/shader_recompiler/frontend/ir/pred.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 namespace Shader::IR {
 
@@ -33,7 +33,7 @@ struct fmt::formatter<Shader::IR::Pred> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Pred& pred, FormatContext& ctx) {
+    auto format(const Shader::IR::Pred& pred, FormatContext& ctx) const {
         if (pred == Shader::IR::Pred::PT) {
             return fmt::format_to(ctx.out(), "PT");
         } else {
diff --git a/src/shader_recompiler/frontend/ir/program.cpp b/src/shader_recompiler/frontend/ir/program.cpp
index bda56ff461..39ff92ce75 100644
--- a/src/shader_recompiler/frontend/ir/program.cpp
+++ b/src/shader_recompiler/frontend/ir/program.cpp
@@ -4,7 +4,7 @@
 #include <map>
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "shader_recompiler/frontend/ir/basic_block.h"
 #include "shader_recompiler/frontend/ir/program.h"
diff --git a/src/shader_recompiler/frontend/ir/reg.h b/src/shader_recompiler/frontend/ir/reg.h
index f7cb716a97..97c97420b8 100644
--- a/src/shader_recompiler/frontend/ir/reg.h
+++ b/src/shader_recompiler/frontend/ir/reg.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "shader_recompiler/exception.h"
@@ -319,7 +319,7 @@ struct fmt::formatter<Shader::IR::Reg> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Reg& reg, FormatContext& ctx) {
+    auto format(const Shader::IR::Reg& reg, FormatContext& ctx) const {
         if (reg == Shader::IR::Reg::RZ) {
             return fmt::format_to(ctx.out(), "RZ");
         } else if (static_cast<int>(reg) >= 0 && static_cast<int>(reg) < 255) {
diff --git a/src/shader_recompiler/frontend/ir/type.h b/src/shader_recompiler/frontend/ir/type.h
index 04c8c4ddbe..91fabdcf3e 100644
--- a/src/shader_recompiler/frontend/ir/type.h
+++ b/src/shader_recompiler/frontend/ir/type.h
@@ -5,7 +5,7 @@
 
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_funcs.h"
 #include "shader_recompiler/exception.h"
@@ -54,7 +54,7 @@ struct fmt::formatter<Shader::IR::Type> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::IR::Type& type, FormatContext& ctx) {
+    auto format(const Shader::IR::Type& type, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", NameOf(type));
     }
 };
diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.cpp b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
index dce414cb47..a2ad56cc49 100644
--- a/src/shader_recompiler/frontend/maxwell/control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
@@ -7,7 +7,7 @@
 #include <string>
 #include <utility>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/polyfill_ranges.h"
 #include "shader_recompiler/exception.h"
diff --git a/src/shader_recompiler/frontend/maxwell/location.h b/src/shader_recompiler/frontend/maxwell/location.h
index 0c0477e2db..3093c7a8ee 100644
--- a/src/shader_recompiler/frontend/maxwell/location.h
+++ b/src/shader_recompiler/frontend/maxwell/location.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "shader_recompiler/exception.h"
@@ -102,7 +102,7 @@ struct fmt::formatter<Shader::Maxwell::Location> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Maxwell::Location& location, FormatContext& ctx) {
+    auto format(const Shader::Maxwell::Location& location, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{:04x}", location.Offset());
     }
 };
diff --git a/src/shader_recompiler/frontend/maxwell/opcodes.h b/src/shader_recompiler/frontend/maxwell/opcodes.h
index 72dd143c2a..18ed4f6e1a 100644
--- a/src/shader_recompiler/frontend/maxwell/opcodes.h
+++ b/src/shader_recompiler/frontend/maxwell/opcodes.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 namespace Shader::Maxwell {
 
@@ -23,7 +23,7 @@ struct fmt::formatter<Shader::Maxwell::Opcode> {
         return ctx.begin();
     }
     template <typename FormatContext>
-    auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) {
+    auto format(const Shader::Maxwell::Opcode& opcode, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{}", NameOf(opcode));
     }
 };
diff --git a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
index 80c90fe6ac..3c18f49982 100644
--- a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
@@ -8,7 +8,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include <boost/intrusive/list.hpp>
 
diff --git a/src/video_core/renderer_vulkan/pipeline_statistics.cpp b/src/video_core/renderer_vulkan/pipeline_statistics.cpp
index fcd160a326..545971bd88 100644
--- a/src/video_core/renderer_vulkan/pipeline_statistics.cpp
+++ b/src/video_core/renderer_vulkan/pipeline_statistics.cpp
@@ -3,7 +3,7 @@
 
 #include <string_view>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "common/logging/log.h"
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index dc64a367e9..4a2d4b23ef 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -9,7 +9,7 @@
 #include <string>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/logging/log.h"
 #include "common/polyfill_ranges.h"
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
index 03a0b7280b..72d5ec35f9 100644
--- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
+++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
@@ -5,7 +5,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/alignment.h"
 #include "common/assert.h"
diff --git a/src/video_core/texture_cache/formatter.h b/src/video_core/texture_cache/formatter.h
index cabbfcb2dd..33c32645a2 100644
--- a/src/video_core/texture_cache/formatter.h
+++ b/src/video_core/texture_cache/formatter.h
@@ -5,7 +5,7 @@
 
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "video_core/surface.h"
 #include "video_core/texture_cache/types.h"
@@ -13,7 +13,7 @@
 template <>
 struct fmt::formatter<VideoCore::Surface::PixelFormat> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
-    auto format(VideoCore::Surface::PixelFormat format, FormatContext& ctx) {
+    auto format(VideoCore::Surface::PixelFormat format, FormatContext& ctx) const {
         using VideoCore::Surface::PixelFormat;
         const string_view name = [format] {
             switch (format) {
@@ -234,7 +234,7 @@ struct fmt::formatter<VideoCore::Surface::PixelFormat> : fmt::formatter<fmt::str
 template <>
 struct fmt::formatter<VideoCommon::ImageType> : fmt::formatter<fmt::string_view> {
     template <typename FormatContext>
-    auto format(VideoCommon::ImageType type, FormatContext& ctx) {
+    auto format(VideoCommon::ImageType type, FormatContext& ctx) const {
         const string_view name = [type] {
             using VideoCommon::ImageType;
             switch (type) {
@@ -262,7 +262,7 @@ struct fmt::formatter<VideoCommon::Extent3D> {
     }
 
     template <typename FormatContext>
-    auto format(const VideoCommon::Extent3D& extent, FormatContext& ctx) {
+    auto format(const VideoCommon::Extent3D& extent, FormatContext& ctx) const {
         return fmt::format_to(ctx.out(), "{{{}, {}, {}}}", extent.width, extent.height,
                               extent.depth);
     }
diff --git a/src/video_core/texture_cache/image_info.cpp b/src/video_core/texture_cache/image_info.cpp
index 9444becceb..135dd64de3 100644
--- a/src/video_core/texture_cache/image_info.cpp
+++ b/src/video_core/texture_cache/image_info.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/assert.h"
 #include "common/settings.h"
diff --git a/src/video_core/vulkan_common/nsight_aftermath_tracker.cpp b/src/video_core/vulkan_common/nsight_aftermath_tracker.cpp
index f41c3e5067..aae3d40b62 100644
--- a/src/video_core/vulkan_common/nsight_aftermath_tracker.cpp
+++ b/src/video_core/vulkan_common/nsight_aftermath_tracker.cpp
@@ -10,7 +10,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/common_types.h"
 #include "common/fs/file.h"
diff --git a/src/web_service/verify_user_jwt.h b/src/web_service/verify_user_jwt.h
index 27b0a100c6..5be7c87ebb 100644
--- a/src/web_service/verify_user_jwt.h
+++ b/src/web_service/verify_user_jwt.h
@@ -3,7 +3,7 @@
 
 #pragma once
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "network/verify_user.h"
 #include "web_service/web_backend.h"
 
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp
index fdf3ac8463..c04cdd9707 100644
--- a/src/web_service/web_backend.cpp
+++ b/src/web_service/web_backend.cpp
@@ -5,7 +5,7 @@
 #include <mutex>
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #ifdef __GNUC__
 #pragma GCC diagnostic push
diff --git a/src/yuzu/about_dialog.cpp b/src/yuzu/about_dialog.cpp
index 2c377e6ace..6ee52ae088 100644
--- a/src/yuzu/about_dialog.cpp
+++ b/src/yuzu/about_dialog.cpp
@@ -2,7 +2,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 #include <QIcon>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/scm_rev.h"
 #include "ui_aboutdialog.h"
 #include "yuzu/about_dialog.h"
diff --git a/src/yuzu/applets/qt_amiibo_settings.cpp b/src/yuzu/applets/qt_amiibo_settings.cpp
index b91796ddef..9da63c2dc8 100644
--- a/src/yuzu/applets/qt_amiibo_settings.cpp
+++ b/src/yuzu/applets/qt_amiibo_settings.cpp
@@ -3,7 +3,7 @@
 
 #include <algorithm>
 #include <thread>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include <nlohmann/json.hpp>
 
 #include "common/assert.h"
diff --git a/src/yuzu/compatibility_list.cpp b/src/yuzu/compatibility_list.cpp
index dbbe76448a..d08c542eff 100644
--- a/src/yuzu/compatibility_list.cpp
+++ b/src/yuzu/compatibility_list.cpp
@@ -3,7 +3,7 @@
 
 #include <algorithm>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "yuzu/compatibility_list.h"
 
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp
index 4dbe801a97..df3251b9bf 100644
--- a/src/yuzu/configuration/configure_per_game.cpp
+++ b/src/yuzu/configuration/configure_per_game.cpp
@@ -8,7 +8,7 @@
 #include <utility>
 #include <vector>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include <QAbstractButton>
 #include <QCheckBox>
diff --git a/src/yuzu/configuration/configure_ringcon.cpp b/src/yuzu/configuration/configure_ringcon.cpp
index 9fd094ab61..f7249be97e 100644
--- a/src/yuzu/configuration/configure_ringcon.cpp
+++ b/src/yuzu/configuration/configure_ringcon.cpp
@@ -6,7 +6,7 @@
 #include <QMenu>
 #include <QMessageBox>
 #include <QTimer>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "configuration/qt_config.h"
 #include "hid_core/frontend/emulated_controller.h"
diff --git a/src/yuzu/configuration/input_profiles.cpp b/src/yuzu/configuration/input_profiles.cpp
index ebebadc945..0ff5e18c1c 100644
--- a/src/yuzu/configuration/input_profiles.cpp
+++ b/src/yuzu/configuration/input_profiles.cpp
@@ -1,7 +1,7 @@
 // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/fs/fs.h"
 #include "common/fs/path_util.h"
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp
index c05a05057a..9f9e21bc28 100644
--- a/src/yuzu/debugger/wait_tree.cpp
+++ b/src/yuzu/debugger/wait_tree.cpp
@@ -2,7 +2,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later
 
 #include <array>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "yuzu/debugger/wait_tree.h"
 #include "yuzu/uisettings.h"
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp
index d59e9c89e3..e84ab5cc35 100644
--- a/src/yuzu/game_list.cpp
+++ b/src/yuzu/game_list.cpp
@@ -13,7 +13,7 @@
 #include <QMenu>
 #include <QThreadPool>
 #include <QToolButton>
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/common_types.h"
 #include "common/logging/log.h"
 #include "core/core.h"
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index aa95d575ec..c779c65b4e 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -91,7 +91,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
 #include <SDL.h> // For SDL ScreenSaver functions
 #endif
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include "common/detached_tasks.h"
 #include "common/fs/fs.h"
 #include "common/fs/path_util.h"
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
index 13f6f7484c..35e8aeda79 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
@@ -8,7 +8,7 @@
 #define SDL_MAIN_HANDLED
 #include <SDL.h>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 #include <glad/glad.h>
 #include "common/logging/log.h"
 #include "common/scm_rev.h"
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp
index a910720979..a969c1c291 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp
@@ -5,7 +5,7 @@
 #include <memory>
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/logging/log.h"
 #include "common/scm_rev.h"
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
index 238dfebab0..c8378a5179 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
@@ -5,7 +5,7 @@
 #include <memory>
 #include <string>
 
-#include <fmt/format.h>
+#include <fmt/ranges.h>
 
 #include "common/logging/log.h"
 #include "common/scm_rev.h"
diff --git a/vcpkg.json b/vcpkg.json
index 418026db62..9385983b17 100644
--- a/vcpkg.json
+++ b/vcpkg.json
@@ -26,7 +26,7 @@
         "lz4",
         "nlohmann-json",
         "zlib",
-        "zstd"       
+        "zstd"
     ],
     "features": {
         "yuzu-tests": {
@@ -48,14 +48,10 @@
             "name": "catch2",
             "version": "3.3.1"
         },
-        {
-            "name": "fmt",
-            "version": "10.1.1"
-        },
         {
             "name": "boost-process",
             "version": "1.81.0"
         }
-      
+
     ]
-}
\ No newline at end of file
+}