From ad2add9574761b597c9164fd42648a0b248c42a8 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Fri, 25 Oct 2019 20:06:24 +0300 Subject: [PATCH] rsx:: Use fcmp correctly --- rpcs3/Emu/RSX/VK/VKHelpers.h | 5 +++-- rpcs3/Emu/RSX/VK/VKResourceManager.h | 13 ++++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/rpcs3/Emu/RSX/VK/VKHelpers.h b/rpcs3/Emu/RSX/VK/VKHelpers.h index 2fe188fd33..0072ad08a7 100644 --- a/rpcs3/Emu/RSX/VK/VKHelpers.h +++ b/rpcs3/Emu/RSX/VK/VKHelpers.h @@ -1558,8 +1558,9 @@ private: if (info.magFilter != mag_filter || info.minFilter != min_filter || info.mipmapMode != mipmap_mode || info.addressModeU != clamp_u || info.addressModeV != clamp_v || info.addressModeW != clamp_w || info.compareEnable != depth_compare || info.unnormalizedCoordinates != unnormalized_coordinates || - info.mipLodBias != mipLodBias || info.maxAnisotropy != max_anisotropy || info.maxLod != max_lod || - info.minLod != min_lod || info.compareOp != depth_compare_mode || info.borderColor != border_color) + !rsx::fcmp(info.maxLod, max_lod) || !rsx::fcmp(info.mipLodBias, mipLodBias) || !rsx::fcmp(info.minLod, min_lod) || + !rsx::fcmp(info.maxAnisotropy, max_anisotropy) || + info.compareOp != depth_compare_mode || info.borderColor != border_color) return false; return true; diff --git a/rpcs3/Emu/RSX/VK/VKResourceManager.h b/rpcs3/Emu/RSX/VK/VKResourceManager.h index 375bac2bac..fbd2f196b5 100644 --- a/rpcs3/Emu/RSX/VK/VKResourceManager.h +++ b/rpcs3/Emu/RSX/VK/VKResourceManager.h @@ -45,11 +45,6 @@ namespace vk std::unordered_multimap> m_sampler_pool; std::deque m_eid_map; - bool value_compare(const f32& a, const f32& b) - { - return fabsf(a - b) < 0.0000001f; - } - eid_scope_t& get_current_eid_scope() { const auto eid = current_event_id(); @@ -94,10 +89,10 @@ namespace vk for (auto It = found.first; It != found.second; ++It) { const auto& info = It->second->info; - if (!value_compare(info.mipLodBias, mipLodBias) || - !value_compare(info.maxAnisotropy, max_anisotropy) || - !value_compare(info.minLod, min_lod) || - !value_compare(info.maxLod, max_lod)) + if (!rsx::fcmp(info.maxLod, max_lod) || + !rsx::fcmp(info.mipLodBias, mipLodBias) || + !rsx::fcmp(info.minLod, min_lod) || + !rsx::fcmp(info.maxAnisotropy, max_anisotropy)) { continue; }