From f9fe82f19ec4b85ff901e268dc3fff98b3e5255a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Vanda=C3=ABle?= Date: Sat, 27 Dec 2025 10:26:00 +0100 Subject: [PATCH 1/2] ShaderAsset: Fix shadowed variable `samplers` is a member defined in ShaderAsset.h --- Source/Core/VideoCommon/Assets/ShaderAsset.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/Assets/ShaderAsset.cpp b/Source/Core/VideoCommon/Assets/ShaderAsset.cpp index 99c9ed4ab0..04a9139212 100644 --- a/Source/Core/VideoCommon/Assets/ShaderAsset.cpp +++ b/Source/Core/VideoCommon/Assets/ShaderAsset.cpp @@ -256,7 +256,7 @@ bool RasterSurfaceShaderData::FromJson(const VideoCommon::CustomAssetLibrary::As const auto parse_samplers = [&](const char* name, - std::vector* samplers) -> bool { + std::vector* samplers_out) -> bool { const auto samplers_iter = json.find(name); if (samplers_iter == json.end()) { @@ -309,7 +309,7 @@ bool RasterSurfaceShaderData::FromJson(const VideoCommon::CustomAssetLibrary::As asset_id); return false; } - samplers->push_back(std::move(sampler)); + samplers_out->push_back(std::move(sampler)); } return true; From 74b1930da4ea0dd62c91c4a0b677d14dc75093d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joshua=20Vanda=C3=ABle?= Date: Sat, 27 Dec 2025 10:47:14 +0100 Subject: [PATCH 2/2] JitArm64_RegCache: Fix is always true warnings --- .../Core/PowerPC/JitArm64/JitArm64_RegCache.cpp | 13 +++++-------- .../Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h | 13 +++++++++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp index 8ba7a6a3be..308c14fdde 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp @@ -182,12 +182,9 @@ Arm64GPRCache::GuestRegInfo Arm64GPRCache::GetGuestCR(size_t preg) Arm64GPRCache::GuestRegInfo Arm64GPRCache::GetGuestByIndex(size_t index) { - // We do not need to test for `index >= GUEST_GPR_OFFSET` because - // GUEST_GPR_OFFSET is always 0. This otherwise raises a warning. - static_assert(GUEST_GPR_OFFSET == 0); - if (index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT) + if (IsIndexGPR(index)) return GetGuestGPR(index - GUEST_GPR_OFFSET); - if (index >= GUEST_CR_OFFSET && index < GUEST_CR_OFFSET + GUEST_CR_COUNT) + if (IsIndexCR(index)) return GetGuestCR(index - GUEST_CR_OFFSET); ASSERT_MSG(DYNA_REC, false, "Invalid index for guest register"); return GetGuestGPR(0); @@ -198,7 +195,7 @@ void Arm64GPRCache::FlushRegister(size_t index, FlushMode mode, ARM64Reg tmp_reg GuestRegInfo guest_reg = GetGuestByIndex(index); OpArg& reg = guest_reg.reg; size_t bitsize = guest_reg.bitsize; - const bool is_gpr = index >= GUEST_GPR_OFFSET && index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT; + const bool is_gpr = IsIndexGPR(index); if (reg.IsInHostRegister()) { @@ -349,7 +346,7 @@ ARM64Reg Arm64GPRCache::BindForRead(size_t index) GuestRegInfo guest_reg = GetGuestByIndex(index); OpArg& reg = guest_reg.reg; size_t bitsize = guest_reg.bitsize; - const bool is_gpr = index >= GUEST_GPR_OFFSET && index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT; + const bool is_gpr = IsIndexGPR(index); IncrementAllUsed(); reg.ResetLastUsed(); @@ -392,7 +389,7 @@ void Arm64GPRCache::BindForWrite(size_t index, bool will_read, bool will_write) GuestRegInfo guest_reg = GetGuestByIndex(index); OpArg& reg = guest_reg.reg; const size_t bitsize = guest_reg.bitsize; - const bool is_gpr = index >= GUEST_GPR_OFFSET && index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT; + const bool is_gpr = IsIndexGPR(index); reg.ResetLastUsed(); diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h index d547ee9d4e..f801829b2c 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.h @@ -419,6 +419,19 @@ private: GuestRegInfo GetGuestCR(size_t preg); GuestRegInfo GetGuestByIndex(size_t index); + constexpr bool IsIndexGPR(size_t index) + { + // We do not need to test for `index >= GUEST_GPR_OFFSET` because + // GUEST_GPR_OFFSET is always 0. This otherwise raises a warning. + static_assert(GUEST_GPR_OFFSET == 0); + return index < GUEST_GPR_OFFSET + GUEST_GPR_COUNT; + } + + constexpr bool IsIndexCR(size_t index) + { + return index >= GUEST_CR_OFFSET && index < GUEST_CR_OFFSET + GUEST_CR_COUNT; + } + Arm64Gen::ARM64Reg BindForRead(size_t index); void SetImmediateInternal(size_t index, u32 imm, bool dirty); void BindForWrite(size_t index, bool will_read, bool will_write = true);